CS 224 NノートLecture 12 Subword Models


0アウトライン

  • A tiny bit of linguistics
  • Purely character-level models
  • Subword-models: Byte Pair Encoding and friends
  • Hybrid character and word level models
  • FastText

  • 1人間の言語発音:音声(Phonetics)と音声学(Phonology)

  • 音声(Phonetics)は発音ストリームです.議論の余地のない「物理情報」です.
  • 音声学は、音素またはユニークな特徴の一部またはいくつかのユニークなカテゴリユニットから構成される.
  • は一般的なタイプ学であるが、特定の言語の実現
  • カテゴリ感知の最適証拠は音声学から来ている
  • 音素内の差異が縮小した.音素間拡大


  • 形態:語の一部

  • 伝統的に、私たちは語素を最小の意味ユニット
  • としています.
  • [[un [[fortun(e)] ROOT ate] STEM] STEM ly] WORD
  • 深さ学習:形態学研究は少ない.再帰的ニューラルネットワークを試みたのは(Luong,Socher,&Manning 2013
  • )

    形態学

  • 文字n-gramを使用する簡単な代替方法
  • Wickelphones(Rumelhart&McClelland 1986)
  • マイクロソフトのDSSM(Huang,He,Gao,Deng,Acero,Hect 2013)
  • ボリューム層の使用に関する考え方
  • は、より簡単に語素の多くのメリットを提供することができますか?

  • 2 Character-Level Model


    従来のword 2 vecとgloveは基本的にword単語を基本単位としていたが,この方式では辞書内の各語をベクトル表現することができたが,この方式では語彙ライブラリに単語が存在しない場合,すなわちOOV(out-of-vocabulary)が発生しやすく,単語のいくつかの文法上の修飾(morphology)処理もあまりよくなかった.自然な考え方はwordよりも基本的な構成を利用してモデルを構築し、これらの問題をよりよく解決することができることです.本節では,n-gram思想訓練word vectorモデル,すなわちFastTextを用いることを考える.

    word-level Model


    紹介する


    word単語を基本単位とすることに基づいて,この方式は辞書中の単語ごとにベクトル表現をうまく行うことができるが.

    に質問

  • OOVの問題です.
  • 問題の説明:単語が語彙ライブラリに存在しない場合が発生しやすい.
  • 解決方法:最適な語彙規模は、システムがより多くの語彙量を得ることができるようにする.

  • 誤配障害.
  • 問題の説明:正式でないスペルに遭遇した場合、システムは処理しにくい.
  • 解決方法:規則的な制約を矯正または追加する.

  • 翻訳の問題をする時、音訳の名前は比較的に難しいです.

  • Character-Level Model


    紹介する


    基本単位としてCharacterに基づいて、この方式は、ワードライブラリ内の各Charをベクトル表現するのに好適であるが.

    メリット

  • はWord-levelに存在するOOV問題を解決することができる.
  • 類似の単語のスペルは類似のembeddingを有する.

  • に質問


    シーケンスが長くなる
  • word-levelに比べてCharacter-levelの入力文が長くなり、データがまばらになり、遠距離への依存が学びにくくなり、訓練速度が低下した.
  • 解決法:Leeらは多層convとpoolingとhighway layerを用いてこの問題を解決することを提案した.この論文の構想は以下の通りである.
  • 入力された文字は、まずCharacter embeddingレイヤを通過し、character embeddings表現に変換される必要がある.
  • は異なるウィンドウサイズのボリューム照合入力文字のcharacter embeddings表現を用いてボリューム操作を行い、論文で採用したウィンドウのサイズはそれぞれ3、4、5、すなわちCharacter-levelの3-gram、4-gram、5-gramを学習する.
  • は、異なるボリューム層のボリューム結果をmax−pooling操作し、すなわち、その最も顕著な特徴をキャプチャしてsegment embeddingを生成する.
  • segment embeddingはHighway Network(Residual networkに似ているものもあり、深層ネットワークにおける情報の流通を便利にしているが、情報流量を制御するgateを加えているものもある).
  • 出力結果はさらに単層BiGRUを経て、最終的なencoder outputを得る.
  • 以降、decoderはAttentionメカニズムおよびcharacter level GRUを再利用してdecode
  • を行う.
    これによりWord-levelに存在するOOV問題を解決するだけでなく、文の3-gram、4-gram、5-gram情報をキャプチャすることができ、これも後期FastTextの考え方の雛形である.

    の意見を打診


    この問題に対して、言語を別の角度で表すことができるかどうかを考えてみましょう.英語を話すとき、すべての単語は音節で構成されていますが、人々は連続した音節を聞いてその意味を理解することができますが、音節は明らかに語の粒度よりも細いです.

    3 Subword Model


    引用する


    word-level ModelとCharacter-level Modelにはそれぞれメリットとデメリットがありますが、word-level ModelとCharacter-levelの間に介在するModelを採用できますか?その考えに対してSubword Modelがあった.

    Subword Model


    カテゴリ


    Subword Modelは、Byte Pair Encoding(BPE)とSentencePieceに分けることができる.
    Byte Pair Encoding(BPE)
    基本的な考え方
    BPEは圧縮アルゴリズムの1つに属し、その主な考え方は、よく現れるbyte pairを新しいbyteで置き換えることであり、例えば(‘A’,‘B’)が常に順番に現れると仮定すると、それらを新しいフラグ’AB’で置き換えることである.
    具体的な操作
    テキストライブラリが与えられ、初期語彙ライブラリにはすべての単一の文字しか含まれておらず、語彙ライブラリのサイズが設定した目標に達するまで、出現頻度が最も高いn-gram pairを新しいn-gramとして語彙ライブラリに追加し続けます.
    例を挙げて説明する
    テキスト・ライブラリに表示される単語とその出現回数を次のように仮定します.
        {'l o w': 5, 'l o w e r': 2, 'n e w e s t': 6, 'w i d e s t': 3}
    

    初期語彙ライブラリは次のとおりです.
        { 'l', 'o', 'w', 'e', 'r', 'n', 'w', 's', 't', 'i', 'd'}
    

    出現頻度が最も高いngram pairは(‘e’,‘s’)9回であるため,‘es’を新しい語彙として語彙ライブラリに追加し,‘es’を全体として語彙ライブラリに出現させるため,
    この場合、テキストライブラリは
        {'l o w': 5, 'l o w e r': 2, 'n e w es t': 6, 'w i d es t': 3}
    

    このとき最も頻度の高いngram pairは(‘es’,‘t’)9回であり,‘est’を語彙ライブラリに追加し,テキストライブラリを
       {'l o w': 5, 'l o w e r': 2, 'n e w est': 6, 'w i d est': 3}
    

    新しい出現頻度が最も高いngram pairは(‘l’,‘o’)7回であり,‘lo’を語彙ライブラリに追加し,テキストライブラリを
       {'lo w': 5, 'lo w e r': 2, 'n e w est': 6, 'w i d est': 3}
    

    このようにして、語彙ライブラリのサイズが設定した目標に達するまで押します.この例では語彙量が小さく,語彙量が大きい実際の状況では,BPEによってsubword unitに基づく小さな語彙ライブラリを徐々に構築することで,すべての語彙を表すことができる.
    BPE誘導体wordpiece model
    GoogleのNMTモデルはBPEの変種を用いてwordpiece modelと呼ばれ、BPEではn-gram countを利用して語彙ライブラリを更新しているが、wordpiece modelでは言語モデル確率を最大化する貪欲アルゴリズムを用いている.すなわち、新しいn-gramを選択する際にperplexityを最も減少させるngramを選択している.
    sentencepiece model
    基本的な考え方
    sentencepiece modelは、pre-tokenizeを単語にすることなく、語間の空白もタグとして扱い、sentenceを直接処理することができる.

    4 Hybrid Model


    基本的な考え方


    ほとんどの場合、word levelモデルを採用しますが、OOVに遭遇した場合にのみcharacter levelモデルを採用します.
    その構造を下図に示すように、
    文の「cute」については、OOV語彙に属し、この問題を解決するためにCharacter-level表現を構築する必要があるが、decode中にOOVの特殊な記号表現に遭遇した場合、character-levelのdecodeを用いて復号する必要がある.
    この訓練過程はend 2 endであるが,損失関数はword部分とcharacter level部分の損失関数の重み付け重畳である.

    5 FastText


    引用する


    先に,word−levelとcharacter−levelの長所と短所を紹介し比較し,その特徴に基づいてword−level ModelとCharacter−levelの間に介在するModel−Subword Modelを提案した.
    では、上記のsubwordのような考え方を取って、より良いword embeddingを生み出すことができますか?
    FAIRのFastTextは,subwordを用いてword 2 vecを拡張し,embeddingを効率的に構築する.

    基本思想.


    各wordはbag of character n-gramおよび単語自体の集合として表され、例えばwhereという単語とn=3の場合、「」は単語の開始と終了を表す特殊なタグとして表される.
    ワードw wに対してそのn-gram集合用G w G_w Gwは、n-gram毎のベクトルを表すと、各単語はそのすべてのn-gramのベクトル和の形式で表すことができ、center word wとcontext word cの点数は
    その後,古典的なword 2 vecアルゴリズムに従ってこれらの特徴ベクトルを訓練することができる.
    この方式はword 2 vecの計算速度が速いという利点を維持し,training dataで見たことのないoov wordの表示問題に遭遇することを解決し,一挙両得といえる.