うすゆきブログ

自然言語処理のDLの手法が色々ありすぎるのでちょっとだけまとめる【備忘録】

2021年9月2日 2021年9月1日

日付順です。自分は素人なので、とりあえず聞いたことあるよってやつだけ。
正確さは無視してます!!あくまで自分の備忘録なので、鵜呑みにしないでください!!!

「AIcia Solid Project」さんのチャンネルをめちゃくちゃ参考にしました。
https://www.youtube.com/channel/UC2lJYodMaAfFeFQrGUwhlaQ

word2vec

論文:Efficient Estimation of Word Representations in Vector Space
発表:2013年1月16日
何がすごい?:単語を数値化して機械で扱える!(単語分散表現で次元少ない)それによって単語の関係や近さ、文法の差も学習できる。
使用例:Pythonでのgensim

単語分散表現:単語をベクトルで表す!
→意味が似てる単語は近く、似てない単語は遠くなるよう単語にベクトルを振り分ける
→高次元にならないので、計算の効率化!精度も向上!

word2vecは複数のモデルの総称!!
モデル:CBOW or Skip-gram
高速化: なし or hierarchical softmax or negative sampling
の6通りすべてword2vec

pythonのgensimはCBOW+negative sampling

CBOW(continuous Bag-Of-Words):穴埋め問題を予測。(前と後ろから間を予測)(次元圧縮して予測する2層のNN)
単語の分散表現したいけど、あえて違うこと学習することで、本来の目的を解決するパターン

Skip-gram:周辺の単語の予測(中央の単語から前後何個かの単語を予測)→途中だけ使うので精度悪くてもいい

hierarchical softmax:階層的にやるやつ

negative sampling:分類大変だから、分類変える的なやつ?

参考:https://youtu.be/0CXCqxQAKKQ

Transformer

論文:Attention Is All You Need
発表:2017年6月12日
何がすごい?:Attentionを使った機械翻訳モデル!何にでも使える!入力に対して次の単語を予測する。
使い道:機械学習といいつつ、何にでも使える。(BERTとかGPTの自然言語処理、VitやDALL-Eなどの画像処理、将棋もイケる。。)
使用例:GPT

RNN(回帰型ニューラルネットワーク)使わない!Attentionのみ使う!
Multi-Head Attentionというどの情報に注目すべきか自動で判断して情報を処理する仕組みが強いらしい。
これによって文章から画像、将棋までいける。
巷では「Transformerを知らずしてNLPは語れない」と言われています。

参考:https://youtu.be/50XvMaWhiTY

ELMo (Embeddings from Language Models)

名前はセサミストリートというアメリカのアニメのキャラクターから みたいです。

論文:Deep contextualized word representations
発表:2018年2月15日
何がすごい?:新しい方法で単語埋め込み実現して、何でも精度上がった!
使い道:
使用例:

一般的には……→NNモデルを変える
ELMoは……→word embeddingを変えた!

文脈を加味したembeddingで精度アップ。
forward LMとbackword LMがELMoのモデル

ELMoは既存のモデルのEnbeddingにぶちこむ→

参考:https://youtu.be/hMrOcH5dcGM

GPT(Generative Pre-trained Transformer)

論文:Improving language understanding by generative pre-training.
発表:2018年6月11
何がすごい?:多様なタスクを1つのモデルを良い精度で解いた!(文章の肯定否定、分類問題、質問回答など)これまではタスクに応じてモデル設計していたのが、1つで行けるようになった。(個別に作っていたものより精度アップ!)
使い道:自然言語処理なんでもできる。
使用例:BERT

最近話題のGPT-nの初代!
Transformerはすごい!ってことを示した。データ増、モデル大にしたら際限なく精度上がった!
Pre-trainingとFine-tuningがすごいらしい。
これまで→教師データ(ラベルあり)作るの大変!
ラベルなしデータから大量生産できるサブタスクを学習することで言語を学習する!それを使って本タスクを学習

Pre-training:次の単語予測を大規模データで学習した→文法や単語の意味、文脈をつかめる!]
Fine-tuning:最終層のみ取り替えて、教師データを使って普通に学習!(問題によって解きたいこと変わるから)←ちょっとだけでいいから少データや少計算資源でもできる!

言語を学ばせて基礎を固めてから、特化させる見たいなスタイル!

参考:https://youtu.be/wDXPXgn5hX4

BERT(Bidirectional Encoder Representations from Transformer)

「ばーと」と読むらしいです。セサミストリートというアメリカのアニメのキャラクターから来てるみたいですね。

論文:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, Devlin, J. et al. (2018)
発表:2018年10月11日
何がすごい?:どんなタスクも簡単に高精度にできて、少資源の人も使えるようにした!
使い道:
使用例:Google検索(2019,10~),LEGAL BERT(法律関係特化)

Transformerはすごい!(GPTも同じこと言ってる……笑)
双方向(bidirectional)がすごい!

誰でも使える!→GPTと同じく、Pre-trainingとFine-tuning。これによって普通の人にも使いやすくなった!

Pre-trainingはラベル不要、とにかくたくさんデータあればいい!→大学や企業が公開しているのを使う
Fine-tuningで頑張れば作れる量のデータを与えるだけ!

Pre-trainingは言語の基礎理解のために、Masked Language Model(穴抜き問題を予測させる)とNext Sentence Prediction(連続する文と、ランダム文を与えて、どっちが正解か予測させる)のタスクを事前学習に用いる。前者で文法や単語の意味を理解、後者で文脈を理解させる!

BERTは文からベクトル出す。
とにかく、本当に使える。らしい。

参考:https://youtu.be/IaTCGRL41_k

GPT-2

論文:Language Models are Unsupervised Multitask Learners
発表:2019年2月14日
何がすごい?:巨大データ、巨大モデルを使うことで、教師データ無くても自然言語処理が出来ることを世界に知らしめた!可能性のカタマリ!
使い道:次単語の絞り込みを10~40個に絞り込める。10択穴埋め過去成功、トロフィーとスーツケースの問題を解ける(Winowad Schema Challenge)、文章要約もそれっぽくできる。
使

ML・DLはデータ大量に必要!→GPT,BERTならFine-tuningで少量でいいよ!→1つで全部済ませれない?
”””GPT-2″”””の登場
→言語モデルを使って頑張った

言語モデル→次の単語を予測する。常識も理解した上(Commonsense Reasoning)で質問に答えられる。
GPT-2はこれを巨大データ、巨大モデルでやった結果、やべぇってなった。パラメータ15億個。

GPT-2では量、質、幅(色んな分野)にこだわった新しい巨大データセットを作った

自然な文章作れるから悪用を恐れて公開を控えるレベルだった。

参考:https://youtu.be/IaTCGRL41_k

最近、りんな版も出てきました。やった!
https://github.com/rinnakk/japanese-pretrained-models

GPT-3

論文:Language Models are Few-Shot Learners
GitHub:https://github.com/openai/gpt-3
発表:2020年7月22日
何がすごい?:文章生成だけじゃなくて、ソースコードやデザインも理解して作れる。まさに現代人。
使い道:色々
使用例:gpt-3直接ではないが、gpt-3をモデルとして使われたものにGitHub Copilot!!!←お世話になっております。。

750億個のパラメータを使用!
どうやら限定APIしか公開されていないみたいです。
文章で指示するだけでwebサイト作るみたいなことができるみたいです。

アイシアさんのGPT-3解説動画は今の所ありません……!

終わり

意外と昔からすごいことになってたのだと知らされました。
「自然言語処理って最先端!」じゃないんですね。

Word2Vecのもととなる論文発表されたの2013年1月です。自分なんて小学5年生のときですよ……昨今機械学習騒がれてるけど、そんな昔からあったんかい……