【メモ】自然言語処理について
これは、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 は、以下により構成されている
- 言語を数百次元の分散表現(ベクトル化)とする「エンコーダー」
- フォワード/バックワード再帰型ニューラルネットワーク*7が接続され、前後の単語の情報(コンテキスト)を考慮した分散表現を作る
- 分散表現に対して着目点を制御する「アテンション機構」
- 分散表現とアテンション機構を元に出力文を復号化する「デコーダー」
- 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 | の聴覚障碍者向けの書き起こし技術 | |
2018 | Duplex | RNN を基盤に電話会話データのコーパスを学習して TFX*11 を使ってハイパーパラメータの最適化を行った。自然な会話のために「DeepMind の音声生成モデルの WaveNet」や 「Google の音声合成技術 Tacotron」と「波形接続型のテキスト読み上げエンジン」を用いて状況に応じたイントネーションの制御をしている | Google I/O 2018 |
NLP の代表的なモデルまとめ
日付 | 技術キーワード | 説明 | メモ |
---|---|---|---|
2013/01 | Word2Vec | 単語をベクトルとして表現する手法。CBOW と Skip-gram というモデルがある | |
2013/01 | Word2Vec: CBOW*12 | 周辺の単語からその間にある単語を推測する | |
2013/01 | Word2Vec: Skip-gram | CBOW とは逆に、ある単語からその周辺にある単語を推測する | |
2014/01 | Doc2Vec | Word2Vec の改良版で、文章をベクトルとして表現する手法。CBOW の改良版 PV-DM と Skip-gram の改良版 PV-DBOW が提案されている | |
2014/09 | Attention | 従来の Encoder-Decoder の弱点(Encode結果が固定長であるために長文を入力すると情報量が圧縮されすぎる)を解決するための機構 | |
2014/09 | GloVe*13 | 単語ベクトルを獲得する手法 | |
2014/12 | seq2seq | 系列を系列に変換するモデル(RNN の入力が時系列だったら出力も時系列で扱いたいよね。って話でも出てきた) | |
2016/07 | fastText | Word2Vec より早い | |
2016/09 | GNMT | SMT から NMT に置き換えられた Google 翻訳で使われているモデル | |
2016/12 | SCDV | 文書ベクトルを獲得する手法 | Microsoft |
2017/06 | Transformer | RNN や CNN を用いない Attention 機構のみの自然言語処理の手法 | |
2018/02 | ELMo | 単語ベクトルを獲得する手法。Word2Vec と異なり文脈を考慮した単語ベクトルを獲得できる。bidirectional LSTM が使われている | |
2018/06 | GPT | ラベルなしのデータを学習させたモデルを転移学習させた | Open AI |
2018/10 | BERT | GPT と同じくラベルなしのデータを転移学習させることでタスクを解くが、多くのタスクにおいて SOTA を更新。モデルは bidirectional Transformer が使われている | |
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 の上位互換。事前学習方法を改良したモデル | |
2019/07 | RoBERTa | Facebook? | |
2019/09 | ALBERT | BERT を軽量化・性能向上 | |
2019/10 | T5*15 | たぶん一番強い |
*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