唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

論文感想: "Polarity Inducing Latent Semantic Analysis"(EMNLP-CoNLL 2012)

概要

文書-単語行列上でcos類似度などを使うと,意味的に似た単語同士を見つけることができる.
しかしこの場合の「意味的に似た」というのは「類義語もしくは反意語」であり,「反意語」だけを見つけたい場合にはうまくいかないという問題がある.
そこでこの論文では反意関係を利用したLSA(Latent Semantic Analysis)であるPILSA(Polarity Induced LSA)を提案する.

詳細

以下の3つのステップから成る.

Polarity Induced LSA

通常のLSAではTF-IDF値や単語の登場頻度などを文書-単語行列の値として用いる.
この時低いcos類似度は関係のないことを表している.

今回の論文ではcos類似度が低い(~-1)とき反意語を表しているような行列を得たい.
そのためにシソーラスに載っている反意語の情報を利用する.
シソーラスから見出し語,その類義語と反意語の行列を作成する.
類義語は正のTF-IDF値,反義語は負のTF-IDF値を持つようにしてLSAを実行する.

Discriminative Training

ニューラル・ネットワーク的な手法で,PILSAで得た行列を勾配降下法で更新する.

Extending PILSA to OUT-of-thesaurus Words

今までのところ作った行列はシソーラス内の単語にしか対応していないので,拡張を行う.
形態素のバリエーションやステミングを結果がマッチしたらその値を使う.

まったくシソーラスに登場しない単語の場合に対しては,コーパスから作った単語の文脈ベクトルを用いる.
未知の単語に対するK-近傍を求めて,そのうちk個の間の類似度が正であれば,その重心を未知の単語のベクトルとする.

結果

state-of-the-artな結果が得られた.
単純にシソーラスを引く手法や,LSAを行わずに符号付きのTF-IDF値を用いた場合に比べて大きな改善があった.

感想

1ステップ目の符号付きのTF-IDF値を用いてLSAを行うだけで,かなり大きな改善が見られたことに驚き.