探秘Word2Vec(二)-背景知識(shí)

word2vec是用來(lái)生成詞向量的工具,而詞向量與語(yǔ)言模型有著密切的關(guān)系鸦列,為此吨些,不妨先來(lái)了解一些語(yǔ)言模型方面的知識(shí)。

1刁愿、統(tǒng)計(jì)語(yǔ)言模型

統(tǒng)計(jì)語(yǔ)言模型(Statistical Language Model)是所有NLP的基礎(chǔ)绰寞,被廣泛應(yīng)用于語(yǔ)音識(shí)別,機(jī)器翻譯酌毡,分詞克握,詞性標(biāo)注和信息檢索等任務(wù)。
簡(jiǎn)單的說(shuō)枷踏,統(tǒng)計(jì)語(yǔ)言模型是用來(lái)計(jì)算一個(gè)句子的概率的概率模型菩暗,它通常基于一個(gè)語(yǔ)料庫(kù)來(lái)構(gòu)建旭蠕,那什么叫做一個(gè)句子的概率呢停团?假設(shè)一個(gè)由(w1,w2,....wT)這T個(gè)詞按順序構(gòu)成的一個(gè)句子W旷坦,則(w1,w2,....wT)的聯(lián)合概率:


上面的這個(gè)式子就是這個(gè)句子的概率,利用貝葉斯公式佑稠,可以將上式鏈?zhǔn)椒纸鉃椋?br>

所以秒梅,可以看到,上面模型需要估計(jì)的參數(shù)有T個(gè)舌胶,拆借出的每個(gè)條件概率都是語(yǔ)言模型的參數(shù)捆蜀,如果這些參數(shù)都已經(jīng)算得,則可以算出一個(gè)句子的概率幔嫂。
看起來(lái)很簡(jiǎn)單辆它,但是稍微分析一下,就可以知道具體實(shí)現(xiàn)起來(lái)有多麻煩履恩。例如锰茉,先來(lái)看看模型參數(shù)的個(gè)數(shù),剛才考慮的是一個(gè)長(zhǎng)度為T的句子切心,就需要計(jì)算T個(gè)參數(shù)飒筑,不妨假設(shè)語(yǔ)料庫(kù)對(duì)應(yīng)詞典D的大小為N,那么考慮長(zhǎng)度為T的仁義句子绽昏,理論上就有NT種可能协屡,每種可能都要計(jì)算T個(gè)參數(shù),總共就需要計(jì)算TNT個(gè)參數(shù)而涉。這個(gè)量級(jí)非常嚇人著瓶,此外,這些概率計(jì)算之后需要保存下來(lái)啼县,存儲(chǔ)這些信息也需要巨大的空間開(kāi)銷。
那么沸久,這些參數(shù)如何計(jì)算呢季眷?常見(jiàn)的方法有n-gram模型,決策樹(shù)卷胯,最大熵模型子刮,最大熵馬爾可夫模型,條件隨機(jī)場(chǎng)窑睁,神經(jīng)網(wǎng)絡(luò)方法等挺峡。這里只介紹n-gram模型和神經(jīng)網(wǎng)絡(luò)模型。

2担钮、N-Gram模型


可以看出橱赠,一個(gè)詞出現(xiàn)的概率跟它前面的所有詞都相關(guān),如果假定一個(gè)詞的出現(xiàn)概率只跟他前面固定數(shù)目的詞相關(guān)呢箫津?這就是n-gram模型的基本思想狭姨,它做了一個(gè)n-1階的馬爾可夫假設(shè)宰啦,認(rèn)為一個(gè)詞的出現(xiàn)的概率就只與它前面的n-1個(gè)詞想管,即:

于是我們便有:

以n=2為例饼拍,即每個(gè)詞的出現(xiàn)的概率只與它前面一個(gè)詞有關(guān)赡模,即:

這樣一件話,不僅使得單個(gè)參數(shù)的統(tǒng)計(jì)變得更容易师抄,也使得參數(shù)的總數(shù)變少了漓柑。
那么,n-gram中參數(shù)n一般取多大比較合適呢叨吮?一般來(lái)說(shuō)辆布,n的選擇需要同時(shí)考慮計(jì)算復(fù)雜度和模型效果兩個(gè)因素。
在計(jì)算復(fù)雜度方面挤安,假定我們的詞典大小N=200000谚殊,則模型參數(shù)數(shù)量隨著n逐漸增大的情況如下表所示:

可以看到,隨著n的增大蛤铜,模型參數(shù)數(shù)量呈指數(shù)級(jí)增長(zhǎng)嫩絮,所以實(shí)際中n不能取太大,一般取n=3左右围肥。
在模型效果方面剿干,理論上是n越大,效果越好穆刻,現(xiàn)如今置尔,互聯(lián)網(wǎng)的海量數(shù)據(jù)以及機(jī)性能的提升使得計(jì)算更高階的語(yǔ)言模型(n>10)成為課呢呢個(gè),但需要注意的是氢伟,當(dāng)n大到一定程度的時(shí)候榜轿,模型效果的提升幅度會(huì)變小,比如n從1到2朵锣,再?gòu)?到3谬盐,模型效果上升顯著,但從3到4時(shí)诚些,模型效果的提升就不顯著了飞傀。另外,n-gram中還有一個(gè)叫做平滑化的重要環(huán)節(jié)诬烹,主要考慮以下兩個(gè)問(wèn)題:

有關(guān)平滑化的問(wèn)題砸烦,大家可以參考博客:
http://blog.csdn.net/baimafujinji/article/details/51297802
總結(jié)起來(lái),n-gram模型就是這樣一種模型绞吁,其主要工作就是在語(yǔ)料中統(tǒng)計(jì)各種詞串出現(xiàn)的次數(shù)以及平滑化處理幢痘,概率值計(jì)算好之后存儲(chǔ)起來(lái),下次需要計(jì)算一個(gè)句子的概率時(shí)掀泳,只需找到相關(guān)的概率參數(shù)雪隧,將它們連乘起來(lái)就好了西轩。

然而在機(jī)器學(xué)習(xí)領(lǐng)域有一種通用的招數(shù)是這樣的,對(duì)所考慮的問(wèn)題建模后現(xiàn)為其構(gòu)造一個(gè)目標(biāo)函數(shù)脑沿,然后對(duì)這個(gè)目標(biāo)函數(shù)進(jìn)行優(yōu)化藕畔,從而求得一組最優(yōu)的參數(shù),最后利用這組最優(yōu)參數(shù)對(duì)應(yīng)的模型來(lái)進(jìn)行預(yù)測(cè)庄拇。
對(duì)于統(tǒng)計(jì)語(yǔ)言模型而言注服,利用最大似然,可把目標(biāo)函數(shù)設(shè)為:



上式中措近,C表示語(yǔ)料溶弟,Context(w)表示詞w的上下文,即w周邊的詞的集合瞭郑。
當(dāng)然辜御,實(shí)際應(yīng)用中通常采用最大對(duì)數(shù)似然,把目標(biāo)函數(shù)設(shè)為:



然后對(duì)上面的函數(shù)進(jìn)行最大化屈张,可以看到擒权,概率p(w|context(w))被視為關(guān)于w和Context(w) 的函數(shù),即:

其中Θ為待定參數(shù)集阁谆。這樣的話碳抄,但我們得到最優(yōu)的參數(shù)Θ后,F(xiàn)也就唯一確定了场绿,以后任何概率p(w|context(w))都可以通過(guò)F來(lái)計(jì)算了剖效,與n-gram相比,這種方法不需要事先保存所有的概率焰盗,而是通過(guò)直接計(jì)算來(lái)獲取璧尸,而且通過(guò)選取合適的模型可以使參數(shù)Θ的個(gè)數(shù)遠(yuǎn)小于n-gram中參數(shù)的個(gè)數(shù)。

顯然熬拒,對(duì)于這樣一種算法逗宁,最關(guān)鍵的地方就在于函數(shù)F的構(gòu)造了,接下來(lái)我們會(huì)介紹一種通過(guò)神經(jīng)網(wǎng)絡(luò)來(lái)構(gòu)造F的方法梦湘,這種方法也可以視為word2vec種算法框架的基礎(chǔ)或者前身。

3件甥、神經(jīng)概率語(yǔ)言模型

本節(jié)介紹的神經(jīng)概率語(yǔ)言模型捌议,用到了一個(gè)重要的工具-詞向量。什么是詞向量呢引有?簡(jiǎn)單來(lái)說(shuō)瓣颅,就是對(duì)辭典D中任意的詞w,將詞w轉(zhuǎn)化為一個(gè)固定長(zhǎng)度的向量v(w)譬正,這個(gè)向量就稱為詞向量宫补。
既然是神經(jīng)概率語(yǔ)言模型檬姥,那么當(dāng)然要用到一個(gè)神經(jīng)網(wǎng)絡(luò)啦。下圖是神經(jīng)網(wǎng)絡(luò)的示意圖:



神經(jīng)網(wǎng)絡(luò)包括四個(gè)層粉怕,輸入層健民,投影層,隱藏層贫贝,輸出層秉犹,W和U分別表示投影層與隱藏層以及隱藏層和輸出層之間的權(quán)值矩陣,p和q分別為隱藏層和輸出層上的偏置向量稚晚。
對(duì)于語(yǔ)料C中任意一個(gè)詞w崇堵,將Context(w)取為其前面n-1個(gè)詞,如果不滿n-1個(gè)詞客燕,那么可以人為添加用以填充鸳劳,這樣二元對(duì)(Context(w),w)就是一個(gè)訓(xùn)練樣本了,接下來(lái)也搓,討論(Context(w),w)經(jīng)過(guò)上面的神經(jīng)網(wǎng)絡(luò)時(shí)是如何運(yùn)算的赏廓。如果語(yǔ)料C和詞向量長(zhǎng)度m給定后,投影層和輸出層的規(guī)模就確定了还绘,投影層的規(guī)模為(n-1)m,而輸出層為N即語(yǔ)料C的詞匯量大小楚昭。而隱藏層的規(guī)模是可調(diào)參數(shù)可任意調(diào)整。
為什么投影層規(guī)模是(n-1)m呢拍顷,因?yàn)檩斎雽邮莕-1個(gè)詞抚太,每個(gè)詞的詞向量長(zhǎng)度為m,輸入層到投影層只是做了一個(gè)簡(jiǎn)單的向量連接操作昔案,所以長(zhǎng)度為(n-1)m尿贫。那么,神經(jīng)網(wǎng)絡(luò)的計(jì)算過(guò)程就很清楚了:



經(jīng)過(guò)上述兩步得到的輸出是一個(gè)長(zhǎng)度為N的向量踏揣,其分量不能表示概率庆亡,我們還需要做一個(gè)softmax歸一化:

上式就給出了概率p(w|context(w))的函數(shù)表示,即得到了上一節(jié)中提到的函數(shù)F捞稿,那么在神經(jīng)概率模型中又谋,待確定的參數(shù)Θ有哪些呢?

上面的參數(shù)都是通過(guò)訓(xùn)練算法得到的娱局。那么神經(jīng)網(wǎng)絡(luò)模型的運(yùn)算量多大呢彰亥?投影層的規(guī)模為(n-1)m,隱藏層的規(guī)模是nh,輸出層的規(guī)模為N:



不難發(fā)現(xiàn)衰齐,整個(gè)模型的大部分計(jì)算集中在隱藏層和輸出層之間的矩陣向量運(yùn)算任斋,以及輸出層上的softmax歸一化運(yùn)算,因此后續(xù)的很多工作耻涛,包括word2vec都是在這一部分上進(jìn)行改進(jìn)的废酷。
那么神經(jīng)網(wǎng)絡(luò)概率模型相比于n-gram的優(yōu)勢(shì)在哪呢瘟檩?主要有以下兩點(diǎn):
1、詞語(yǔ)之間的相似性可以通過(guò)詞向量來(lái)體現(xiàn)
2澈蟆、基于詞向量的模型自帶平滑功能墨辛,不需要進(jìn)行額外的處理
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市丰介,隨后出現(xiàn)的幾起案子背蟆,更是在濱河造成了極大的恐慌,老刑警劉巖哮幢,帶你破解...
    沈念sama閱讀 212,294評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件带膀,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡橙垢,警方通過(guò)查閱死者的電腦和手機(jī)垛叨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,493評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)柜某,“玉大人嗽元,你說(shuō)我怎么就攤上這事∥够鳎” “怎么了剂癌?”我有些...
    開(kāi)封第一講書人閱讀 157,790評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)翰绊。 經(jīng)常有香客問(wèn)我佩谷,道長(zhǎng),這世上最難降的妖魔是什么监嗜? 我笑而不...
    開(kāi)封第一講書人閱讀 56,595評(píng)論 1 284
  • 正文 為了忘掉前任谐檀,我火速辦了婚禮,結(jié)果婚禮上裁奇,老公的妹妹穿的比我還像新娘桐猬。我一直安慰自己,他們只是感情好刽肠,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,718評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布溃肪。 她就那樣靜靜地躺著,像睡著了一般音五。 火紅的嫁衣襯著肌膚如雪乍惊。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,906評(píng)論 1 290
  • 那天放仗,我揣著相機(jī)與錄音,去河邊找鬼撬碟。 笑死诞挨,一個(gè)胖子當(dāng)著我的面吹牛莉撇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播惶傻,決...
    沈念sama閱讀 39,053評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼棍郎,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了银室?” 一聲冷哼從身側(cè)響起涂佃,我...
    開(kāi)封第一講書人閱讀 37,797評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜈敢,沒(méi)想到半個(gè)月后辜荠,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,250評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抓狭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,570評(píng)論 2 327
  • 正文 我和宋清朗相戀三年伯病,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片否过。...
    茶點(diǎn)故事閱讀 38,711評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡午笛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出苗桂,到底是詐尸還是另有隱情药磺,我是刑警寧澤,帶...
    沈念sama閱讀 34,388評(píng)論 4 332
  • 正文 年R本政府宣布煤伟,位于F島的核電站癌佩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏持偏。R本人自食惡果不足惜驼卖,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,018評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鸿秆。 院中可真熱鬧酌畜,春花似錦、人聲如沸卿叽。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,796評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)考婴。三九已至贩虾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間沥阱,已是汗流浹背缎罢。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,023評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人策精。 一個(gè)月前我還...
    沈念sama閱讀 46,461評(píng)論 2 360
  • 正文 我出身青樓舰始,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親咽袜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子丸卷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,595評(píng)論 2 350

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

  • 前面的文章主要從理論的角度介紹了自然語(yǔ)言人機(jī)對(duì)話系統(tǒng)所可能涉及到的多個(gè)領(lǐng)域的經(jīng)典模型和基礎(chǔ)知識(shí)。這篇文章询刹,甚至之后...
    我偏笑_NSNirvana閱讀 13,887評(píng)論 2 64
  • Deep Learning 算法已經(jīng)在圖像和音頻領(lǐng)域取得了驚人的成果谜嫉,但是在 NLP 領(lǐng)域中尚未見(jiàn)到如此激動(dòng)人心的...
    MobotStone閱讀 2,960評(píng)論 1 12
  • 1.NLP當(dāng)前熱點(diǎn)方向 詞法/句法分析 詞嵌入(word embedding) 命名實(shí)體識(shí)別(Name Entit...
    __Aragorn閱讀 6,011評(píng)論 1 9
  • 摘自JS高級(jí)程序-第三版 JS中所有的函數(shù)的參數(shù)都是按值傳遞的!0剂沐兰! 雖然訪問(wèn)變量有按值和按引用傳遞兩種,但是函數(shù)...
    栗子酥小小閱讀 265評(píng)論 0 0
  • 版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載象泵。 PS:轉(zhuǎn)載請(qǐng)注明出處作者:TigerChain地址:http...
    TigerChain閱讀 41,974評(píng)論 7 21