What changes have been experienced in language models
言語モデルの概要
言語モデルは本質的にある問いに答えるものです。それは、出現する文が妥当かどうかということです。
歴史的な発展において、言語モデルは専門家用語規則モデル(1980 年代まで)、統計言語モデル(2000 年代まで)、ニューラルネットワーク言語モデル(現在まで)を経てきました。
専門家用語規則モデルとは、コンピュータの黎明期にコンピュータプログラミング言語の発展に伴って導出された自然言語の文法規則です。しかし、自然言語自体の多様性と口語性、時間と空間に伴う変化、そして人間の強力な誤り訂正能力により、文法規則は急速に膨張し、持続不可能となりました。
統計言語モデルはシンプルな手法を用い、大量のコーパスを加えることでより良い結果を生成します。統計言語モデルは文の確率分布をモデル化します。統計的に言えば、確率の高い文ほど確率の低い文よりも妥当です。実装では、前述のテキストに基づいて文の次の単語を予測します。予測された単語が次の単語と一致する場合(前述のテキストを前提としたその単語の出現確率が他の単語よりも高い場合)、前述のテキストとこの単語の組み合わせの出現確率は、前述のテキストと他の単語の組み合わせの確率よりも大きくなり、前述のテキストとこの単語の組み合わせの方がより妥当となります。
統計言語モデルを基盤として、ニューラルネットワーク言語モデルはネットワークの重層化と特徴の逐層抽出を通じて、形態素だけでなく、類似性、統語、意味、語用など多様な側面を表現できます。
言語モデルは予測、誤り訂正、推論など、さまざまな NLP タスクに使用できます。本記事では、統計および(ディープラーニング)ニューラルネットワークにおける言語モデルの発展に焦点を当てます。
統計言語モデル
統計言語モデルは統計的な観点から文の確率分布を予測するもので、通常、大量のデータを必要とします。ある文について、シーケンス確率は連鎖律に従って計算され、文全体の確率を求めることができます。
そこで、各単語の出現確率は統計計算によって求められます。
このアプローチには以下の問題があります。
n-gram
n-gram は最も一般的な統計言語モデルです。その基本的な考え方は、テキストの内容に対してサイズ N のスライドウィンドウ操作を実行し、長さ N のフレーズ部分シーケンスを形成し、すべてのフレーズ部分シーケンスの出現頻度をカウントすることです。直感的には、n-gram は文の長さを短縮し、先行する n-1 単語のみを考慮します。なお、ここでの実際の意味は文の先行する単語の確率です。実際のアプリケーションでは、開始文字を追加する必要があります。たとえば、bigram の場合はそのようになります。同様に、文の末尾にも終了文字を追加する必要があります。その意義は、文中の任意の長さの部分シーケンスをモデル化することです。以下に少数の例で説明します。次のようなコーパスがあるとします。
ネズミは気持ち悪い、ネズミは醜い、あなたは妻を愛している、私はネズミが嫌いだ。
「私は古い」の次の単語を予測したいとします。bigram と trigram でそれぞれ予測を行います。
bigram では、P(w | 古い) を計算する必要があります。統計によると、「ネズミ」は 3 回出現し、「妻」は 1 回出現しました。最尤推定により、P(ネズミ | 古い) = 0.75、P(妻 | 古い) = 0.25 となり、bigram で予測した文全体は「私はネズミが大好きだ」となります。
trigram では、P(w | 愛する古い) を計算する必要があります。統計によると、「愛する妻」のみが 1 回出現しており、最尤推定により P(w | 愛する古い) = 1 が得られます。したがって、trigram で予測した文全体は「私は妻を愛している」となります。明らかに、この手法で予測された結果の方がより妥当です。
上記の例は、n が増加するにつれて、より多くの先行情報を持ち、次の単語をより正確に予測できることを証明しています。しかし、これによりデータが n の増加とともにさらに疎になり、多くの予測確率結果が 0 になるという問題も生じます。ゼロ確率問題に直面した場合、平滑化によって n-gram の疎性問題を緩和できます。
n-gram に平滑化が必要な根本的な理由はデータの疎性であり、データの疎性は自然言語の性質によって決定されます。そのような疎性が存在する場合、常に平滑化を使用して問題を緩和し、性能を向上させることができます。直感的に言えば、十分なデータがあり疎性が問題でないと考えられる場合、より多くのパラメータを持つ複雑なモデル(n のサイズを増やすなど)を使用することで常に性能を向上させることができます。n が増加すると、モデルのパラメータ空間は指数的に増大し、疎性が再び問題となります。この時、適切な平滑化手法を通じてより良い性能を得ることができます。
n-gram における平滑化
限られたデータセットでは、高頻度イベントの統計から得られる確率はより信頼性が高く、頻度の低いイベントから得られる確率は信頼性に欠けます。この現象は高次元空間でより顕著です。トレーニングセットの確率分布をそのままテストセットの分布として使用すると、トレーニングセットに存在しない「未登録語」の確率が 0 となり、これは明らかに認識と矛盾します。テストセットには未登録語が存在する可能性があるからです。見たことがないからといって存在しないわけではありません。平滑化が解決する問題は、トレーニングセットの頻度分布に基づいて、テストセットにおける「未登録語」の確率分布を推定し、テストセット上でより理想的な確率分布の推定を得ることです。次に、よく使用される平滑化手法を紹介します。
ラプラス平滑化
数式に示すように、ラプラス平滑化はすべてのイベントの頻度に 1 を加えます。ラプラス平滑化は最も直感的で理解しやすい平滑化手法です。イベントの頻度に 1 を加えることは、高頻度イベントの確率に対して基本的に無視できる影響しか与えません。同時に、未登録語の確率計算の問題も解決します。
しかし、ラプラス平滑化で直接 1 を加えることは比較的「粗い」平滑化手法でもあります。単純かつ粗放な 1 の加算は、データ分布に大きな影響を与えることもあれば、無視できる場合もあります。ラプラス平滑化は未知イベントの確率予測をすべて同等に扱いますが、これは明らかに不合理です。加法平滑化はこの点を改善し、ハイパーパラメータを通じてラプラス平滑化の汎用性と効果を向上させています。
加法平滑化
加法平滑化では、次の仮定を置きます。各 n-gram イベントが δ 回発生したと仮定します。一般的に 0 < δ ≤ 1 で、δ = 1 の場合はラプラス平滑化と等価であり、δ < 1 の場合は未登録語の確率分布の重みが減少することを意味します。この手法はラプラス平滑化の汎用性を向上させますが、実際の効果については多くの人から批判されています。
Good-Turing 平滑化
注:一般的に、1 回出現する単語の数は 2 回出現する単語の数よりも多く、2 回出現する単語の数は 3 回出現する単語の数よりも多いという法則があります。これを Zipf の法則と呼びます。
n-gram の概要
n-gram には多くの利点があります。まず、直感的な自然言語理解・処理方法であり、パラメータ空間を最適化し、解釈可能性が高いことです。最初の n-1 単語のすべての情報を損失なく保持しています。さらに、計算ロジックがシンプルであるという利点もあります。しかし同時に、n-gram には本質的な欠陥もあります。n-gram は長期的な依存関係を確立できず、n が大きすぎる場合、データの疎性によって依然として深刻な影響を受けます。実際のアプリケーションでは、bigram または trigram のみが使用されることがほとんどです。n-gram は頻度統計に基づいており、十分な汎化能力を持ちません。そのため、ニューラルネットワーク言語モデルが従来の統計的自然言語モデルに徐々に取って代わり、主流となりました。次に、ニューラルネットワーク言語モデルについて紹介します。
ニューラルネットワーク言語モデル(2003 年)
上図に示すように、文の単語は one-hot 形式で入力され、共有行列 C と乗算してインデックス位置の単語ベクトルを取得します。
非線形層を通じて、
全結合ソフトマックスに接続し、次の単語の確率分布を取得します。
n-gram と比較して、NNLM はすべての確率値を事前に計算して保存する必要がなく、関数によって計算されます。単語ベクトルの加算により、単語の類似性(すなわち意味的・統語的特徴)を表現できます。ニューラルネットワークを使用して最適パラメータを求め、ソフトマックスを使用することで、n-gram と比較してシーケンス単語の結合確率をより滑らかに予測でき、未登録語を含む文に対する予測効果は非常に優れています。ただし、計算量は依然として大きく、主な計算量は非線形層 h と出力層 z の行列 W、U の演算およびソフトマックス計算に集中しています。
RNN 言語モデル(2010 年)
n-gram 言語モデルの問題点は、文中の長期依存関係を捉える能力が非常に限られていることです。NNLM は入力データに固定長(一般的に 5 〜 10)を要求します。直感的には、ニューラルネットワーク符号化を使用する n-gram モデルでは長期依存関係の問題を解決できません。言語モデルタスクはシーケンス予測問題です。RNN はシーケンス問題を解決するために自然に使用されるモデルです。2010 年に Mikolov が RNNLM を提案しました。RNNLM の歴史的情報は文中の先行するすべての単語であり、より長い歴史的情報を捉えることができます。RNNLM は後の ELMo の提案に対して啓発的な効果を持っています。
図に示すように、RNNLM の出力は次の位置の単語予測確率分布 output(t) です。入力は 2 つの部分から構成され、現在位置の単語の単語ベクトル input(t) と時刻 t-1 の隠れ状態 context(t-1) を加算し、隠れ層の活性化関数はシグモイドです。
直感的に言えば、RNN ネットワークはコンテキストウィンドウの制限を打破し、隠れ層の状態を使用してすべての歴史的コンテキスト情報を要約します。NNLM と比較してより長い依存関係を捉えることができ、実験でもより良い結果を達成しています。RNNLM はハイパーパラメータが少なく、汎用性も高いですが、RNN の勾配消散問題により、より長距離の依存関係を捉えることは困難です。
CBOW と Skip-gram(2013 年)
現在、単語ベクトルのために最も人気のある言語モデルツールは Mikolov が提案した word2vec です。word2vec のネットワーク構造は NNLM と似ており、主な違いはトレーニング方法にあります。CBOW は以下の通りです。
これら 2 つの手法は NNLM と大きく異なります。NNLM の主なタスクは文の確率を予測することであり、単語ベクトルは前述の情報のみを使用する中間生成物です。word2vec は単語の分散表現を獲得するために生まれており、文のコンテキストに基づいて単語の意味的・統語的情報を学習します。
コンテキスト情報を組み合わせたネットワーク構造に加えて、word2vec のもう 1 つの大きな貢献は計算の最適化にあります。word2vec は非線形隠れ層を削除し、CBOW は入力をソフトマックスに直接加算して予測することで、隠れ層の大量の計算を削減しています。同時に、ソフトマックスの計算も階層的ソフトマックスおよびネガティブサンプリングを通じて大幅に最適化されています。
階層的ソフトマックス
従来のニューラルネットワークのソフトマックス出力とは異なり、word2vec の階層的ソフトマックス構造は出力層をハフマン木に変更しています(ハフマン木はトレーニング中に事前構築され、各エッジはランダムに初期化されたベクトルであり、隠れ層の出力はシグモイド確率を計算します)。図の白いリーフノードは語彙内のすべての |V| 個の単語を表し、黒いノードは非リーフノードを表しており、各リーフノードはルートノードからの一意のパスに対応しています。目的はこのパスの確率を最大化することです。すなわち、最終出力の条件付き確率が最大であると仮定すると、ルートノードからこのリーフノードまでのパス上のノードのベクトルのみを更新すればよく、すべての単語の出現確率を更新する必要がないため、モデルトレーニングの更新時間を大幅に短縮できます。
出力確率を計算する際、ルートノードからリーフノードまでの確率の積を計算する必要があります。
ネガティブサンプリング
単語ベクトルのファインチューニングは必要か
直感的に言えば、word2vec は NLP ディープラーニングの標準構成となっており、事前学習済み単語ベクトルの品質はモデルの効果を直接左右します。そのモデルネットワーク構造により、word2vec は大規模データセットでの事前学習が非常に容易です。大量コーパス事前学習 + タスクデータファインチューニングという半教師あり手法が台頭し、タスクのラベル付きデータが少ない場合に明確な優位性を示しています。TextCNN 論文では、単語ベクトルの 4 つの形態が比較されました。
CNN-rand:すべての単語ベクトルはランダムに初期化され、トレーニング中に更新されます。
CNN-static:単語ベクトルは word2vec で事前学習され、特徴ベースの方式でトレーニング中は変更されず、他のパラメータのみが学習されます。
CNN-non-static:事前学習済み単語ベクトルはトレーニング中にファインチューニングされます。
CNN-multichannel:2 つのチャンネルを持ち、1 つは特徴ベース、もう 1 つはファインチューニング方式です。word2vec の結果は初期化時に直接割り当てられ、各フィルターは 2 つのチャンネルを使用しますが、トレーニング中の誤差逆伝播はファインチューニングチャンネルのみで実行されます。
実験結果から、non-static 手法はほとんどの場合 static 手法よりわずかに優れており、static 手法は rand 手法(単語埋め込みプロセスでのランダム符号化を指す)より優れていることがわかります。純粋な static および non-static 手法と比較して、static と non-static を組み合わせた multichannel 手法は、より小規模なデータセットでより優れた性能を発揮します(この混合手法は妥協的な考え方を反映しているためです。すなわち、ファインチューニングされた単語ベクトルが元の単語ベクトルから大きく乖離しないようにしつつ、ある程度の動的変化の余地も確保したいということです)。
GloVe(2014 年)
Word2Vec が先行する中、GloVe はより複雑でユーザーは明らかに少ないですが、同時に実験では GloVe が一部のシナリオでより効果的であることが示されており、GloVe の考え方は依然として学ぶ価値があります。
GloVe は 2014 年に提案されました。当時、単語ベクトルの生成方法には 2 つの主流があり、1 つは行列分解に基づく方法、もう 1 つは浅いスライドウィンドウに基づく方法でした。GloVe は両者の利点を 1 つに統合しました。GloVe は統計言語モデルに属し、主な最適化ポイントは共起行列を導入し、単語ベクトル間の類似性を使用してグローバル共起数を近似することです。本質は共起行列の次元削減です。
実際には、GloVe と Word2Vec にはそれぞれの利点があり、特定のタスクにどの単語ベクトルを使用すべきかは依然として実験を通じて結論を出す必要があります。同時に、GloVe はより優れた並列処理をサポートし、トレーニングにかかる時間は短くなる傾向がありますが、メモリ消費は多くなります。
ELMo(2018 年)
ELMo は事前学習で単語に対応する埋め込み層と双方向 LSTM 層を取得し、これらのベクトルは下流タスクで使用されます。
下流タスクを実行する際、事前学習済みネットワークから単語の埋め込み層と多層双方向 LSTM 層を取得し、正規化重み付けを経てベクトルに変換して下流タスクに入力します。word2vec の静的単語ベクトルとは異なり、ELMo は埋め込み層で単語ベクトルを取得し、2 層の LSTM ネットワークを通じてコンテキスト情報を追加し、動的な単語ベクトルを生成します。
ELMo は単語の単語ベクトルだけでなく、2 層の双方向 LSTM ネットワークも学習しており、実験では下層の LSTM が語彙の統語的情報を捉え、上層の LSTM ベクトルが語彙の意味的情報を捉えることが示されています。LSTM ネットワークによる基底単語埋め込みの動的調整を通じて、多義語の機能を実現しています。
GPT(生成型事前学習)(2018 年)
2018 年に提案された GPT は、正式名称を生成型事前学習といい、多层トランスフォーマーに基づく単方向言語モデルです。GPT は一般的に 2 つの段階を含みます。まず、言語モデルの特性を利用して大量のコーパスで事前学習を行います。事前学習完了後、ファインチューニングモデルを通じて下流タスクを解決します。下図に示すように、GPT は多様なタスクタイプに使用できます。
一見すると、GPT は ELMo と非常に似ていますが、主な違いは以下の通りです。
LSTM の代わりにトランスフォーマーを使用して特徴を抽出します。トランスフォーマーは NLP 分野で現在最も強力な特徴抽出器であり、より十分に意味的特徴を抽出できます。
単方向言語モデルを堅持します。ELMo の注目すべき特徴はコンテキスト情報を使用して単語ベクトルを表現することですが、GPT は前述の情報のみを使用して後続を予測する単方向言語モデルを使用します。この選択は人間の読み方に合致していますが、一定の制約もあります。たとえば、読解では通常、前後の文脈を組み合わせて判断する必要があり、前述のみを考慮すると事前学習で多くの情報が失われます。(注:これは BERT で最適化されます。)
事前学習後の GPT の使用方法も ELMo とは異なります。ELMo は特徴ベースの事前学習方式ですが、GPT は事前学習後にファインチューニングを実行する必要があります(画像における転移学習の方式と同様です)。
GPT は 12 の NLP タスクのうち 9 つで SOTA を達成し、その効果は驚くべきものです。GPT は言語モデルの重要な構成要素であり、その後の言語モデルの開発に大きな影響を与えました。
BERT(2018 年)
ELMo は双方向結合による単語ベクトルの融合でコンテキストを表現し、GPT は単方向言語モデルを使用してベクトル表現を取得します。2018 年に提案された BERT の GPT に対する改良は、NNLM から CBOW への改良から着想を得ており、タスクを文中の次の単語を予測することから、文中から単語を切り取りコンテキストを使用してその単語を予測することに変更し、同時に次の文かどうかを予測するタスクを追加しました。モデル構造は GPT の考え方に従い、トランスフォーマーの自己注意機構とフィードフォワードネットワークの重層化を使用し、トランスフォーマーの強力な特徴抽出能力を最大限に活用しています。
GPT と比較して、ファインチューニング時に開始記号、終了記号、区切り記号を追加する必要があるのに対し、BERT はトレーニング中にこれらを追加することで、事前学習とファインチューニングの入力に差異がないことを保証し、事前学習の可用性を高めています。
BERT は近年の NLP の進歩の集大成(特徴抽出器、言語モデル)であり、大量の教師なしデータを最大限に活用し、言語学的知識を特定のタスクに暗黙的に導入しています。
GPT-2(2019 年)
2019 年に提案された GPT-2 のテキスト生成の効果は驚くべきものです。ここでは GPT-2 について簡単に議論し、その最適化ポイントに焦点を当てます。
データ品質をフィルタリングし、より高品質なデータを使用する。
データの選択範囲を広くし、複数の分野を含む。
より大きなデータ量を使用する。
モデルを拡大しパラメータを増加させる(15 億パラメータ)。これは BERT large(3 億パラメータ)の 5 倍のパラメータ数と 2 倍の深さであり、ディープニューラルネットワークの強力な表現力を体現しています。
トランスフォーマーネットワーク構造をファインチューニングする。層正規化の位置を調整し、ネットワークの深さに応じて初期化の一部を調整し、一部のハイパーパラメータを調整する。
たとえば、論文のタイトル「Language Models are Unsupervised Multitask Learners」(教師なしマルチタスク学習者。このタイトルは言語モデルの本質を非常にうまく説明しています)のように、GPT-2 は言語モデルの自然的な教師なし・マルチタスク特徴をより強調しています。これらは現在の NLP 分野で最も注目すべき 2 つのトレンドでもあります。
直感的に言えば、GPT-2 はより多く、より高品質で、より包括的なデータを使用し、モデルの複雑性を高めています。それに加えて、GPT-2 には多くの深い意味合いが含まれており、研究に値します。
興味深いことに、GPT-2 は依然として単方向言語モデルの使用を堅持しています。BERT 論文で得られた結論は「双方向言語モデルが最大の改善をもたらし、次に次の文の予測が一部のタスクに大きな影響を与える」です。そうであるなら、なぜ GPT-2 は依然として単方向言語モデルの使用を堅持するのでしょうか。この問題は GPT-2 の頑固な見解のように見えますが、言語モデルの根本的な考え方に関わっている可能性があります。すなわち、言語モデルの本質とは何か。言語モデルは単方向であるべきか。BERT のマスク操作は一定の制約をもたらすのか。これが GPT-2 のテキスト生成タスクが非常に優れている理由なのか。GPT-2 はこれらの問題を解決するために単方向言語モデルの使用を堅持している可能性があります。ここでの今後の深い議論に期待し、GPT-3 でより完全な説明が得られることを期待します。
同時に、GPT-2 のパラメータ量の多さにより、同等のパラメータ量を持つ BERT と比較してほとんどのタスクでの効果は劣りますが、それでも深い探求に値します。
概要
オープンソースデータセット MSRA 上で LSTM+CRF と BERT+CRF の 2 つのモデルの効果を比較したところ、BERT に明らかな優位性がありました。
私たちの対話システムのスロット抽出タスクでは、現在の限られたラベル付きデータを使用して、BERT+CRF モデルで精度 86.1%、再現率 88.9%、F1 値 87.5% を達成しました。
意図分類タスクでは、BERT+FST モデルを使用して精度 69.71%、再現率 73.8%、F1 値 71.7% を達成しました。
現在、BERT+CRF モデルを使用した分類とスロット抽出のマルチタスク統合モデルを検証中です。
言語モデルは本質的にある問いに答えるものです。それは、出現する文が妥当かどうかということです。
歴史的な発展において、言語モデルは専門家用語規則モデル(1980 年代まで)、統計言語モデル(2000 年代まで)、ニューラルネットワーク言語モデル(現在まで)を経てきました。
専門家用語規則モデルとは、コンピュータの黎明期にコンピュータプログラミング言語の発展に伴って導出された自然言語の文法規則です。しかし、自然言語自体の多様性と口語性、時間と空間に伴う変化、そして人間の強力な誤り訂正能力により、文法規則は急速に膨張し、持続不可能となりました。
統計言語モデルはシンプルな手法を用い、大量のコーパスを加えることでより良い結果を生成します。統計言語モデルは文の確率分布をモデル化します。統計的に言えば、確率の高い文ほど確率の低い文よりも妥当です。実装では、前述のテキストに基づいて文の次の単語を予測します。予測された単語が次の単語と一致する場合(前述のテキストを前提としたその単語の出現確率が他の単語よりも高い場合)、前述のテキストとこの単語の組み合わせの出現確率は、前述のテキストと他の単語の組み合わせの確率よりも大きくなり、前述のテキストとこの単語の組み合わせの方がより妥当となります。
統計言語モデルを基盤として、ニューラルネットワーク言語モデルはネットワークの重層化と特徴の逐層抽出を通じて、形態素だけでなく、類似性、統語、意味、語用など多様な側面を表現できます。
言語モデルは予測、誤り訂正、推論など、さまざまな NLP タスクに使用できます。本記事では、統計および(ディープラーニング)ニューラルネットワークにおける言語モデルの発展に焦点を当てます。
統計言語モデル
統計言語モデルは統計的な観点から文の確率分布を予測するもので、通常、大量のデータを必要とします。ある文について、シーケンス確率は連鎖律に従って計算され、文全体の確率を求めることができます。
そこで、各単語の出現確率は統計計算によって求められます。
このアプローチには以下の問題があります。
n-gram
n-gram は最も一般的な統計言語モデルです。その基本的な考え方は、テキストの内容に対してサイズ N のスライドウィンドウ操作を実行し、長さ N のフレーズ部分シーケンスを形成し、すべてのフレーズ部分シーケンスの出現頻度をカウントすることです。直感的には、n-gram は文の長さを短縮し、先行する n-1 単語のみを考慮します。なお、ここでの実際の意味は文の先行する単語の確率です。実際のアプリケーションでは、開始文字を追加する必要があります。たとえば、bigram の場合はそのようになります。同様に、文の末尾にも終了文字を追加する必要があります。その意義は、文中の任意の長さの部分シーケンスをモデル化することです。以下に少数の例で説明します。次のようなコーパスがあるとします。
ネズミは気持ち悪い、ネズミは醜い、あなたは妻を愛している、私はネズミが嫌いだ。
「私は古い」の次の単語を予測したいとします。bigram と trigram でそれぞれ予測を行います。
bigram では、P(w | 古い) を計算する必要があります。統計によると、「ネズミ」は 3 回出現し、「妻」は 1 回出現しました。最尤推定により、P(ネズミ | 古い) = 0.75、P(妻 | 古い) = 0.25 となり、bigram で予測した文全体は「私はネズミが大好きだ」となります。
trigram では、P(w | 愛する古い) を計算する必要があります。統計によると、「愛する妻」のみが 1 回出現しており、最尤推定により P(w | 愛する古い) = 1 が得られます。したがって、trigram で予測した文全体は「私は妻を愛している」となります。明らかに、この手法で予測された結果の方がより妥当です。
上記の例は、n が増加するにつれて、より多くの先行情報を持ち、次の単語をより正確に予測できることを証明しています。しかし、これによりデータが n の増加とともにさらに疎になり、多くの予測確率結果が 0 になるという問題も生じます。ゼロ確率問題に直面した場合、平滑化によって n-gram の疎性問題を緩和できます。
n-gram に平滑化が必要な根本的な理由はデータの疎性であり、データの疎性は自然言語の性質によって決定されます。そのような疎性が存在する場合、常に平滑化を使用して問題を緩和し、性能を向上させることができます。直感的に言えば、十分なデータがあり疎性が問題でないと考えられる場合、より多くのパラメータを持つ複雑なモデル(n のサイズを増やすなど)を使用することで常に性能を向上させることができます。n が増加すると、モデルのパラメータ空間は指数的に増大し、疎性が再び問題となります。この時、適切な平滑化手法を通じてより良い性能を得ることができます。
n-gram における平滑化
限られたデータセットでは、高頻度イベントの統計から得られる確率はより信頼性が高く、頻度の低いイベントから得られる確率は信頼性に欠けます。この現象は高次元空間でより顕著です。トレーニングセットの確率分布をそのままテストセットの分布として使用すると、トレーニングセットに存在しない「未登録語」の確率が 0 となり、これは明らかに認識と矛盾します。テストセットには未登録語が存在する可能性があるからです。見たことがないからといって存在しないわけではありません。平滑化が解決する問題は、トレーニングセットの頻度分布に基づいて、テストセットにおける「未登録語」の確率分布を推定し、テストセット上でより理想的な確率分布の推定を得ることです。次に、よく使用される平滑化手法を紹介します。
ラプラス平滑化
数式に示すように、ラプラス平滑化はすべてのイベントの頻度に 1 を加えます。ラプラス平滑化は最も直感的で理解しやすい平滑化手法です。イベントの頻度に 1 を加えることは、高頻度イベントの確率に対して基本的に無視できる影響しか与えません。同時に、未登録語の確率計算の問題も解決します。
しかし、ラプラス平滑化で直接 1 を加えることは比較的「粗い」平滑化手法でもあります。単純かつ粗放な 1 の加算は、データ分布に大きな影響を与えることもあれば、無視できる場合もあります。ラプラス平滑化は未知イベントの確率予測をすべて同等に扱いますが、これは明らかに不合理です。加法平滑化はこの点を改善し、ハイパーパラメータを通じてラプラス平滑化の汎用性と効果を向上させています。
加法平滑化
加法平滑化では、次の仮定を置きます。各 n-gram イベントが δ 回発生したと仮定します。一般的に 0 < δ ≤ 1 で、δ = 1 の場合はラプラス平滑化と等価であり、δ < 1 の場合は未登録語の確率分布の重みが減少することを意味します。この手法はラプラス平滑化の汎用性を向上させますが、実際の効果については多くの人から批判されています。
Good-Turing 平滑化
注:一般的に、1 回出現する単語の数は 2 回出現する単語の数よりも多く、2 回出現する単語の数は 3 回出現する単語の数よりも多いという法則があります。これを Zipf の法則と呼びます。
n-gram の概要
n-gram には多くの利点があります。まず、直感的な自然言語理解・処理方法であり、パラメータ空間を最適化し、解釈可能性が高いことです。最初の n-1 単語のすべての情報を損失なく保持しています。さらに、計算ロジックがシンプルであるという利点もあります。しかし同時に、n-gram には本質的な欠陥もあります。n-gram は長期的な依存関係を確立できず、n が大きすぎる場合、データの疎性によって依然として深刻な影響を受けます。実際のアプリケーションでは、bigram または trigram のみが使用されることがほとんどです。n-gram は頻度統計に基づいており、十分な汎化能力を持ちません。そのため、ニューラルネットワーク言語モデルが従来の統計的自然言語モデルに徐々に取って代わり、主流となりました。次に、ニューラルネットワーク言語モデルについて紹介します。
ニューラルネットワーク言語モデル(2003 年)
上図に示すように、文の単語は one-hot 形式で入力され、共有行列 C と乗算してインデックス位置の単語ベクトルを取得します。
非線形層を通じて、
全結合ソフトマックスに接続し、次の単語の確率分布を取得します。
n-gram と比較して、NNLM はすべての確率値を事前に計算して保存する必要がなく、関数によって計算されます。単語ベクトルの加算により、単語の類似性(すなわち意味的・統語的特徴)を表現できます。ニューラルネットワークを使用して最適パラメータを求め、ソフトマックスを使用することで、n-gram と比較してシーケンス単語の結合確率をより滑らかに予測でき、未登録語を含む文に対する予測効果は非常に優れています。ただし、計算量は依然として大きく、主な計算量は非線形層 h と出力層 z の行列 W、U の演算およびソフトマックス計算に集中しています。
RNN 言語モデル(2010 年)
n-gram 言語モデルの問題点は、文中の長期依存関係を捉える能力が非常に限られていることです。NNLM は入力データに固定長(一般的に 5 〜 10)を要求します。直感的には、ニューラルネットワーク符号化を使用する n-gram モデルでは長期依存関係の問題を解決できません。言語モデルタスクはシーケンス予測問題です。RNN はシーケンス問題を解決するために自然に使用されるモデルです。2010 年に Mikolov が RNNLM を提案しました。RNNLM の歴史的情報は文中の先行するすべての単語であり、より長い歴史的情報を捉えることができます。RNNLM は後の ELMo の提案に対して啓発的な効果を持っています。
図に示すように、RNNLM の出力は次の位置の単語予測確率分布 output(t) です。入力は 2 つの部分から構成され、現在位置の単語の単語ベクトル input(t) と時刻 t-1 の隠れ状態 context(t-1) を加算し、隠れ層の活性化関数はシグモイドです。
直感的に言えば、RNN ネットワークはコンテキストウィンドウの制限を打破し、隠れ層の状態を使用してすべての歴史的コンテキスト情報を要約します。NNLM と比較してより長い依存関係を捉えることができ、実験でもより良い結果を達成しています。RNNLM はハイパーパラメータが少なく、汎用性も高いですが、RNN の勾配消散問題により、より長距離の依存関係を捉えることは困難です。
CBOW と Skip-gram(2013 年)
現在、単語ベクトルのために最も人気のある言語モデルツールは Mikolov が提案した word2vec です。word2vec のネットワーク構造は NNLM と似ており、主な違いはトレーニング方法にあります。CBOW は以下の通りです。
これら 2 つの手法は NNLM と大きく異なります。NNLM の主なタスクは文の確率を予測することであり、単語ベクトルは前述の情報のみを使用する中間生成物です。word2vec は単語の分散表現を獲得するために生まれており、文のコンテキストに基づいて単語の意味的・統語的情報を学習します。
コンテキスト情報を組み合わせたネットワーク構造に加えて、word2vec のもう 1 つの大きな貢献は計算の最適化にあります。word2vec は非線形隠れ層を削除し、CBOW は入力をソフトマックスに直接加算して予測することで、隠れ層の大量の計算を削減しています。同時に、ソフトマックスの計算も階層的ソフトマックスおよびネガティブサンプリングを通じて大幅に最適化されています。
階層的ソフトマックス
従来のニューラルネットワークのソフトマックス出力とは異なり、word2vec の階層的ソフトマックス構造は出力層をハフマン木に変更しています(ハフマン木はトレーニング中に事前構築され、各エッジはランダムに初期化されたベクトルであり、隠れ層の出力はシグモイド確率を計算します)。図の白いリーフノードは語彙内のすべての |V| 個の単語を表し、黒いノードは非リーフノードを表しており、各リーフノードはルートノードからの一意のパスに対応しています。目的はこのパスの確率を最大化することです。すなわち、最終出力の条件付き確率が最大であると仮定すると、ルートノードからこのリーフノードまでのパス上のノードのベクトルのみを更新すればよく、すべての単語の出現確率を更新する必要がないため、モデルトレーニングの更新時間を大幅に短縮できます。
出力確率を計算する際、ルートノードからリーフノードまでの確率の積を計算する必要があります。
ネガティブサンプリング
単語ベクトルのファインチューニングは必要か
直感的に言えば、word2vec は NLP ディープラーニングの標準構成となっており、事前学習済み単語ベクトルの品質はモデルの効果を直接左右します。そのモデルネットワーク構造により、word2vec は大規模データセットでの事前学習が非常に容易です。大量コーパス事前学習 + タスクデータファインチューニングという半教師あり手法が台頭し、タスクのラベル付きデータが少ない場合に明確な優位性を示しています。TextCNN 論文では、単語ベクトルの 4 つの形態が比較されました。
CNN-rand:すべての単語ベクトルはランダムに初期化され、トレーニング中に更新されます。
CNN-static:単語ベクトルは word2vec で事前学習され、特徴ベースの方式でトレーニング中は変更されず、他のパラメータのみが学習されます。
CNN-non-static:事前学習済み単語ベクトルはトレーニング中にファインチューニングされます。
CNN-multichannel:2 つのチャンネルを持ち、1 つは特徴ベース、もう 1 つはファインチューニング方式です。word2vec の結果は初期化時に直接割り当てられ、各フィルターは 2 つのチャンネルを使用しますが、トレーニング中の誤差逆伝播はファインチューニングチャンネルのみで実行されます。
実験結果から、non-static 手法はほとんどの場合 static 手法よりわずかに優れており、static 手法は rand 手法(単語埋め込みプロセスでのランダム符号化を指す)より優れていることがわかります。純粋な static および non-static 手法と比較して、static と non-static を組み合わせた multichannel 手法は、より小規模なデータセットでより優れた性能を発揮します(この混合手法は妥協的な考え方を反映しているためです。すなわち、ファインチューニングされた単語ベクトルが元の単語ベクトルから大きく乖離しないようにしつつ、ある程度の動的変化の余地も確保したいということです)。
GloVe(2014 年)
Word2Vec が先行する中、GloVe はより複雑でユーザーは明らかに少ないですが、同時に実験では GloVe が一部のシナリオでより効果的であることが示されており、GloVe の考え方は依然として学ぶ価値があります。
GloVe は 2014 年に提案されました。当時、単語ベクトルの生成方法には 2 つの主流があり、1 つは行列分解に基づく方法、もう 1 つは浅いスライドウィンドウに基づく方法でした。GloVe は両者の利点を 1 つに統合しました。GloVe は統計言語モデルに属し、主な最適化ポイントは共起行列を導入し、単語ベクトル間の類似性を使用してグローバル共起数を近似することです。本質は共起行列の次元削減です。
実際には、GloVe と Word2Vec にはそれぞれの利点があり、特定のタスクにどの単語ベクトルを使用すべきかは依然として実験を通じて結論を出す必要があります。同時に、GloVe はより優れた並列処理をサポートし、トレーニングにかかる時間は短くなる傾向がありますが、メモリ消費は多くなります。
ELMo(2018 年)
ELMo は事前学習で単語に対応する埋め込み層と双方向 LSTM 層を取得し、これらのベクトルは下流タスクで使用されます。
下流タスクを実行する際、事前学習済みネットワークから単語の埋め込み層と多層双方向 LSTM 層を取得し、正規化重み付けを経てベクトルに変換して下流タスクに入力します。word2vec の静的単語ベクトルとは異なり、ELMo は埋め込み層で単語ベクトルを取得し、2 層の LSTM ネットワークを通じてコンテキスト情報を追加し、動的な単語ベクトルを生成します。
ELMo は単語の単語ベクトルだけでなく、2 層の双方向 LSTM ネットワークも学習しており、実験では下層の LSTM が語彙の統語的情報を捉え、上層の LSTM ベクトルが語彙の意味的情報を捉えることが示されています。LSTM ネットワークによる基底単語埋め込みの動的調整を通じて、多義語の機能を実現しています。
GPT(生成型事前学習)(2018 年)
2018 年に提案された GPT は、正式名称を生成型事前学習といい、多层トランスフォーマーに基づく単方向言語モデルです。GPT は一般的に 2 つの段階を含みます。まず、言語モデルの特性を利用して大量のコーパスで事前学習を行います。事前学習完了後、ファインチューニングモデルを通じて下流タスクを解決します。下図に示すように、GPT は多様なタスクタイプに使用できます。
一見すると、GPT は ELMo と非常に似ていますが、主な違いは以下の通りです。
LSTM の代わりにトランスフォーマーを使用して特徴を抽出します。トランスフォーマーは NLP 分野で現在最も強力な特徴抽出器であり、より十分に意味的特徴を抽出できます。
単方向言語モデルを堅持します。ELMo の注目すべき特徴はコンテキスト情報を使用して単語ベクトルを表現することですが、GPT は前述の情報のみを使用して後続を予測する単方向言語モデルを使用します。この選択は人間の読み方に合致していますが、一定の制約もあります。たとえば、読解では通常、前後の文脈を組み合わせて判断する必要があり、前述のみを考慮すると事前学習で多くの情報が失われます。(注:これは BERT で最適化されます。)
事前学習後の GPT の使用方法も ELMo とは異なります。ELMo は特徴ベースの事前学習方式ですが、GPT は事前学習後にファインチューニングを実行する必要があります(画像における転移学習の方式と同様です)。
GPT は 12 の NLP タスクのうち 9 つで SOTA を達成し、その効果は驚くべきものです。GPT は言語モデルの重要な構成要素であり、その後の言語モデルの開発に大きな影響を与えました。
BERT(2018 年)
ELMo は双方向結合による単語ベクトルの融合でコンテキストを表現し、GPT は単方向言語モデルを使用してベクトル表現を取得します。2018 年に提案された BERT の GPT に対する改良は、NNLM から CBOW への改良から着想を得ており、タスクを文中の次の単語を予測することから、文中から単語を切り取りコンテキストを使用してその単語を予測することに変更し、同時に次の文かどうかを予測するタスクを追加しました。モデル構造は GPT の考え方に従い、トランスフォーマーの自己注意機構とフィードフォワードネットワークの重層化を使用し、トランスフォーマーの強力な特徴抽出能力を最大限に活用しています。
GPT と比較して、ファインチューニング時に開始記号、終了記号、区切り記号を追加する必要があるのに対し、BERT はトレーニング中にこれらを追加することで、事前学習とファインチューニングの入力に差異がないことを保証し、事前学習の可用性を高めています。
BERT は近年の NLP の進歩の集大成(特徴抽出器、言語モデル)であり、大量の教師なしデータを最大限に活用し、言語学的知識を特定のタスクに暗黙的に導入しています。
GPT-2(2019 年)
2019 年に提案された GPT-2 のテキスト生成の効果は驚くべきものです。ここでは GPT-2 について簡単に議論し、その最適化ポイントに焦点を当てます。
データ品質をフィルタリングし、より高品質なデータを使用する。
データの選択範囲を広くし、複数の分野を含む。
より大きなデータ量を使用する。
モデルを拡大しパラメータを増加させる(15 億パラメータ)。これは BERT large(3 億パラメータ)の 5 倍のパラメータ数と 2 倍の深さであり、ディープニューラルネットワークの強力な表現力を体現しています。
トランスフォーマーネットワーク構造をファインチューニングする。層正規化の位置を調整し、ネットワークの深さに応じて初期化の一部を調整し、一部のハイパーパラメータを調整する。
たとえば、論文のタイトル「Language Models are Unsupervised Multitask Learners」(教師なしマルチタスク学習者。このタイトルは言語モデルの本質を非常にうまく説明しています)のように、GPT-2 は言語モデルの自然的な教師なし・マルチタスク特徴をより強調しています。これらは現在の NLP 分野で最も注目すべき 2 つのトレンドでもあります。
直感的に言えば、GPT-2 はより多く、より高品質で、より包括的なデータを使用し、モデルの複雑性を高めています。それに加えて、GPT-2 には多くの深い意味合いが含まれており、研究に値します。
興味深いことに、GPT-2 は依然として単方向言語モデルの使用を堅持しています。BERT 論文で得られた結論は「双方向言語モデルが最大の改善をもたらし、次に次の文の予測が一部のタスクに大きな影響を与える」です。そうであるなら、なぜ GPT-2 は依然として単方向言語モデルの使用を堅持するのでしょうか。この問題は GPT-2 の頑固な見解のように見えますが、言語モデルの根本的な考え方に関わっている可能性があります。すなわち、言語モデルの本質とは何か。言語モデルは単方向であるべきか。BERT のマスク操作は一定の制約をもたらすのか。これが GPT-2 のテキスト生成タスクが非常に優れている理由なのか。GPT-2 はこれらの問題を解決するために単方向言語モデルの使用を堅持している可能性があります。ここでの今後の深い議論に期待し、GPT-3 でより完全な説明が得られることを期待します。
同時に、GPT-2 のパラメータ量の多さにより、同等のパラメータ量を持つ BERT と比較してほとんどのタスクでの効果は劣りますが、それでも深い探求に値します。
概要
オープンソースデータセット MSRA 上で LSTM+CRF と BERT+CRF の 2 つのモデルの効果を比較したところ、BERT に明らかな優位性がありました。
私たちの対話システムのスロット抽出タスクでは、現在の限られたラベル付きデータを使用して、BERT+CRF モデルで精度 86.1%、再現率 88.9%、F1 値 87.5% を達成しました。
意図分類タスクでは、BERT+FST モデルを使用して精度 69.71%、再現率 73.8%、F1 値 71.7% を達成しました。
現在、BERT+CRF モデルを使用した分類とスロット抽出のマルチタスク統合モデルを検証中です。
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
