問題タブ [language-model]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-model - 言語モデルの評価は未知の単語でどのように機能しますか?
そのため、言語モデルを構築するために、語彙サイズを超えてランク付けされた頻度の低い単語は「UNK」として置き換えられます。
私の質問は、「UNK」に基づいて確率を評価する言語モデルをどのように評価するかということです。テストセットでそのような言語モデルの困惑を評価したいとします。モデルにとって未知の単語について、得られる確率は未知の単語の「バッグ」に基づいて評価されます。
語彙サイズを 1 に設定すると、つまりすべての単語が不明な場合、この何もできない言語モデルの困惑度は 1 になるため、これは問題があるようです。
python - lm_1b トレーニング済みモデルから単語/文の確率を抽出する
CNN-LSTM ( https://github.com/tensorflow/models/tree/master/research/lm_1b ) を使用してトレーニングされた 1B 単語言語モデルのダウンロードに成功しました。文章または部分的な文章を入力できるようにしたいと考えています。文の後続の各単語の確率を取得します。
たとえば、「と言う動物」のような文がある場合、次の単語が「woof」と「meow」である確率を知りたいと思います。
以下を実行すると LSTM 埋め込みが生成されることを理解しています。
これによりlstm_emb_step_*.npy
、各ファイルが文内の各単語の LSTM 埋め込みであるファイルが生成されます。P(woof|An animal that says)
これらをトレーニング済みモデルの確率に変換して、対を比較できるようにするにはどうすればよいP(meow|An animal that says)
ですか?
前もって感謝します。
tensorflow - nce_loss() の Tensorflow num_classes パラメータ
ノイズ コントラスト推定についての私の理解では、単語の埋め込み (ネガティブ サンプル) からいくつかのベクトルをサンプリングし、それぞれの対数尤度を計算します。次に、ターゲット ワードの確率と各ネガティブ サンプル ワードの対数尤度の差を最大化します (したがって、これが正しければ、損失関数を最適化して、可能な限り 1)。
私の質問はこれです:
関数のnum_classes
パラメーターの目的は何ですか? nce_loss
私の最善の推測では、クラスの数が渡されるため、Tensorflow は負のサンプルが抽出された分布のサイズを認識しますが、変数自体から分布のサイズを推測できるため、これは意味をなさない可能性があります。 . そうでなければ、特に言語モデルが k + 1 個の予測 (対象単語の負のサンプル サイズ + 1) しか出力しない場合、可能なクラスの総数を知る必要がある理由が思いつきません。