大学院の5年間を振り返る:自然言語処理の研究者を目指して(博士課程)

博士1年生

評価と定義は表裏一体

 修士論文(とCOLINGの原稿)を書いたことで,研究が再定義された。英語論文を執筆する上で役に立つ定型表現を提示するコンピュータシステムを作るためには,moveと対応の取れた定型表現を大量に用意しておく必要がある。このデータセットを作ることが研究テーマの最も重要な仕事であることが分かった。

 その上で,主たる課題は2つ。まず,どうやって定型表現を抽出するか。これは質的な問題である。定型表現というものを定義できないなかで,役に立たない単語列をなるべく抽出しない手法が求められる。なおラベル付きデータはない。次に,どうやって定型表現にmoveのラベルを付与するか。ラベル付きデータがあれば既存の分類器を試せるが,ない。

 これに加えて,評価の問題があることに気づいていた。抽出した単語列が定型表現として有用かどうかは,これまで人手で判断するしかなかった。このやり方だと,例えば手法が100個(パラメータが異なれば別の手法と考える)あるとしたら,100回も人手評価を行わなければならない。実際,先行研究では手法の比較はまともに行われていないかった。定型表現の善し悪しを測る指標が必要だった。

 COLING投稿直後から,この問題に取り組んでいた。この問題は,言い換えれば,定型表現を数学的に定義できるかということでもあった。定型性(formulaicity)とは,何なのか。頻度なのか。構成性(compositionality)なのか。結びつき(association)なのか。色々な指標を計算してはその数値で単語n-gramを並べ替え,眺めるという日々が続いた。他にも色々と思いついたことを試しては失敗し,の繰り返しであった。

 気づいたら年末になっていた。なんとなくそれっぽいものはできていたが,中途半端で,もう少しなんとかならないか,という感じだった。しかし時間も相当経ってしまったこともあり,とりあえず形にしなければならなかったので,論文にして,ACLに投げた。

学振面接

 遡って5月にCOLINGに採択されたので,業績のページに書き加えて学振に出した。DC1の時と比べると,修論の段階で研究の全体像と先行研究との位置づけがはっきりしていたのでだいぶマシになっていたが,抱えている問題の解決方法が全く定まっていない状態だったので,手法の部分が少し曖昧な記述にならざるを得なかった。ただテーマの独創性と有用性はかなり高いと信じていた。いずれにしてもその時点でのベストエフォートである。

 10月の開示は面接だった。ただでさえドキドキするのに,まだ決まらないのかとがっかりした。同時に,ボーダーラインに引っかかったのだから取りに行こうとも思った。12月の面接のときにはACLの原稿をどうしようかで頭がいっぱいだった。

 この年は開示が遅れに遅れ,年末年始は全く気が気でなかった。メールの着信音(ポポンポン)が鳴る度にビクッとしていた。結局1月10日になって,パレスサイドビルでビビンバを食べている頃に開示された。

博士2年生

研究方針の変更

 ACLの結果が来た。3/2/2で落ちた。やっぱり落ちたか~という感じだった。問題はその次。二重投稿*1していたワークショップからも2/4/4/3でrejectされたのだ。ワークショップで落ちるというのは相当酷い論文だということを意味する(とどこかに誰かが書いていたはず)。非常にショックを受けたのだが,それはともかく,研究自体を見直さねばならなくなった。D1の1年間は完全に無に帰した。3年間あるはずの博士課程が2年になってしまったと思った。

 評価指標は作れない。これが得られた感覚だった。ではどうするか?全く白紙であった。丁度その頃NLP界ではBERTが勢いを増していた。何か上手にタスクを設計できれば,うまく学習してくれるのではないか,という淡い期待もあった。だが,それも上手くいかなかった。

フランス

 7月になり,フランスから准教授の先生がサバティカルでやってきた。指導教員との定期的な打ち合わせに参加してもらうことになった。自分の研究内容を簡単に済ませ,打ち合わせは終わった。ところが,打ち合わせの後でその先生と議論になった。学生の居室で,延々と質疑応答をした。その結果,ラベルの付いたデータを作ることになった。あっけないものである。何をしたら良いか分からなくなってしまっていたところに,外から「いやいや,これをやるべきでしょ」と言ってもらえることがどれだけありがたいことか……

 11月下旬にLRECの締切があるので,そこに向けてデータを作ることになった。ちんたらやっていては間に合わないと思い,それまで平日は10時に来て18時に帰るスタイルだったのを,平日休日を問わず10時に来て22時に帰るスタイルに変更した(これをやると体調を崩すので人には勧められない)。アノテーションの仕組みを整え,9月の頭にはラベル付きデータが出来上がった。

 作ったデータは,英文に対して伝達機能*2のラベルが付与されているものである。これを評価用データとして使うことを提案した。10月には論文が書きあがった。

 ここで定型表現の定義と評価を思いついた。論文執筆支援を念頭に置くと,定型表現は伝達機能を体現している部分とみなすのが良いだろう。であれば,抽出された定型表現の候補をfeatureとして伝達機能の分類などをやらせれば,それをextrinsicタスクとみなして抽出そのものの評価ができるはずだ*3。こうして,更に実験を増やすことになった。結果として,10ページを超えてしまったため,2つに分割することになった。片方はLRECに,もう片方はCOLINGに出すことにした。

 年末にサバティカルの先生はフランスへ帰っていった。半年でフルペーパー2つ分の成果が出た(ご本人はご本人でACLに1本投稿して帰っていった)。とてもありがたかった。

博士3年生

新型コロナ

 コロナがヨーロッパを席巻したころ,COLINGの原稿がほぼできあがっていた。英文校正にかける段階になって,COLINGの延期が決まった。締切が4月8日から7月1日になった。これでは話にならない。投稿先をジャーナルに変更することになった。

 ところがジャーナルだと加筆が必要であった。その他色々と議論を加えたり修正を施したりするうちに,5月下旬になってしまった。これならもう1ヶ月待ってCOLINGに出した方が良いのではないかと思ったのだが,分量が増えており出せない。結局この論文はお蔵入りとなった。

投稿ラッシュ

 この頃,定型表現の抽出手法を思いついており,実験結果も悪くなかった。ただ,この頃になると焦りと自信喪失が重なって,何を書いても通らない気がしていた。7月1日締切のCOLINGには間に合わないので,7月17日締切のCoNLLか,20日締切の*SEM*4に出すつもりで進めていた。最終的に7月1日締切のICADLに出すことになった。ICADLは査読が早い。-3/2/2/-2で落ちた。ICADLは電子図書館の会議だが,電子図書館と何の関係もないという理由であった(確かに関係ないよなあ……)。

 もう1つの課題,伝達機能に基づく分類については,ずっと教師なしの方法にこだわって研究していた。伝達機能の空間を上手く作れれば非常に便利だからである。定型表現は伝達機能と結びついているから,出てくる場所や順序に制約があるだろうと考えた。この情報を上手く利用できないかと考えたが,どうしても無理だったので,教師あり学習でやることに方針を変えた。もう9月だった。出せる会議はもうEACLとECIRしかなかったので,どちらかに出すと決めて猛スピード*5で実験をし,EACLに滑り込みで投稿した。

 SwalesというEAPの大御所がいらっしゃるのだが,2019年にある論文を出していた。

Swales, J. (2019). The futures of EAP genre studies: A personal viewpointJournal of English for Academic Purposes, 38, 75–82.

 ここで定型表現の抽出手法に苦言を呈していたのである。単語n-gramなんか抜き出しても役に立たないよねと仰っているようにみえた。

 思うに,これまでの定型表現抽出の研究は,手法の比較を行ってこなかったのである。それは評価を人間に頼っていたからという部分も大きいと考えているが,それに加えてあまり興味が示されなかったこともあったのだろう。

 そこで,ICADLに出していた抽出手法を更に改良し,その上で他の手法と比較し,学術論文に関するワークショップに投げた。

博士論文

 最終盤になって,解くべき2つの課題は一応解けたことになる。この2つの手法を組み合わせると,moveのラベルのついた定型表現のデータセットが作れるのだ。

 例文やフレーズを検索するという話は山ほどある。Google検索で2つの候補のヒット数を見て多い方を使うというものもこの仲間である。この手法の最大の問題点は,知っているものしか検索できないということである。"in this paper we"を入力したら,"propose"を表示してくれるシステムは便利だろうか?私はそう思わない。"in this paper we"を知っている人は,ほぼ間違いなく"in this paper we propose"を知っているからである。"in this paper we propose"を知らない人がどうやって"in this paper we propose"を検索するのか。私の作った枠組みとデータセットはこれを解決する。それを示して博士論文を書き終えた。

 提出した数日後に,先のワークショップからacceptされた。また,博士論文の本審査の日に,EACLにacceptされた。

最後に

 修了したいま,作りたかったものを作れたので満足だという気持ちと,とはいえまだ改良の余地があり,それをやりたいなあという気持ちがある。

 学部4年の時に,大学院ではすぐに論文になりそうなことをやろうと決めていた*6。好きなことをやるにはまず地位を手に入れないといけないという考えがあった。ところが実際にはそれと正反対の研究生活になった。M1の1年間はほぼサーベイしかしていなかったので,何も生み出していないという焦りがあった一方,世界が開けていくような楽しさがあった。

 嬉しかったことは,COLINGに出した論文が言語教育系の論文から引用されたことだ。少しではあるが,届いてほしいところに届いたなと思った。

 5年間は間違いなく長い期間である。しかし,自ら問題を探し,定式化し,それを解くとなるとギリギリであった。それでも,1つの研究プロジェクトを立ち上げて,着地させることができたのは良かった。もう少しうまくできたよなというところはたくさんあるので,今後に生かしていく。

 

(おわり)

*1:ACL系の国際会議では条件が揃えば二重投稿が認められている

*2:分かりにくいので,moveという単語ではなく,伝達機能(communicative function)という単語を使うようにした。

*3:これは後から知ったことだが,構文文法(construction grammar)では,連語のcompositionalityを意味だけでなく機能についても考慮していた。例えば,「なんでやねん」という定型表現は隣にいるツッコミの人を叩くというジェスチャーを誘発する機能があるが,これは各単語から予期できない。

*4:スターセムと読む

*5:実際にはスピードは出せないので,研究時間を増やした

*6:どんなテーマであれ問題を細分化して最も簡単なものをさっさと解こうと考えていた

大学院の5年間を振り返る:自然言語処理の研究者を目指して(修士課程)

 晴れて大学院博士後期課程を修了できた。そこで,これまでの大学院生活を自分の研究テーマとともに振り返っておきたい。なお,華々しい話は一切無い。なかなか結果が出ず苦労した話がメインである。

修士1年生

テーマ決め

 指導教員と雑談をしているうちに,英語論文を書くのを助ける何かに取り組もうということになった。元々英語が好きだったことと,卒論でも論文データに触れていたこともあって,自分に向いていると感じた。問題は,英語で論文を書いたことがないということだった。何が問題なのか,何があると助かるのかが分からなかった。そこで,研究室の先輩たちに聞いて回った。以下のような課題があることが分かった。

  1. 単語のformality
  2. 類義語から選択
  3. 言い換え・繰り返しを避けたい
  4. 単語の抽象度
  5. 文章の抽象度

 1は,学術論文というジャンル*1において適当な単語と適当でない単語があり,自分で書くとインフォーマルな英語になることがあるという課題である。2は,似たような意味の単語のうち,どれを使うべきか分からないという課題である。3は,同じ言い回しや,we, we, weのような主語の繰り返しを避けたいという課題である。4は,抽象度(?)の適切な動詞を選択したいという課題である。5は,文章の抽象度が適切でなければ警告してほしいという課題である。

 それぞれについて先行研究をあたってみたところ,1~3は文献があり,4はWordNetのようなもので足りるのではないかと思い,5は難しそうだなと思ったのである。

 これと並行して,既存の例文検索ツールやKWICコンコーダンスなどを調べたところ,ESCORTという依存構造を用いた用例検索システム*2と,エディタ形式で語法を逐次的に表示してくれるWriteAheadというシステム*3が見つかった。実際に動くものを見ると,課題がはっきりと分かるなと思った。

 また,Apache Solrを使ってACL Anthologyのデータをインデックスし,高速に検索できるようにした。論文のデータ整備が進んでいたのも国立情報学研究所ならではの魅力であった。そして,インテリセンスのような感じで,入力した英語の続きを表示するデモを作ってみた。

 こうしたことを踏まえ,「論文執筆において,適切な定型表現の候補を提示する」ことを研究テーマとして設定した。M1の7月の頃である。

先行研究調査

 学術論文には構造がある。ここでいう構造とは,イントロがあって,手法があって,結果があって,考察があって,というような構造である。この構造に対応する定型表現があるはずである。この対応のついたデータセットを作ることができれば,構造に即応した定型表現を提示できるはずである。

 ここまで考えたのは良かったのだが,どうやってそれをやるのか皆目見当がつかなかった。問題を細分化してみても,堂々巡りなのである。定型表現を構造に即して分類するとすれば,まず定型表現なるものを用意しなければならないが,それをどうやるのか。あるいは,論文のテキストを細かく構造に分けることができれば,そこから単語n-gramを抽出するだけでもそれなりに役に立ちそうだが,どうやって構造に分けるのか。

 1つ目については,ひとまず頻度順に単語n-gramを並べてみたが,どうしても役に立たない単語列が上位に出てきてしまう。相互情報量を使っても同様である。FREQTを使って頻出の木構造を計算してみたが,やはり無用のものがたくさん出てくる。どうも定型表現を得るのは簡単ではない。

 2つ目については,ラベルの付いているデータセットがあれば済む話だったが,どう頑張ってもPubMedのstructured abstractが限界であった。IMRaD構造のそれぞれに対応する定型表現を得ても,粗すぎて役に立たない。イントロダクションでもせめて「研究の背景について述べる」くらいの粒度がないといけないと考えていた。

 また,この構造の体系もどうやって用意すれば良いのか分からなかった。調べると色々な人が色々なことを言っており,決め手に欠いたのである。決め手に欠くと論文を書くときに苦労するのは分かっていたので,とりあえずどれかを使ってみるということはできなかった。

 この程度のことは誰でも思いつくはずだから,必ず先行研究があると思って,色々なキーワードで毎日検索をかけていた。よく,似たような研究があってガッカリしたという話を見聞きしたが,先行研究がない方がよっぽど問題であるというのを痛感した時期であった。

 10月下旬になって,ようやく次の論文を発見した。

Flowerdew, L. (2016). A genre-inspired and lexico-grammatical approach for helping postgraduate students craft research grant proposals. English for Specific Purposes, 42, 1–12.

 ここでの収穫は,English for Specific Purposesというジャーナルの存在を知ったことであった。ついでに,Journal of English for Academic Purposesというジャーナルと,English for Academic Purposesという研究分野があることを知った。後は芋づる式に重要な文献が見つかった。

 これまで「構造」と呼んでいたものは,Move*4と呼ばれるものであることが分かった。また,「定型表現」は英語でformulaic expressionsだが,formulaic sequencesと言われることもあるほか,lexical bundlesやphraseologiesというタームが用いられることもあることが分かった(後ろの2つは厳密には定型表現とは異なる,ということも後から知った)。

 こうして,理論的な背景をおさえることができ,単なる思いつきからそれなりに後ろ盾のある枠組みになった。しかし,この頃にはもう12月になってしまい,M1が終わろうとしていた。学振DC1を取るためには,M1で査読論文が出ていないと厳しいということは分かっていたが,もうどうにもならないという気持ちでいっぱいだった。

言語処理学会年次大会

 業績がないよりまし(欄がスカスカにならない)だという理由と,何か助言を得られないかという期待から,年次大会に出すことにした。

 重要な先行研究は見つかったが,先に挙げた2つの問題は全く解決していなかった。一から作るのは難しいと判断し,既存のリソースを拡張することができないか検討した。「英語論文の書き方」みたいなウェブページや本は巷に溢れているが,これをリソースとして使えないか,という出発点である。結局,それすらも難しかったので,難しいということを年次大会では述べて終わった。

 難しさはやはり2点あった。まず,定型表現のみを集めたリソースというのは人間が使うための資料としては不完全なため,計算機にとっては余計な情報が入っているという点である。もう1つは,定型表現の分類が恣意的であり,moveとの対応が取れないという点である。

修士2年生

定義とアノテーション

 堂々巡りから脱出するために,定型表現のアノテーションをすることにした。英文に対して,定型表現とそうでない部分のアノテーションが与えられれば,系列ラベリング問題として解くことができるからだ。ところがやってみると,すぐに課題に直面した。何が定型表現なのかよく分からないのである。例えば,play an important role inという表現がよく使われるが,importantの代わりにcriticalとかvitalといった形容詞が置かれることもある。そうすると,play an * role inとした方が良いのではないか,という考えが出てくる。また,末尾のinがなくても定型表現らしさは失われないのではないかという疑問も出てくる。

 あるフレーズを見せられて,それが定型表現っぽいかどうかを判断することは難しくないのだが,どこからどこまでが定型と言えるかを判断するのは無理だった。言い換えれば,定型表現の定義をきちんとせよということなのである。ところが,探しても探しても定型表現の定義として形式的な(もっといえば計算機で扱える)ものは見つからなかった。どうやら,定型表現というものがあることは分かっているが,それが何であるかは分からないというのが現状のようであった。現に,複数の論文に定義は困難であると書かれていた。

 定義が困難なものをどうやってコンピュータで扱おうというのか。ここは発想を変えて,扱えそうな部分を扱えば良いと考えた。つまり,定型表現(という集合)を抽出するのではなく,抽出した単語列が定型表現であれば良いとするのである。precisionさえ高ければよく,recallはそもそも計算できないということである。ここまで考えて,もう中間発表の季節(8月下旬)になっていた。

インライン数式検出

 春頃に遡るが,論文データセットを作る過程で,インライン数式の検出が問題になっていたようで,その仕事をすることになった。インライン数式というのは,LaTeXでいうところの,equationとかeqnarrayを使って記述する独立行数式ではなく,地の文で$$を使って記述する数式のことである。

 文書分析のトップ会議はICDARだが,これの締切が近く,また通知が学振の締切よりも前だったので,査読あり論文を得るチャンスだと思い猛スピードで取り組んだのだが,いくつか検討すべき問題が出てきて,間に合わなくなった。結局,遅れてACM DocEngに出した。

修士論文に着地させる

 アノテーションが終わった時点でもう秋になっており,何をどこまで明らかにして修士論文を書くかが問題だった。アノテーションの結果を元に系列ラベリング問題として定型表現を抽出することと,既存のリソースのカテゴリを精査して,moveと対応付きそうなものに絞って分類問題を解くことを核とすることにした。

 10月に学振DC1不採択のお知らせが来た。見込みが低いと分かっていてもショックを受けるものである。この段階で申請書を読み直してみると,何の実験もできていない段階で書いたものは具体性もなければ何をやれば解決できるのかも十分に書けていないと感じた。しかしあの時点ではあれ以上のものを書けなかったのも事実であった(論文になるような成果のある人は申請書もずっと書きやすいだろうとも思った)。

 実験を終え,修士論文を年明けに提出した。それからすぐに修論の内容をCOLINGの原稿に落とし込み,投稿した。採択通知は5月なので,通ればギリギリDC2の申請に間に合うというタイミングだった。

(つづく)

*1:genre。これはテクニカルタームである。

*2:松原研@名大

*3:自然語言處理實驗室@國立清華大學

*4:Swales (1981, 1990, 2004)