Contenu connexe Similaire à Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word representation (20) Pennington, Socher, and Manning. (2014) GloVe: Global vectors for word representation1. GLOVE: GLOBAL VECTORS
FOR WORD REPRESENTATION
GloVe: Global Vectors for Word Representation 1
Jeffrey Pennington, Richard Socher,
Christopher D. Manning
EMNLP 2014, pages 1532–1543.
読み手: 岡崎 直観
(P3を除き,スライド中の表・図はすべて元論文の引用)
Pennington+ (2014)
3. 最小二乗法による単語ベクトルの学習
Pennington+ (2014) GloVe: Global Vectors for Word Representation 3
𝐽 =
𝑖,𝑗=1
𝑉
𝑓(𝑋𝑖,𝑗) (𝒘𝑖
𝑇
𝒘𝑗 + 𝑏𝑖 + 𝑏𝑗 − log 𝑋𝑖,𝑗)2
目的関数:
𝑓 𝑥 =
(𝑥/𝑥max) 𝛼 (if 𝑥 < 𝑥max)
1 (otherwise)
単語𝑖と単語𝑗の共起頻度単語の総数
単語𝑖のベクトル
単語𝑗のベクトル‘
単語𝑖のバイアス項
単語𝑗のバイアス項’
1系統
2系統
※各単語に対してパラメタが2系統あるのは
word2vecと同様.本研究は単語𝑖のベクトルを
最終的に(𝒘𝑖 + 𝒘𝑖)とする(精度が向上するらしい)
𝑥 𝑚𝑎𝑥 = 100, α = 0.75 の場合 →
AdaGrad
(SGD)で学習
4. 𝒘𝑖
𝑇
𝒘𝑗 + 𝑏𝑖 + 𝑏𝑗 − log 𝑋𝑖,𝑗 の理由(1/4)
• 単語𝑖と単語𝑗のある側面(aspect)における関係
を,文脈単語𝑘で表すことを考える
• 例: 「熱力学」におけるiceとsteam
• 𝑃𝑖,𝑘 = 𝑃(𝑘|𝑖)よりも𝑃𝑖,𝑘/𝑃𝑗,𝑘の方が単語𝑖と単語𝑗の
特徴を捉える文脈として有用そう
• 例: waterやfashionよりもsolidやgasの方が有用
Pennington+ (2014) GloVe: Global Vectors for Word Representation 4
5. 𝒘𝑖
𝑇
𝒘𝑗 + 𝑏𝑖 + 𝑏𝑗 − log 𝑋𝑖,𝑗 の理由(2/4)
• 単語𝑖, 𝑗, 𝑘のベクトルをそれぞれ𝒘𝑖, 𝒘𝑗, 𝒘 𝑘とする
• 単語ベクトルで𝑃𝑖,𝑘/𝑃𝑗,𝑘を表現するには,
𝐹 𝒘𝑖 − 𝒘𝑗, 𝒘 𝑘 = 𝑃𝑖,𝑘/𝑃𝑗,𝑘
• 左辺の引数(ベクトル)と右辺(スカラー)の型
を合わせるための最もシンプルな方法は,
𝐹 𝒘𝑖 − 𝒘𝑗
𝑇
𝒘 𝑘 = 𝑃𝑖,𝑘/𝑃𝑗,𝑘
Pennington+ (2014) GloVe: Global Vectors for Word Representation 5
単語𝑖と単語𝑗の特徴の対比をベクトルの
差で表現(加法構成性を予め考慮)
関数の形は
これから絞り込む 𝒘 𝑘とは別系統のベクトル
内積をとってスカラー値にする
6. 𝒘𝑖
𝑇
𝒘𝑗 + 𝑏𝑖 + 𝑏𝑗 − log 𝑋𝑖,𝑗 の理由(3/4)
• 単語と文脈の役割は入れ替えが可能であるべき
• 𝒘𝑖 ↔ 𝒘𝑖と𝑋 ↔ 𝑋 𝑇の入れ替えを同時に考慮すべき
• 𝐹として加法群から乗法群への準同型写像
exp: ℝ → ℝ+を採用する
exp 𝒘𝑖 − 𝒘𝑗
𝑇
𝒘 𝑘 =
exp 𝒘𝑖
𝑇
𝒘 𝑘
exp 𝒘𝑗
𝑇
𝒘 𝑘
=
𝑃𝑖,𝑘
𝑃𝑗,𝑘
• したがって,
exp 𝒘𝑖
𝑇
𝒘 𝑘 = 𝑃𝑖,𝑘 = 𝑋𝑖,𝑘/𝑋𝑖
• 両辺の対数をとると,
𝒘𝑖
𝑇
𝒘 𝑘 = log 𝑋𝑖,𝑘 − log 𝑋𝑖
Pennington+ (2014) GloVe: Global Vectors for Word Representation 6
7. 𝒘𝑖
𝑇
𝒘𝑗 + 𝑏𝑖 + 𝑏𝑗 − log 𝑋𝑖,𝑗 の理由(4/4)
• まだ単語と文脈の入れ替えができない
𝒘𝑖
𝑇
𝒘 𝑘 = log 𝑋𝑖,𝑘 − log 𝑋𝑖
• 𝑘に関する定数項がないため
• log 𝑋𝑖をバイアス項𝑏𝑖で表し,新たに𝑘に関
するバイアス項 𝑏 𝑘を導入
𝒘𝑖
𝑇
𝒘 𝑘 = log 𝑋𝑖,𝑘 − 𝑏𝑖 − 𝑏 𝑘
𝒘𝑖
𝑇
𝒘 𝑘 + 𝑏𝑖 + 𝑏 𝑘 = log 𝑋𝑖,𝑘
Pennington+ (2014) GloVe: Global Vectors for Word Representation 7
8. 𝑓(𝑋𝑖,𝑗)で重み付けする理由
• 𝑋𝑖,𝑗 = 0のときlog 𝑋𝑖,𝑗が計算できない
• 共起行列𝑋の要素はほとんどが0(疎行列)
• 影響力を0とする
• 低頻度の共起頻度は重視しない
• 低頻度な共起事象をベクトルで符号化するのは大変
• 𝑋𝑖,𝑗 < 𝑥maxならば影響力を(𝑋𝑖,𝑗/𝑥max) 𝛼
とする
• 高頻度の共起要素も重視しすぎない
• 高頻度な共起事象は平等にベクトルで符号化
• 𝑋𝑖,𝑗 ≥ 𝑥maxならば影響力を1とする
Pennington+ (2014) GloVe: Global Vectors for Word Representation 8
9. Skip-gramやivLBLとの関係 (1/2)
• 目的関数は,
𝐽 = −
𝑖∈𝑐𝑜𝑟𝑝𝑢𝑠,
𝑗∈𝑐𝑜𝑛𝑡𝑒𝑥𝑡 𝑖
log 𝑄𝑖,𝑗 ,𝑄𝑖,𝑗 =
exp 𝒘𝑖
𝑇
𝒘𝑗
𝑘=1
𝑉
exp 𝒘𝑖
𝑇
𝒘 𝑘
• 繰り返し出現する単語・文脈ペアをまとめると,
𝐽 = −
𝑖=1
𝑉
𝑗=1
𝑉
𝑋𝑖,𝑗 log 𝑄𝑖,𝑗
• 𝑋𝑖,𝑗 = 𝑋𝑖 𝑃𝑖,𝑗であるから,
𝐽 = −
𝑖=1
𝑉
𝑋𝑖
𝑗=1
𝑉
𝑃𝑖,𝑗 log 𝑄𝑖,𝑗 =
𝑖=1
𝑉
𝑋𝑖 𝐻(𝑃𝑖, 𝑄𝑖)
Pennington+ (2014) GloVe: Global Vectors for Word Representation 9
クロスエントロピー
10. Skip-gramやivLBLとの関係 (2/2)
• Skip-gramやivLBLは確率分布𝑃𝑖と𝑄𝑖のクロスエン
トロピーを最小化している
• クロスエントロピーはロングテールな分布に向かない
(低頻度な事象を考慮しすぎる)
• 𝑄𝑖は確率分布として正規化されるべき
• 実際には𝑄𝑖の分母の計算が大変なので正規化されない(近似)
• 提案手法: 二乗誤差で確率分布の距離を計算
𝐽 =
𝑖,𝑗=1
𝑉
𝑋𝑖 𝑃𝑖,𝑗 − 𝑄𝑖,𝑗
2
, 𝑃𝑖,𝑗 = 𝑋𝑖,𝑗, 𝑄𝑖,𝑗 = exp 𝒘𝑖
𝑇
𝒘𝑗
• 実態は対数の二乗誤差: 𝑃𝑖,𝑗 = log 𝑋𝑖,𝑗 , 𝑄𝑖,𝑗 = 𝒘𝑖
𝑇
𝒘𝑗
Pennington+ (2014) GloVe: Global Vectors for Word Representation 10
11. 評価データ
• Word analogy (Mikolov+ 13)
• “a is to b as c is to d?”
• (a, b, c, d) = (Athens, Greece, Berlin, Germany)
• d: 𝒘 𝑏 − 𝒘 𝑎 + 𝒘 𝑐とのコサイン類似度が最も高い単語
• Word similarity
• WordSim-353 (Finkelstein+ 01), MC (Miller+ 91), RG
(Rubenstein+ 65), SCWS (Huang+ 12), RW (Luong+ 13)
• 固有表現抽出(CoNLL-2003, ACE, MUC7)
• CRFの素性に50次元の単語ベクトルの値を追加
Pennington+ (2014) GloVe: Global Vectors for Word Representation 11
12. 実験設定
• 訓練データ(トークン数)
• 1.0B: 2010 Wikipedia dump
• 1.6B: 2014 Wikipedia dump
• 4.3B: Gigaword 5
• 6.0B: Gigaword 5 + 2014 Wikipedia dump
• 42B: Web文書(Common Crawl)
• 単語-文脈共起行列の構築
• Stanford tokenizer, 小文字化の後,高頻度な400,000単語を採用
• 単語の左側の10単語と右側の10単語を文脈語とする
• 単語と文脈語の距離𝑑に応じて出現頻度を1/𝑑とする
• 学習時のパラメータ
• 𝑥max = 100, α = 0.75, AdaGradの初期学習率0.05
• 反復回数は50回(300次元未満の場合)もしくは100回
• (𝒘𝑖 + 𝒘𝑖)を単語ベクトルとする
• 本来,共起行列𝑋が対称行列なら𝒘𝑖と 𝒘𝑖は等価になるはず
• 複数の学習結果を統合することでノイズ耐性が向上すると期待
• (𝒘𝑖 + 𝒘𝑖)による性能の向上は僅かだが,word analogyでは劇的な向上
Pennington+ (2014) GloVe: Global Vectors for Word Representation 12
13. ベースライン手法
• Skip-gram (SG), Continuous BOW (CBOW)
• word2vecの実装を利用
• 学習対象は400,000単語,文脈幅10単語,10単語を負例とし
てサンプル
• SVD
• 学習対象を10,000単語まで絞り込む
• SVD: 𝑋𝑖,𝑗
• SVD-S: 𝑋𝑖,𝑗
• SVD-L: log(1 + 𝑋𝑖,𝑗)
• (i)vLBLの結果は論文(Mnih+ 13)から
• HPCAは公開されている単語ベクトルを用いた
Pennington+ (2014) GloVe: Global Vectors for Word Representation 13
14. Word analogyタスクの精度
• GloVeの圧勝
• データ量を増やすことで精
度が向上している
• word2vecも他の論文で
報告されている数値より
も良かった
• 不利なパラメータを選んだ
訳ではない
• SVDはデータ量を増やし
ても精度が上がらない
Pennington+ (2014) GloVe: Global Vectors for Word Representation 14
17. 次元数とウィンドウ幅と精度の関係
(Word analogyタスク)
• 200次元あたりから精度の改善が鈍る
• (読み手注)かなり安定した実験結果に見える
• Syntactic analogyよりもsemantic analogyの方が広い文脈が必要
• Syntactic analogyではasymmetricな文脈の方がよい(語順の考慮)
• symmetric: 左右両側から文脈語を取る
• asymmetric: 左側から文脈語を取る
Pennington+ (2014) GloVe: Global Vectors for Word Representation 17
21. 感想
• ベクトルの加法構成性から議論を組み立て
• シンプルで自然な定式化
• 共起行列を単語ベクトルで表現する
• Skip-gramの目的関数との対比も興味深い
• 安定した高い精度
• 𝒘𝑖は単語から文脈の分布, 𝒘𝑖は文脈から単
語の分布をモデル化という見方も興味深い
• 公開されているコードも読みやすい
Pennington+ (2014) GloVe: Global Vectors for Word Representation 21