.. _chap_nlp_pretrain: 自然言語処理: 事前学習 ====================== 人間にはコミュニケーションが必要である。 人間の本質的なこの必要性から、膨大な量の書き言葉が日々生成されている。 ソーシャルメディア、チャットアプリ、メール、製品レビュー、ニュース記事、研究論文、書籍に豊富なテキストがあることを踏まえると、人間の言語に基づいて支援を提供したり意思決定を行ったりできるように、コンピュータがそれらを理解できるようにすることが極めて重要になる。 *自然言語処理*\ は、自然言語を用いたコンピュータと人間の相互作用を研究する。 実際には、 :numref:`sec_language-model` の言語モデルや :numref:`sec_machine_translation` の機械翻訳モデルのように、自然言語処理技術を用いてテキスト(人間の自然言語)データを処理・分析することが非常に一般的である。 テキストを理解するには、まずその表現を学習することから始められる。 大規模コーパスに含まれる既存のテキスト系列を活用することで、\ *自己教師あり学習*\ は、テキストの周囲の別の部分を用いてテキストの一部の隠れた部分を予測するなどして、テキスト表現の事前学習に広く用いられてきた。 このようにして、モデルは\ *大規模な*\ テキストデータから、\ *高価な*\ ラベル付け作業なしに教師あり学習を通じて学習する! この章で見るように、各単語やサブワードを個別のトークンとして扱うとき、各トークンの表現は、word2vec、GloVe、またはサブワード埋め込みモデルを用いて大規模コーパス上で事前学習できる。 事前学習後、各トークンの表現はベクトルにできるが、文脈が何であっても同じままである。 たとえば、“bank” のベクトル表現は、 “go to the bank to deposit some money” と “go to the bank to sit down” の両方で同じである。 そのため、より最近の多くの事前学習モデルでは、同じトークンの表現を異なる文脈に適応させる。 その代表例が BERT であり、Transformer エンコーダに基づく、はるかに深い自己教師ありモデルである。 この章では、 :numref:`fig_nlp-map-pretrain` に示すように、テキストのためにこのような表現をどのように事前学習するかに焦点を当てる。 .. _fig_nlp-map-pretrain: .. figure:: ../img/nlp-map-pretrain.svg 事前学習されたテキスト表現は、さまざまな下流の自然言語処理アプリケーションに対して、各種の深層学習アーキテクチャへ入力できる。この章では、上流のテキスト表現の事前学習に焦点を当てる。 全体像を把握するために、 :numref:`fig_nlp-map-pretrain` は、 事前学習されたテキスト表現が、 さまざまな下流の自然言語処理アプリケーションに対して、 多様な深層学習アーキテクチャへ入力できることを示している。 それらについては :numref:`chap_nlp_app` で扱いる。 .. toctree:: :maxdepth: 2 word2vec approx-training word-embedding-dataset word2vec-pretraining glove subword-embedding similarity-analogy bert bert-dataset bert-pretraining