読むだけでちょっと賢くなる、架空のまとめスレ

【疑問】word2vec の CBOW とスキップグラム、fastText、ELMo、単語の分散表現は何が進んだん?【G検定】

12レスカテゴリ:AI・機械学習
1: 名無しさん

word2vec・fastText・ELMo が単語の分散表現として出てくる。CBOWとスキップグラムの違いもあいまい

2: 名無しさん

前提のおさらい。ワンホットやBoWでは、語どうしの意味の近さを表せん。「車」と「自動車」も、まったく別の列になる

3: 名無しさん

>>1
分散表現(単語埋め込み)は、1つの語を300次元くらいの短い数字の列で表す。意味の近い語は近いベクトルになるように学習する
もとになる考え方は「周りに出てくる語が似ている語は、意味も似ている」(分布仮説)

4: 名無しさん

>>3
word2vecは、ミコロフらの2013年の論文。学習のしかたが2つある
CBOW:周りの語から、真ん中の語を当てる
スキップグラム:真ん中の語から、周りの語を当てる
前後2語ずつを見るなら、スキップグラムは1つの語から4つの語を当てる練習をする

5: 名無しさん

>>4
語彙1万語を300次元で表すなら、覚える数は 個。語彙のワンホットで1万次元やったのが300次元になる

6: 名無しさん

>>4
「王 − 男 + 女 ≒ 女王」の計算ができる、っていう話は本当なん?

7: 名無しさん

>>6
論文でも、そういう語の関係をベクトルの足し引きで当てる評価をしてる。ただ毎回きれいに成り立つわけやなくて、うまくいく関係とそうでない関係がある

8: 名無しさん

fastTextは、ボヤノフスキーらの2017年の論文。語をさらに文字のまとまり(文字n-gram)に分けて学習する
「where」を3文字ずつにすると、両端の印をつけて「<wh, whe, her, ere, re>」の5つ。語のベクトルはこれらのベクトルの和
学習のときに出てこなかった語でも、文字のまとまりからベクトルを作れる

9: 名無しさん

>>8
word2vecもfastTextも、1つの語に1つのベクトルやろ。「銀行の口座」と「川の土手」の英語 bank みたいに、意味が文脈で変わる語はどうするん?

10: 名無しさん

>>9
それを解決したのがELMo。ピーターズらの2018年の論文
双方向のLSTMで文全体を読んで、その文脈での語のベクトルを毎回作る。同じ bank でも、文が違えば違うベクトルになる

11: 名無しさん

>>10
そのかわり、word2vecみたいに語ごとの表を引くだけやなくて、毎回LSTMを動かす計算が要る。軽さではword2vecのほうが上

12: 名無しさん

>>10
文脈で変わるベクトルを、大きいデータで事前に学んでおいて使う、という流れはこのあとのBERTにつながる

管理人のひとこと