ちびのはてな

「ちび(猫)」と「キノコ」から生まれた「ちびキノコ」。ドラゴンボール最強!純粋なサイヤ人のように生きたいと思っているモノ作りを楽しむ人です。IT技術で少しでも多くの人が笑顔になってくれたらいいなと。

【メモ】自然言語処理について

これは、G検定のための個人的なメモである。
内容はとても薄い。


機会翻訳の歴史

年代 技術 説明
1950年代〜1980年 ルールベース機械翻訳: RBMT*1 人間が作成したルールに従って翻訳する手法
1980年代〜1990年 用例に基づく機械翻訳: EBMT*2 翻訳の事例を大量に集めたコーパスを用いて翻訳する手法
1980年代〜 統計的機械翻訳: SMT*3 1980年代から研究開始。「対訳の例文から 翻訳モデル 」を「出力言語の例文から 言語モデル 」を機械学習を用いて作成する。文章が入力されたとき 翻訳モデル から推測される訳語、 言語モデル から得た訳語に対してスコア付けを行い、スコアが最大となる組み合わせを選ぶ。単語単位ではなくフレーズ単位で行うものを主に PBSMT*4という
- ニューラル機械翻訳: NMT*5 分散表現を利用して単語列から単語列を発生させる NN である「seq2seq」がベースとなっている
2016年〜 GNMT*6 Google 翻訳が SMT から GNMT になった

NMT は、以下により構成されている

  • 言語を数百次元の分散表現(ベクトル化)とする「エンコーダー
  • 分散表現に対して着目点を制御する「アテンション機構」
    • エンコードされた入力分とデコーダーの状態から次の単語を訳するときに注目すべき箇所を示すコンテキストベクトルを出力する
  • 分散表現とアテンション機構を元に出力文を復号化する「デコーダー」
    • RNN でコンテキストベクトルと1つ前に出力した単語の情報を受け取り、次の訳語を出力する

NMT の弱点?

入力文の最後に置かれた「文末記号」をでコーターが出力したときに翻訳が終了するため、翻訳終了が予測できず、翻訳過程も見えない。場合によっては翻訳の重複や抜けが発生する。

Transformer による自然言語処理の飛躍

2018年に提案された Open AI の GPT、ELMo、Google の BERT がある。
これらは RNN や CNN を使わずに「アテンション機構」のみの Transformer モデル(自己アテンション機構)を活用している

技術キーワード 説明
GPT*8 LTR 単方向の Transformer モデル
ELMo*9 LTR と RTL の連結モデル
BERT*10 双方向の Transformer モデル

自然な会話の実現

日付 技術キーワード 説明 メモ
2019/02 Live Transcribe の聴覚障碍者向けの書き起こし技術 Google
2018 Duplex RNN を基盤に電話会話データのコーパスを学習して TFX*11 を使ってハイパーパラメータの最適化を行った。自然な会話のために「DeepMind の音声生成モデルの WaveNet」や 「Google音声合成技術 Tacotron」と「波形接続型のテキスト読み上げエンジン」を用いて状況に応じたイントネーションの制御をしている Google I/O 2018

NLP の代表的なモデルまとめ

日付 技術キーワード 説明 メモ
2013/01 Word2Vec 単語をベクトルとして表現する手法。CBOW と Skip-gram というモデルがある Google
2013/01 Word2Vec: CBOW*12 周辺の単語からその間にある単語を推測する Google
2013/01 Word2Vec: Skip-gram CBOW とは逆に、ある単語からその周辺にある単語を推測する Google
2014/01 Doc2Vec Word2Vec の改良版で、文章をベクトルとして表現する手法。CBOW の改良版 PV-DM と Skip-gram の改良版 PV-DBOW が提案されている Google
2014/09 Attention 従来の Encoder-Decoder の弱点(Encode結果が固定長であるために長文を入力すると情報量が圧縮されすぎる)を解決するための機構
2014/09 GloVe*13 単語ベクトルを獲得する手法
2014/12 seq2seq 系列を系列に変換するモデル(RNN の入力が時系列だったら出力も時系列で扱いたいよね。って話でも出てきた) Google
2016/07 fastText Word2Vec より早い Facebook
2016/09 GNMT SMT から NMT に置き換えられた Google 翻訳で使われているモデル Google
2016/12 SCDV 文書ベクトルを獲得する手法 Microsoft
2017/06 Transformer RNN や CNN を用いない Attention 機構のみの自然言語処理の手法 Google
2018/02 ELMo 単語ベクトルを獲得する手法。Word2Vec と異なり文脈を考慮した単語ベクトルを獲得できる。bidirectional LSTM が使われている
2018/06 GPT ラベルなしのデータを学習させたモデルを転移学習させた Open AI
2018/10 BERT GPT と同じくラベルなしのデータを転移学習させることでタスクを解くが、多くのタスクにおいて SOTA を更新。モデルは bidirectional Transformer が使われている Google
2019/01 MT-DNN*14 BERT を参考にしたもの。Big BIRD とも呼ばれる? Microsoft
2019/02 GPT-2 GPT の後継版。あまりにも自然な文章生成を行えることで有名 Open AI
2019/04 ERNIE BERT の中国語版 Baidu
2019/06 XLNet BERT の上位互換。事前学習方法を改良したモデル Google
2019/07 RoBERTa Facebook?
2019/09 ALBERT BERT を軽量化・性能向上 Google
2019/10 T5*15 たぶん一番強い Google

*1:RBMT: Rule-Based Machine Translation

*2:EBMT: Example-Based Machine Translation

*3:SMT: Statistical Machine Translation

*4:PBSMT: Phrase-Based SMT

*5:NMT: Neural Machine Training

*6:GNMT: Google Neural Machine Translation

*7:forward/backward RNN

*8:GPT: Generative Pre-training Transformer

*9:ELMo: Embeddings from Language Models

*10:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

*11:TFX: TensorFlow Extended

*12:CBOW: Countinuous Bag-of-Words

*13:GloVe: Global Vectors for Word Representation

*14:MT-DNN: Multi-Task DNN

*15:T5: Text-To-Text Transfer Transformer