読者です 読者をやめる 読者になる 読者になる

修士課程のまとめ

  • 2015年4月に修士課程に入学してからの興味の変遷と修士論文での着地をまとめます
  • 東大情報理工コンピュータ科学専攻の相澤研(場所は国立情報学研究所)というところの所属で、自然言語処理?計算言語学?をやっています
  • すこし来年度からの話もします

入学直前直後

 言語処理学会の存在は知っていたので、京都で行われた年次大会に卒論(後述)の話でポスター発表をしました。ちょうどその直前に春の言語処理祭り?(だったかな?)のイベントがあって、そちらにも参加しました。また、人工知能学会の全国大会(函館)にも参加して、こっちは口頭発表をしました(学会での日本語での口頭発表は2年間でこれ1件だけでした)。どちらの発表もかなり哲学寄りのぼんやりした話だったので、今思うと「まったく何も内容がない」「言われなくてもわかっている」ような話ばかりしてしまったなという反省があります。分野を跨ごうとする人間は注意すべきことなのだと思いますが、発表をする・論文を書く分野の問題意識をきちんと理解していなければ、受け入れられづらいのかなと思います。

 自分は出身の学部が文学部で、哲学らしきことについて関心を持っていて、卒業論文は哲学的な(生物学的な)意味論をやりました。おもな議論の中心はルース・ミリカンの「固有機能」という概念に基づく表象的な観点からの意味論で、参考にした文献は戸田山和久先生の『哲学入門』(ちくま新書)やミリカン『意味と目的の世界』(信原幸弘訳、勁草書房)などです。前者の新書はかなりわかりやすく説明されており、話が知りたいのであればこれを読むだけで十分だと思います。卒論は後者の文献を解読して自分なりの解釈・解説を書くという感じのことをしました。

 当初はテーマとして対話に興味がありました。しかし当時は自然言語処理のことを何も知らなかった状態で、まさしく言語を処理するにあたって考えなければならない諸問題をすべて軽んじる形で最終的なゴールに関心があったことになります。関連する論文を読んでみると、現状の技術は自分の想像よりもあまり高くないレベルにあることがわかりました。2015年6月から、人工知能学会で知り合った縁でホンダの研究所でアルバイトをすることになりました。勉強をしつつ、年末にかけて対話の破綻検出のデータ分析の手伝いをさせていただきました。対話研究において重要な側面である評価手法について考えるよい機会になりました。

2015年夏〜秋

 あまり興味を絞らずに本を読んだり講義に出たりしていました。春から継続していた興味は対話ないし言語行為(オースティン、サールなど)でしたが、さらに心理学・言語学寄りな観点でトマセロことばをつくる』や『認知・機能言語学』あたりを読んでいました。あとは『脳はいかにして言語を生みだすか』とか。

 自然言語処理若手の会で知り合った縁で、お茶大で Logics of Conversation (Asher and Lascarides) をつまんで読むゼミにも継続的に参加することになりました。読んだのは主に4章くらいまでで、談話関係に関わる課題や理論的な枠組みを知る機会になりました。

2015年冬〜年度末

 言語処理学会の発表に向けて、「言語を理解しているかどうかをユニットテスト的に問うことができればよいのではないか」というアイディア(これは Facebook の bAbI tasks を端緒としました)をより押し広げる話を進めました。bAbI tasks は20種類の言語理解能力を問うことを目的とした(機械的に生成された文からなる)タスクセットです。自分は、ここで列挙されている能力を細かくしたり言語の個々の文法現象を問うようにしたりするとより細かく言語理解なるものをテストできるはずだ、という話をしました。

 年度末にかけては、 Schubert (2015) Semantic RepresentationWhat Kinds of Knowledge are Needed for Genuine Understanding? を読んだことをきっかけに、上に書いたタスク生成のテンプレートを空欄付きの意味表現として与えることが必要ではないかという議論をまとめました(2016年6月の人工知能学会全国大会でポスター発表をしました)。意味表現として流行っていた(?) Abstract Meaning Representation の文法的な表現能力を拡張する方針で進めるのがよさそう、というアイディアを書きました。

2016年春〜夏

 年度末に声をかけていただいた縁で、4,5月から Preferred Networks と産総研人工知能センター(台場)でアルバイトを始めました(前者は2017年度以降も継続、後者は2016年度末まででした)。学業のほうは学振の申請に間に合うように1本は英語の論文を書かねばということで、 CoNLL2016 に合わせて原稿をまとめました。しかし上記の話は「ただのアイディア」で、実現可能性に乏しい・英語論文書くのが初めてで構成が下手・英語が下手・締切にほとんど間に合ってない・規定ページ数に足りないという様々な問題があり、あっさりリジェクトされました。スコアは今メールを見返してみたら 2-2-4 でした。その後、この内容をもうちょっと頑張って COLING2016 に出そうとしていたのですが、そもそも実現可能性の乏しさをクリアできていなかったので、指導教員と相談して投稿を断念しました。このネタは結局そのままお蔵入りになったので、そのうち復活させたいと思っています。ちなみに案の定ですが学振は落ちました(運要素も怖いので正直もう出したくないのですが生存戦略……)。

 「言語理解を分解してテストする」というアイディア自体は、「細かく切って分析に使うことで、読解タスクの精度を向上させる」ことを大目的としていました。読解タスクとは、 QA4MREMCTest など、国語の文章題のようなスタイルで(理想的には)言語理解に関わる総合的な能力を問うデータセットのことを言います。そこで次のアイディアとして、読解システムの「総合的な能力」とやらを実際に評価するにあたって、データセット側が直接的に分析手法を与えるのがよいのでは、ということを考えました。既存のデータセットは問題をただ与えられているのがほとんどだったので、単一の精度でしかシステムの能力を評価することができませんでした。しかし、もし各問題が「このような能力を要求する問題です」とメタ的な情報と併せて与えられているなら、それらに回答するシステムの分析をより詳細に行うことができます。

 以上の話をまとめて、まずはそこまで大きくない会議かワークショップに出すのが良さそうということになり、 EMNLP2016 のワークショップの Uphill Battles in Language Processing に投稿しました(投稿時本文2ページで、採択後の camera ready は本文4ページまでOKということだったので4ページ書きました)。投稿件数が多くなかったみたいで、16件中12件が採択、という感じでした(たぶん辞退もあったので率で言えばもっと高いはず)。国際会議に参加するのも初めてだったので(海外に出るのも10年以上ぶりだったので)、よい経験になりました。ポスター発表でしたが、英語がわからなくて反省しました。

2016年秋〜年度末

 EMNLP のワークショップで発表した議論を広げて、より細かく評価・実験を書き足して、AAAI に投稿しました。このあたりの話は参加したときの記事を参照していただければと思います。10月何をしていたのか記憶にないですが、11月頭から、EMNLP に行って、AAAI に採択されて、 camera ready に時間をかけて、とやっているうちに12月になって、お茶大の絡みで談話関係の枠組みの話で COLING のワークショップに共著で参加させていただいて、そろそろ修論の着地をどこにするか考えるかと考えていたのが12月でした。

 その時点までの「読解タスクのデータセットに言語理解の分析のためのアノテーションをする」という話は、データセットひとつ(MCTest)に対してしか行っていませんでした。話の広げ方として、他のデータセットに対してアノテーションを試してデータセットごとの難易度や問題傾向の違いを示す、というのがやりやすそうです。それにあたって、別の側面で評価指標の方を拡張できないかと思案しました。それまで取り組んでいた MCTest は、子供向けの童話をクラウドソーシングで創作したデータセットでした。そのため文章は平易なのですが、クイズとしては常識推論を前提とする場合が多いため「機械には難しい」という印象がありました。対して、最近になって提案された SQuAD などは、Wikipedia の記事をベースにクラウドソーシングで問題を作っており一見難しそうに感じられますが、本文の factoid な抜き出しが答えになることがほとんどなため、ベースラインの時点で正答率は高めです。そこで、この「文章の表面的な難しさ」と「問題の難易度」を切り分けて分析できれば、より良いシステム評価・データセット構築ができるのではないかと考えました。

 ということで、修論の後半部の話題は「言語理解に必要な能力 (prerequisite skills) と文章の読みやすさ (readability) の2つの側面から既存の複数のデータセットを分析し、その傾向を見る」という話になりました。実はこの2つの側面で切るという話は心理学における読解研究では既にあるトピックなようで、自分は McNamara (2009) Toward a Comprehensive Model of Comprehension という論文の冒頭で知りました。この論文はサーベイ部分の比重が大きく、 Kintsch and van Dijk (1978) Toward a Model of Text Comprehension and Production から長く続く当該分野のさまざまな理論的枠組みを整理しています(おすすめです)。コネクショニストが盛り上がっていた時代なので、現代でも通じるような話がいくつもあるのではないかなと思っており、自分も今後さらに掘っていきたいです。

 この話は修論に含めることを前提に ACL2017 に long paper で書いて投稿して、運良く採択されました。論文に関する詳細はまた camera ready 投稿時か会議発表時に記事にします。ここでは手短に説明を(追記:手短じゃないですね)。これまでの評価手法の前提として「言語理解に必要とされる能力」のアノテーションはマルチラベルで行っていました。たとえば「この問題は照応解析・語彙的知識推論・複文の理解が必要になる」のように3つのラベルが付与される問題があったり、照応解析だけで済むような問題があったりします。この「付与されたラベル数」と「システムによる正答率」の関係は、AAAI の論文の時点で「問題あたりにアノテーションされるラベルが多ければ多いほど、つまり要求される能力の数が多くなればなるほど、正答率は下がる」ということがわかっていました。これを問題の難易度だと仮定します。今回は、そうして得られた問題ごとの難易度と、その問題(問題文とその問題を回答するのに必要な文脈文)の読みやすさに相関があるかないかを調査しました。読みやすさは文の長さ、各語の長さ、修飾語の種類、構文の複雑さなどの指標で測ります。すると、ほとんどの readability の指標で相関係数 (Pearson’s correlation coefficients) は高くないことがわかりました(文の長さに関してのみ 0.4 くらいで、あとは 0.02-0.2 くらいの範囲でした)。以上から、「問題の難易度と問題文の読みやすさには相関があまりない」という観察が与えられます。そうすると、「文章が簡単でも難しい問題は作れるかもしれない」「難しい文章だからといって問題が難しいとは限らない」などが言えそうです。こうした指標はデータセットの構築時にもシステムの分析時にも使えますから、たとえば機械学習のモデルで読解システムを作るとき、「始めは簡単な文章・簡単な問題で学習して、次に簡単な文章・難しい問題で学習して、そのあとでようやく難しい文章・難しい問題を学習させる」といった curriculum learning 的な進め方がやりやすくなります。などなど、心理学の読解の論文で話題になっていることを絡めつつ議論の節を書いたりもしたところ、良い評価をもらえました。

今後の関心

 2017年度から博士課程です。博論のテーマとしては、このまま読解や推論の研究っぽいことをするか、ちょっと趣向を変えて言語獲得の研究っぽいことするか、で迷っています。前者についてはこれまで提案してきた分析手法の話を適用する形で具体的なシステム作りをするという方針です。後者については、「言語理解というわけのわからないものを分解する」という発想をもっと primitive な方面に向けて「言語を獲得する以前の非言語的な認知的能力を分解して、獲得する言語と対応付けられるようにタスク・評価設計をする」という方針です。この両者はいわゆる「大人の言語理解」と「子どもの言語獲得」という対比です。後者の方が個人的には気になるのですが、(博論として)どう着地をするのかが難しそうで、下手に手出しをすると死ぬのではという雰囲気があります。ただ最近ちらほら「マルチエージェントで強化学習して言語を創発させる」みたいな話を見かけており(Lazaridou et al. (1612.07182) や OpenAI の Learning to communicate の記事)、この話のタスク設計をより精緻にする方針として使えるのではないかと考えています。ただし大きな問題は、もし simulated world で言語獲得をさせるならば、それを現実世界の環境と対応付けることができるのか、という点です(トピックとしては generalization だと思うので、自分は機械学習をもっと勉強する必要があります……)。もうちょっと調べたり追試を頑張ったりして、どうにかなるか見当をつけたいと思います。また2016年度取り組んだアルバイトについては、どのようなテーマだったかはあまり踏み込んで書きませんが、大学の方のあれこれに引っ張られてあまり貢献できませんでした。せっかくほとんど研究的なことをやらせていただいているので、今後はもっと集中して取り組めるようにしないとなあと思います。ちなみに2017年5月からは理研AIPにRAとしてお世話になる予定です。

 という感じでやってきました&やっていきたいと思っています。よろしくお願いします。