皆さんこんにちは、@tereka114です。
数ヶ月前にConvolutional Neural Networkを使う自然言語処理論文の文書分類について紹介しました。
acro-engineer.hatenablog.com
今回の後編では機械翻訳や系列ラベリング、そして、その他利用されている分野を紹介します。
Question Answer
QANet: Combining Local Convolution with Global Self-Attention for Reading Comprehension
Recurrent Neural Network(RNN)は畳み込みと比較して計算時間がかかることが知られています。
そのため、畳み込みやSelf-Attentionを用いる構造を使って、高速化を行いました。
RNNと比較し、学習時で最大13.3倍、推論時で8.9倍の高速化を実現しました。
畳み込みが局所的な特徴、Self Attentionが大域的な特徴を獲得しています。
ニューラルネットワーク以外で面白いと思ったアイデアはデータを増加している部分です。
QAデータ(質問と回答のデータ)を機械翻訳を活用して増加させています。
例えば、英語 ⇒ フランス語 ⇒ 英語と翻訳することで、「原文とは異なる文章、かつ、同じ意味」の英語を生成しています。
このタスク以外でも自然言語のタスクであれば、応用できる方法です。
機械翻訳
Quasi-Recurrent Neural Networks
CNNを使って、高速な機械翻訳を行う論文です。
タイトルにはRecurrent Neural Networkと書いてありますが、利用しているアーキテクチャはCNNです。
CNNを用いて、擬似的(Quasi)にRNNを実現しています。
CNNの畳み込みでLSTMが持つ隠れ層や出力層、セルを表現しています。
畳み込みの後にf-pooling, fo-pooling, and ifo-poolingと呼ばれるPooling手法がLSTMにある構造の表現に該当します。(論文中式(3)〜(5))
Poolingに畳み込みと要素積を用いており、従来まで利用されているLSTMの実装と比較して高速な演算が可能です。
LSTMと比較し、性能が3倍高速化し、更に精度も向上しています。
Convolutional Sequence to Sequence Learning
InputとDecoder(左下)の埋め込みベクトルに畳み込みを行います。
これに前編で紹介したGLUの手法を用いて特徴量を獲得します。
Multi-step Attentionと呼ばれる構造で各予測のタイミングでAttentionを計算しています。
Multi-step Attentionは人間で言えば、翻訳時振り返って単語を探す行為と同様と主張しています。
最後にAttentionの計算結果とDecoderの結果を使って、次の翻訳単語を予測します。
こちらの記事に詳細なキーアイデアの紹介が記載されています。
https://code.facebook.com/posts/1978007565818999/a-%20novel-approach-to-neural-machine-translationcode.facebook.com
分かち書きなどの分割
Convolutional Neural Network with Word Embeddings for Chinese Word Segmentation
Chinese Word Segmentation(CWS)のタスクでは、既存の手法でも精度よく中国語の分かち書きができています。
この論文では、従来までの手法について、2つの課題があることを述べ、それに対するアイデアを提案しています。
- bigramなどの特徴量を人間の手で設計する必要がある。
畳み込み演算を使い、人間による特徴量設計を行わず、特徴量を獲得しています。 - 言語が持つ情報を使い切れていない。文字と単語の情報の組み合せ、単語の特徴量を獲得しています。
この工夫により、PKU, MSRデータセットでState of the artを達成しました。
A Deep Convolutional Neural Model for Character-Based Chinese Word Segmentation
入力文の各位置の表現を行うPosition Embedding Module、複数の下位表現を組み合わせた位置表現の役割を持つDeep Representation Module、最後にTag Scoring Moduleによりタグ付けを行います。
畳み込みを用いることで、階層的な表現を獲得することを目的としています。
このニューラルネットワークでは、複数のタスクを学習するMulti-task Learningにより標準的な特徴量を獲得しています。
ただし、データセットによって文書の分割の基準が異なることから、異なるデータセットを同様のTag Scoring Moduleで判定していません。
そのため、Tag Scoring Moduleに関して各々のタスクで再学習を行っています。
Image Caption Generator
Image Caption Generatorは画像を入力として与えた場合、説明文を生成します。
一般的な手法は画像特徴の抽出にCNN, 文書生成にRNNを利用する方式です。
今回は、画像特徴・文章生成を共にCNNで行った手法を紹介します。
Convolutional Image Captioning
従来までのLSTMを用いた方式では、勾配消失問題が問題になっていました。
近年の翻訳や条件付き画像生成の研究では、畳み込み演算を用いて勾配消失が起きないようにしています。
その流れによってImage CaptioningにもCNNを適用しています。
CNNを用いることで1パラメータ辺りの学習時間は高速になっています。
LSTMとCNN間の交差エントロピー誤差を比較していますが、誤差の値はLSTMより非常に高いグラフとなっています。
しかし、単語の一致度ではCNNと同程度の性能を発揮しています。
CNNの方が、情報量が多いことがこの事象の理由としていますが、非常に面白い結果だと思います。
その他
Improving Word Embeddings with Convolutional Feature Learning and Subword Information
Convolutional Neural Networkとsubword(部分語)の情報を使い、Word Embeddingの精度改善を行っています。
部分語はTri-Gram、接頭語、接尾語、-s, -ingなどを変化なしに変換した語(inflectional Affix)を用いたベクトルの生成を行っています。
そして、誤差関数は周辺単語から得られたContext VectorとWord間の距離(Similarity and Not Similarity)を考慮した計算式になっています。
この手法は類似語検索やWord AnalogyのタスクでState of the artを取得しています。
https://www.aaai.org/ocs/index.php/AAAI/AAAI17/paper/download/14724/14187
最後に
Convolutional Neural Networkは様々な分野で利用されており、自然言語処理の分野における活用を紹介しました。
画像処理の論文が多く、自然言語処理の論文は意識しないと読まないので、畳み込みやRNNの課題などを勉強する良い機会となりました。
自然言語処理に適用するにあたり、CNNの利点を工夫して活かそうとしているのが良いと思っています。
自然言語処理において、Recurrent Neural NetworkかConvolutional Neural Networkのどちらが主流になるか
まだまだわからないので、引き続き追いかけようと思います。
参考文献
- Convolutional Neural Netwoks で自然言語処理をする
- A novel approach to neural machine translation – Facebook Code
- [DL輪読会]Convolutional Sequence to Sequence Learning
Acroquest Technologyでは、キャリア採用を行っています。
- ビッグデータ(Hadoop/Spark、NoSQL)、データ分析(Elasticsearch、Python関連)、Web開発(SpringCloud/SpringBoot、AngularJS)といった最新のOSSを利用する開発プロジェクトに関わりたい。
- マイクロサービス、DevOpsなどの技術を使ったり、データ分析、機械学習などのスキルを活かしたい。
- 社会貢献性の高いプロジェクトや、顧客の価値を創造するようなプロジェクトで、提案からリリースまで携わりたい。
- 書籍・雑誌等の執筆や、対外的な勉強会の開催・参加を通した技術の発信、社内勉強会での技術情報共有により、エンジニアとして成長したい。
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。
データ分析案件で時系列データの異常検知に挑戦したいエンジニアWanted! - Acroquest Technology株式会社のエンジニア中途・インターンシップ・契約・委託の求人 - Wantedlywww.wantedly.com