GloVe(Gloval Vectors)【分散表現】

1.概要

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

https://nlp.stanford.edu/projects/glove/

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

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

第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を行うせいで,頻出の単語(冠詞など)の影響が大きくなりすぎる.
■局所窓の数単語内のコンテキストのみ学習する.よって,語彙全体の統計を学習できない.
■学習時に局所窓をデータセット文章全ての単語周辺から収集する必要があり,計算効率が悪い.
表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$の単語ベクトル

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}$ が学習結果として得られる.

3.2 GloVe のコスト関数

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

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

そこで,GloVeのモデルの目的関数 $J$ には,語彙Vにおける全単語ペアにおいて,3.1節の重み付き線形回帰を学習するために,以下のような最小二乗誤差関数を用いる (※ 式(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の方が良い事前学習ができていることを実験的示した.

3.3 学習済み単語埋め込みの使用法

最後に,テスト時に,学習済みの2つの単語埋め込みをどのように使うかについて述べる.

$\bm{U}$と$\bm{V}$を個別に単体で使ってもよいが,

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

参考書籍

参照外部リンク

関連記事