NLP若手の会第6回シンポジウムに参加してきました

9月21日、22日とNLP若手の会第6回シンポジウムに参加してきました。今回は不肖西川もプログラム委員を拝命しまして、主にウェブサイトの更新等を行っていました。つい先日ウェブサイトについては今回のシンポジウムに関する作業が全て終わりましたので、そろそろ記事を書いておこうと思います。

西川は自然言語処理を生業としておりますので、常日頃、自然言語処理に関して何かしらの問題意識を持って仕事をしています。問題意識というと大仰ですが、要は、自然言語処理における問題の設定やその解き方、応用などについて、もっとこうしたら良い結果が得られるのではないか、というような考えは常々持っているわけです。この仕事で生計を立てていますから、自然言語処理で良い仕事が出来るか否かが週末のビールジョッキに直結しています。当然、必死です。

今回のシンポジウムでは主に以下の2つの問題意識を刺激されました。それぞれ引き金になった発表がありますので、それらを絡めてちょっとお話したいと思います。2つの研究発表をご紹介しますが、なお、これらを批難する意図は全くありません。単に私の問題意識として以下のようなことを考えた、ということでしかありません。いずれも優れた発表と思いますし、ご紹介する2つの発表は実際いずれも今回の若手の会の奨励賞に選ばれています。良い研究発表というものは、聞き手の問題意識を刺激し、何かしら考え込ませるものなのだと思います。

他のアプローチはないか

海野さんのご発表は複合語の内部構造(係り受け)をN-gram統計量から推定するというもの。今回のご発表では複合語が対象となっていますが、本来は複合語に留まらず文の構造を検索に利用するというものだと思います。

自然言語処理を商業的に応用する立場から見ると、係り受け解析は奇妙なタスクです。係り受け解析そのものの結果は必要がないけれども、評判分析などの情報抽出や述語項構造解析、機械翻訳といった実用上重要な処理を行う際には、係り受け解析の結果が、これらの処理に際して特徴量として重大な意義を持っています。情報検索においても、本来的に欲しい情報は係り受けそのものというよりは、その少し先にある項構造なのだと思います。つまり、実用上は、係り受け解析の結果そのものではなく、その先にある結果が必要な場合が多く、その結果を得る手段として係り受け解析があります。

そのため、仮に係り受け解析を行わずとも、本来必要とされる情報を得るタスクにおいて、同等あるいはより良い結果が得られるのであれば、係り受け解析を行う必要はありません。係り受け解析は決して軽量な処理でないということもありますし、そもそも係り受け解析は非常に難しい処理で、精度の問題もあります。

自然言語処理は歴史的に、任意の自然言語の入力を処理するに際して、形態素解析係り受け解析、意味解析と順繰りに入力を処理していく作戦を取っています。この作戦は言わば王道で、汎用性がある一方、解析のいずれかの段階で誤りが生じるとその誤りが後段の処理に伝播していく問題があります。

この作戦に対する問題意識は、つまり、実用上はもっと楽ができる抜け道があるのではないか、ということ。実用上欲しい情報が項構造であれば、とにかくどういった方法であろうとそれを得ることができれば良いのであって、処理の対象を限定することが可能であれば、もしかしたら係り受け解析を迂回する作戦があるかもしれない。

自然言語の城砦を占領しようとするならば守りの堅い正門を破る必要があるかもしれませんが、ちょっとしたお宝を城砦から拝借しようとするだけならば、手薄な裏口から忍び込んでお宝だけ頂戴することが可能かもしれません。

問題は切り分けられているか
  • 大規模語彙知識を用いた仮説推論による文章理解モデルの構築に向けて(杉浦純、井之上直也、乾健太郎

仮説推論器に推論に関するメタ知識と大規模な語彙知識、論理式に変換された自然文を入力し、入力された自然文を説明する仮説を得るというもの。推論は、数理的な問題(整数計画問題)として表現された入力を解く(最適化する)ものとして行われますが、そもそも整数計画問題で表現されるような問題は計算機にとって解くのが非常に難しい問題で、ご発表でも求解に時間がかかることが問題になっていました。

西川は文書要約を商いとしていますが、近年の文書要約研究では要約を、このご発表と同様に、数理的な問題として表現し、数理的な問題を解く汎用的なソフトウェア(ソルバと言います)を利用して問題を解くものが随分あります。西川自身そういった方針で機械に要約を行わせたことがありますが、非常に大規模な入力に対する複数文書要約の場合、高速な計算機(高いです)と商用ソルバ(本当に高いです)をもってしても求解に1日かかることもありました。

計算機で何かしら問題を解く際には、根本的なトレードオフがあります。複雑な現象を計算機に再現させるために複雑なモデルを作ると、推論に大変な時間を要する一方、モデルが現象を適切に模擬しているのであれば、良い結果が得られます。一方、簡単なモデルを作ると推論に時間はかかりませんが、模擬したい対象をモデルが適切に再現できるとは限らず、良い結果が得られる可能性も下がります。

仮に、推論に時間をかけてもよい状況下ならば、モデルは複雑になるけれども、模擬したい現象をうまく再現できるのであれば、複雑なモデルを作ってもいいわけです。西川の問題意識は、問題意識というよりは仕事をする上での注意点ですけれども、つまり、時間をかけて推論してもよいのであれば、表現力の高い複雑なモデルを作っても良いのではないか、ということ。

実用上は、一ヶ月に一度推論すればよい場合もあるわけです。その場合、極端な話、推論に一ヶ月かかるモデルであっても、よい結果を得ることができるのであれば、別にそれでよいのですね。時間による制約は、存外柔軟なもので、計算機の性能向上と相まって、金科玉条とすべきものかというと、そうとは限らない。

模擬したい対象に対してモデルがどの程度の表現力を持っているか、時間を度外視した際にどの程度の表現力を持ち得るか、という問題と、所与の時間内でどの程度の性能を達成し得るか、という問題は分離しなければなりません。時間的な制約が厳しいのであれば表現力を犠牲にしつつもその制約の中で最良のモデルを開発する必要がありますし、時間的な制約が厳しくないのであればモデル本来の性能を追求すべきです。現代は複雑なモデルに対する近似解法が多く開発されていますから、尚更、モデル本来の性能に敏感であるべきでしょう。

飲み過ぎていないか

――という塩梅に、上に申し上げたようなことをシンポジウム中では考えていたのですが(本当です)、実に楽しい会で、懇親会で痛飲し、二次会ではべろんべろんで、翌日皆様に白眼視されるというつらい思いをしました(2日目は本当に針の筵でした)。飲み過ぎには注意しましょう。