それ自体は実際に神経確率モデルの副産物である入力言語モデル確率神経などword2vec、それによって生成された言語モデルを学習ニューラルネットワークの中間結果です。具体的には、「言語モデル」は、「CBOW」および「スキップグラム」を意味します。具体的な学習プロセスは、おおよそ--Hierarchicalソフトマックスまたは負のサンプリングの複雑さを低減するための2つのメソッドを使用します。両モデルとも4の合計を達成するために、二つの方法を掛けました。
A、CBOW
文脈で1.単語
2.パラメータの更新
3.複数ワードコンテキスト
二、スキップグラム
1.ネットワーク構造
2.パラメータの更新
第三に、最適化
オリジナルの計算モデルCBOWとスキップ-グラムモデルを計算することは非常に困難で、大きすぎます。
- ネットワークモデルの出力を計算する場合、計算誤差が必要です。CBOWモデルの場合、1は、CV誤差を計算するためのスキップ-gramモデルの必要性のために、エラーV(語彙サイズ)を計算する必要があります。さらに、操作ソフトマックス関数に関する各ソフトマックス関数について計算誤差、(V)、複雑性Oを使用する必要があります:$ \和_ {J = 1} ^ VのEXP(u_j)$を。
- 勾配の計算は、すべてのネットワーク出力を更新する必要があります。百万語語彙、モデル100回の反復、100以上の万回の計算量がある場合。
入力ベクトル寸法も非常に高いが、唯一の入力ベクトルが1であるため、他のビットは0であり、入力の従ってより少ない全体的な計算の複雑。ものの
主なアイデアは、最適化word2vecである:出力ユニットの数を制限します。
実際には、出力の単位数百万で、出力ユニットのほんの数は、パラメータの出力ユニットのほとんどは何の貢献を更新しない、更新のための重要なパラメータです。
2つの最適化戦略があります。
- ソフトマックス関数は、ソフトマックスを積層することで効率的に計算されます。
- 出力部に負のサンプル数を減らすことによって。
1.成層ソフトマックス
階層化ソフトマックスアルゴリズムは計算効率ソフトマックス関数です。成層ソフトマックス後、ソフトマックス関数の計算アルゴリズムの複雑さはO(logV)とO(V)から減少するが、依然としてV-1発現ベクター内部ノードを計算します。
(1)CBOW
(2)Skip-gram
2.负采样
在网络的输出层,真实的输出单词对应的输出单元作为正向单元,其它所有单词对应的输出单元为负向单元。
- 正向单元的数量为1,毋庸置疑,正向单元必须输出。
- 负向单元的数量为V-1,其中V为词表的大小,通常为上万甚至百万级别。如果计算所有负向单元的输出概率,则计算量非常庞大。可以从所有负向单元中随机采样一批负向单元,仅仅利用这批负向单元来更新。这称作负采样。
负采样的核心思想是:利用负采样后的输出分布来模拟真实的输出分布。
参考链接: