Datawhale-ゼロベースの紹介NLP-ニューステキスト分類Task05

タスクは、前処理にWord2Vecを使用し、次に分類にTextCNNとTextRNNを使用することです。TextCNNは、テキストのジャンルに畳み込みニューラルネットワークを使用し、TextCNNは、テキストの分類にリカレントニューラルネットワークを使用します。

1.Word2Vec

テキストは非構造化データの一種です。テキスト表現モデルには、Bag of Words、Topic Model、およびWordEmbeddingが含まれます。

(1)テキスト表現

テキストは、単語と句読点で構成される文字列として表され、単語または文字は単語を形成し、単語は単語を形成し、文、段落、セクション、章、および記事の構造を形成します。したがって、文書の内容を反映するだけでなく、異なる文書を区別する能力を備えた理想的な正式な表現方法を見つける必要があります。

一般的に使用されるモデルは、ベクトル空間モデル(VSM)であり、基本的な概念は次のとおりです。

  • ドキュメント:記事内の特定のサイズのフラグメント。
  • 用語/機能用語:機能用語はVSMで分割できない最小の言語単位であり、ドキュメントのコンテンツは、ドキュメントに含まれる機能用語のコレクションと見なされます。として表されDocument = D(t_ {1}、...、t_ {k}、...、t_ {n})ます。
  • 用語の重み:各機能アイテムには重みがありDocument = D(w_ {1}、...、w_ {k}、...、w_ {n})ます。

定義:ドキュメントが与えられたDocument = D(w_ {1}、t_ {1}; ...、w_ {k}、t_ {k}; ...、w_ {n}、t_ {n})場合、Dは次の条件を満たす。

 

(1)ワンホットエンコーディング(duホットエンコーディング)

 

 

 

単語の埋め込みは、単語のベクトル化モデルの一種の総称です。中心的なアイデアは、各単語を低次元空間の密なベクトルにマッピングすることです。Word2Vecは、一般的な単語の埋め込みモデルの1つです。Word2Vecには、CBOWとSkip-gramの2つのネットワーク構造があります。

CBOWの目的は、コンテキストに表示される単語に基づいて現在の単語の生成確率を予測することであり、Skip-gramは、現在の単語に基づいてコンテキスト内の各単語の生成確率を予測します。

a.CBOW

連続バッグオブワードモデルと呼ばれるCBOW(Continuous Bag of Words)は、「男性が女性に恋をした」という文があれば、「男性は__に恋をした」としか見えない場合、CBOWは文脈に関連して「女性」という言葉を予測する必要があります。

2.TextCNN

テキストの場合、ローカル機能は、N-gramと同様に、いくつかの単語で構成されるスライディングウィンドウです。畳み込みニューラルネットワークの利点は、N-gramフィーチャを自動的に組み合わせてフィルタリングし、さまざまな抽象化レベルでセマンティック情報を取得できることです。各コンボリューションにウェイトシェアリングメカニズムが採用されているため、トレーニング速度が速くなります。

TextCNNは、入力層、畳み込み層、プーリング層、および出力層で構成されています。構造は次のとおりです。

(1)入力層

入力層はN * K行列です。ここで、Nは記事に対応する単語の総数であり、Kは各単語に対応する表現ベクトルの次元です。各単語のK次元ベクトルは、他のコーパスで事前にトレーニングすることも、ネットワークトレーニングによって未知のパラメーターとして取得することもできます。したがって、入力層は2つのチャネルの形式を採用します。つまり、2つのN * K入力行列があり、そのうちの1つは事前にトレーニングされた単語の埋め込みによって表され、トレーニングプロセス中に変更されません。もう1つはネットワークに従います。トレーニングプロセスが変わります。

(2)畳み込み層

入力された2つのN * K行列で、畳み込み演算を実行するために異なるスライディングウィンドウを定義します。各畳み込み演算は、特別な診断ベクトルの抽出と同等です。さまざまなスライディングウィンドウを定義することにより、さまざまな特徴ベクトルを抽出できます。

(3)プーリング層

プーリング層は、1-Maxプーリングを採用できます。つまり、各スライディングウィンドウによって生成された特徴ベクトルから最大の特徴をフィルターで除外し、これらの特徴を連結してベクトル表現を形成します。K-Maxプーリング(各ベクトルで最大のKフィーチャを選択)、または平均プーリングなどを選択することもできます。達成される効果は、固定長のベクトル表現を取得するために異なる長さの文をプールすることです。

(4)出力層

テキストのベクトル表現を取得した後、次のネットワーク構造が特定のタスクに関連付けられます。テキスト分類は、完全に接続されたレイヤーにアクセスし、SoftMaxアクティベーション関数を使用して各カテゴリの確率を出力することです。

3.TextRNN

従来のテキスト処理タスクでは、入力テキストシーケンス内の各単語の順序が失われ、2つの単語間の長距離依存性を学習することは依然として困難です。循環ニューラルネットワークは、テキストデータの長く整然とした入力シーケンスを非常にうまく処理できます。一般的に使用されるリカレントニューラルネットワークには、RNN、双方向RNN、LSTM、GRUなどがあります。

リカレントニューラルネットワーク(RNN)は、ネットワークの隠れ層の出力を隠れ層に再接続して、閉ループを形成します。これは、人が記事を読む順序をシミュレートし、その前にある有用な情報を状態変数にエンコードして、特定の記憶能力を持たせるようにします。典型的な構造は次のとおりです。

サイクリックニューラルネットワークは、BPTT(Back Propagation Through Time、時間ベースのバックプロパゲーション)を使用して解決されますが、BPTTによって学習されたサイクリックニューラルネットワークは、長距離の依存関係を正常にキャプチャできません。シグモイド関数が飽和しているため、多くのAfterトレーニングでは、勾配が消えるという問題が発生します。計算行列の最大固有値が1より大きい場合、トレーニングにより、各レイヤーの勾配サイズが指数関数的に増加し、勾配が爆発します。逆に、固有値が1未満の場合、勾配は消えます。したがって、LSTMとGRUは、ゲーティングメカニズムを追加することにより、勾配の損失を補います。

長短期記憶(LSTM)は、循環ニューラルネットワークの拡張です。循環ニューラルネットワークは、勾配の消失と勾配の爆発の問題があるため、学習能力が制限されます。LSTMは、貴重な情報の長期記憶を実行できるため、循環が減少します。ニューラルネットワークの学習の難しさ。LSTMは、メモリブロックのセットで構成されるサイクリックサブネットです。各メモリブロックには、1つ以上の自己接続メモリセルと読み取り、書き込み、リセット機能提供する入力ゲート、出力ゲート、忘却ゲートの3つの乗算制御ユニットが含まます

入力ゲートは、現在の計算の新しい状態がメモリユニットに更新される量を制御します。情報が入力ユニットによってアクティブ化されると、入力ゲートと乗算されて、現在の情報を書き込むかどうかが決定されます。

出力ゲートは、現在の出力が現在のメモリユニットにどの程度依存するかを制御します。情報を出力するかどうかを決定するために、現在のセルメモリ情報が乗算されます。

忘却ゲートは、前のステップのメモリユニット内の情報がどれだけ忘れられるかを制御します。セルの前のメモリ情報と乗算されて、前の情報を保持するかどうかが決定されます。

メモリブロックの構造:

その中で、σはシグモイド関数であり、tanhは乗算と加算であるtanh関数です。

最初の部分はシグモイド関数を使用して破棄された情報を決定します。2番目の部分は双曲線正接関数Tanhをアクティブ化関数として使用して、候補メモリを生成するときに更新された情報を決定します。3番目の部分はセルの状態を更新します。4番目の部分は出力です。結果を次のメモリブロックに渡します。

参照:

「機械学習の百の顔」-ZhugeYue

「ディープラーニングの実際の戦闘」-YangYun

おすすめ

転載: blog.csdn.net/qq_28409193/article/details/107707767