skip-gram

本研究で使用するWord2Vecはskip-gramモデルで学習を行った。本章ではskip-gramモデルについて説明する。skip-gramはある単語から、前後の周辺語彙を予測するモデルである。周辺の単語の出現確率はソフトマックス関数を用いて、

$\displaystyle p(w_{o}\vert w_{i}) = \frac {exp(v_{w_{o}}^{\prime T}\cdot v_{w_{i}})} {\sum_{w_{v}\in V} \exp(v_{w_{v}}^{\prime T}\cdot v_{w_{i}})}$ (1)

で計算される。$w_i$が注目する単語、$w_o$が周辺の単語、Vは語彙$v_{w_{i}}$$v_{w_{o}}$は各単語の分散表現である。また、周辺語彙の範囲をCとして、

$\displaystyle p(w_{o,1},w_{o,2}\cdots w_{o,C}\vert w_{i}) = \prod_{c=1}^{C} \fr...
...\cdot v_{w_{i}})} {\sum_{w_{v}\in V} \exp(v_{w_{v}}^{\prime T}\cdot v_{w_{i}})}$ (2)

という同時確率を考える。これは、注目単語に対して、前後の周辺語彙まで含めた確率であり、これが最大になるベクトルがよい表現であると仮定してニューラルネットワークで学習を行う。図1にニューラルネットワークを示す。隠れ層が分散表現になっている。入力層はone-hotベクトルであり、隠れ層から、対応する単語の分散表現を出力する。出力層の重みは隠れ層を転置したものであり、内積を計算する。そして、活性化関数としてソフトマックス関数を使用し、式3.2を最大化するように重み付けを行う。

Figure: skip-gramモデル
\includegraphics[width=15cm]{skip-gram.png}