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

修士課程のまとめ

  • 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としてお世話になる予定です。

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

AAAI-17 に行きました

AAAI-17 (Feb. 4-9, 2017 @San Francisco) http://www.aaai.org/Conferences/AAAI/aaai17.php という人工知能系の国際会議で発表してきました。国際会議にちゃんと論文を通すのは初めてだったので、記録がてら経緯を書きます。

f:id:liephia:20170206120200j:plain

サンフランシスコの写真。

執筆と投稿

自分は研究らしきことを始めたのが(大学院からこの分野に移ったので)遅く、2015年度末(修士1年の終わり頃)くらいでようやく自分ができそうなことが見えてきて、2016年3月の言語処理学会・6月の人工知能学会でポスター発表などをしました。それを基に4月から7月にかけていろいろ書いたり投稿していたりしたのですが、どうにも国際会議の投稿レベルでは話がまとまらないできないということが続き、7月末〜8月でようやく extended abstract 的なものを書いて EMNLP のワークショップ http://www.coli.uni-saarland.de/~mroth/UphillBattles/ に投稿しました。原稿はこれ http://aclweb.org/anthology/W/W16/W16-6001.pdf です。このワークショップ自体は採択が75%くらいだったと思います(むしろ偉い人の話がいろいろ聞けたのがよかった)。この原稿を本格的に full paper として固めたものを書こうということになったのですが、どうにも時期的にわかりやすい自然言語処理の国際会議がなく、ちょっと(かなり) challenging だけどまあ出してみるのもありでしょうという指導教員の談で AAAI に出すことにしました。自分はこれが通らなかったら(というよりもたぶん通らないだろうと思っていたので)ACLまで温め直しだなあと思いつつ書きました(notification のタイミングのために考慮から外していたのですが、 EACL でもよかったかもしれないです)。

8月は中旬に夏コミがあったり、末には YANS のシンポジウム(でポスター発表)と修論の中間発表があったりとやや忙しかったのですが、合間をぬって書きつつ、9月の頭には結果や議論がちょっと甘い形でおおよそ内容が固まりました。そういえば直前の月曜日は最先端 NLP 勉強会で発表したりもありましたね……。投稿の締め切りは9月14日(日本時間で15日の夕方)でした。草稿の英語があまりにも雑で指導教員いわく「これは英文校正に出してからのほうがさすがに添削しやすい」ということだったので、英文校正に先に出しました。締め切りまでに校正会社と3往復はさせたはずです。英語が得意な同期にも読んでもらいました。そういうのが大事っぽいです(指導教員も共著者もなかなか忙しく、やはりじっくり添削していただくのは難しいので……)。という感じで投稿しました。

Author response, notification と camera ready

10月末くらいにりばったるがありました。ほとんど完全な内容の review comments が来ます。スコアは +++++ (=best) から ----- (=worst) の10段階で与えられ、自分は +++ ++ +++ でした。聞くところによるとそこそこ大丈夫そうな評価らしく(多くの論文はボーダーとなる +- に集中しやすいらしいです)、運が良かったのかなと思います。もちろん査読のコメントは議論や定義の甘いところを突かれていて、こりゃ丁寧に応答しないとあかんなという感じだったので、がんばって書きました。500語(だったかしら)の語数制限があるのが厳しく、ぎりぎりの時間まで練って提出しました(査読コメントで自分の知らなかった論文を紹介してもらえたりもしたので、とくに指導教員と違うテーマをやっている人は勇気を出して投稿してみるのが大事だと思います)。

で採択の通知が来ました。最終的なスコアは ++++ ++ +++ になっていました。通知の時点で投稿数は 2590 、採択は 638 でした。 Camera ready のためにページを買い増しつつ(どうしてお金がかかるのか未だにわからないのですが、紙媒体の冊子を作ってるから?)書き加える内容を考えたりしました。ここでも確認不足で指導教員とかなり揉めて精神的にひどかったのですが、なんとか追加の評価をしたりして、英文校正の再校正サービスを利用しつつ(ちょっと料金がかかった気がする)最終版を仕上げました。

12月大阪の COLING に参加している間に発表形式の通知が来て、自分は口頭発表に割り当てられたとのことでした。スコア的にありえるかもなと思っていたので「あーあ」くらいの気持ちだったのですが、まあ一度も英語の口頭発表やったことないしがんばろうという気持ちになることにしました。プログラムを数えてみると、口頭発表件数は採択された論文の半数よりやや多いくらいで、13%くらいかな?と思います(ポスターと優劣があるわけではないと通知のメールには書かれていましたが)。

会議と発表

会議は2017年2月4-9日で、4-5日はワークショップやチュートリアル・6-9日が本会議ということなのですが、自分の所属する専攻の修論の最終発表が2月の6-7日にあり、おいおい勘弁してくださいよという感じでお願いをして、6日の頭に修論発表・8日午後(一応 commitee にお願いのメールを送ったのですが反応はなかったので後半の日程に配置されたのは偶然かもしれないです)に AAAI 発表という予定で固まりました。ワークショップやチュートリアルや reception に出られなかったのでもったいなかったという気持ちですが、仕方ないです。修論書きつつ、発表の準備しつつという感じで1月後半から会議まで慌ただしく過ごしました。

サンフランシスコはじめじめしていて雨が降ってるのか霧が降っているのかよくわからない天気でした。会場は Hilton で、そこそこたくさん人がいました(稚拙な感想すぎるなこれ)。国別の参加者や投稿数についての細かい統計値は報告してらっしゃる方がいるのでそれを参照くださればと思います。NLP のセッションもそこそこの数がありますがやはり少数派で、そのなかでも言語寄りの関心というよりは機械学習・深層学習の流れに乗った発表が多かったようです。その意味では自分の内容はちょっと浮いていたのですが、かえって良かったかもしれません。

f:id:liephia:20170207121102j:plain

会場の写真を取り忘れたので会場近くにあった「大阪うどん」のお店で食べたカツカレーの写真を貼ります。アメリカでこれを食べられるのはすごいと思った。

自分のセッションは他の発表がすごいという雰囲気ではなかったので、セッションの最後の番であった自分は落ち着いて発表できた気がします(暗記までする暇がなくスクリプトを読みまくりでしたが)。発表15分・質疑3分です。質疑は1件うまく聞き取れず完全に的はずれな回答をしてしまい情けない思いをしたので、やっぱり英語の聞き取りなり会話なりの訓練を事前にもっとやっておくべきだったなと感じました。

論文の内容

書くのを忘れていました。原稿はこれ http://www.aaai.org/Conferences/AAAI/2017/PreliminaryPapers/14-Sugawara-14614.pdf です。スライドは http://penzant.net/files/aaai17_slide.pdf にあります。トピックとしては reading comprehension や machine comprehension (ここでは単に「読解」と呼びます)と呼ばれる話で、国語の文章題のような問題群をいかに計算機に解かせるかというのが課題です。今回の論文では、そうした読解タスクにおける評価手法をもっとしっかり考えたほうがよいのではないかという旨の主張をしました。

読解のタスクは、おおよそ「複数の文からなる課題文を読んで何らかのクエリに答えてもらう」という形をとります。クエリの形式は穴埋め・選択肢・課題文からの抜き出しなどがあり、いろいろデータセットが提案されています(詳しくは論文を参照してください)。これを解くシステムを考えるわけですが、開発にあたってシステムの評価はおおよそ単一の精度でしか行われません(テストセット500問中400問解けたので80%でした、という感じ)。さらにシステムを改善しようとすると実際に解けなかった問題を分析する必要がありますが、どうしても断片的になり、定性的に「これが苦手・得意」という説明を与えることはなかなか難しいという事情があります。

そこで、「あらかじめデータセットにある問題を解くのに必要なスキルセットをメタ的な情報としてラベリングしておいて、システムが解けなかった問題のラベルの傾向を見る」という評価手法を提案します。まずスキルセットを定義(能力は10個)します。定義する能力は既存の自然言語理解のタスクと対応をとり、たとえば照応解析、因果関係、論理推論、常識推論などです。次に、そのスキルセットで既存の読解タスクをアノテーションします。マルチラベルです。おおざっぱな傾向を見るには100-200問くらいでいい気がします(参考: https://arxiv.org/abs/1606.02858)。そしてそのアノテーション結果に基づいて既存のシステムの分析を行う、という流れです(スライドを見ていただければ図表があります)。

f:id:liephia:20170217183059p:plain

雰囲気の画像です。また、(おそらく)面白い結果として、「ひとつの問題を解くのに必要な能力が多くなればなるほど、正答率が下がる」という傾向があることがわかりました。これは「読解問題の難易度とはいったい何か」というやや漠然とした問いに対するヒントになると考えています(修論ではこの話題を掘り下げました)。一方で「結局それぞれのスキルについてアノテーションされた問題が十分な数なければ精度の精緻な分析には不向き」という課題があります。また、アノテーションが揺れないように(とくに知識推論)するのも大変で労力がかかります。これらはかなりの穴だと思うのですが、その旨を丁寧に書き、それっぽく分析を書き、最終的にアイディアが評価されて運良く査読を通ったのかなと感じています。

今後

年度末なのでついでに今後のことを書きます。自分は修士2年の後期になってようやくちゃんとした業績が作れたので、それより以前に応募したもろもろの生存戦略にだいたい失敗してしまい、わりかしつらい思いをしています。現在はとりあえず来年度を生き抜くのが目標です。とくに大学院から専門を変えた人は、学部から始めている人と1年分くらいの差があるので、どうしても出遅れがちになってしまうと思います。悲しい話ですが、じっくりやるよりもなるべく早くわかりやすい業績を作るのを優先すべきなのかなと感じます(生存戦略が立ってからようやくじっくりやるという雰囲気で)。ちなみに私は研究っぽいことができるアルバイト生活をさせていただきつつやっていくつもりですが(楽しくやっています)、長期的に考えるとやはり自分の研究の時間を増やしたくもあるので(というか今年度なんとかなったことを考えると来年度も意外となんとかなるのかもしれないのですが)、スポンサー募集中という感じです……。そんなに甘くないか。

自然言語処理・計算言語学に関わる年度末的な考えごとは別の記事に書こうと思います。

beamer, presenter notes, pgfpages, splitshow

やること
  • beamer で作ったスライドで発表する(環境は OSX
  • 発表者ノート的なものも使いたい
手順
  • tex に仕込むコード
\usepackage{pgfpages}
\setbeamertemplate{note page}[plain] % or [default], [compress]
\setbeameroption{show notes on second screen=right} % or bottom, ...
\newcommand{\pdfnote}[1]{\note{#1}} % as you like
  • で、 \pdfnote{あれこれ} を frame と frame の間に書く(どこでもいいっぽいけど)

    • itemize が使えたり、フォントも自由にできる(便利)
  • Splitshow https://github.com/mpflanzer/splitshow で pdf を開く

    • presentation mode = split
    • main display とか helper display とか指定するとウィンドウを開いてくれる
    • 矢印キーが同期されるのでふつーに発表可能
  • 同時に note page が無い slide も出力しておきたいとき(配布用とか)

\usepackage{pgfpages}
\setbeamertemplate{note page}[plain] % or [default], [compress]
\ifdefined\ispresentation
\setbeameroption{show notes on second screen=right} % or bottom, ...
\fi
\newcommand{\pdfnote}[1]{\note{#1}} % as you like

などとしておいて(引数の入れ方はもちろん逆でもいいです(ここでは slide.pdf が note 付きになるようにしている))、

with note pages
$ lualatex "\def\ispresentation{1} \input{slide.tex}"

without note pages
$ lualatex -output-directory=org -jobname="slide_original" slide.tex

みたいな。 Makefile に適当に書いておく。最初 platex+dvipdfmx でやっていたけど table などが表示されなくて詰まったので lualatex に切り替えた。

反省
  • beamer でスライド作るのを卒業したほうがいいのではないか

Springerexemplar の grep

Springer Exemplar - Scientific Terms in Context と言えば Springer が有するコーパスから指定したフレーズの一致件数・一致例を出してくれるサイトですが、「この表現とあの表現の一致件数を比較したいな〜」というときに一発コマンドを打てると楽だなあと思っていろいろ教えてもらって書きました。なんでこんなことするのかって springerexemplar は読み込みが遅くてロードを待っている間に何を検索しようとしていたか忘れてしまうからです。

springerexemplar() {
    echo "$*"
    wget -q -O - 'http://springerexemplar.com/search.aspx?q="'"$*"'"&similar=false' | grep -o "\d* matching articles"
}
spx() {
    for i in $@; do
        springerexemplar $i
    done
}

自分は .zshrc に直に書いています。使い方は、

$ spx 'this '{is,was}' because'
this is because
122392 matching articles
this was because
128924 matching articles
$ spx 'this is because' 'this was because'
this is because
122392 matching articles
this was because
128924 matching articles

みたいな感じでどうでしょうか(自分でも使うかどうか怪しいけど)。

今年読んだおすすめの論文10本(15本)

  1. What Kinds of Knowledge are Needed for Genuine Understanding?
  2. Where are they looking?
  3. Describing Images using Inferred Visual Dependency Representations
  4. A Thorough Examination of the CNN/Daily Mail Reading Comprehension Task
  5. Reasoning in Vector Space: An Exploratory Study of Question Answering
  6. Towards an integration of deep learning and neuroscience
  7. My Computer is an Honor Student - but how Intelligent is it? Standardized Tests as a Measure of AI
  8. Combining Natural Logic and Shallow Reasoning for Question Answering
  9. The LAMBADA dataset: Word prediction requiring a broad discourse context
  10. "Ask not what Textual Entailment can do for You..."
  11. Comparing Computational Cognitive Models of Generalization in a Language Acquisition Task
  12. Degeneracy results in canalisation of language structure: A computational model of word learning
  13. A Unified Theory of Inference for Text Understanding
  14. Toward a Comprehensive Model of Comprehension
  15. Prerequisite Skills for Reading Comprehension: Multi-perspective Analysis of MCTest Datasets and Systems

UBLP (EMNLP2016WS) の対話セッションのメモ

Uphill Battles in Language Processing Scaling Early Achievements to Robust Methods, Workshop held in conjunction with EMNLP 2016

  • http://www.coli.uni-saarland.de/~mroth/UphillBattles/
  • EMNLP 2016 のワークショップ
    • 「現時点までの成果をどうやって robust な技術に発展させるか」という感じの、今までを振り返ってこれからを考える趣旨の会
  • 本稿は Dialogue and Speech のセッションのメモ書き
    • 4人の研究者がそれぞれ10-15分で「これからどうするか」という話をしている
    • 他に「言語理解」「言語生成」「Grounded Language (どう訳す……?)」のセッションがあった

0. 全体のまとめ

各講演者の要点

  • Devault: 現状の音声対話システムの問題のひとつは流暢さであり、その実現のために「turn-taking における素早い応答」と「割り込み・重複を認識して認識ができること」の二点が重要だと指摘している
  • Liberman: diarization (who spoke when) すら現状の技術では満足でなく、 what について理解する前提としてまず diarization が必要。そのほか、 turn-taking物理的環境・社会的文脈への対応
  • Litman: 協調という観点から1980年代の Indirect speech actsHelpful responses の取り組みを思い出すべきなのでは
  • Stent: 概説メイン。大きな課題はふたつ: 単なる「情報を探す」対話から協調的・利益的な対話に発展させること、 AI としての対話に立ち返って必要な要素(たとえば情報の共有、照応と物理世界、文化や社会ドメイン、複雑なやりとり、自律性?)を考えること

メモ作成者のメモ

  • ページ下部へ移動

1. David Devault, University of Southern California

音声対話システムの Uphill Battles

  • Automatic speech recognition
    • 自動的な音声認識
    • (既にいいところまで行った?)
  • Broad coverage semantics
    • 幅広い語彙・知識をカバーできること
  • Multi-domain / multi-application dialogue policies
    • マルチドメインかつ様々なアプリケーションで利用可能な対話戦略を持つこと
  • Fluid conversational interaction (流暢な対話のやりとり)
    • Turn-taking / mixed-initiative (発話の順番、発話の時間的重なり)
    • Incremental (word-by-word) speech processing (逐語的な音声処理)
    • Dialogue modeling (対話をどうモデリングするか、意図や目的)

現状の音声対話システムは何が流暢ではないのか?

  • ほとんど全てのシステムが単純な turn-taking のプロトコルで成り立つ
    • 卓球のようなやりとりを仮定し、発話の重複がない
    • All user-initiative / all system-initiative
  • ユーザーは、システムがユーザーの言うことや振る舞いを理解しているかわからない
    • 応答の待ち時間がながい、相づち (backchannels; 「ああ」や頷き) がない
  • ユーザーはいつ喋ることができるのか・何を喋ることができるのかがわからない
    • Okay のような単純な発話ならすぐ使えるとはわかる
    • それ以外の発話はさっぱり何を言っていいのか見当がつかない
    • やりとりが簡単に脱線する
    • ユーザーにとっては、ひとつひとつの発話を決めるのが大変

Example 1: The Eve Agent (2014-2016)

  • ドメインを絞っており、応答が速い
  • 小さなドメインなら理解・応答が素早いシステムを作ることができる
  • しかしどのような[限定的な]ドメインでこのような素早いシステムが必要になるかは定かではない
    • [タスク指向ならいくらでもあると思うけど]

Example 2: Conflict Resolution Agent (2015-2016)

  • いろんなタイプの発話をサポートしている [たぶんシステム側]
  • Mixed-initiative を許容する
  • 速いペースのやりとりが可能

How do we make progress?

  • turn-taking や個人の turn の構造について単純な仮定を置くのを止めるべき
  • やりとりにおける時間のモデルとして良いものを用いるべき
  • より拡張的・一般的・ data-driven な対話モデルを開発するべき
  • 人間対人間の会話データを増やすべき

[まとめ]

  • DeVault さんが挙げている音声対話システムの一つの問題は流暢さ
  • 例二つは、それぞれ次を実現している
    • 幅広いドメインで素早く応答
    • 割り込み・重複を許容した振る舞い
  • We need to create fine-grained models that take seriously the timing of speech and the detailed mechanics of how human conversation unfolds through interlocutor decision-making at small timescales
  • We need to improve our ability to create intelligent agents and other dialogue systems that are not purely user-driven or system-driven, but instead have a pervasive mixed-initiative capability
  • 上の2文とも言ってること同じ

2. Mark Liberman, University of Pennsylvania

Abstract: Three Steps (Liberman 自身によるまとめ)

  • Robust diarization
    • すなわち、誰がいつ話しているか (who spoke when)
    • 大きな問題は、発話の時間的重複と背景のノイズ
    • 現状の技術では整った静かな環境の diarization も難しく、 what の理解まで行くにはまだ遠い
  • Dialogue systems with human-like turn-taking
    • 人は、例えば協調や競争の目的で相手の話に割り込む
    • 対話システムは典型的には割り込みをリセットの信号だと解釈する(実際にはそうではないのに)
    • システムは相手が喋っている間には喋らない(相づちも含めて)
    • much less to correct misunderstandings, introduce relevant information, or cut to a proposed solution.
  • Conversation systems that can participate effectively in a meeting, manage a classroom, or chat overa game of poker
    • このようなシステムは diarization 以外にも物理的な環境・社会的文脈で何が起きているのかを追跡することが必要
    • 同様に、どのようにいつ会話に貢献するか、その貢献を他者が受け取る・受け取らないことを動的な関係としてどのように調節するかを学ぶ必要がある
    • さらに、異なる会話の文化にも対応できなければならない

3. Diane Litman, University of Pittsburgh

Dialogue Systems: A Brief History

  • ELIZA (1966, chatbots)
  • SHRDLU (1971, AI, block)
  • Allen, Cohen, & Perrault (1980s, plan-based)
  • VODIS, VOYAGER (1990s, speech, "How many hotels are there in Cambridge?")
  • startups (2000s)
  • Siri (2010s)

Back to 1980: Analyzing Intention in Utterance

  • 発話の意図の分析を行って対話のプランを考えていた
  • 対話における協調的な振る舞い
    • 間接言語行為 (indirect speech acts), 助けになる返答 (helpful responses) など
  • knowledge-based なアプローチ
    • 相手にもプランの考案、実行があると考え、それを推論して障害を発見した上で自分のプランを考えて実行する

What about Siri? (example for indirect speech acts)

  • 間接言語行為が理解できない例
    • Diane: I don't know Megan's address.
    • Siri: Don't warry about it, Diane. (教えてくれない)
    • Diane: Can you tell me Megan's address?
    • Siri: Here's the address for Megan ... (教えてくれる)
  • 明示的に要求しないと伝わらない

Helpful Responses

  • 要求された以上の情報を返してくれること
    • Diane: What day of the week is election day?
    • Siri: Election Day is on Tuesday, November 8 2016
  • [ユーザーが何を必要としているのかを察して情報を増やさなければならない(増やせると便利)]

Indirect + Helpful

  • 間接言語行為を理解して、かつ強調的に情報を増やしてくれる例
    • Diane: I'm hungry
    • Siri: I don't want you feeling all peckish.
    • Siri: Here's what I found ... (15 results displayed)

Summary

  • 協調的な対話研究は大部分は諦められ、より実践的なアプローチに移った(Diane さん自身の研究も含め)
    • "There is much to be gained from recognizing not just what was said, but why; from identifying conclusions people naturally draw from both what has been said and hasn't" (Workshop CFP)
  • 1980年代の観点から見て、今のシステムがどのように協調的であり、どのように協調的であるべきかを考える必要がある

4. Amanda Stent, Yahoo! Labs, NY

In the Beginning Were Problems

Then Problem Definitions ...

  • Finite-state script
    • call transfer
  • Frame based
    • getting flight info
  • Sets of contexts
    • booking travel
  • Plan-based models
    • kitchen design consultant
  • Agent-based models
    • disaster relief management
  • 対話の問題設定は様々考えることができる
    • 上から下にいくほど複雑になる
    • 出典は Allen et al. (2001), AI Magazine

Evaluation Metrics and Parametrizable Methods, Data and Time

Challenges

  • Move beyond info-seeking dialog
    • 情報を探すだけの対話から更に発展させる
    • ユーザーのコストを削減するのではなく、ユーザーに利益を与えるような対話システム
    • 新しい評価指標
    • やりとりに関わるパラメータを増やす
  • Go back to our roots: human intelligences としての AI モデル
    • Entrainment
      • 情報共有的な意味での同期: 語彙のレベルや知識表現が良くなければユーザーと等しい情報を持つことができない
    • Anaphora resolution and grounding
      • 照応と物理的世界の参照
    • Contextually appropriate, mixed-initiative generation
      • 文化的・社会的慣習などの文脈に適合すること
      • 発話のタイミングが入り組んでも対応できること
    • Non-cooperative and semi-cooperative dialog
      • 必ずしも協調的でない対話ができること

Interesting Current Directions

  • Complex and flexible tasks, evaluation beyond efficiency
    • タスク設定と評価方法
  • Anapora and entrainment, shared language representations
    • 照応、情報の同期、共有される言語表現
  • Non-cooperative (situated) dialog
    • 協調的ではない対話
  • それぞれについての論文はスライド末尾(-1)参照

Stent さんおすすめの参考文献

以下、メモ作成者のメモ

Issues

  • understand very well and wery quickly
  • turn-taking / mixed-initiative
  • diarization (who speack when + what)
  • indirect speech acts / helpful response (cooperation / non-cooperation)
  • physical world, social context (semantics, vocabulary)

そういえば岡野原さんがIBISで言ってたこと (http://www.slideshare.net/pfi/ibis2016okanohara-69230358)

  • 知識をどのように埋め込むか、記憶と想起
  • 心理モデルや意図推定
  • コミュニケーションの目的関数と評価

やはりマーっぽい記述のモデルで整理するといいのでは(以下省略)

  • おわり

Attention-Based Convolutional Neural Network for Machine Comprehension をやる

著者の微妙に動かないコードを動かすだけです

  • paper: [1602.04341] Attention-Based Convolutional Neural Network for Machine Comprehension
  • github: GitHub - yinwenpeng/MachineComprehension
    • cis や word2embedding などのライブラリは Yin さんの別のレポジトリにあるのでコピーして持ってくる
    • train_arc1_v4.py というやつは動きます
    • 精度が高いのは train_entailment_v3.py というやつのはずで、こっちがそのままだと動かない、動かしたい
    • まず preprocess_mctest.py をいじいじして必要なファイル(vocab_DQAAAA.txt まで)を作る
    • DQAAAA とか DPNQ とか書いてあるのはデータの内容の形式です、 document, question, answer, positive, negative がどの順で書いてあるか、という感じ
    • しかしエラーが出るので露頭に迷う。 DPNQ.txt まで生成されない(Statement ファイル群がない)のでそもそもデータが足りない
  • github2: GitHub - BenjaminHess/MachineComprehension
    • ちょっとコードが整理された fork だけど、特に改善されている雰囲気ではない
    • このままでは相変わらず train_entailment_v3.py は動きません(データの読み込みで sharedvariable 宣言するところでエラー)
    • まず Statement の在り処が書いてあるので、データを引っ張ってきて Yin さんの方のにコピーするのでもよいです(DPNQ はすでにあるのでどっちでもいい)、とにかくデータはこれで揃うことになります
    • で、試行錯誤する
  • 原因は loadData.py L1342 の読み込みのとこで lower() を入れてない部分だと気付いた
    • 入れれば word の id 取ってくる部分を失敗せずに必要な theano.shared() が通ってくれます
    • でも精度が論文通りにならず困る、辛抱強く epoch 上がるのを待てばいいのだろうか……