Embedding
記号世界とベクトル空間の接続
- one-hotベクトル
- 1次元1記号に対応するベクトルを考え,1次元だけ1で,他は全て0であるベクトル
- embedding matrix
- one-hotベクトルを分散表現に変換する行列
- 得られたベクトルはembeddingや分散表現とよばれる
- softmax関数に十分大きいscaling factorを導入した関数
- 全ての要素のうち最も大きい値を取る要素のみ1で残りは0となる
- 分散表現をone-hotベクトルに変換できる
ニューラル言語モデル
- FFNN-LM
- 入力は時刻$t$より前$C$単語分のone-hotベクトルから抽出されるembeddingを連結したベクトル
- 出力層のベクトルの各次元を,対応する単語が生成される尤度と考える
- そのベクトルにsofmax関数をかけた値を確率とする
- RNN-LM
- 隠れ層の計算がRNNになる
- 入力は1単語ずつのone-hotベクトル
分散表現
- 単語に注目した分散表現
- distributed representation of words
- word embeddings
- NN研究からの視点とNLP研究からの視点があった
- 分布仮説に基づき得られたベクトルをdistributional representationとよんだ
NNLM
log-bilinear model
-
中間層のない,1層のみで構成されるNNLMと解釈できる
-
CBoW (Countinuous Bag-of-Words)
- 予測したい単語の周辺語の分散表現を使って,出力単語の確率を計算する
-
skip-gram
- 入力単語が1つだけ与えられる際のCBoWの特殊形
-
階層的softmaxを使って高速化できる(が負例サンプリングで十分か)
負例サンプリングを用いたlog-bilinear model
- 高速化でよく使われる
- log-bilinear modelは,基本的にいくつかの入力単語が与えられた時の次の単語を生成する確率モデルとみなされてきた
- 負例サンプリングでは,与えられた入出力の組が「実データの確率分布から取得されたデータ」か「別の確率分布から生成されたデータ」かの2クラス判別問題の学習に変わる
- 一般ではあまり意識されていないので注意