自然言語処理のモデルを metric learning の観点からとらえる
この記事の目的は?
自然言語処理または metric learning に興味がある人に、 metric learning と自然言語処理には関係がある ということを伝えることです。
次のセクションから、いくつかの自然言語処理の手法を metric learning の観点からとらえてみます。
Word2Vec
Word2Vec は単語の連続的ベクトル表現を獲得する手法です。様々な手法が提案されてますが、この記事では CBoW (Continuous Bag of Words) と Skip-Gram について考えていきます。
CBoW
CBoW は下図のように文中のターゲットとなる単語
CBoW の学習では以下の最適化問題を解きます。
-
: 文(単語の列)(w_1, w_2, \dots, w_t, \dots, w_T) -
: 単語\bm{u}_w, \bm{v}_w \in \mathbb{R}^d のw 次元特徴量ベクトルd -
: 学習に使う単語すべての集合W -
: それぞれ単語ベクトルU, V \in \mathbb{R}^{d \times |W|} を並べた重み行列\bm{u}_w, \bm{v}_w -
: 文脈ベクトル。単語\bm{c}_t の周辺語w_t の特徴量を和によって reduce したもの。 周辺語をいくつ使うかは、 ウィンドウサイズw_{t+j} によって決める。k
上の式では Softmax Cross Entropy (SCE) を使っているので、 CBoW は単語×文脈の metric learning ととらえられます[1]。 特徴量空間において、 周辺語による文脈ベクトルとターゲットの単語ベクトルを近づけ、ターゲット以外の単語ベクトルは離す よう学習します。 下図は metric learning の観点から描きなおしたアーキテクチャです。
Skip-Gram
Skip-Gram は下図のとおり、CBoWとは逆に、ターゲットとなる単語
Skip-Gram の学習では以下の最適化問題を解きます。
上の式より、 Skip-Gram は単語×単語の metric learing ととらえられます。特徴量空間において、 ターゲットの単語ベクトルと周辺語ベクトルを近づけ、周辺語でない単語ベクトルは離す ように学習します。下図は metric learning の観点から描きなおしたアーキテクチャ図です。
以上より、 CBoW と Skip-Gram 、 どちらの Word2Vec も metric learning としてとらえられそうです。
参考
- https://arxiv.org/pdf/1301.3781v3.pdf
- https://proceedings.neurips.cc/paper/2013/file/9aa42b31882ec039965f3c4923ce901b-Paper.pdf
- 絵で理解するWord2vecの仕組み - Qiita
- 単語と図で理解する自然言語処理(word2vec, RNN, LSTM)前編 - ギークなエンジニアを目指す男
RNN による言語モデル
RNN による言語モデル(RNNLM)は、 下図のように直前の単語列
RNNLM の学習では、以下の最適化問題を解きます。
-
: 文脈ベクトル。RNN の隠れ層の状態。\bm{c}_t 番目までの単語ベクトルたちを RNN で reduce したもの。t -
: RNN のパラメータ\Theta
上の式より、CBoWと同様に RNNLM は単語×文脈の metric learning ととらえられます。 CBoW との違いは、文脈を構成する単語と、それらを reduce する関数です。その違いを以下の表にまとめました。
CBoW | RNNLM | |
---|---|---|
文脈を構成する単語 | 予測対象の両側の単語いくつか | 予測対象よりも前の単語すべて |
reduce する関数 | sum(学習不可能) | RNN(学習可能) |
また、下図は RNNLM を metric learning の観点から描きなおしたものになります。
参考
まとめ
既存の自然言語処理のモデルを metric learning の観点からとらえてみることで、 自然言語処理処理と metric learning に繋がりがあることを説明しました。
次回は?
推薦や自然言語処理に以外にも metric learning と関係のある分野をまとめます。
-
SCE による学習は metric learning とみなせます。 同アドベントカレンダーの metric learningとsoftmax cross entropyを比べること自体間違っている で説明しています。 ↩︎
Discussion