著者: 禅とコンピュータープログラミングの芸術
1 はじめに
背景の紹介 自然言語処理 (自然言語処理、NLP) は、機械学習、コンピューター ビジョン、その他の分野の重要な分野の 1 つです。インターネットの普及に伴い、人間の音声情報を理解して処理する能力を必要とするアプリケーション シナリオがますます増えています。NLP タスクにおける深層学習テクノロジーの重要な役割は、主に次の 2 つの側面を含めてますます顕著になってきています。
- テキスト分類、感情分析、テキスト生成、対話システム、検索エンジン
- 固有表現認識、関係抽出、イベント抽出、テキスト要約、機械翻訳、質問応答システム
これに関連して、深層学習モデルがこれらのタスクでより良い結果を達成できるようにするために、事前トレーニング モデル、エンコーダー デコーダー モデル、自己注意メカニズム、最適化マシンなど、いくつかの技術的なブレークスルーも登場しました (Adam W) 。この記事では、その原理と実装をこれらの技術レベルから詳しく紹介します。
2. 基本的な概念と用語の説明
まず、NLP に関連する基本的な概念と用語を理解する必要があります。私たちが使用する NLP タスクはすべて、結局のところ、シーケンスのラベル付けの問題に帰着します。一般に、シーケンスのラベル付け問題は、入力シーケンス X と出力シーケンス Y で構成されます。各要素はトークンまたはラベルです。たとえば、文レベルのタスクの場合、X は入力文、Y は文内の各単語の品詞タグです。ドキュメント レベルのタスクの場合、X はテキストの一部、Y はテキストの各文です。文書。シーケンスのラベル付けの問題では、通常、入力シーケンスと出力シーケンスの間のマッピング関係を学習する必要があります。
ここで、次の基本用語も明確にする必要があります。
トークン化: テキストの一部を、単一または複数の記号で構成される単語または記号のセットに分割します。例えば、英語テキストのトークン化の後、["the"、"cat"、"jumps"、"over"] などのトークン リストが取得される場合があります。