こんな夢を見た

修士学生による自然言語処理研究の記録。主にDeep LearningやEmbedding関連論文の軽い自分用まとめとして。内容に誤りが含まれている場合があります。お気軽にご指摘ください。

Inducing Neural Models of Script Knowledge

Inducing Neural Models of Script Knowledge
Ashutosh Modi and Ivan Titov, 2014, CoNLL

スクリプト知識を用いて学習したNeural Netoworkでのイベント順序認識。

先に結論を言えば、かなり精度が出ている。前提として、全てのイベントは一貫した順序関係(推移性)を持つと仮定している。よって、一律の「どれほど後に起きたか」スコアのようなものを各イベントに算出できれば順序関係を認識できるという考えに基づいてモデルを作成。
具体的には、イベント(文)を構成する主語argumentのheadと目的語argumentのheadとpredicateの3要素それぞれのベクトルを用いてイベントのベクトルを作成し、そのベクトルに対して順序スコアを計算する。

さらに詳細な構造を式で表すと(論文には式自体は載っていないが)

{ \displaystyle
score(e) = W_{s} \cdot f\left( A \cdot f\left( Ta_1 + Rp + Ta_2 \right) \right)
}
f( )はシグモイド関数。a_1, a_2, pは主語arg, 目的語arg, predicateのベクトル。W_s, T, A, Rはそれぞれ別の重み行列。

主語と目的語ではかけあわせに同じ行列Tを用いていて、かつ3要素の合計をとっているために語順考慮は行われていないということになる。主語目的語で変えてあげてもいいと思うのだけど、学習データが少ないから割り切ったのかもしれない(記述はなし)。
単語の初期ベクトルはCollobertら2011のベクトルにした。けどもランダムにしても精度変わらなかったとか。理由としてCollobertらのベクトルの50次元が、(行列の次元も大きくなるので)学習データの少なさゆえにそもそも微妙なのかもということを言っていた。記述が曖昧だが、ランダムのときには30次元で、そしてイベントベクトル自体はどちらでも50次元、なのだろうか。

データセットはRegneriら(2010)がメカニカルタークで集めたもの。14種類の場面(バス、レストラン、コーヒーなど)で各30種類ほどシナリオ(シナリオ≒スクリプト)があるらしい。

モデルとしてはかなりシンプルなのだけど、精度が高い。PrecisionはさておきRecallの上昇が著しくて、F値では5ポイントもstate of the artに差を付けた(84.1)。学習データも非常に少ないのにそんな精度が出るのだろうか、と違和感を覚える。ちなみにモデル作成をwebテキストからとったスクリプト知識でやった場合にも同様の精度となっている。

追加のタスクとして、イベントが言い換え関係にあるかの判定も試している。
1. 各シナリオでは言い換え関係にあるイベントはないはず→それらのスコアの間には区切りを設けよう
2. 別シナリオからのイベント2つが近いスコアならば言い換え関係なはず→できるだけ区切りから近くのイベントまで距離が大きくなるようにしよう
という基準で、(スコアの数直線上に)値の区切りをたくさん設けて、与えられた2つのイベントのスコアが同じ区切り内にあれば言い換えとするっぽい。こちらはたぶんいまいち。

@inproceedings{DBLP:conf/conll/ModiT14, author = {Ashutosh Modi and Ivan Titov}, title = {Inducing Neural Models of Script Knowledge}, booktitle = {Proceedings of the Eighteenth Conference on Computational Natural Language Learning, CoNLL 2014, Baltimore, Maryland, USA, June 26-27, 2014}, pages = {49--57}, year = {2014}, crossref = {DBLP:conf/conll/2014}, url = {http://aclweb.org/anthology/W/W14/W14-1606.pdf}, timestamp = {Wed, 21 Jan 2015 17:09:29 +0100}, biburl = {http://dblp.uni-trier.de/rec/bib/conf/conll/ModiT14}, bibsource = {dblp computer science bibliography, http://dblp.org} }