自然言語処理のDLの手法が色々ありすぎるのでちょっとだけまとめる【備忘録】
日付順です。自分は素人なので、とりあえず聞いたことあるよってやつだけ。
正確さは無視してます!!あくまで自分の備忘録なので、鵜呑みにしないでください!!!
「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年生のときですよ……昨今機械学習騒がれてるけど、そんな昔からあったんかい……