読者です 読者をやめる 読者になる 読者になる

こんな夢を見た

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

Learning Semantic Hierarchies via Word Embeddings

Learning Semantic Hierarchies via Word Embeddings
Ruiji Fu, Jiang Guo, Bing Qin, Wanxiang Che, Haifeng Wang, Ting Liu, 2014, ACL

上位下位の意味階層をWord Embeddingから構築(判定)。
ある単語xに対してとある射影行列をかけてyとの距離があるδ以下になれば上位下位関係、という判定の仕方。シンプル(である種ナイーブ)なアイデア。しかし、その射影行列を複数個用意して別々に学習する。ある正例ペアx, yについてオフセット(y - x)を計算して、それをクラスタリングして作って各クラスタで行列1つを学習、という形式。実際に判定するときは与えられた(順序付き)2単語についてオフセットを計算して、そのオフセットが所属するようなクラスタに割り当てられた行列を用いて判定。
スッキリとした話で納得感が高い(それで本当にいけるのか、というお馴染みのベクトル空間の神秘さはさておき)。実験結果もかなり良好のようだ。各上位下位ペアはオフセットによって幾つかのクラスタに分けられる、という根底のアイデアも直接的に実験で確かめられていてとても良い(正例ペアのオフセットをマッピングしたような図が示されていて、しっかりクラスタに分かれているのが見てとれる)。

ただ、手法や実験の方法に対してちょっと誤解しているしれない。晴れぬ疑問がある。実験の際に、①正例「hypernym - hyponym ペア」と②負例「hyponym - hypernym ペア」と③負例「上位下位関係にない単語ペア」を用意してそれぞれで結果を見るのかと思いきや、「①と②は反転しているだけで1対1対応になっているから実験しても結果は同じだし省いたよ」というようなことを言われてしまった。単語xとyについて、x - y と y - x で手法をそれぞれ試したら、オフセットが異なるのだから基本的に異なるクラスターに所属することになり、射影行列も異なるはずだ。となれば、前者で正しいと判定してうっかり後者でも正しいと判定しちゃうこともあるだろうし、逆もまたしかりだと思う。何か決定的な勘違いをしているのだろうか……。

どんな射影行列が出来上がったのか(重みのヒートマップ)も見たかった。例のごとく対角成分は強くて他は弱くて結局まあよく分からない、というオチにはなるだろうけども、クラスタごとバリエーションがある(割と異なる行列が出来上がりました)という確認の意味でも欲しい。

ジャーナル版(http://ir.hit.edu.cn/~car/papers/ieee2015.pdf)もあるけど、眺めた感じ、多分コンテンツはほぼ同じ。

Learning Semantic Word Embeddings based on Ordinal Knowledge Constraints

Learning Semantic Word Embeddings based on Ordinal Knowledge Constraints
Quan Liu, Hui Jiang, Si Wei, Zhen-Hua Ling, Yu Hu., 2015, ACL
project

類似度の順序関係知識を用いたWord Embeddingの学習。
word2vecと外部知識での合わせ技でEmbeddingを作る類の話。とても明瞭なストーリーで実験結果も上々なので、個人的にはこの類(あくまで類似度ベースの指標として外部知識を取り入れる)のアイデアの1つのチェックポイントとして腰を落ち着けた感がある。

ある3単語(a, b, c)を想定したとき、(a,b)と(a,c)とで類似度に差があると直観的に分かる場合がある。例えば、「aとその類義語b」と「aとその反義語c」であれば前者のほうが類似度が高くなるべきで、同様に「aとその類義語(Synset)」と「aとその上位語」であればこちらも一般には前者のほうが類似度が高いといえそうだ。このようなパターンをWordNetと英単語辞書(Fernald, 1896)から抽出して、それらのコサイン類似度が先の直感的な制約を満たすように学習する。厳密には制約ではなくヒンジロスを計算して、それとword2vecの方の目的関数とでバランスよくJointに学習を進めていく。

性能評価は、単語類似度、文内の単語穴埋め、固有表現抽出、TOEFLの類義語選択の4つ。どのタスクでもしっかりと性能が向上した。ただし、固有表現抽出では精度向上がいまいち。単語類似度タスクとTOEFLの問題については直接外部知識が生きるところなので(単語類似度の方は外部知識そのままではrankingが難しいとはいえ)、個人的にはここが精度向上するだけだと「そりゃ反義語を少し修正すれば上がるのは当然では?」という少しもやっとする気持ちが残る。実際に、単語類似度タスクでは「類義-上位」無しで「類義-反義」のパターンのみ使った時のほうが性能が上がっていたので、やはりその気持ちは正しいように思える。
しかし、単語穴埋めもちゃんと精度向上しているので、広い意味でqualityが上がったという納得感がある。少々執拗なツッコミかもしれないが、単語類似度タスクやTOEFLタスクにおいて行った単語比較のうちで、どれほどがWordNet等で直接学習可能だったペアなのかも少し知りたいところだった。
固有表現抽出の精度向上しない理由が気になる。どんな分類器を使ったとかは本論文には書いていなかったので(cite先の論文には書いてあるだろうが)わからないが、元々評価として不適なものなのかもしれない。

Future workとして他のNLPタスクでも評価してみたいというようなことが述べられているが、あまりそっち方向追っても仕方がない印象(性能向上の理由に深く踏み込むコメントはあまりされていないし)。個人的には定性的な分析をもう少し見てみたい。「学習後の単語ベクトルの (ベクトル空間内での) 配置をt-SNEとかで見るとWordNet木構造を高次元に写し取った形になっていました」とか「上位下位自体の制約等は加えずとも、類似度(距離)制約を満たすように学習すると自然と元の木構造が実現される」みたいなすごい報告を期待してしまう。そこまでいかずとも、数あるNLPタスクの中であれば、よくあるEmbeddingでの上位下位関係判定の結果とか見てみたい。

Compositional Distributional Semantics with Long Short Term Memory

Compositional Distributional Semantics with Long Short Term Memory
Phong Le, Willem Zuidema, 2015, *SEM

LSTMの機構をRecursive Neural Networkに組み込んで極性分類。
何か壮大にLSTM一般の話の総括でもするのかとタイトルを見て思ったが、実際には細かい話だった。このタイトルは意図的なテクニックなのだろうか。

LSTMをRecursiveに組み込むという少し不思議なモデル化。説明されれば、なるほどと理解はできる。結果的に単なるRecursiveに比べると良い性能となっていた。
モデルを見ると、メモリーセルの情報が木の下部からずっと使いまわされるという感じではない。伝搬は勿論するのだけどメモリー感(?)はない。そもそもRecursiveはRecurrentに比べて成分の大局的な伝搬が通用する方である(が、あまりそのことには触れられていない印象)し、そんなに要らない気はする。
モデル構造から個人的に推察すると、メモリーセル自体に重要な貢献があったという感じはしない。そこよりもインプットゲートによって擬似的にuntiedな重みで2単語を合成できていることがいいのでは、と思う。

良くも悪くもライトな論文で、非常に読みやすくて徹頭徹尾さくさくと話が進んだ。

Learning Word Representations with Hierarchical Sparse Coding

Learning Word Representations with Hierarchical Sparse Coding
Dani Yogatama, Manaal Faruqui, Chris Dyer, Noah A. Smith, 2015, ACL (NIPS WS, 2014)

階層的な次元構造を持った単語ベクトル学習。
各次元ごとに異なったL2正則化項(上手いこと設計したgroup lasso)を持たせて学習することで「まずはこの次元で表現しようとして、もし難しければ無理してでも新たに別の次元を使って表現していく」というようなスタイルでベクトル学習が行える。なるほどと思える目的関数。

そして、驚いたのがその性能のよさ。word2vecやGloVeを筆頭に代表的な単語ベクトルと、類似度タスク、アナロジータスク、単語補完、極性分類で比較している。Semantic analogyが少々苦手なようだが、基本的にはかなり匹敵したり類似度タスクや極性分類では勝ったりしている(対抗馬のベクトルはデフォルトのハイパーパラメータを使って学習しているのでその辺のご愛嬌はあるとはいえ)。ユニークな学習方法として袂を分かちた手法として立派な結果だ。

ただ、specificな文脈を表現するためにはより多くの次元を使うというようなコンセプトを述べていたけど、図3でanimalとhorseとelephatを比較しているときにはどうにもanimalが各次元に渡って大きい絶対値を持っているように見える。要は、性能がよくなったのは良いのだけど、元のコンセプトを支持するような結果がどうにも薄いように感じた。
論文で性能評価に使われているベクトルはスパース性もかなり低いので、そのせいで良いストーリーになっていないのかもしれない。スパース性を高めて解釈を容易にすることもできたが、おそらくは類似度タスクやアナロジータスクの性能が下がるのでそっちは犠牲にした、というような形だろうか。

group lassoについての参考: PFI海野さん

“Not not bad” is not “bad”: A distributional account of negation

“Not not bad” is not “bad”: A distributional account of negation
Karl Moritz Hermann, Edward Grefenstette, Phil Blunsom, 2013, ACL Workshop

Word Vector Repersentationにおいて、意味の「否定」を行列演算だけで構成していくためにはどういうモデルでなければならないかという理論派論文。基本的にはSocherらのMatrix-Vector形式の再帰合成について論じている。
あんまりきっぱりとした結論を言いづらいのだけど、誤解のある形で言えば、「Socherらのモデルでは否定が扱えませんよ」「合成時にどれくらいその単語の意味を引き継ぐかというパラメータが必要ですよ」みたいなことがSocherらへの結論。しかし、これは活性化関数による非線形性を排除した議論なので、厳密に「ダメです」ということは言い切れない。しかし、非線形性の魔法でごまかしてなんとかしようとするようなモデル設計は良くない、という発言もしていて、その点には同意。 特に実験も何もない(式とかはある)、完全なる議論だけの論文なのだけど、内容としてはなかなか面白い。後半はちょっとテンポが悪いけど、前半の「Word Vectorは本当は、domain、value、functionというような3つの要素(の空間)を持つ必要がある」という話は自分で感じていたこととよくマッチしていて励みになる。もう少し細かい話があるとなお面白かったのにとも思う。