先週の土曜日にPFIで行ったEMNLP2014読み会で、Skip-gramモデル(word2vec)と語義曖昧性解消を同時に解く論文の紹介をしました。 発表スライドはこちら。 単語の表現学習と語義曖昧性解消を同時に解く話は、もう一つ論文がありましたが、なんだかいまいちだったのでこちらになりました。
要点だけ整理します。 Skip-gramモデルは、単語に対するベクトル表現を学習する手法として注目を集めています。 このモデルは、ある単語の出現が周囲の出現単語に影響を与えるため、中心単語のベクトルと周囲の単語のベクトル(word2vecの実装では両者は別のベクトルとして区別します)の内積のexpに比例する確率で、周辺単語が決定されるというモデルを置きます(詳細は以前のスライド参照)。 実データを使って、対数尤度が最大になるようにベクトルを学習します。 ここまでがSkip-gramでした。
この方法は、単語に複数の意味があるときに不自然です。 例えば"apple"という単語は、「りんご」の意味と「iPhoneの会社」の意味があります。 両者に同じベクトルを割り当てるのは不自然です。 そこで、1つの単語に対して複数の意味ベクトルがあるものとします。 この中から意味を選択するのは、周囲のベクトルの平均が一番近い意味ベクトルを選択するようにします。 これがMSSGというモデルです。 次に、これだけだと意味の数が決定できません。 そこで、周囲のベクトルの平均が、今までの周辺ベクトルの平均と閾値以上違ったら、新しい意味が観測されたと思って意味の個数を増やします。 これがNP-MSSGというモデルです。
いずれの手法もよく意味を分別していて、しかも元のSkip-gramのコードを少し書き換えるだけでよいので簡単です。 いろんな方法で評価を行っていますが、なんだかよい評価手法がなさそうでそちらはあまり興味を引きませんでした。
word2vecを今年の初頭に紹介した時に、仮にこうした手法によって意味を表現できるのであれば、今まで難しかった意味を扱う研究に対して新しいアプローチができるだろうと思っていました。 そのころ、ちょうど東北大の島岡さんが、正規分布の広がりで単語の意味の曖昧性を表現する研究を今年の言語処理学会の全国大会で発表されていて、これは面白いなぁとおもっていました。 私はというと、自分でword2vecの実装をしてみたり実データをさわりながら、語義曖昧性解消に結び付けたいなぁと思って、MSSGと同じようなアプローチの実験をしていたらAccepted paperでWSDを扱った論文がチラホラあって、あーやられてしまったwという感じでした。 やってみると意味の数を自明に決定できず、頻度の低い単語に対しても3つくらいの意味を割り当てると何が何やらという感じの難しさが有ります。 本当はそれとは別に、全ての「田中」を人物毎にクラスタリングしたかったりしますが、これも数がわからなくて難しいです。 なので、NP-MSSGは簡単な方法ですがちょっと試してみたいですね。 語義曖昧性解消は、単に曖昧性を解消するだけでなくて、それによってどういう応用タスクのどういう問題を解くかまで結び付けないとならないのではと個人的には思っています。 もう少し具体的な「利点」に結びつけるところまではやってみたいところ。
時間いっぱいいっぱいの前回と違って、今回は余裕がありました。 個人的には @Quasi_quant2010 さんが紹介していた論文で、サクラのユーザーを人間より高精度で当てられるというのが気になりました。 現実のクエリログなどから学習しようとすると、研究でやられるようなきれいなデータを想定してはいけないが、その中でどういうことができるかを真剣に考えないといけないなぁ、と思いました。 その他に、画像と言語の表現を同時に扱ったり、株価予測をDNNでやったり、CNNを適用したり、RNN-encoder decoderだったり、表現学習や深層学習に皆興味持っているんだなという感じでした。 当面、このブームは続きそうですね
NP-MSSGですが,結局クラスター数を指定する代わりに,λを指定することにしているので問題解決になっていないように見えますね.この手法はMeyserson (2001)参照と書いてあるので参考文献に行って見たが,論文のタイトルが書かれていない?のでビックリしました.
返信削除