word2vec詞向量表示隨感

讀后感:Tomas Mikolov, “Efficient Estimation of Word Representations in Vector Space”

本文包括討論:

1)問(wèn)題的提出

2)為什么相關(guān)的詞芒澜,映射到表示空間中后历谍,距離會(huì)接近?

3)為什么詞向量滿足向量空間的代數(shù)運(yùn)算蔓腐?

注:在這里我們不聊具體論文細(xì)節(jié)、公式龄句、數(shù)學(xué)這些東西回论,就隨便聊聊個(gè)人思考的一些小東西散罕。

神秘面紗

{\rm vector}("King") - {\rm vector}("Man") + {\rm vector}("Woman") \approx {\rm vector}("Queen")  \quad \cdots (1)

? ? ? ? 凡是第一次見到上面(1)式的人,都會(huì)被這樣漂亮的結(jié)果深深吸引傀蓉;其實(shí)再靜下來(lái)想想看欧漱,也沒(méi)那么神秘;即便不能針對(duì)每個(gè)案例給出詳細(xì)的解釋葬燎,我們也可以從宏觀角度粗略地分析一下误甚,本質(zhì)上,這一切都是語(yǔ)言的結(jié)構(gòu)使然谱净;兩句以蔽之:“相似的上下文產(chǎn)生距離相近的詞向量窑邦,模型線性性誘導(dǎo)出向量空間代數(shù)運(yùn)算”。

相關(guān)的詞壕探,映射成表示空間中的稠密向量后冈钦,距離很近?

從訓(xùn)練過(guò)程來(lái)看

? ? ? ? 既然涉及距離計(jì)算浩蓉,那么我們用的是什么度量呢派继?在softmax或sigmoid分類模型的意義下,我們可以認(rèn)為是“內(nèi)積”捻艳,當(dāng)然內(nèi)積并不是一個(gè)真正意義上的度量驾窟,畢竟非負(fù)性就沒(méi)滿足。我們引入兩個(gè)術(shù)語(yǔ)“本真距離”用于描述兩個(gè)詞作為描述語(yǔ)言結(jié)構(gòu)所體現(xiàn)出來(lái)的內(nèi)在距離认轨,是不可縮小的绅络;“模型距離”就是相應(yīng)的詞向量之間的距離,在訓(xùn)練過(guò)程中變化嘁字。

? ? ? ? 我們想想詞向量是怎么來(lái)的恩急?比如:在skip-gram模型下,我們通過(guò)將當(dāng)前詞的稠密表示纪蜒,通過(guò)一個(gè)softmax線性分類映射衷恭,然后最大化預(yù)測(cè)真實(shí)的上下文單詞的概率。通過(guò)將誤差梯度傳回到稠密表示層(嵌入層)纯续,進(jìn)而修改随珠、微調(diào)當(dāng)前的詞表示。(其實(shí)這和機(jī)器視覺里的風(fēng)格遷移模型有著異曲同工之妙猬错,順便遛遛N多年前我跑出來(lái)的梵高風(fēng)格貓咪)

風(fēng)格遷移-梵高的貓咪

舉個(gè)例子

? ? ? ? 比如:對(duì)于單詞“King”窗看,在某一次訓(xùn)練迭代中的上下文是“The angry king is blaming ministers”;但是倦炒,當(dāng)前模型是用“The gental husband is cooking for his wife”訓(xùn)練出來(lái)的显沈,若“King”的詞向量此時(shí)剛好包含作為“Queen”的husband那部分性質(zhì),則可能預(yù)測(cè)出來(lái)的結(jié)果是"The gental King is cooking for his wife"逢唤;這顯然是不對(duì)的拉讯,因?yàn)檫@不符合“King”的行為涤浇。在這里模型預(yù)測(cè)使用了“King”的一部分屬性,即“國(guó)王”和“男人”所共有的那部分屬性遂唧;但是另外一些“國(guó)王”特有的屬性就沒(méi)有體現(xiàn)出來(lái)芙代。

????????于是,下面對(duì)計(jì)算出來(lái)的損失進(jìn)行求導(dǎo)盖彭,通過(guò)梯度對(duì)上下文單詞v_c和當(dāng)前詞的詞向量u_k進(jìn)行“微調(diào)”,使得在“King”的詞向量上體現(xiàn)更多的貴族階級(jí)和統(tǒng)治者相關(guān)的屬性页滚,事實(shí)上在這個(gè)例子中召边,有效的梯度主要由”blaming ministers“來(lái)產(chǎn)生。

? ? ? ? 同樣裹驰,如果還有語(yǔ)料“The angry queen is?blaming ministers”隧熙,則”king“和”queen“有相同的上下文,則在固定當(dāng)前參數(shù)幻林,并具有相同的上下文情況下贞盯,會(huì)對(duì)“Queen”產(chǎn)生相同的梯度,進(jìn)而將”Queen“的詞向量在余弦距離的意義下推向“King”沪饺。

一些備注

? ? ? ? 由于作者引入了降低計(jì)算量的技巧(比如“負(fù)采樣”)后躏敢,輸出層實(shí)際上只是計(jì)算一個(gè)個(gè)單獨(dú)的-log_sigmoid損失;這樣的話相當(dāng)于整個(gè)計(jì)算就是兩組向量之間的內(nèi)積整葡,第一組就是目標(biāo)詞向量構(gòu)成的矩陣件余;第二組原本是softmax分類器對(duì)應(yīng)的參數(shù)矩陣,實(shí)際上輸出層的每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的用來(lái)和當(dāng)前輸入向量vector(“King”)計(jì)算內(nèi)積的參數(shù)遭居,也可以被看作該輸出層節(jié)點(diǎn)對(duì)應(yīng)的詞向量啼器。因此有人會(huì)說(shuō),word2vector模型一次訓(xùn)練俱萍,得到兩組不同的詞向量端壳。

形式化討論

? ? ? ? 我們稍微形式化一下這樣的過(guò)程:假設(shè)當(dāng)前單詞“King”的詞向量表示是w_k,當(dāng)前上下文的詞向量為\{w_1,w_2,...,w_n\}枪蘑,則我們希望最大化L=\sum_{i=1}^{n} \sigma_i(w_k)=\sum_{i=1}^{n} \frac{1}{1 + e^{-w_k^Tw_i}}损谦;這等價(jià)于使得w_k^Tw_i,i=1,...,n都變大。所以腥寇,使得\sum_{i=1}^{n}w_k^Tw_i = w_k^T(\sum_{i=1}^{n}w_i )變大是一個(gè)必要條件成翩。

????????記c = \sum_{i=1}^{n}w_i,我們稱之為上下文平均向量赦役,如何調(diào)整w_k使得L變大麻敌,即使得w_k^Tc變大呢?1)當(dāng)cw_k夾角大于90度時(shí):要么縮小||w_k||掂摔,要么縮小{\rm angle} <w_k,c>术羔;2)當(dāng)w_kc的夾角小于90度時(shí):要么繼續(xù)縮小{\rm angle}<w_k,c>赢赊,要么增大||w_k||。事實(shí)上级历,由<w_k, c> = \frac{w_k^Tc}{||w_k|| \cdot ||c||} \cdot{||w_k|| \cdot ||c||}= {\rm cosine}(w_k, c) \cdot{||w_k|| \cdot ||c||}便可以看出來(lái)释移。

? ? ? ? 不過(guò),不管哪種情況寥殖,都可以使用梯度上升來(lái)優(yōu)化玩讳,比如:w_k^{\prime} = (w_k + n\lambda \nabla_{w_k}{w_k^Tc})=(w_k + n\lambda c)在迭代次數(shù)n充分大時(shí)(w_k^{\prime}) ^Tc \approx n\lambda c^Tc,顯然會(huì)越來(lái)越大(注意嚼贡,這里的梯度優(yōu)化是簡(jiǎn)化版的關(guān)于內(nèi)積的梯度熏纯,并非實(shí)際中的梯度)。

? ? ? ? 和實(shí)際情況一樣粤策,在這個(gè)過(guò)程中樟澜,由于并沒(méi)有約束向量w_k的范數(shù),因此在夾角為銳角的情況下w_k可以增加它的長(zhǎng)度叮盘,從而來(lái)增加內(nèi)積的大小秩贰,但是由于sigmoid的飽和性質(zhì),這種過(guò)程也不會(huì)一直持續(xù)下去柔吼。所以即便兩個(gè)向量的模型距離很小毒费,它們的歐幾里得距離可以很大(但不會(huì)無(wú)限增大)。因此我們可以通過(guò)規(guī)范化來(lái)得到一個(gè)合理的度量嚷堡,而在這種度量(余弦距離)下蝗罗,兩個(gè)向量的距離會(huì)更接近單詞之間的“本真距離”。

繼續(xù)討論例子

? ? ? ? 在上面的例子中蝌戒,由于“King”和“Queen”在相同的上下文和固定的模型下得到相同梯度串塑,因此它們同時(shí)會(huì)向“上下文平均向量”靠攏,因而得到作為“權(quán)貴階級(jí)和統(tǒng)治者”相關(guān)的維度屬性北苟。但是“Queen”和“King”又可以作為“woman”和“man”在不同的上下文會(huì)更新到不同的具體性別屬性桩匪。

? ? ? ? 我們說(shuō)“本真距離”是由于一個(gè)語(yǔ)言{\mathcal L}的結(jié)構(gòu)所帶來(lái)的單詞之間的內(nèi)在差異,是不可以通過(guò)優(yōu)化來(lái)縮小的友鼻;如果單詞A和單詞B在語(yǔ)言{\mathcal L}中任何一句話中都可以互換傻昙,則在這個(gè)語(yǔ)言下,它們被視為同一個(gè)單詞彩扔。所以妆档,正是不同的上下文,才造成了詞與詞之間的距離虫碉。所以贾惦,當(dāng)任意兩個(gè)詞向量之間的距離都降低到了它們的“本真距離”后,詞向量模型就是完美的了。

? ? ? ? 在上面须板,我們假設(shè)單詞“King”的詞向量w_k在某種意義下會(huì)靠近上下文的平均詞向量碰镜,但是上下文中的單詞的詞向量呢?它們又會(huì)在這種意義下各自接近它們?cè)谡Z(yǔ)言中的平均向量习瑰。從隨機(jī)初始化開始绪颖,我們可以將這個(gè)過(guò)程看作一個(gè)動(dòng)態(tài)收斂的過(guò)程,類似于EM算法或是醒-眠算法過(guò)程甜奄;舉個(gè)簡(jiǎn)單的例子:先根據(jù)單詞A的臨近單詞B優(yōu)化更新單詞A的詞向量柠横,然后可能再用更新過(guò)的單詞A來(lái)優(yōu)化更新單詞B的詞向量,最后達(dá)到某種動(dòng)態(tài)平衡贺嫂;好似馬爾可夫鏈磨合到了平穩(wěn)分布那種感覺滓鸠;或者回想一下PageRank算法。

????????其實(shí)我更愿意將整個(gè)語(yǔ)言看作一個(gè)大的有限狀態(tài)圖第喳,而每個(gè)語(yǔ)句就對(duì)應(yīng)著圖上的一次合法的游走,而訓(xùn)練過(guò)程就相當(dāng)于擬合這些合法的路徑踱稍,這就像卷積網(wǎng)絡(luò)對(duì)圖的局部特征(局部路徑)的提取過(guò)程(當(dāng)然曲饱,更好的還是和圖神經(jīng)網(wǎng)絡(luò)作類比,但是我沒(méi)有研究過(guò)圖神經(jīng)網(wǎng)絡(luò))珠月。

詞向量滿足向量空間的代數(shù)運(yùn)算扩淀?

? ? ? ? 回到表達(dá)式(1),我們想再分析一下這是如何做到的啤挎。我想了半天驻谆,也沒(méi)找到好的解釋。不如我們繼續(xù)倒推一下庆聘,記w_k = {\rm vector}("King"), w_m = {\rm vector}("Man"),w_w= {\rm vector}("Woman"), w_q={\rm vector}("Queen") 胜臊,則我們要判斷w_k-w_m+w_w是在所有詞向量中使得\frac{(w_k-w_m+w_w)^Tw_q}{||w_k-w_m+w_w||\cdot||w_q||}最大的那個(gè),即證明w_k-w_m+w_w近似平行于向量w_q(再次注意伙判,式(1)中的約等號(hào)\approx指的是度量下的距離運(yùn)算象对,而不是向量空間的向量判等運(yùn)算,所以我們使用了余弦距離)宴抚。

我們不妨設(shè)w_q = \lambda (w_k-w_m+w_w)勒魔,并且繼續(xù)設(shè)

w_{king}=\underbrace{w_{royal} + w_{power} + w_{govern}+...}_{\rm King\  specified} + \underbrace{w_{brave} + w_{strong} + w_{calm}+...}_{\rm Man\  specified} +...

w_{man}= \underbrace{w_{brave} + w_{strong} + w_{calm}+...}_{\rm Man\  specified}

w_{woman}= \underbrace{w_{tender} + w_{careful} + w_{kindness}+...}_{\rm Woman\  specified}

我們將w_q進(jìn)行展開得到:\begin{aligned}w_{queen} &= \lambda \{ \underbrace{w_{royal} + w_{power} + w_{govern}+...}_{\rm Royal \  specified} + \underbrace{w_{brave} + w_{strong} + w_{calm}+...}_{\rm Man\  specified} +...  \\&\quad-\underbrace{w_{brave} + w_{strong} + w_{calm}+...}_{\rm Man\  specified} \\&\quad+\underbrace{w_{tender} + w_{careful} + w_{kindness}+...}_{\rm Woman\  specified} \}\\&= \lambda \{ \underbrace{w_{royal} + w_{power} + w_{govern}+...}_{\rm Royal \  specified} +\underbrace{w_{tender} + w_{careful} + w_{kindness}+...}_{\rm Woman\  specified} +...  \}\end{aligned}

? ? ? ? 這相當(dāng)于,將所有和“Queen”相關(guān)的詞向量相加菇曲,并且乘以一個(gè)縮放系數(shù)冠绢,使得w_{queen}具有適當(dāng)?shù)某叨取_M(jìn)而我們還可以繼續(xù)對(duì)上面所有的這些Royal specified和Woman specified的詞向量常潮,進(jìn)一步分解弟胀;并且,進(jìn)一步將每個(gè)單詞乘以對(duì)應(yīng)的縮放系數(shù),在迭代過(guò)程中邮利,系數(shù)的指數(shù)級(jí)衰退弥雹,使得詞向量級(jí)數(shù)不會(huì)發(fā)散。但是這樣的遞歸過(guò)程能觸底嗎延届?現(xiàn)在在復(fù)雜的自然語(yǔ)言中剪勿,單詞之間存在的千絲萬(wàn)縷的互相作用;這是一個(gè)有環(huán)圖方庭,沒(méi)有閉式解厕吉,所以我們只能使用迭代方法。

? ? ? ? 再有械念,為什么我可以使用向量加法头朱、向量數(shù)乘運(yùn)算,來(lái)進(jìn)行單詞語(yǔ)義層面上的運(yùn)算呢龄减?這合理嗎项钮?其實(shí),這是由模型的線性性質(zhì)來(lái)保證希停,這就是為什么作者使用線性模型的很重要的一個(gè)原因烁巫。由于沒(méi)有激活函數(shù),每次疊加到當(dāng)前詞向量上的梯度宠能,就是上下文向量乘以一個(gè)學(xué)習(xí)率亚隙;這不就是上面我們的展開式嗎?只不過(guò)在訓(xùn)練過(guò)程中违崇,所有的這些詞向量是沒(méi)有收斂的阿弃;而上面我們展開時(shí)中的是模型收斂后的,平穩(wěn)的向量羞延≡荆回想一下前面討論過(guò)的,就會(huì)發(fā)現(xiàn)這種線性模型的訓(xùn)練過(guò)程中肴楷,就等價(jià)于每次迭代中水由,往對(duì)應(yīng)的目標(biāo)詞向量中添加少許的上下文詞向量的成份,添加劑量用學(xué)習(xí)率和梯度范數(shù)一起來(lái)控制赛蔫。

瞎猜

????????所以我猜測(cè):越能準(zhǔn)確表達(dá)砂客、越細(xì)致的語(yǔ)言,可能學(xué)出來(lái)的詞向量的代數(shù)運(yùn)算精度也越高呵恢;但是可能泛化性能不如其它表達(dá)上更加自由的語(yǔ)言鞠值;比如是否有英語(yǔ)詞向量精度高于漢語(yǔ),而靈活性不如漢語(yǔ)呢渗钉?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末彤恶,一起剝皮案震驚了整個(gè)濱河市钞钙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌声离,老刑警劉巖芒炼,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異术徊,居然都是意外死亡本刽,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門赠涮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)子寓,“玉大人,你說(shuō)我怎么就攤上這事笋除⌒庇眩” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵垃它,是天一觀的道長(zhǎng)鲜屏。 經(jīng)常有香客問(wèn)我,道長(zhǎng)国拇,這世上最難降的妖魔是什么墙歪? 我笑而不...
    開封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮贝奇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘靠胜。我一直安慰自己掉瞳,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開白布浪漠。 她就那樣靜靜地躺著陕习,像睡著了一般。 火紅的嫁衣襯著肌膚如雪址愿。 梳的紋絲不亂的頭發(fā)上该镣,一...
    開封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音响谓,去河邊找鬼损合。 笑死,一個(gè)胖子當(dāng)著我的面吹牛娘纷,可吹牛的內(nèi)容都是我干的嫁审。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赖晶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼律适!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤捂贿,失蹤者是張志新(化名)和其女友劉穎纠修,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厂僧,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扣草,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吁系。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片德召。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖汽纤,靈堂內(nèi)的尸體忽然破棺而出上岗,到底是詐尸還是另有隱情,我是刑警寧澤蕴坪,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布肴掷,位于F島的核電站,受9級(jí)特大地震影響背传,放射性物質(zhì)發(fā)生泄漏呆瞻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一径玖、第九天 我趴在偏房一處隱蔽的房頂上張望痴脾。 院中可真熱鬧,春花似錦梳星、人聲如沸赞赖。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)前域。三九已至,卻和暖如春韵吨,著一層夾襖步出監(jiān)牢的瞬間匿垄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工归粉, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留椿疗,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓盏浇,卻偏偏與公主長(zhǎng)得像变丧,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绢掰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

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