私はリカレント言語モデルに取り組んでいます。言語モデルの初期化に使用できるWord埋め込みを学ぶために、私はgensimのWord2vecモデルを使用しています。トレーニング後、Word2vecモデルは、語彙の各単語に対して2つのベクトルを保持します。単語の埋め込み(入力/非表示行列の行)とコンテキストの埋め込み(非表示/出力行列の列)です。
この投稿 で概説されているように、これら2つの埋め込みベクトルを組み合わせるには、少なくとも3つの一般的な方法があります。
しかし、最適な戦略に関する適切な論文やレポートが見つかりませんでした。だから私の質問は:
関連する(ただし未回答の)質問:
スタンフォードの講義「自然言語処理のためのディープラーニング」(講義2、2016年3月)で答えを見つけました。利用可能です こちら 。 46分で、リチャードソッチャーは、一般的な方法は2つのワードベクトルを平均することであると述べています。
2つのベクトルを組み合わせるさまざまな方法を経験的にテストする作業はわかりませんが、1)Wordベクトルを使用するだけで、2)Wordとコンテキストベクトルを合計するという非常に影響力の大きい論文があります。論文はこちら: https://www.aclweb.org/anthology/Q15-1016/ 。
最初に、メトリックはアナロジーおよび類似性テストであり、下流のタスクではないことに注意してください。
これは論文からの引用です:
sGNSとGloVeの両方について、w + cバリアント[Wordとコンテキストベクトルの合計]を試してみるのは価値があります。これは、適用が簡単で(再トレーニングが不要)、かなりの利益(およびかなりの損失)をもたらす可能性があります。 。
だからあなたはあなたがあなたの特定のタスクでそれを試してみる必要があるだけだと思います。
ちなみに、これはgensimからコンテキストベクトルを取得する方法に関する投稿です。 link
さまざまな代数演算子を使用してWordの埋め込みを組み合わせるという全体的なアイデアを得るために、少なくとも this の調査作業を少なくとも1回読む必要があります。それは私の研究でした。
このホワイトペーパーでは、Wordのベクトルを組み合わせる他の方法についても説明します。
要するに、L1正規化された平均ワードベクトルとワードの合計は、適切な表現です