言語モデル
携帯電話の仮想キーボードは、入力された最初の文字に単語推測アルゴリズムを使用し、あらゆる場所で入力ミスを自動修正します。 電話での入力は不便なので、この機能が必要です。 しかし、それは多くの場合、その「愚かさ」でユーザーを困らせます。
ヒントアルゴリズムは、前の単語に対するテキスト内の次の単語の確率を予測する言語モデルに基づいています。 通常、モデルは
n -gramの統計に基づいて構築されます
-nワードのシーケンスは、しばしば互いに隣接しています。 このアプローチでは、短い一般的なフレーズのみがよく推測されます。
ニューラルネットワークは、単語の予測の方が優れています。 たとえば、ニューラルネットワークアルゴリズムは、「
Linus is best 」という単語の後に「
programmer 」という単語があり、「
Shakespair is the best 」-「
writer 」という単語があることを理解できます。 このタスクの
n- gramモデルには十分な統計情報がない可能性があります。トレーニングテキストでトーバルズとシェークスピアに関する情報が見つかったとしても、同じ順序でまったく同じ単語で定式化されていない可能性があります。
言語モデルのリカレントニューラルネットワークについては、多くのことが書かれています。 たとえば、
単純な TensorFlow
チュートリアルを使用すると、どの条件でどの単語が予測されるかを確認できます。
重要な点:モデルの予測は、トレーニングセットに大きく依存しています。 以下のスクリーンショットは、定期的、専門的、および非公式の語彙に関するヒントの例を示しています。
表1.さまざまな言語モデルのプロンプトの例。
レギュラーモデル | 分子生物学 | 非公式の語彙 |
---|
 |  |  |
別の例。 ロシア語のインターネット上のフォーラムやディスカッションから大量のテキストを収集し、リカレントニューラルネットワークについてトレーニングしました。 言語モデルの予測から、典型的なRunetユーザーの肖像は際立っています...むしろ、それは典型的なユーザーです。
表2.ロシア語のフォーラムおよびブログでトレーニングされたモデルのヒントの例。
事例1 | 事例2 |
---|
 |  |
このデータを収集できない場合、ユーザーデータでモデルをトレーニングする方法は?
問題を述べます。 インターネットで利用可能なテキストは、モバイルデバイスのキーボードで通常入力されるものとはまったく異なります。 ほとんどの場合、短いメッセージは次のような精神で電話から書き込まれます。
- こんにちは、元気ですか? いつ来ますか?
- ベラルースカヤで7時に会います。
- パンを買う。
- イワン・ヴァシリエビッチ! コンピューターが故障したため、時間通りに作業を終える時間がありません...
- うらぁぁぁぁ
メッセージには多くの個人情報が含まれており、「実験用」の言語モデルの開発者に連絡を取る準備ができているユーザーはいないでしょう。
しかし、適切なレベルでユーザーに言葉を促すには、ユーザーが書いたものへのアクセスが必要です。 ただし、これはどこでも共有できない個人情報です。 このことから、ユーザーデータを「覗き込まない」言語モデルをトレーニングするにはアルゴリズムが必要であることがわかります。
示された問題を解決するために、モデルの分散型追加トレーニングを使用します。 このアプローチの主なアイデアは次のとおりです。
- 基本モデルは、サーバー上で大量のデータ(書籍、記事、フォーラム)でトレーニングされます。 このモデルは、一貫性のある滑らかな文を生成できます。つまり、一般に、言語を学習しました。 しかし、彼女の「コミュニケーションスタイル」は、SMSやインスタントメッセンジャーで使用されているスタイルとは異なり、ヒントはあまりにも文学的かもしれません。
- このモデルは、ユーザーが入力したテキストを電話で少し再トレーニングしています。 この場合、データがサーバーに送信されず、ユーザー以外の1人のユーザーがサーバーにアクセスできないことが重要です。 また、モデルの追加トレーニングは3分未満(Samsung S8でテスト済み)であり、携帯電話のバッテリー電力にわずかに影響することに注意してください。
- さまざまなユーザーの事前トレーニング済みモデルがサーバー上に収集され、1つに結合されます。 モデルを結合するにはさまざまな方法があります。 このアプローチでは、モデルの重みは単純に平均化されます。 次に、更新されたモデルがユーザーに送信されます。
各ユーザーは、たとえば1か月でデバイスに入力する時間よりもはるかに多くの単語を知っているため、複数のユーザーからモデルを収集することが重要です。 したがって、適切な言語モデリングを行うには、多くのユーザーからの情報が必要です。
いいね ユーザーデータはサーバーに送信されません。 しかし、ユーザーモデルは組み立てられています。 これらのモデルから個人情報を抽出することは可能ですか? たぶんそれはありますが、「暗号化された」形式ですか?
答えはノーです。 まず、モデルは多数のユーザーにわたって平均されます。 したがって、1人のグループに共通する情報の背景に対して、1人の個人のみに特徴的な個人情報が失われます。 第二に、ニューラルネットワークのトレーニングでは、特に非定型例の影響を最小限に抑えることを目的として、さまざまな方法を使用してモデルを再トレーニングから保護します。 したがって、最終モデルには「平均的な」ユーザーに関する情報が含まれます。
興味のある読者向け
詳細、特定の定式化、実験などは
arXivに関する記事で公開され、ICLR 2018で発表されます。さらに、平均化された一般モデルが各特定のユーザーのデータを十分に保護するという数学的証明を提供します。