CS224n Lecture 2 詞向量表示:word2vec

1. Word meaning

1.1 one-hot表示法

比如一個有4個詞的語料:

I like deep learning,如果使用one-hot編碼那么每一個詞對應(yīng)一個1,其他詞則對應(yīng)0爽篷,

I :[1 0 0 0]
like :[0 1 0 0]
deep :[0 0 1 0]
learning:[0 0 0 1]

但是使用這樣的表大方是有個問題动猬,就是每當(dāng)我的語料庫更改的話灯抛,那么同一個詞的編碼方式就會發(fā)生變化随橘,比如我的語料庫變成了:I like deep learning very much蕴坪,那么這里面的詞的編碼就變成:

I :[1 0 0 0 0 0]
enjoy :[0 1 0 0 0 0]
deep :[0 0 1 0 0 0]
learning:[0 0 0 1 0 0]
very :[0 0 0 0 1 0]
much :[0 0 0 0 0 1]

可以看到还栓,只是語料庫發(fā)生了變化碌廓,同一個詞I,deep剩盒,learning三個詞都發(fā)生了變化谷婆,而且可以發(fā)現(xiàn)隨著語料庫的增加,每一個句中的詞的長度都在增加勃刨,并且1在整個句子中越來越稀疏波材,比如有個200個詞的語料庫只有一位是1,其他199位都是0身隐,再比如2000個詞的語料庫呢廷区?并且 like 和 enjoy其實(shí)表達(dá)的是差不多的意思,但是使用這種方法就完全體現(xiàn)不出來贾铝,所以總結(jié)一下使用one-hot有一下幾個缺點(diǎn):

  • 同一個隨著語料庫發(fā)生改變表達(dá)也會不同

  • 不能表示詞與詞之間的相似性

  • 隨著語料庫的增加one-hot表式會變得越來越稀疏

1.2 分布式表示

基于上面one-hot無法表示詞與詞之間的相似性隙轻,所以1957年語言學(xué)家J.R.Firth提出:
“You \ shall \ know \ a \ word \ by \ the \ company \ it \ keeps"
這句話是說:你要是想知道一個單詞的意思,可以通過這個單詞周圍的詞(上下文)看出來垢揩。所以應(yīng)運(yùn)而生了一種新的表示方法:distributed representation(分布式表示)玖绿,其實(shí)這個概念我們中國學(xué)生最了解不過了,還記不記得大家上學(xué)時做過一種英語題叫做完形填空叁巨,你做題時是不是英語老師會跟你說這個空里面的詞你就看上下文就能十有八九猜出來斑匪。這里有的小伙伴可能會疑惑,為什么叫分布式表示呢锋勺,我的理解是一個詞的意思不單單在于它本身還取決于他周圍的詞蚀瘸,也就是說詞的信息有一部分存在于上下文中,信息被分散了庶橱。比如下面這個例子:

1.3 分布式詞表示的實(shí)現(xiàn)

跟one-hot相同的是贮勃,分布式詞表示同樣使用一個向量來表示,但與one-hot使用詞在句子中的位置來標(biāo)識不同苏章,分布式是是使用一個稠密的向量來表示一個詞寂嘉,這個向量一般在300-500維左右奏瞬,有的會超過1000維,但對于超大型的預(yù)料來說這已經(jīng)相對于one-hot是降維的了泉孩。


那么硼端,句中的所有詞都使用這樣的稠密向量表示后,我們就可以用一些手段來優(yōu)化這些向量寓搬,使得劇中的某些詞的向量能更準(zhǔn)確的代表詞的意思显蝌。而這種方法就是接下來要提到的word2vec model(Mikolov et al. 2013)

2. Word2vec introduction

2.1 word2vec的主要思路

predict \ between \ every \ word \ and \ its \ context \ words!

2.2 word2vec有兩個基本模型

  • Skip-gram(SG)
    ~~~給出中心詞預(yù)測上下文 predict context words given target (position independent)
  • Continuous Bags of Words(CBOW)
    ~~~給出上下文預(yù)測中心詞 predict target word from bag-of-words context

2.3 兩種高效的訓(xùn)練模型的方式

  • Hierarchical softmax(層次softmax)
  • Negative sampling(負(fù)例采樣)
    雖然上述兩種方式對于word2vec模型的訓(xùn)練很高效,但是在本節(jié)課中只針對Skip-gram模型介紹一種低效的訓(xùn)練方式订咸,叫做Na?ve softmax

2.4 Skip-gram

skip-gram的主題思想是通過一個中心詞預(yù)測該詞周圍的上下文詞,如圖:


從圖中看到酬诀,該中心詞是banking然后預(yù)測的詞是 turning脏嚷、intocrises瞒御、as 四個詞父叙,也就是說定義了一個分別向前向后的m=2窗口,用數(shù)據(jù)學(xué)表達(dá)式寫出就是:

公式的意義是:最大化所有中心詞預(yù)測它周圍上下文詞正確的概率肴裙,這個公式作為loss function即代價函數(shù)趾唱。
我再舉個例子來說明下這個數(shù)學(xué)公式,借用漫威中Spider Man的一句話:

I \ believe \ there's \ a \ hero \ in \ all \ of \ us

這里我就寫了t=there'st=hero兩個蜻懦,但是聰明的你應(yīng)該知道這里的t應(yīng)該要遍歷文本中所有的詞來作為中心詞的甜癞。這里解釋清楚了我們繼續(xù),對J'(\theta)取對數(shù)似然的相反數(shù)為:

我們的目標(biāo)是最大化loss functionmaxJ'(\theta)宛乃,那么對于J(\theta)就變成了minJ(\theta)悠咱。再反觀J(\theta)公式,這個P(w_{{t+j}}|w_{t})該如何表示呢征炼?答案是使用softmax函數(shù)替換:

這個公式里面的u_{o}v_{c}分別代表的是中心詞的向量和當(dāng)前預(yù)測的上下文的向量析既,這個也說明了:在一句話中一個詞有兩個向量,一個是中心詞向量谆奥,一個是上下文向量眼坏,比如我剛才舉的例子,當(dāng)t=there's作為中心詞預(yù)測hero時酸些,hero會有個上下文向量宰译,當(dāng)t=hero作為中心詞預(yù)測其他詞時,hero也會有個中心詞向量擂仍。

2.5 Skip-gram詳細(xì)過程

下圖是課程中老教授給出的一幅skip-gram的介紹圖囤屹,從圖中我們可以看出一點(diǎn)端倪:


這里有幾個符號需要說一下:

w_{t}:句子中某個單詞的one-hot向量
W:語料庫中(非一個句子)所有單詞對應(yīng)的中心詞向量矩陣(這個矩陣就是我們的優(yōu)化目標(biāo),初始化一般是隨機(jī)小數(shù))
v_{c}:中心詞的向量
W':語料庫中(非一個句子)所有單詞的上下文向量矩陣(這個矩陣就是我們的優(yōu)化目標(biāo)逢渔,初始化一般是隨機(jī)小數(shù))
u_{x}^{T}v_{c}:中心詞向量與上下文向量的內(nèi)積

可以看到在最終的結(jié)果中w_{t-3}w_{t-2}都預(yù)測錯了肋坚,所以我們會不斷優(yōu)化使得最終所有的詞盡可能的都預(yù)測正確。如果這個圖看著不舒服的話,這里附上標(biāo)準(zhǔn)的圖片:

3. Skip-gram模型訓(xùn)練:梯度計(jì)算

在2.5中提到過WW'都是我們的優(yōu)化目標(biāo)矩陣智厌,有的時候會把它們統(tǒng)稱為\theta然后放在一起:

明白了這點(diǎn)我們就開始使用梯度下降對loss function進(jìn)行求導(dǎo)計(jì)算了:




最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诲泌,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子铣鹏,更是在濱河造成了極大的恐慌敷扫,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件诚卸,死亡現(xiàn)場離奇詭異葵第,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)合溺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門卒密,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人棠赛,你說我怎么就攤上這事哮奇。” “怎么了睛约?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵鼎俘,是天一觀的道長。 經(jīng)常有香客問我辩涝,道長贸伐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任膀值,我火速辦了婚禮棍丐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沧踏。我一直安慰自己歌逢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布翘狱。 她就那樣靜靜地躺著秘案,像睡著了一般。 火紅的嫁衣襯著肌膚如雪潦匈。 梳的紋絲不亂的頭發(fā)上阱高,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機(jī)與錄音茬缩,去河邊找鬼赤惊。 笑死,一個胖子當(dāng)著我的面吹牛凰锡,可吹牛的內(nèi)容都是我干的未舟。 我是一名探鬼主播圈暗,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼裕膀!你這毒婦竟也來了员串?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤昼扛,失蹤者是張志新(化名)和其女友劉穎寸齐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抄谐,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡渺鹦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蛹含。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片海铆。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挣惰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情殴边,我是刑警寧澤憎茂,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站锤岸,受9級特大地震影響竖幔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜是偷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一拳氢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蛋铆,春花似錦馋评、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至玛瘸,卻和暖如春蜕青,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背糊渊。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工右核, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人渺绒。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓贺喝,卻偏偏與公主長得像菱鸥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子搜变,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容

  • BERT發(fā)展史(三)全方位多角度理解Word2Vec 建議先閱讀之前兩篇文章: BERT發(fā)展史(一)從詞嵌入講起 ...
    LITD閱讀 3,432評論 0 13
  • 自然語言處理中文本數(shù)值化表方法 詞向量是什么采缚,自然語言理解的問題要轉(zhuǎn)化為機(jī)器學(xué)習(xí)的問題,第一步肯定是要找一種方法把...
    mugtmag閱讀 5,171評論 4 10
  • 目前詞向量主要用的技術(shù) word2vec fasttext glove 1 one-host編碼 one-hot編...
    georgeguo閱讀 2,316評論 0 2
  • 1. 導(dǎo)入 ??這是語言表示系列的第1篇挠他,主要講述了分布式表示里的Word2vec方法扳抽。該系列目前暫定有4篇語言的...
    brucep3閱讀 3,232評論 0 5
  • 自從關(guān)注了熹文的公眾號,幾乎定期或者不定期地看了她寫的文章殖侵,才覺得她的文字對我來說太有力量了贸呢。她能把好多現(xiàn)實(shí)與難以...
    吳曉亮愛分享閱讀 199評論 0 0