CS 224 NノートLecture 12 Subword Models
0アウトライン
1人間の言語発音:音声(Phonetics)と音声学(Phonology)
形態:語の一部
形態学
2 Character-Level Model
従来のword 2 vecとgloveは基本的にword単語を基本単位としていたが,この方式では辞書内の各語をベクトル表現することができたが,この方式では語彙ライブラリに単語が存在しない場合,すなわちOOV(out-of-vocabulary)が発生しやすく,単語のいくつかの文法上の修飾(morphology)処理もあまりよくなかった.自然な考え方はwordよりも基本的な構成を利用してモデルを構築し、これらの問題をよりよく解決することができることです.本節では,n-gram思想訓練word vectorモデル,すなわちFastTextを用いることを考える.
word-level Model
紹介する
word単語を基本単位とすることに基づいて,この方式は辞書中の単語ごとにベクトル表現をうまく行うことができるが.
に質問
Character-Level Model
紹介する
基本単位としてCharacterに基づいて、この方式は、ワードライブラリ内の各Charをベクトル表現するのに好適であるが.
メリット
に質問
シーケンスが長くなる
これにより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の表示問題に遭遇することを解決し,一挙両得といえる.