Poincaré Embedding による 分散表現の獲得 M1 橋本隼人 森信介 京都大学情報学研究科 / 学術情報メディアセンター森研究室 1
おしらせ 予稿集から変更 ネガティブサンプリングの式 追加実験 ご意見等は予稿のアドレスかこちらへ <hayato.hashimoto@gmail.com> http://www.ar.media.kyoto-u.ac.jp/ 京都大学森研究室自然言語処理 2
発表の要旨 背景 : 階層的構造に適した Poincaré Embedding. (Nickel&Kiela. NIPS 17) WordNet からの学習 提案手法 : テキストからの教師なし学習 埋込み表現学習に適した内積を Poincaré 円盤上で定義 評価 : 埋め込み表現の既存評価手法 および 階層的構造を考慮した分類タスクによる評価 実験 :Continuous Bag-of-Words/ 英語版 Wikipedia 考察 まとめ : 提案手法はテキストから階層的構造を学習できる 3
Word2Vec / 合成可能性 4 / 28 背景 * * * * Mikolov の Skip-Gram with Negative Sampling で文脈 からベクトルは学習できる ( 意味の基底と ) 合成可能性 : king - man + woman = queen Vietnam + capital = Hanoi
語義の階層的構造 5 / 28 背景 * * * * 階層を下れば下るほど増えるカテゴリ 次元を増やすのが正解? ツリーが入る空間を用意 リーダー 作業員 人労働者親戚エンジニア事務員 プログラマ 5
Poincaré 円盤 6 / 28 背景 * * * * Nickel&Kiela は 埋め込み空間にリーマン幾 何の計量テンソルを導入することを提案した (from abyss.uoregon.edu)
Poincaré 円盤 7 / 28 背景 * * * *
Nickel & Kiela (2017) 8 / 28 背景 * * * * Nickel & Kiela は WordNet の上位語ー下位語関係の木構造を Poincaré 円盤を用いたモデルで学習 Euclid 計量に基づくベースラインモデルよりよく表現することができることを示した 8
9 / 28 背景 * * * * 9
テキストからの学習 10 / 28 * 提案手法 * * * Nickel らは人手により作られた階層的データがPoincare Embeddingによりうまく埋め込みできることがわかった 本発表では テキストから教師なしでよい埋め込み表現を得るために Poincare Embeddingができるかを検討したい 10
テキストへの適用時の問題 11 / 28 * 提案手法 * * * WordNet 再現タスクでは Euclid モデルでも内積より距離のほうがよい テキストからの埋め込み表現学習では 距離より内積のほうがよい 11
Euclid 内積から Poincaré 内積 12 / 28 * 提案手法 * * * A C O B 単位ベクトルの cosine 類似度を図形で図示すると 左のようになる 12
Euclid 内積から Poincaré 内積 13 / 28 * 提案手法 * * * A C H B 三角形 ABCと三角形 AOH は相似 ( 相似比 AO : AB) O AC = 相似比 AH = 距離 2 /2 OC = 1- 距離 2 /2 13
Euclid 内積から Poincaré 内積 14 / 28 * 提案手法 * * * A C H B 三角形 ABCと三角形 AOH は相似 ( 相似比 AO : AB) O AC = 相似比 AH = 距離 2 /2 OC = 1- 距離 2 /2 14
Poincaré 内積 ( もどき ) 15 / 28 * 提案手法 * * * cos Θ = 1 - d(x, y) 2 / 2 内積 = x y cos Θ = x y (1 - d(x, y) 2 / 2) Poincaré 円盤を単位円とみなす ベクトルの大きさのパラメータを別途導入する (r x, x) P (r y, y) = r x r y (1 - d P (x, y) 2 / 2) 15
Poincaré 内積 16 / 28 * 提案手法 * * * ネガティブサンプリングで確率を計算 log P(x context) = σ (r x r y (1 - d P (x, y) 2 /D 2 ) ) (1 - σ (r n1 r y (1 - d P (x, y) 2 /D 2 ) )) CBoW, ナイーブに重み付き平均 ( リーマン計量を考慮しない ) y = Σ r x / Σ r i i i r = Σ r / #context y i ( i context) 16
埋め込み表現の既存評価尺度 17 / 28 * * 評価 * * 人手評価による単語類似度と順位相関係数で評価 (Spearman s ρ) Dataset: MEN WordSim-353 SimLex-999 MEN と WordSimは関連付け (Relatedness: カップとコーヒーなど ) にも高いスコアが割り当てられ SimLexは類似度 (Similarity) のみ 17
埋め込み表現の既存評価尺度 18 / 28 * * 評価 * * Qvec, analogy resolution は加算 乗算 基底変換ができる前提のため 今回評価 には用いなかった 18
WordNet を用いた提案評価尺度 WordNetから二つの枝をえらび 同一の枝に属している単語ペアと例 : (mother, father), (professor, officer) 同一の枝に属していない単語ペアを例 : (professor, daughter) 二値分類するタスク worker 距離の閾値により解いた時のROC AUC で評価 19 / 28 * * 評価 * * person relative engineer 19
WordNet を用いた提案評価尺度 階層的構造の評価のために いくつかのレベルで二つの枝を選び AUC を平均する 20 / 28 * * 評価 * * person 距離のみで評価可能 上下関係の距離によらない worker relative engineer officer 20
実装 / 実験設定 21 / 28 * * * 実験 * Continuous Bag-of-Words ナイーブに重み付き平均 ( リーマン計量を考慮しない ) ケーリングとする Python で実装 (chainer 4.0.0β), batch 学習 +GPU ミニバッチ学習 GPU Gradient Clipping Sigmoid arg. Clipping: [-6, 6] AdaGrad により学習初期学習率 0.001 RSGD を Forward を円盤の中にいれる処理 Backward を微係数のス FunctionNode として実装 ナイーブにモーメンタム (msgd,, Adam) は使えない ( モーメンタムをリーマン計量対応にする必要がある また ネガティブサンプリングではまれな語のパラメータはまれにしか更新されな い ) 21
実験設定 22 / 28 * * * 実験 * コーパス Wikipedia 英語版 8.75 億語 ( 全体の数割 ) 語彙 100 万語 (Wikipedia 英語版全体からの出現頻度で決定 ) 単語と文脈を別に学習し 単語のベクトルで評価 20 epochs, スムージング 0.75 Subsampling: なし語彙頻度スムージング指数 (α): 0.75 Window: 2, 5, 10, 15 次元 : 10, 20, 100, 300 Gradient Clipping: 10.0 バッチサイズ 65536 22
結果 (WordNet 同枝判定 ) 23 / 28 * * * * 結果 次元窓幅 2 5 10 10 Poincare 0.6773 0.6605 0.6232 ( 評価時のみドット積 ) 0.6348 0.6163 0.6369 dot 0.6116 0.6205 0.6208 20 Poincare 0.6937 0.6694 0.6593 0.6533 0.6468 0.6567 dot 0.6443 0.6444 0.6445 100 Poincare 0.6316 0.6850 0.6847 0.6304 0.6506 0.6566 23 dot 0.6513 0.6580 0.6571
結果 (WordNet 同枝判定 ) 24 / 28 ROC AUC dim = 100 24 / 28 * * * * 結果 Poincare Embedding (win=5, win=10) Euclidean Baseline LexVec 配布モデル Iteration 24
結果 ( 類似度 ) 25 / 28 * * * * 結果 Iteration 25
結果 ( 類似度 ) 26 / 28 * * * * 結果 Iteration 26
学習表現の可視化 27 / 28 * * * * 結果 27
まとめ 埋込み表現学習に適した内積を Poincaré 円盤上で定義 階層的な構造をうまく埋め込み空間でたもっているかどうかを図るタスクを定義 タスクの結果および埋め込みの可視化から確認できる限りでは Poincaré Embedding を用いた埋め込み表現は 教師なしで階層的な構造を学習していると考えられる 28