タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

言語モデルに関するyukinoiのブックマーク (2)

  • 言語モデルの性能が、実装により異なる件を解決する

    Deliver the ready-to-train data to your NLP model. - chakki-works/chariot 言語モデルの実装パターン「言語モデルの実装」として紹介されることの多い実装は、主に2つあります。1つがバッチ型、もう一つがシーケンシャル型です(このタイプは私が名付けたので、一般的ではありません)。そして、バッチ型の性能は素直に実装するとシーケンシャル型に大きく劣ります。節ではまず実装の違い、次節で性能差の原因について解説します。 バッチ型のモデルは、固定長の系列から予測を行うタイプの実装です。特にKerasによる言語モデルの実装ではこのタイプが使われていることが多いです。一定長の系列を与えて、系列に続く単語(文字)を予測させる形です。図にすると以下のようになります。 バッチ型の言語モデル実装コードにすると、概ね以下のような実装になります。b

    言語モデルの性能が、実装により異なる件を解決する
  • Kneser-Ney smoothingで遊ぶ - Negative/Positive Thinking

    はじめに 100-nlp-papersで紹介されてた一番最初の論文に、クナイザーネイスムージングのスッキリな実装が載っていたので書いてみる。 Joshua Goodman: A bit of progress in language modeling, MSR Technical Report, 2001. Kneser-Ney smoothingとは 言語モデルのスムージング(平滑化)手法の一種で、高い言語モデル性能を実現している ニューラル言語モデルでも比較によく使われる アイデアとしては「(n-1)-gramが出現した文脈での異なり数」を使うこと 頻度を使うと、高頻度なn-gramではその(n-1)-gramも多くなってしまうため、特定文脈でしかでないような(n-1)-gramに対しても高い確率値ことになっていて、歪んだ結果になってしまう 「San Francisco」の頻度が多いと

    Kneser-Ney smoothingで遊ぶ - Negative/Positive Thinking
  • 1