NLPタスクぞの畳み蟌みニュヌラルネットワヌクの適甚

畳み蟌みニュヌラルネットワヌクCNNに぀いお聞くずき、通垞はコンピュヌタヌビゞョンに぀いお考えたす。 CNNは、画像分類におけるブレヌクスルヌの基瀎を圢成したした。2012幎のImageNetコンテストの勝者である有名なAlexNetは、このトピックに興味を持ち始めたした。 それ以降、畳み蟌みネットワヌクは脳の芖芚皮質のように配眮されおいるため、画像の認識に倧きな成功を収めおいたす。぀たり、小さな領域に集䞭し、その䞭の重芁な特城を匷調するこずができたす。 しかし、刀明したように、CNNはこれだけでなく、自然蚀語凊理NLPタスクにも適しおいたす。 さらに、Intelずカヌネギヌメロン倧孊の著者チヌムによる最近の蚘事[1]では、過去数幎にわたっお君臚しおいたRNNよりも、この点で優れおいるず䞻匵されおいたす。



畳み蟌みニュヌラルネットワヌク



たず、少しの理論。 畳み蟌みずは䜕ですか これに぀いおは倚くの資料がすでに曞かれおいるので、これに぀いお詳しくは説明したせんが、ただ簡単に実行する䟡倀がありたす。 スタンフォヌド倧孊からの矎しい芖芚化により、本質を把握できたす。



画像

出所



埌でお互いを理解できるように、基本的な抂念を玹介する必芁がありたす。 倧きなマトリックスを移動するりィンドりはフィルタヌず呌ばれたす英語版のカヌネル、フィルタヌ、たたは機胜怜出噚では、これらの甚語の翻蚳ずトレヌスを芋぀けるこずができたすが、怖がらないでください、すべお同じです。 フィルタヌは倧きなマトリックスのセクションに重ねられ、各倀に察応するフィルタヌ倀が乗算されたすメむンマトリックスの黒い数字の䞋ず右の赀い数字。 次に、刀明したすべおが加算され、出力「フィルタヌ凊理枈み」倀が取埗されたす。



りィンドりは、英語ではストラむドず呌ばれる倧きなステップに沿っお移動したす。 このステップは氎平および垂盎にするこずができたす埌者は私たちにずっお有甚ではありたせんが。



重芁なチャンネルのコンセプトを玹介するこずは残っおいたす。 画像内のチャンネルは、倚くの人に知られおいる基本色ず呌ばれたす。たずえば、単玔で䞀般的なRGBカラヌコヌディングスキヌム赀-赀、緑-緑、青-青に぀いお話しおいる堎合、これらの3぀の基本色のうち、それらを混合するこずにより、任意の色を取埗できたす。 ここでのキヌワヌドは「混合」です。3぀の基本色はすべお同時に存圚し、たずえば、垌望の色のフィルタヌを䜿甚しお倪陜の癜色光から取埗できたす甚語が意味を成し始めおいるず感じたすか。



画像



そしお、画像があり、その䞭にチャンネルがあり、フィルタヌが正しいステップでそれを通過するこずがわかりたす。 理解する必芁がありたす-これらのチャネルで実際に䜕をすべきか これらのチャネルを䜿甚しお、次のこずを行いたす。各フィルタヌ぀たり、小さなマトリックスは、3぀のチャネルすべおで同時に元のマトリックスに重ねられたす。 結果は単玔に芁玄されたす芋れば論理的には、最終的にチャネルは光の連続した物理的スペクトルを扱う方法です。



もう1぀詳现に蚀及する必芁がありたすが、それなしではさらに理解するこずは難しくなりたす。 どういう意味ですか これは、同じゞョブを実行するn個のフィルタヌがあるこずを意味したす。 圌らは窓でマトリックスを歩き回り、䜕かを考えたす。 なぜ、1぀の仕事を2回行うのでしょうか 1぀ではなく1぀-フィルタリングマトリックスの初期化が異なるため、孊習プロセスでは、異なる詳现に泚意を払い始めたす。 たずえば、1぀のフィルタヌは行を調べ、もう1぀のフィルタヌは特定の色を調べたす。



画像

゜ヌスcs231n



これは、1぀のネットワヌクの1぀のレむダヌのさたざたなフィルタヌの芖芚化です。 圌らがたったく異なる画像機胜をどのように芋おいるかを芋おください。



すべお、私たちは先に進むために甚語で歊装しおいたす。 甚語ず䞊行しお、畳み蟌み局がどのように機胜するかを芋぀けたした。 畳み蟌みニュヌラルネットワヌクの基瀎です。 CNNには別のベヌスレむダヌがありたす-これはいわゆるプヌリングレむダヌです。



それを説明する最も簡単な方法は、最倧プヌリングです。 したがっお、既に知られおいる畳み蟌み局では、フィルタヌ行列は固定されおおり、単䞀である぀たり、乗算しおも入力デヌタに圱響しないず想像しおください。 そしお、すべおの乗算結果条件に応じた入力デヌタを合蚈する代わりに、単玔に最倧芁玠を遞択したす。 ぀たり、りィンドり党䜓から最も匷床の高いピクセルを遞択したす。 これは最倧プヌリングです。 もちろん、関数の代わりに、最倧倀は別の算術たたはさらに耇雑な関数です。



画像

゜ヌスcs231n



このテヌマの詳现に぀いおは、Chris Olahの投皿をお勧めしたす。



䞊蚘はすべお良奜ですが、非線圢性がなければ、ニュヌラルネットワヌクは私たちにずっお必芁な普遍的な近䌌噚の特性を持ちたせん。 したがっお、私はそれらに぀いおいく぀かの蚀葉を蚀わなければなりたせん。 リカレントで完党に接続されたネットワヌクでは、シグモむドや双曲線正接などの非線圢性がボヌルを支配したす。



画像

出所



これらは優れた非線圢の滑らかな関数ですが、CNNでボヌルを支配したものず比范しお、かなりの蚈算が必芁ですReLU-Rectified Linear Unit。 ロシア語では、ReLUは通垞、線圢フィルタヌず呌ばれたす単語フィルタヌを䜿甚するのにただ疲れおいたせんか。 これは、滑らかではないこずに加えお、最も単玔な非線圢関数です。 しかし、その埌、それは1぀の基本操䜜で蚈算され、蚈算フレヌムワヌクの開発者はそれを非垞に奜みたす。

さお、あなたず私はすでに畳み蟌みニュヌラルネットワヌク、ビゞョンの仕組みなどに぀いお説明したした。 しかし、歌詞はどこですか、それずも恥知らずにあなたを欺いたのですか いいえ、私はあなたをだたしたせんでした。



テキストぞの畳み蟌みの適甚







この図は、CNNを䜿甚しおテキストを操䜜する方法をほが完党に説明しおいたす。 はっきりしない 正しくしたしょう。 たず最初に、質問は次のずおりです。どこからマトリックスを取埗するのか。 CNNは行列で動䜜したすか ここで少し戻っお、埋め蟌みずは䜕かを芚えおおく必芁がありたすこれに぀いおは別の蚘事がありたす。



芁するに、埋め蟌みずは、ある倚次元空間の点をオブゞェクト、この堎合は単語にマッピングするこずです。 そのような埋め蟌みでおそらく最もよく知られおいる䟋は、Word2Vecです。 ずころで、 word2vec(“king”) - word2vec(“man”) + word2vec(“woman”) ~= word2vec(“queen”)



ようなセマンティックプロパティがありたす。 したがっお、テキスト内の各単語に埋め蟌みを行い、すべおのベクトルを行に配眮しお、目的のマトリックスを取埗したす。



画像



次のステップでは、マトリックスは良奜で、絵のように芋えるこずもありたす-同じ2次元です。 かどうか 埅っお、写真にもっずチャンネルがありたす。 画像マトリックスには、幅、高さ、チャンネルの3぀の次元がありたす。 そしおここに そしお、ここには幅のみがありたすセクションのタむトル画像では、衚瀺の䟿宜䞊マトリックスが転眮されたす-これは文䞭のトヌクンのシヌケンスです。 そしお-いいえ、高さではなく、チャンネル。 チャンネルが遞ばれる理由 単語の埋め蟌みは完党に意味があるため、個々のディメンションは䜕も教えたせん。



さお、マトリックスを蚈算し、畳み蟌みに぀いおさらに詳しく説明したした。 畳み蟌みは1぀の軞幅にのみ沿っお進むこずができたす。 したがっお、暙準の畳み蟌みず区別するために、1次元1D畳み蟌みず呌ばれたす。



そしお今、神秘的なMax Over Time Poolingを陀いお、ほずんどすべおが明確になっおいたす。 これはどんな獣ですか これは䞊蚘で既に説明した最倧プヌリングであり、䞀床にシヌケンス党䜓に適甚されたす぀たり、りィンドりの幅はマトリックスの幅党䜓に等しくなりたす。



テキスト甚の畳み蟌みニュヌラルネットワヌクの䜿甚䟋







泚目を集めるための写真。 実際には[4]からの図。



畳み蟌みニュヌラルネットワヌクは、ピヌスたたはシヌケンス党䜓を確認し、これから䜕らかの結論を出す必芁がある堎合に適しおいたす。 ぀たり、これらは、たずえば、スパムの怜出、調性の分析、名前付き゚ンティティの抜出などのタスクです。 蚘事の構文解析は難しい堎合がありたす。ニュヌラルネットワヌクに粟通しおいる堎合は、このセクションをスキップできたす。



[2]で、Yoon Kimは、CNNが異なるデヌタセットのオファヌを分類するのに適しおいるこずを瀺しおいたす。 䞊蚘のセクションを説明するために䜿甚される写真は、圌の䜜品からのものです。 Word2Vecで動䜜したすが、文字を盎接䜿甚するこずもできたす。



[3]では、著者は文字に盎接基づいおテキストを分類し、孊習プロセスでの埋め蟌みを孊習したす。 倧芏暡なデヌタセットでは、単語を凊理するネットワヌクよりも優れた結果を瀺したした。



畳み蟌みニュヌラルネットワヌクには、RNNず比范しお倧きな欠点がありたす-固定サむズの入力でのみ機胜したすネットワヌク内の行列のサむズは操䜜䞭に倉曎できないため。 しかし、䞊蚘の研究の著者[1]はこの問題を解決するこずができたした。 そのため、この制限は削陀されたした。



[4]では、著者は文字に盎接基づいおテキストを分類したす。 70文字のセットを䜿甚しお、各文字をワンホットベクトルずしお衚し、1014文字の固定テキスト長を蚭定したした。 したがっお、テキストはサむズ70x1014のバむナリマトリックスで衚されたす。 ネットワヌクは単語に぀いおの考えを持たず、それらを文字の組み合わせず芋なし、事前に蚓緎されたWord2Vecベクトルの堎合のように、単語の意味的近接性に関する情報はネットワヌクに提䟛されたせん。 ネットワヌクは、1d conv、max-poolingレむダヌ、2぀の完党に接続されたドロップアりトレむダヌで構成されおいたす。 倧芏暡なデヌタセットでは、単語を凊理するネットワヌクよりも優れた結果を瀺したした。 さらに、このアプロヌチにより、前凊理ステップが倧幅に簡玠化され、モバむルデバむスでの䜿甚に貢献する可胜性がありたす。



別の研究[5]では、著者はコンピュヌタヌビゞョンのベストプラクティスを䜿甚しお、NLPでのCNNの適甚を改善しようずしおいたす。 近幎のコンピュヌタヌビゞョンの䞻な傟向は、ネットワヌクの深さず、互いに隣接しおいない局を接続するいわゆるスキップリンクResNetなどの远加です。 著者は、同じ原則がNLPにも適甚されるこずを瀺し、16次元埋め蟌みの文字に基づいおCNNを構築し、ネットワヌクで調査したした。 異なる深さ9、17、29、49の倉換局のネットワヌクをトレヌニングし、スキップリンクを実隓しお、それらが結果にどのように圱響するかを調べたした。 圌らは、ネットワヌクの深さを増やすず遞択したデヌタセットの結果が改善されるが、深すぎるネットワヌク49局のパフォヌマンスは䞭皋床の深さ29局よりも䜎いず結論付けたした。 スキップリンクを䜿甚するず、49局のネットワヌク結果が改善されたしたが、29局​​のネットワヌクむンデックスを超えるこずはありたせんでした。



コンピュヌタヌビゞョンにおけるCNNのもう1぀の重芁な機胜は、1぀の倧きなデヌタセット兞型的な䟋はImageNetでトレヌニングされたネットワヌクりェむトを他のコンピュヌタヌビゞョンタスクで䜿甚できるこずです。 [6]では、著者は、ワヌド埋め蟌みを䜿甚したCNNを䜿甚しおテキストを分類するタスクにおけるこれらの原則の適甚可胜性を調べおいたす。 ネットワヌクの特定の郚分埋め蟌み、コンバヌレむダヌ、完党に接続されたレむダヌの転送が、遞択したデヌタセットの分類結果にどのように圱響するかを研究したす。 圌らは、NLPタスクでは、ネットワヌクが事前にトレヌニングされた゜ヌスのセマンティックな近接が重芁な圹割を果たしおいる、぀たり、映画レビュヌでトレヌニングされたネットワヌクが別の映画レビュヌデヌタセットでうたく機胜するず結論付けおいたす。 さらに、圌らは単語に同じ埋め蟌みを䜿甚するず転送の成功が増加し、レむダヌをフリヌズせずに、タヌゲットデヌタセットでレむダヌをトレヌニングするこずを掚奚しおいるこずに泚意したす。



実甚䟋



CNNで感情分析を行う方法を実際に芋おみたしょう。 Kerasに぀いおの蚘事で同様の䟋を芋おきたので、私はあなたに送るすべおの詳现に぀いお、ここでは理解すべき重芁な機胜のみを怜蚎したす。



たず、Kequ Sequenceコンセプトが必芁になりたす。 実際、これはKerasにずっお䟿利な圢匏のシヌケンスです。



 x_train = tokenizer.texts_to_sequences(df_train["text"]) x_test = tokenizer.texts_to_sequences(df_test["text"]) x_val = tokenizer.texts_to_sequences(df_val["text"])
      
      





ここで、 text_to_sequences



は、aトヌクン化、぀たり文字列をトヌクンに分割し、b各トヌクンをディクショナリ内の番号で眮き換えるこずにより、テキストを敎数のシヌケンスに倉換する関数です。 この䟋の蟞曞はプリコンパむルされおいたす。完党なラップトップでコンパむルするためのコヌド。



次に、結果のシヌケンスを敎列する必芁がありたす-思い出すように、CNNは可倉テキスト長の操䜜方法をただ知らず、これはただ産業利甚に至っおいたせん。



 x_train = pad_sequences(x_train, maxlen=max_len) x_test = pad_sequences(x_test, maxlen=max_len) x_val = pad_sequences(x_val, maxlen=max_len)
      
      





その埌、すべおのシヌケンスは切り捚おられるか、長さがmax_len



たでれロが埋め蟌たれたす。



そしお今、実際に最も重芁なのはモデルのコヌドです



 model = Sequential() model.add(Embedding(input_dim=max_words, output_dim=128, input_length=max_len)) model.add(Conv1D(128, 3)) model.add(Activation("relu")) model.add(GlobalMaxPool1D()) model.add(Dense(num_classes)) model.add(Activation('softmax'))
      
      





最初のレむダヌはEmbedding



、敎数実際には、単䜍の堎所が蟞曞内の単語の数に察応するワンホットベクトルを密なベクトルに倉換したす。 この䟋では、埋め蟌みコヌドのサむズベクトルの長さは128、蟞曞の単語の数はmax_len



、シヌケンスの単語の数はmax_len



です。これは、䞊蚘のコヌドから既にわかっおいたす。



埋め蟌み埌は1次元の畳み蟌み局Conv1D



です。 その䞭のフィルタヌの数は128であり、フィルタヌのりィンドりの幅は3です。アクティベヌションは明確でなければなりたせん-これはReLUのお気に入りです。



ReLUの埌、 GlobalMaxPool1D



レむダヌが登堎したす。 この堎合の「グロヌバル」ずは、着信シヌケンスの党長に沿っお取埗されるこずを意味したす。぀たり、前述の最倧時間プヌリングずは異なりたす。 ずころで、なぜOver Timeず呌ばれるのですか 単語の順序は自然な順序であるため、䞀郚の単語は音声/テキストの流れの早い段階で、぀たり時間の早い段階で到着したす。



最終的に埗たモデルは次のずおりです。







画像に興味深い特城がありたす。畳み蟌み局の埌、シヌケンスの長さは40ではなく38になりたした。なぜですか 私たちは話をせず、パディングを䜿甚しなかったため、Svetaがそれを超えるこずができるように、元のマトリックスにデヌタを事実䞊「远加」できる技術です。 そしお、これがないず、長さが3で、1に等しいステップのたたみ蟌みは、幅40のマトリックスに沿っお38ステップしか䜜成できたせん。



さお、結果ずしお䜕が埗られたしたか 私のテストでは、この分類子の品質は0.57でしたが、もちろんそれほどではありたせん。 しかし、少し努力すれば、私の結果を簡単に改善できたす。 どうぞ



PSこの蚘事をEvgeny Vasiliev somesnmずBulat Suleymanov khansuleymanに曞いおくれおありがずう。



文孊



[1] Bai、S.、Kolter、JZ、およびKoltun、V。2018。 シヌケンスモデリングのための䞀般的な畳み蟌みおよびリカレントネットワヌクの経隓的評䟡。 arxiv.org/abs/1803.01271

[2] Kim、Y.2014。 文分類のための畳み蟌みニュヌラルネットワヌク。 自然蚀語凊理の経隓的方法に関する2014幎䌚議EMNLP 2014、1746–1751の議事録。

[3] Heigold、G.、Neumann、G.、およびvan Genabith、J.2016。 圢態孊的に豊富な蚀語の文字からの神経圢態孊的タグ付け。 arxiv.org/abs/1606.06640

[4]テキスト分類のための文字レベルの畳み蟌みネットワヌク。 チャン・ゞャン、ゞャンボ・チャオ、ダン・ルクンarxiv.org/abs/1509.01626

[5]テキスト分類のための非垞に深い畳み蟌みネットワヌク。 コネり、Hシュりェンク、Lバロヌ、Yレクンarxiv.org/abs/1606.01781

[6]畳み蟌みニュヌラルネットワヌクを䜿甚したテキスト分類のための転移孊習の実務者向けガむド。 T Semwal、G Mathur、P Yenigalla、SB Nair arxiv.org/abs/1801.06480



All Articles