参考資料: 【word2vec ワードベクトルモデル】 NLP自然言語処理の古典モデルWord2vec
を実装する原理+コードの詳細解説
論文の背景知識
言葉の表現方法
ワンホット表現: ワンホット表現
シンプルですが、単語が増えれば増えるほどベクトルは長くなります。そして言葉と言葉の関係性を表現することはできません。
論文予備知識・予備知識
言語モデルの概念
言語モデルは、文が文である確率を計算するモデルです。(文法的にも意味的にも)
言語モデルの開発
専門的な文法規則に基づいた言語モデル
言語学者は、形容詞の後に名詞が続くなど、一連の普遍的な文法規則を要約しようとします。
統計的言語モデル
一部の単語がコーパスに表示されないか、フレーズが長すぎる可能性があります。したがって確率は0です。この問題を解決するために、統計的言語モデルにおける平滑化操作を以下に提案します。
統計言語モデルでの平滑化操作
しかし、これは単語の確率のみを扱っています。
大きすぎるパラメータ空間の問題を解決するために、マルコフ仮説が導入されます。
言語モデルの評価指標
各分野には独自の評価指標があります。
言語モデルは多分類問題とみなすことができ、
n乗根をとる目的は、長い文の確率が短い文の確率よりも小さくなり、評価が偏ることを避けるためです。
モデルの比較
NNLM
言語モデルは教師なしであり、ラベル付きコーパスを必要としません。
入力層
ループではなく行列として記述できる場合は、そのまま行列として記述してください。複雑さを軽減できます。
隠れ層
出力層
損失
バッチサイズは一種のトレードオフであり、
文の長さが異なるためパッドを追加する必要がありますが、最終的には削除する必要があります。
RNNLM
word2vec
多分類のロジスティック回帰モデルも対数線形モデルです。
以下の Skip-gram と cbow も対数線形モデルです。
word2vecの原理
スキップグラム
ボウ
Bag-of-Words モデルでは、単語の順序は無視されます。
キーテクノロジー
ソフトマックスの複雑さを軽減する必要があります。
階層的ソフトマックス
ソフトマックス計算をシグモイド計算に変換し
、バイナリ ツリー構造に書き込みます。
スキップグラムの階層的ソフトマックス
cbow の階層的ソフトマックス
Skip-gram の階層ソフトマックスとの違いは、u0 がコンテキスト ワード ベクトルの avg であることです。Skip
-gram には中心ワード ベクトルの完全なセットしかありません。以前のように中心ワード ベクトルと周囲のワード ベクトルを平均化することはできません。cbow には
完全な単語ベクトルしかありません。周囲の単語ベクトルを設定します
ネガティブサンプリング
アイデア: 複数分類を 2 分類問題に変換します。
ネガティブ サンプリング効果は階層ソフトマックスよりも優れています。
通常、3 ~ 10 個の陰性サンプルがサンプリングされます。
スキップグラムネガティブサンプリング
重要な単語は出現頻度が低くなり、重要でない単語は出現頻度が高くなる傾向があります。
CBOW ネガティブ サンプリング
再サンプリング
モデルの複雑さ
異なるモデルの E と T は同じとみなされます。そのため、以下ではモデルの複雑さを表すために Q が使用されます。
NNLM
階層的ソフトマックスを使用すると、V*Hは log 2 V ∗ H log_2V*Hになります。ログ_ _2V∗H