3月27日、マルレク
マルレク第六回 「RNNの応用と発展 --- Google翻訳とDNC」
http://peatix.com/event/247204?lang=ja
に行ってきた!ので、内容をメモメモ
RNNの応用と発展 Google翻訳とDNC
・去年の暮れに出たGoogle翻訳
イギリス:DNC(Differentiable Neural Computer)
ニューラルネットは、得意な分野が違う
CNN:画像認識
RNN:シーケンス
DNC:推論 → 積み木の世界
・AI技術を構成する複数の流れの中で、
なぜ、ニューラルネットワークが重要なのか?
・機械学習
・パーソナルアシスタント(チャットボット):人間がスクリプト
・ニューラルネット:感覚運動
・自然言語理解・論理的能力
言語処理、論理的推論をやらせよう
→ディープラーニングでいく?チョイスは1つではない
もう5年たっている→次の波がくるかも
・Google翻訳
ニューラル機械翻訳(GNMT)に先行したもの
いままで:統計的機械翻訳
最初
ルール・ベース機械翻訳モデル(RBMT)
いまは主流から外れている
1.英語・日本語の辞書
2.英語の文法
3.日本語の文法
→ルールを書く
Google翻訳:
文章 Word 英語 WordとWordからできている
意味の把握:述語→述語論理に落とす
word2vec;エンティティ・アトリビュートモデル
・ルールベース翻訳
犬が猫を追う
追う(犬、猫)
カテゴリアルグラマー→カーリー・ハワード コレスポンデンス
・統計的機械翻訳モデル(SMT)
ピーターブラウン A Statistical Approach to mechine Translation
よく似たペアを見つける 本当はベイジアン
→単純に言うと検索:Watsonも検索
検索と翻訳が結びついている
膨大なコーパスからはみ出るものがある
Aligning Text
→統計翻訳2つを無視 意味、文法
成功と限界:データ 意味の問題 Banko 文法理解 RNN
Very Very Large Corpora 2001年のBankoらの論文
Property of stimulus→生得的な基礎がある?
Power of Data:データがあれば、わかる
→ミススペルの検索
size matter
今回は、まったく新しいアプローチ
勝つのは、最良のアルゴリズムを持っている人ではなく、もっとも多くのデータを持っている人である
例;CERNは2016年4月に300TBにおよぶ加速器のデータを公開
→何か出てくるか?
・パラレル・コーパスの現在
大規模化
Gale & Charch
WMTの14ヶ国語 3600万の文のペア
→Gooogleは、2~3桁大きい
世界最大のコーパス;Google Books
→4%のデジタル化
このままでは、翻訳には使えないけど・・・
Unicodeを使う:同じインターフェース
・最初のコーパスパラレル・データ ロゼッタストーン
ベスヒトゥン
線文字Bの解読
・ニューラル確率言語モデル
Benjioの「次元ののろい」
ワード単位ならハンドルできる
ある文章が学習用データに似ている可能性は低い:うまくいかない
→枝狩り
・語の意味ベクトル
ミカロフ Word2Vec
どんな語が与えられた語の近くに埋め込まれるか?
意味を変換するベクトルは共通?
言葉の意味ベクトル:翻訳には使えない?
・RNNの文法認識能力
エンティティモデル:名詞中心
LSTM
自動的に文章を生成
→RNNが単純な文法なら理解できている
Type-0 機能的加算:チューリングマシン
Type-1 文脈依存
・チョムスキー 4階層だけではなく
LR,LL 超えたところに自然言語
Mildly context sensitive language
・方法論上の問題
RNNではできないけど、LSTMでできること:ありそうだけど、わからない
何がすごいかは、結果でしかいえない
データと結果はあるけど、抽象化できない
・Googleニューラル機械翻訳
GNMT
システム
エンコーダー デコーダーそれぞれLSTM8段、アテンションがある
With Q Connection
第一層と第二層
エンコーダー、デコーダー:次元圧縮 ヒントンのオートエンコーダー
書籍の分類へのAutoencoderの利用
出てくる言葉2000語の出てくる回数を数えて、それをベクトル
主成分分析より、きれいにできるよ!
いりあ
入力のシーケンスを圧縮:復元するときに言語を変える
BLUEのスコアで34.8
Bahdanau
固定長はむり。デコーダーにもっと情報を
前から呼んできたものと、エンコーダーが見た情報を渡す
左と右+コンテキスト情報
入力列にもう一度注意を向ける→じつはアラインメントをみている
・wordpiece
文をどのように分割する?
wordごと
すべての言語を同じ方法
word→組み合わせてword
語のならびを登録
どの言語、単語でも
・センテンス・ピース
32におさまる、ぶったぎられた数字を見ている
→ソシュール:意味と表記は無関係
多言語
単一のシステム:共有ワードピース(エンコーダーもデコーダーも)
→システムのパラメーターの数は変わらない
ゼロショット翻訳:Googleは100の言語を対応
全部一緒に学習するので、一般化を学んでしまう
・複数言語を同時にモデル化する
→詰め込むメリット
12言語でボキャブラリ共通、
・ゼロショット翻訳
メリット
少量のデータを追加すれば上がる
・ビジュアルな分布、インターリンガの存在
すべての言語に共通する意味の存在はある
英語、日本語、韓国語の文 のトリプルを作るX72文
その上で、英語→日本語、日本語→韓国語など、訳を作っていく
6個の変換X72文=444の翻訳
隔離されたゼロショットのところができる→翻訳の質が落ちる
→実験から:あるらしい
・混合言語
ちゃんぽんでも、英語に直す
混じった言語は生まれない
ロシア語とレラルーシ語・・途中ウクライナ語になったり・・