GloVe (Global Vectors)【分散表現】

記事を共有する:

1.概要

Glove (Global Vectors)[1] は,スタンフォード大のManning先生の研究室から提案された,単語分散表現である (第2著者は,ImageNet や Scene Graph 論文などにも共著で関わった Richard Socher 氏).

従来の単語埋め込みであるword2vec [Mikolov et al., 2013] の skip-gramモデルは,局所的な(local)窓内の単語間コンテキストから単語埋め込みを学習する,「Local窓内コンテキストの学習手法」であった.これに,GloVeは,旧来的な行列分解ベースの「単語間の大域的な(Gloval)な共起 = 共分散行列」も加味することで,大域と局所の両方を考慮できる単語ベクトルVector)埋め込み学習手法を提案した.

GloVeは,単語ペア2ベクトル間の対数共起度を予測する「全域的な対数バイリニア回帰モデル(3.1節)」を用いて単語間共起確率をモデル化した,線形ベクトル空間である.GloVeの学習時は,重み付き線形回帰として共起行列の行列分解を解くが,その重みに高頻度単語ペアの影響を抑える工夫もされている.モデルがシンプルであることに加えて,計算効率性も高い.

こうして,word2vec の弱点を改善したので,GloVeが自然言語処理やVision-Lauguageの単語分散表表現として,その後広く標準的に使用されるようになった.

第2著者のRichard Socher自身による講義動画 (2017)での説明が以下のようにアップロードされているので,そちらも参考にされたい.

この動画ではGloVeのメリットを以下のようにまとめている:

  • 学習が高速.
  • 巨大語彙へもスケール可能.
  • 小規模なコーパスで低次元なベクトルでも,良好な性能が出る.

以降は,2節で従来手法の問題点に触れたのち,3章でGloVeの詳細を説明する.

2. 従来手法の問題点

概要で述べたとおり,Gloveは以下の2つの従来の「単語ベクトル表現の埋め込み手法」の合体版の提案である:

  1. 語彙全体の大域的な単語間共起行列の行列分解(LSAなどを用いる手法)
  2. 窓内での局所的な単語コンテキストの予測モデルを学習(RNN, skip-gram, CBOWなど)

これらの2手法は,片方の長所がもう片方の短所に相当しており,お互いの弱点を埋め合わせられる相互補完的な関係性があった:

1. 単語間共起頻度行列の行列分解(LSAなど)
大域的な単語間の共起】
2. 窓内の予測モデル(RNNLM, word2vecなど)
局所的なコンテキスト】
長所語彙全体の統計を,効率的に考慮(学習も速い)類似単語タスクに,非常に強い
短所■ 類似単語タスクに弱い.よって局所まで空間最適化できていない(実験的にもわかる).
■単語共起頻度行列から直接SVDを行うので,頻出単語(冠詞など)の影響が大きくなりすぎる.
■局所窓の数単語内のコンテキストのみ学習.よって語彙全体の統計を学習できない.
■学習時にdataset文の全単語の周辺から局所窓を収集する必要があり,計算効率が悪い.
表1 Glove以前の主な2種類の単語埋め込み手法の比較

そこで [Pennington et al., 2014] では,2つの手法をいいところどりして,なおかつ(word2vecよりも)単純であるGloVeモデルを提案した.

3. GloVeのモデル

まず GloVe [Pennington et al., 2014] での問題設定を定義したい.

語彙が単語$V$個から構成されるとする.また,学習用コーパス全体での「単語$i$と単語$j$が,同時発生する頻度」を$X_{ij}$に格納した共起行列を $\bm{X} \in \mathbb{R}^{V \times V}$とする.

この時Gloveでは,$\bm{X}$の行列分解を解くことで,低次元の単語埋め込みベクトル空間$\bm{U}$と$\bm{V}$を行列分解により推定して学習する.

具体的には,以下の2つの(潜在)埋め込みベクトル$\bm{u}_i$と$\bm{v}_i$を,全語彙の単語に対して学習したい:

  • $\bm{u}_i \in \mathbb{R}^d$:単語$i$のコンテキストベクトル
  • $\bm{v}_i \in \mathbb{R}^d$:単語$i$の単語ベクトル

ここまでが,GloVeの問題設定である.それでは,目的となる単語分散表現$\bm{u}_i$と$\bm{v}_i$のモデリングと学習方法(3.2)について,3.1, 3.2節で見ていこう.

3.1 「共起度」を,線形回帰で予測するモデル

GloVeのモデルには,「共起行列の各要素の対数値$ \log(X_{ij})$を,単語ベクトルと共起単語ベクトルから線形回帰する」という,非常に単純なモデルが採用されている.

その線形回帰予測モデルを,以下のように表す(※ 右辺の回帰関数にはバイアス項も設定するが,この記事では省略):

\begin{equation} \log(X_{ij}) \approx \bm{u}_i {}^T\bm{v}_j \tag{3.1}\end{equation}

式(3.1)のように,コンテキスト(共起)単語 $i$ のベクトルと,注目単語ベクトル $j$ のあいだでの「類似度」を計算するだけで,2単語間の共起頻度を推定するための2つの潜在空間(単語埋め込み)$\bm{U}$ と $\bm{V}$ が,GloVeの学習結果として得られる.

3.2 GloVe のコスト関数

学習データから得られた式(3.1)左辺の共起行列を,SVDで行列分解すると,低次元の$\bm{U}$と$\bm{V}$の積で近似できる.これにより,目的のコンテキストベクトル空間$\bm{U}$と単語ベクトル空間$\bm{V}$が得られる.

しかし,単純に共起行列をSVDするだけでは,外れ値として除外したい「頻出の共起」「レアな共起」などの影響も受けた,微妙な埋め込みを学習してしまいやすい.また,全単語間の共起度を計算すると,学習時の計算コストも高くなってしまうので,できれば疎な計算に代えることで計算コストも下げたい.

そこで,GloVeのモデルの目的関数 $J$ には,語彙Vにおける全単語ペアにおいて,3.1節の重み付き線形回帰を学習するために,以下のような最小二乗誤差関数を用いる (※ 式(3.1)と同様,バイアス項は省略):

\begin{equation}J = \sum^V_{i=1, j=1} f(X_{ij}) ( \bm{u}_i {}^T\bm{v}_j – \log (X_{ij}))^2 \tag{3.2}\end{equation}

※ この記事ではコスト$J$の導出手順は省略する

ここで $f(X_{ij})$ は各二乗誤差の重み付けを担当する「単語間共起度の割合」を示す関数である.

3.2.1 頻出共起ペアの重みを下げる「クリップ機能付き重み」の使用

重み関数$f$には,ある程度以上頻出の共起単語ペアの共起度を下げることで,「共起行列の極端な凸具合」を減らすような重み付け関数を活用したい.そうすれば,式(3.2)だけで,局所的な単語間共起も一緒に学習できるからである.

そこで [1]では,閾値 (たとえば$X_{max} = 100$回)以上に共起している単語ペアでは,共起度の値を徐々に下げていき,値を1にクリップして削除できるような,以下の累乗関数を $f$ に使用することを提案した:

\begin{align} f(X_{ij}) = \begin{cases} (\frac{X_{ij}}{X_{max}})^{\alpha} & if & X_{ij} < X_{max} \\ 1 & otherwise \end{cases} \tag{3.3} \end{align}

この $X_{ij} > X_{max}$ では値が全て1となる式(3.3)を用いて,コスト関数$J$ 式(2)によりGloVeを学習することにより,効率に共起行列分解を行うことができ,最終的に(単語類似度の内積が学習された)埋め込み行列$(\bm{U}, \bm{V})$のペアを学習することができる.

[Pennington et al., 2014]では,CoNLL2003(英語)からGloVeの教師なし学習を行い,その埋め込みベクトルを用いて3タスクのデータセット(固有表現抽出, 単語類似度,単語アナロジー)で実験した.これにより,SVD行列分解とword2vecから得られた埋め込みよりも,GloVeの方が良い事前学習が実施できることを実験的に示した.

4. GloVe のまとめ

GloVeは,大域手法-局所手法の両方を良いとこどりをしてかつ簡潔にモデル化した,単語埋め込みの学習手法である.単語間の共起を「重み付き線形回帰」で単純にモデル化しただけなので,小さい語彙でも効率的に学習できるだけでなく,性能も保たれる.

著者も研究しているVision and Languageの研究界隈でも,かつて GloVe を単語表現に用いる論文が多かった.後発の発展版単語埋込みFastText もあまり使われないまま,その後もVision and Languageでの単語分散表現は,GloVeがファーストチョイスであることが多かった.

※ 従来手法と比較する際に,公平性を保つためGloVeがずっと使われ続けている側面もある.

References

  • [Mikolov et al., 2013] Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, and Jeffrey Dean. “Distributed representations of words and phrases and their compositionality.” Advances in neural information processing systems. 2013.
  • [Pennington et al., 2014] Jeffrey Pennington, Richard Socher, and Christopher D. Manning. 2014. GloVe: Global Vectors for Word Representation

参考書籍

参照外部リンク

関連記事