丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能開發(fā)者 正文
發(fā)私信給汪思穎
發(fā)送

1

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

本文作者: 汪思穎 2018-01-11 17:43
導(dǎo)語:本文分為「對語言進(jìn)行建?!购汀该枋鱿嚓P(guān)的模型」兩部分。

雷鋒網(wǎng) AI 科技評論按,本文為廣州火焰科技投稿,作者蘇劍林。以下為正文內(nèi)容:

如果問我哪個(gè)是最方便、最好用的詞向量模型,我覺得應(yīng)該是 word2vec,但如果問我哪個(gè)是最漂亮的詞向量模型,我不知道,我覺得各個(gè)模型總有一些不足的地方。且不說試驗(yàn)效果好不好(這不過是評測指標(biāo)的問題),就單看理論也沒有一個(gè)模型稱得上漂亮的。

本文討論了一些大家比較關(guān)心的詞向量的問題,很多結(jié)論基本上都是實(shí)驗(yàn)發(fā)現(xiàn)的,缺乏合理的解釋,包括:

  • 如何去構(gòu)造一個(gè)詞向量模型?

  • 為什么用余弦值來做近義詞搜索?

  • 向量的內(nèi)積又是什么含義?

  • 詞向量的模長有什么特殊的含義?

  • 為什么詞向量具有詞類比性質(zhì)?(國王-男人+女人=女王)

  • 得到詞向量后怎么構(gòu)建句向量?詞向量求和作為簡單的句向量的依據(jù)是什么?

這些討論既有其針對性,也有它的一般性,有些解釋也許可以直接遷移到對 glove 模型和 skip gram 模型的詞向量性質(zhì)的詮釋中,讀者可以自行嘗試。

圍繞著這些問題的討論,本文提出了一個(gè)新的類似 glove 的詞向量模型,這里稱之為 simpler glove,并基于斯坦福的 glove 源碼進(jìn)行修改,給出了本文的實(shí)現(xiàn),具體代碼在 Github 上。

為什么要改進(jìn) glove?可以肯定的是 glove 的思想是很有啟發(fā)性的,然而盡管它號(hào)稱媲美甚至超越 word2vec,但它本身卻是一個(gè)比較糟糕的模型(后面我們也會(huì)解釋它為什么糟糕),因此就有了改進(jìn)空間。

一、對語言進(jìn)行建模

1、從條件概率到互信息

目前,詞向量模型的原理基本都是詞的上下文的分布可以揭示這個(gè)詞的語義,就好比“看看你跟什么樣的人交往,就知道你是什么樣的人”,所以詞向量模型的核心就是對上下文的關(guān)系進(jìn)行建模。

除了 glove 之外,幾乎所有詞向量模型都是在對條件概率 P(w|context) 進(jìn)行建模,比如 Word2Vec 的 skip gram 模型就是對條件概率 P(w2|w1) 進(jìn)行建模。

但這個(gè)量其實(shí)是有些缺點(diǎn)的,首先它是不對稱的,即 P(w2|w1) 不一定等于P(w1|w2),這樣我們在建模的時(shí)候,就要把上下文向量和目標(biāo)向量區(qū)分開,它們不能在同一向量空間中;其次,它是有界的、歸一化的量,這就意味著我們必須使用 softmax 等方法將它壓縮歸一,這造成了優(yōu)化上的困難。

事實(shí)上,在NLP的世界里,有一個(gè)更加對稱的量比單純的 P(w2|w1) 更為重要,那就是:

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

這個(gè)量的大概意思是“兩個(gè)詞真實(shí)碰面的概率是它們隨機(jī)相遇的概率的多少倍”,如果它遠(yuǎn)遠(yuǎn)大于 1,那么表明它們傾向于共同出現(xiàn)而不是隨機(jī)組合的,當(dāng)然如果它遠(yuǎn)遠(yuǎn)小于 1,那就意味著它們倆是刻意回避對方的。這個(gè)量在 NLP 界是舉足輕重的,我們暫且稱它為“相關(guān)度“,當(dāng)然,它的對數(shù)值更加出名,大名為點(diǎn)互信息(Pointwise Mutual Information,PMI):

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

有了上面的理論基礎(chǔ),我們認(rèn)為,如果能直接對相關(guān)度進(jìn)行建模,會(huì)比直接對條件概率P(w2|w1) 建模更加合理,所以本文就圍繞這個(gè)角度進(jìn)行展開。在此之前,我們先進(jìn)一步展示一下互信息本身的美妙性質(zhì)。

2、互信息的可加性

相關(guān)度(等價(jià)地,互信息)在樸素假設(shè)下,有著非常漂亮的分解性質(zhì)。所謂樸素假設(shè),就是指特征之間是相互獨(dú)立的,這樣我們就有 P(a,b)=P(a)P(b),也就是將聯(lián)合概率進(jìn)行分解,從而簡化模型。

比如,考慮兩個(gè)量 Q,A 之間的互信息,Q,A 不是單個(gè)特征,而是多個(gè)特征的組合:

Q=(q1,…,qk),A=(a1,…,al),現(xiàn)在考慮它們的相關(guān)度,即:

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

用樸素假設(shè)就得到:

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

用貝葉斯公式,得到:

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

再用一次樸素假設(shè),得到:

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

這表明,在樸素假設(shè)下,兩個(gè)多元變量的相關(guān)度,等于它們兩兩單變量的相關(guān)度的乘積。如果兩邊取對數(shù),那么結(jié)果就更加好看了,即:

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

也就是說,兩個(gè)多元變量之間的互信息,等于兩兩單變量之間的互信息之和,換句話說,互信息是可加的。

3、插播:番外篇

為了讓大家更直觀地理解詞向量建模的原理,現(xiàn)在讓我們想象自己是語言界的“月老”,我們的目的是測定任意兩個(gè)詞之間的“緣分”,為每個(gè)詞尋找最佳的另一半鋪路。

所謂“有緣千里來相會(huì),無緣見面不相識(shí)”,對于每個(gè)詞來說,最佳的另一半肯定都是它的“有緣詞”。怎樣的兩個(gè)詞才算是“有緣”呢?那自然是“你的眼里有我,我的眼里也有你”了。

前面已經(jīng)說了,skip gram 模型關(guān)心的是條件概率 P(w2|w1),導(dǎo)致的結(jié)果是“w1 的眼里有w2,w2 的眼里卻未必有 w1”,也就是說,w2 更多的是詞語界的“花花公子”,如“的”、“了”這些停用詞,它們跟誰都能混在一起,但未必對誰都真心。

因此,為了“你中有我,我中有你”,就必須同時(shí)考慮 P(w2|w1) 和 P(w1|w2),或者考慮一個(gè)更加對稱的量——也就是前面說的“相關(guān)度”了。所以“月老”決定用相關(guān)度來定量描述兩個(gè)詞之間的“緣分”值。

接下來,“月老”就開始工作了,開始逐一算詞與詞之間的“緣分”了。算著算著,他就發(fā)現(xiàn)嚴(yán)重的問題了。

首先,數(shù)目太多了,算不完。要知道詞語界可是有數(shù)萬甚至數(shù)十萬、將來還可能是數(shù)百萬的詞語,如果兩兩的緣分都算一次并記錄下來,那將要一個(gè)數(shù)十億乃至數(shù)萬億的表格,而且這工作量也不少,也許月老下崗了也還不能把它們都算完,但從負(fù)責(zé)任的角度,我們不能忽略任意兩個(gè)詞在一起的可能性呀!

其次,詞與詞之間的 N 次邂逅,相對于漫漫歷史長河,也不過是滄海一粟。兩個(gè)詞沒有碰過面,真的就表明它們毫無緣分了嗎?現(xiàn)在沒有,可不代表將來沒有。作為謹(jǐn)慎的月老,顯然是不能這么武斷下結(jié)論的。

詞與詞之間的關(guān)系錯(cuò)綜復(fù)雜,因此哪怕兩個(gè)詞沒有碰過面,也不能一刀切,也得估算一下它們的緣分值。

二、描述相關(guān)的模型

1、幾何詞向量

上述“月老”之云雖說只是幻想,但所面臨的問題卻是真實(shí)的。按照傳統(tǒng) NLP 的手段,我們可以統(tǒng)計(jì)任意兩個(gè)詞的共現(xiàn)頻率以及每個(gè)詞自身的頻率,然后去算它們的相關(guān)度,從而得到一個(gè)“相關(guān)度矩陣”。

然而正如前面所說,這個(gè)共現(xiàn)矩陣太龐大了,必須壓縮降維,同時(shí)還要做數(shù)據(jù)平滑,給未出現(xiàn)的詞對的相關(guān)度賦予一個(gè)合理的估值。

在已有的機(jī)器學(xué)習(xí)方案中,我們已經(jīng)有一些對龐大的矩陣降維的經(jīng)驗(yàn)了,比如 SVD 和 pLSA,SVD 是對任意矩陣的降維,而 pLSA 是對轉(zhuǎn)移概率矩陣 P(j|i) 的降維,兩者的思想是類似的,都是將一個(gè)大矩陣 A 分解為兩個(gè)小矩陣的乘積 A≈BC,其中 B 的行數(shù)等于 A 的行數(shù),C 的列數(shù)等于 A 的列數(shù),而它們本身的大小則遠(yuǎn)小于 A 的大小。如果對 B,C 不做約束,那么就是 SVD;如果對 B,C 做正定歸一化約束,那就是 pLSA。

但是如果是相關(guān)度矩陣,那么情況不大一樣,它是正定的但不是歸一的,我們需要為它設(shè)計(jì)一個(gè)新的壓縮方案。借鑒矩陣分解的經(jīng)驗(yàn),我們可以設(shè)想把所有的詞都放在 n 維空間中,也就是用 n 維空間中的一個(gè)向量來表示,并假設(shè)它們的相關(guān)度就是內(nèi)積的某個(gè)函數(shù)(為什么是內(nèi)積?因?yàn)榫仃嚦朔ū旧砭褪遣粩嗟刈鰞?nèi)積)。

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

其中加粗的 vi,vj 表示詞 wi,wj 對應(yīng)的詞向量。從幾何的角度看,我們就是把詞語放置到了 n 維空間中,用空間中的點(diǎn)來表示一個(gè)詞。

因?yàn)閹缀谓o我們的感覺是直觀的,而語義給我們的感覺是復(fù)雜的,因此,理想情況下我們希望能夠通過幾何關(guān)系來反映語義關(guān)系。下面我們就根據(jù)我們所希望的幾何特性,來確定待定的函數(shù) f。

事實(shí)上,glove 詞向量的那篇論文中做過類似的事情,很有啟發(fā)性,但 glove 的推導(dǎo)實(shí)在是不怎么好看。請留意,這里的觀點(diǎn)是新穎的——從我們希望的性質(zhì),來確定我們的模型,而不是反過來有了模型再推導(dǎo)性質(zhì)。

2、機(jī)場-飛機(jī)+火車=火車站

詞向量最為人津津樂道的特性之一就是它的“詞類比(word analogy)”,比如那個(gè)經(jīng)典的“國王-男人+女人=女王”(這項(xiàng)性質(zhì)是不是詞向量所必需的,是存在爭議的,但這至少算是個(gè)加分項(xiàng))。然而中英文語境不同,在中文語料中這個(gè)例子是很難復(fù)現(xiàn)的,當(dāng)然,這樣的例子不少,沒必要死摳“洋例子”,比如在中文語料中,就很容易發(fā)現(xiàn)有“機(jī)場-飛機(jī)+火車=火車站”,準(zhǔn)確來說,是:

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

為什么詞向量會(huì)具有這種特性呢?最近一篇文章《Skip-Gram – Zipf + Uniform = Vector Additivity》對這個(gè)現(xiàn)象做了理論分析,文章中基于一些比較強(qiáng)的假設(shè),最后推導(dǎo)出了這個(gè)結(jié)果?,F(xiàn)在我們要做的一件可能比較驚人的事情是:把這個(gè)特性直接作為詞向量模型的定義之一!

具體來說,就是詞義的可加性直接體現(xiàn)為詞向量的可加性,這個(gè)性質(zhì)是詞向量模型的定義。我們是要從這個(gè)性質(zhì)出發(fā),反過來把前一部分還沒有確定下來的函數(shù) f 找出來。這樣一來,我們不僅為確定這個(gè) f 找到了合理的依據(jù),還解釋了詞向量的線性運(yùn)算特性——因?yàn)檫@根本是詞向量模型的定義,而不是模型的推論。

既然是線性運(yùn)算,我們就可以移項(xiàng)得到“機(jī)場+火車=火車站+飛機(jī)”?,F(xiàn)在我們來思考一下,單從語義角度來理解,這個(gè)等式究竟表達(dá)了什么?

文章開頭已經(jīng)提到,詞向量模型的假設(shè)基本都是用上下文的分布來推導(dǎo)詞義,既然“機(jī)場+火車=火車站+飛機(jī)”,那么很顯然就是說,“機(jī)場”與“火車”它們的共同的上下文,跟“火車站”與“飛機(jī)”的共同的上下文,兩者基本是一樣的。

說白了,語義等價(jià)就相當(dāng)于說“如果兩個(gè)人的擇偶標(biāo)準(zhǔn)是很接近的,那么他們肯定也有很多共同點(diǎn)”。到這里,f 的形式就呼之欲出了!

3、模型的形式

因?yàn)樵~與詞的相關(guān)程度用相關(guān)度來描述,所以如果“機(jī)場+火車=火車站+飛機(jī)”,那么我們會(huì)有:

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

這里的 w 是上下文的任意一個(gè)詞,由于我們不特別關(guān)心詞序,只關(guān)心上下文本身的平均分布,因此,我們可以使用樸素假設(shè)來化簡上式,那么根據(jù)式(6)得到:

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

代入前面假設(shè)的式(8),得到:

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

這里 vw 是任意的,因此上式等價(jià)于成立

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

加上連續(xù)性條件的話,那么上述方程的通解就是(求解過程在一般的數(shù)學(xué)分析書籍應(yīng)該都可以找到)

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

也就是指數(shù)形式?,F(xiàn)在我們就得到如下結(jié)果。為了讓最后得到的詞向量具有可加性,那么就需要對相關(guān)度用指數(shù)模型建模:

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

等價(jià)地,對互信息進(jìn)行建模:

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

至此,我們完成了模型的形式推導(dǎo),從形式上看類似對互信息矩陣的 SVD 分解。

4、忘記歸一化

我們沒有像通常的概率模型那樣,除以一個(gè)歸一化因子來完成概率的歸一化。這樣造成的后果是:對于本文的模型,當(dāng)然也包括 glove 模型,我們不能討論任意有關(guān)歸一化的事情,不然會(huì)導(dǎo)致自相矛盾的結(jié)果。

事實(shí)上,這是一種以空間換取時(shí)間的做法,因?yàn)槲覀?span style="color: #E36C09;">沒有除以歸一化因子來歸一化,但又必須讓結(jié)果接近歸一化,所以我們只能事先統(tǒng)計(jì)好所有的共現(xiàn)項(xiàng)的互信息并存好,這往往需要比較大的內(nèi)存。

而這步驟換來的好處是,所有的共現(xiàn)項(xiàng)其實(shí)很有限(“詞對”的數(shù)目總比句子的數(shù)目要少),因此當(dāng)你有大規(guī)模的語料且內(nèi)存足夠多時(shí),用 glove 模型往往比用 word2vec 的 skip gram 模型要快得多。

此外,既然本文的模型跟 word2vec 的 skip gram 模型基本上就是相差了一個(gè)歸一化因子,那么很顯然,本文的一些推導(dǎo)過程能否直接遷移到 word2vec 的 skip gram 模型中,基本上取決于 skip gram 模型訓(xùn)練后它的歸一化因子是否接近于 1。

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知

從概念到實(shí)戰(zhàn),深度解析「simpler glove」詞向量模型(一)

分享:
相關(guān)文章

編輯

關(guān)注AI學(xué)術(shù),例如論文
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號(hào)
作品鏈接
個(gè)人簡介
為了您的賬戶安全,請驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說