2.3 词嵌入的特性-深度学习第五课《序列模型》-Stanford吴恩达教授
詞嵌入的特性 (Properties of Word Embeddings)
到現(xiàn)在,你應(yīng)該明白了詞嵌入是如何幫助你構(gòu)建自然語言處理應(yīng)用的。詞嵌入還有一個迷人的特性就是它還能幫助實現(xiàn)類比推理,盡管類比推理可能不是自然語言處理應(yīng)用中最重要的,不過它能幫助人們理解詞嵌入做了什么,以及詞嵌入能夠做什么,讓我們來一探究竟。
這是一系列你希望詞嵌入可以捕捉的單詞的特征表示,假如我提出一個問題,man如果對應(yīng)woman,那么king應(yīng)該對應(yīng)什么?你們應(yīng)該都能猜到king應(yīng)該對應(yīng)queen。能否有一種算法來自動推導(dǎo)出這種關(guān)系,下面就是實現(xiàn)的方法。
我們用一個四維向量來表示man,我們用 e5391e_{5391}e5391? 來表示,不過在這節(jié)視頻中我們先把它(上圖編號1所示)稱為 emane_{man}eman? ,而旁邊這個(上圖編號2所示)表示woman的嵌入向量,稱它為 ewomane_{woman}ewoman? ,對king和queen也是用一樣的表示方法。在該例中,假設(shè)你用的是四維的嵌入向量,而不是比較典型的50到1000維的向量。這些向量有一個有趣的特性,就是假如你有向量 emane_{man}eman? 和 ewomane_{woman}ewoman? ,將它們進行減法運算,即
eman?ewoman=[?10.010.030.09]?[10.020.020.01]=[?2?0.010.010.08]≈[?2000]e_{man}-e_{woman}=\left[\begin{matrix}-1\\0.01\\0.03\\0.09\end{matrix}\right]-\left[\begin{matrix}1\\0.02\\0.02\\0.01\end{matrix}\right]=\left[\begin{matrix}-2\\-0.01\\0.01\\0.08\end{matrix}\right]\approx\left[\begin{matrix}-2\\0\\0\\0\end{matrix}\right]eman??ewoman?=??????10.010.030.09????????????10.020.020.01??????=??????2?0.010.010.08??????≈??????2000??????
類似的,假如你用 ekinge_{king}eking? 減去 equeene_{queen}equeen? ,最后也會得到一樣的結(jié)果,即
eking?equeen=[?0.950.930.700.02]?[0.970.950.690.01]=[?1.92?0.020.010.01]≈[?2000]e_{king}-e_{queen}=\left[\begin{matrix}-0.95\\0.93\\0.70\\0.02\end{matrix}\right]-\left[\begin{matrix}0.97\\0.95\\0.69\\0.01\end{matrix}\right]=\left[\begin{matrix}-1.92\\-0.02\\0.01\\0.01\end{matrix}\right]\approx\left[\begin{matrix}-2\\0\\0\\0\end{matrix}\right]eking??equeen?=??????0.950.930.700.02????????????0.970.950.690.01??????=??????1.92?0.020.010.01??????≈??????2000??????
這個結(jié)果表示,man和woman主要的差異是gender(性別)上的差異,而king和queen之間的主要差異,根據(jù)向量的表示,也是gender(性別)上的差異,這就是為什么 eman?ewomane_{man}-e_{woman}eman??ewoman? 和 eking?equeene_{king}-e_{queen}eking??equeen? 結(jié)果是相同的。所以得出這種類比推理的結(jié)論的方法就是,當(dāng)算法被問及man對woman相當(dāng)于king對什么時,算法所做的就是計算 eman?ewomane_{man}-e_{woman}eman??ewoman? ,然后找出一個向量也就是找出一個詞,使得 eman?ewoman≈eking?e?e_{man}-e_{woman}\approx e_{king}-e_?eman??ewoman?≈eking??e?? ,也就是說,當(dāng)這個新詞是queen時,式子的左邊會近似地等于右邊。這種思想首先是被Tomas Mikolov 和 Wen-tau Yih還有Geoffrey Zweig提出的,這是詞嵌入領(lǐng)域影響力最為驚人和顯著的成果之一,這種思想幫助了研究者們對詞嵌入領(lǐng)域建立了更深刻的理解。
(Mikolov T, Yih W T, Zweig G. Linguistic regularities in continuous space word representations[J]. In HLT-NAACL, 2013.)
讓我們來正式地探討一下應(yīng)該如何把這種思想寫成算法。在圖中,詞嵌入向量在一個可能有300維的空間里,于是單詞man代表的就是空間中的一個點,另一個單詞woman代表空間另一個點,單詞king也代表一個點,還有單詞queen也在另一點上(上圖編號1方框內(nèi)所示的點)。事實上,我們在上個幻燈片所展示的就是向量man和woman的差值非常接近于向量king和queen之間的差值,我所畫的這個箭頭(上圖編號2所示)代表的就是向量在gender(性別)這一維的差,不過不要忘了這些點是在300維的空間里。為了得出這樣的類比推理,計算當(dāng)man對于woman,那么king對于什么,你能做的就是找到單詞w來使得, eman?ewoman≈eking?ewe_{man}-e_{woman}\approx e_{king}-e_weman??ewoman?≈eking??ew? 這個等式成立,你需要的就是找到單詞w來最大化 ewe_wew? 與 eking?eman+ewomane_{king}-e_{man}+e_{woman}eking??eman?+ewoman? 的相似度,即
Findwordw:argmaxSim(ew,eking?eman+ewoman)Find word w: arg\ max\ Sim(e_w, e_{king}-e_{man}+e_{woman})Findwordw:arg?max?Sim(ew?,eking??eman?+ewoman?)
所以我做的就是我把這個 ewe_wew? 全部放到等式的一邊,于是等式的另一邊就會是 eking?eman+ewomane_{king}-e_{man}+e_{woman}eking??eman?+ewoman? 。我們有一些用于測算 ewe_wew? 和 eking?eman+ewomane_{king}-e_{man}+e_{woman}eking??eman?+ewoman? 之間的相似度的函數(shù),然后通過方程找到一個使得相似度最大的單詞,如果結(jié)果理想的話會得到單詞queen。值得注意的是這種方法真的有效,如果你學(xué)習(xí)一些詞嵌入,通過算法來找到使得相似度最大化的單詞w,你確實可以得到完全正確的答案。不過這取決于過程中的細(xì)節(jié),如果你查看一些研究論文就不難發(fā)現(xiàn),通過這種方法來做類比推理準(zhǔn)確率大概只有30%~75%,只要算法猜中了單詞,就把該次計算視為正確,從而計算出準(zhǔn)確率,在該例子中,算法選出了單詞queen。
在繼續(xù)下一步之前,我想再說明一下左邊的這幅圖(上圖編號1所示),在之前我們談到過用t-SNE算法來將單詞可視化。t-SNE算法所做的就是把這些300維的數(shù)據(jù)用一種非線性的方式映射到2維平面上,可以得知t-SNE中這種映射很復(fù)雜而且很非線性。在進行t-SNE映射之后,你不能總是期望使等式成立的關(guān)系,會像左邊那樣成一個平行四邊形,盡管在這個例子最初的300維的空間內(nèi)你可以依賴這種平行四邊形的關(guān)系來找到使等式成立的一對類比,通過t-SNE算法映射出的圖像可能是正確的。但在大多數(shù)情況下,由于t-SNE的非線性映射,你就沒法再指望這種平行四邊形了,很多這種平行四邊形的類比關(guān)系在t-SNE映射中都會失去原貌。
現(xiàn)在,再繼續(xù)之前,我想再快速地列舉一個最常用的相似度函數(shù),這個最常用的相似度函數(shù)叫做余弦相似度。這是我們上個幻燈片所得到的等式(下圖編號1所示),在余弦相似度中,假如在向量 uuu 和 vvv 之間定義相似度:
sim(u,v)=uTv∣∣u∣∣2∣∣v∣∣2sim(u,v)=\frac{u^Tv}{||u||_2||v||_2}sim(u,v)=∣∣u∣∣2?∣∣v∣∣2?uTv?
現(xiàn)在我們先不看分母,分子其實就是 uuu 和 vvv 的內(nèi)積。如果 uuu 和 vvv 非常相似,那么它們的內(nèi)積將會很大,把整個式子叫做余弦相似度,其實就是因為該式是 uuu 和 vvv 的夾角的余弦值,所以這個角(下圖編號2所示)就是Φ角,這個公式實際就是計算兩向量夾角Φ角的余弦。你應(yīng)該還記得在微積分中,Φ角的余弦圖像是這樣的(下圖編號3所示),所以夾角為0度時,余弦相似度就是1,當(dāng)夾角是90度角時余弦相似度就是0,當(dāng)它們是180度時,圖像完全跑到了相反的方向,這時相似度等于-1,這就是為什么余弦相似度對于這種類比工作能起到非常好的效果。 距離用平方距離或者歐氏距離來表示: ∣∣u?v∣∣2||u-v||^2∣∣u?v∣∣2
參考資料:余弦相似度 為了測量兩個詞的相似程度,我們需要一種方法來測量兩個詞的兩個嵌入向量之間的相似程度。 給定兩個向量 uuu 和 vvv ,余弦相似度定義如下:
CosineSimilarity(u,v)=u.v∣∣u∣∣2∣∣v∣∣2=cos(θ)(1)CosineSimilarity(u,v)=\frac{u.v}{||u||_2 ||v||_2}=cos(\theta)\tag{1}CosineSimilarity(u,v)=∣∣u∣∣2?∣∣v∣∣2?u.v?=cos(θ)(1)
其中 u.vu.vu.v 是兩個向量的點積(或內(nèi)積), ∣∣u∣∣2||u||_2∣∣u∣∣2? 是向量 uuu 的范數(shù)(或長度),并且 θ\thetaθ 是向量 uuu 和 vvv 之間的角度。這種相似性取決于角度在向量 uuu 和 vvv 之間。如果向量 uuu 和 vvv 非常相似,它們的余弦相似性將接近1; 如果它們不相似,則余弦相似性將取較小的值。
圖1:兩個向量之間角度的余弦是衡量它們有多相似的指標(biāo),角度越小,兩個向量越相似。
從學(xué)術(shù)上來說,比起測量相似度,這個函數(shù)更容易測量的是相異度,所以我們需要對其取負(fù),這個函數(shù)才能正常工作,不過我還是覺得余弦相似度用得更多一點,這兩者的主要區(qū)別是它們對 uuu 和 vvv 之間的距離標(biāo)準(zhǔn)化的方式不同。
詞嵌入的一個顯著成果就是,可學(xué)習(xí)的類比關(guān)系的一般性。舉個例子,它能學(xué)會man對于woman相當(dāng)于boy對于girl,因為man和woman之間和king和queen之間,還有boy和girl之間的向量差在gender(性別)這一維都是一樣的。它還能學(xué)習(xí)Canada(加拿大)的首都是Ottawa(渥太華),而渥太華對于加拿大相當(dāng)于Nairobi(內(nèi)羅畢)對于Kenya(肯尼亞),這些都是國家中首都城市名字。它還能學(xué)習(xí)big對于bigger相當(dāng)于tall對于taller,還能學(xué)習(xí)Yen(円)對于Janpan(日本),円是日本的貨幣單位,相當(dāng)于Ruble(盧比)對于Russia(俄羅斯)。這些東西都能夠?qū)W習(xí),只要你在大型的文本語料庫上實現(xiàn)一個詞嵌入學(xué)習(xí)算法,只要從足夠大的語料庫中進行學(xué)習(xí),它就能自主地發(fā)現(xiàn)這些模式。
在本節(jié)視頻中,你見到了詞嵌入是如何被用于類比推理的,可能你不會自己動手構(gòu)建一個類比推理系統(tǒng)作為一項應(yīng)用,不過希望在這些可學(xué)習(xí)的類特征的表示方式能夠給你一些直觀的感受。你還看知道了余弦相似度可以作為一種衡量兩個詞嵌入向量間相似度的辦法,我們談了許多有關(guān)這些嵌入的特性,以及如何使用它們。下節(jié)視頻中,我們來討論如何真正的學(xué)習(xí)這些詞嵌入。
課程板書
總結(jié)
以上是生活随笔為你收集整理的2.3 词嵌入的特性-深度学习第五课《序列模型》-Stanford吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.2 使用词嵌入-深度学习第五课《序列
- 下一篇: 2.4 嵌入矩阵-深度学习第五课《序列模