Word Embedding&word2vec

最近新接觸文本分類問(wèn)題,對(duì)于我來(lái)數(shù)第一個(gè)問(wèn)題就是Word Embedding這個(gè)詞到底是什么意思,因此也就開始學(xué)習(xí)了相關(guān)知識(shí)
http://licstar.net/archives/328

一、Word Embedding定義

Embedding是數(shù)學(xué)領(lǐng)域的有名詞,是指某個(gè)對(duì)象 X 被嵌入到另外一個(gè)對(duì)象 Y 中,映射 f : X → Y ,例如有理數(shù)嵌入實(shí)數(shù)。
Word Embedding 是NLP中一組語(yǔ)言模型和特征學(xué)習(xí)技術(shù)的總稱,把詞匯表中的單詞或者短語(yǔ)映射成由實(shí)數(shù)構(gòu)成的向量上(映射)

二、One-Hot

最簡(jiǎn)單的Word Embedding,是指將所有詞排成一列,對(duì)于詞A,只有在它的位置置1,其他位置置0,維度就是所有詞的數(shù)目。

缺點(diǎn):
(1)沒有考慮單詞之間相對(duì)位置的關(guān)系
(2)詞向量可能非常長(zhǎng)

為了考慮相互位置關(guān)系,會(huì)想到n-gram方法,但它可能會(huì)導(dǎo)致計(jì)算量的急劇增長(zhǎng)。

N-Gram

N-Gram是基于一個(gè)假設(shè):第n個(gè)詞出現(xiàn)與前n-1個(gè)詞相關(guān),而與其他任何詞不相關(guān)(這也是隱馬爾可夫當(dāng)中的假設(shè))。指給定的一段文本或語(yǔ)音中N個(gè)項(xiàng)目(item)的序列

兩個(gè)重要應(yīng)用場(chǎng)景:
(1)基于一定的語(yǔ)料庫(kù),利用N-Gram預(yù)計(jì)或者評(píng)估一個(gè)句子是否合理。
(2)評(píng)估兩個(gè)字符串之間的差異程度。這是模糊匹配中常用的一種手段。

N=1時(shí)稱為unigram,N=2稱為bigram,N=3稱為trigram,以此類推。

例:將“informationretrieval”視為一段文本,它的5-grams的items依次為:
infor, nform, forma, ormat, rmati, matio, ation, tionr, ionre, onret, nretr, retri, etrie, triev, rieva, ieval

1、字符串間模糊匹配

(1)N-gram距離

兩個(gè)字符串s,t分別利用N-Gram語(yǔ)言模型來(lái)表示時(shí),則對(duì)應(yīng)N-gram子串中公共部分的長(zhǎng)度就稱之為N-Gram距離。例如:假設(shè)有字符串s,那么按照N-Gram方法得到N個(gè)分詞組成的子字符串,其中相同的子字符串個(gè)數(shù)作為N-Gram距離計(jì)算的方式。具體如下所示:

字符串:s="ABC",對(duì)字符串進(jìn)行分詞,考慮字符串首尾的字符begin和end,得到begin,A,B,C,end。這里采用二元語(yǔ)言模型,則有:(begin,A)、(A,B)、(B,C)、(C,end)。

字符串:t="AB",對(duì)字符串進(jìn)行分詞,考慮字符串首尾的字符begin和end,得到begin,A,B,end。這里采用二元語(yǔ)言模型,則有:(begin,A)、(A,B)、(B,end)。

距離公式:


4+3-2*3=1

2、判斷句子有效性

假設(shè)有一個(gè)字符串s="ABC",對(duì)應(yīng)的BI-Gram的結(jié)果如下:(begin,A)、(A,B)、(B,C)、(C,end)。出現(xiàn)字符串s的概率為:

P(ABC)=P(A|begin)P(B|A)P(C|B)*P(end|C)。

3、N-Gram在特征工程中的應(yīng)用

在處理文本特征時(shí),通常一個(gè)關(guān)鍵詞作為一個(gè)特征。在一些場(chǎng)景可能不夠,需要進(jìn)一步提取更多的特征,可以考慮N-Gram,思路如下:

以Bi-Gram為例,在原始文本中,以每個(gè)關(guān)鍵詞作為一個(gè)特征,通過(guò)將關(guān)鍵詞兩兩組合,得到一個(gè)Bi-Gram組合,再根據(jù)N-Gram語(yǔ)言模型,計(jì)算各個(gè)Bi-Gram組合的概率,作為新的特征。

二、Cocurrence matrix定義

共現(xiàn)矩陣Cocurrence matrix:一定程度上解決沒有考慮單詞之間相對(duì)位置的關(guān)系的問(wèn)題

實(shí)現(xiàn)方法:某個(gè)詞的意思跟它臨近的單詞是緊密相關(guān)的。可以設(shè)定一個(gè)窗口(大小一般是5~10),利用這種共現(xiàn)關(guān)系生成詞向量(得到一個(gè)對(duì)稱矩陣——共現(xiàn)矩陣,該矩陣統(tǒng)計(jì)當(dāng)前詞與其他詞在同一窗口中的次數(shù),如果詞數(shù)是n,那么矩陣是nXn)。

例子:
I like deep learning.
I like NLP.
I enjoy flying.
共現(xiàn)矩陣:

缺點(diǎn):仍然面對(duì)維度災(zāi)難。這SVD或者PCA等一些常用的降維方法也會(huì)帶來(lái)其他的一些問(wèn)題,例如,我們的詞匯表中有新詞加入,很難為他分配一個(gè)新的向量。

三、Dristributed representation

Dristributed representation:低維實(shí)數(shù)向量,它的思路是通過(guò)訓(xùn)練,將每個(gè)詞都映射到一個(gè)較短的詞向量上來(lái),可以解決One hot representation的問(wèn)題,。在word2vec出現(xiàn)之前,已經(jīng)有用神經(jīng)網(wǎng)絡(luò)DNN來(lái)用訓(xùn)練詞向量進(jìn)而處理詞與詞之間的關(guān)系了。采用的方法一般是一個(gè)三層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)(當(dāng)然也可以多層),分為輸入層,隱藏層和輸出層(softmax層)

相關(guān)或者相似的詞,在距離上更接近
自動(dòng)實(shí)現(xiàn):1)單詞語(yǔ)義相似性的度量;2)詞匯的語(yǔ)義的類比

四、Word2Vec訓(xùn)練詞向量

Word2Vec:CBOW、Skip-Gram

流程:建立模型、通過(guò)模型獲取嵌入詞向量

相關(guān)講解:
word2vec原理(一) CBOW與Skip-Gram模型基礎(chǔ)
建模角度理解word embedding及tensorflow實(shí)現(xiàn)
一文詳解 Word2vec 之 Skip-Gram 模型(結(jié)構(gòu)篇)
一文詳解 Word2vec 之 Skip-Gram 模型(訓(xùn)練篇)
一文詳解 Word2vec 之 Skip-Gram 模型(實(shí)現(xiàn)篇)

1、Skip-Gram

定義:給定input word來(lái)預(yù)測(cè)上下文


訓(xùn)練數(shù)據(jù)獲取:假如有一個(gè)句子“The quick brown fox jumps over lazy dog”。

  • 選句子中間的一個(gè)詞作為我們的輸入詞,例如我們選取“quick”作為input word;
  • 定義skip_window的參數(shù),代表從當(dāng)前input word的一側(cè)(左邊或右邊)選取詞的數(shù)量。如果我們?cè)O(shè)置skip_window=2,那么我們最終獲得窗口中的詞(包括input word在內(nèi))就是['The', 'quick','brown', 'fox']。skip_window=2代表著選取左input word左側(cè)2個(gè)詞和右側(cè)2個(gè)詞進(jìn)入我們的窗口,所以整個(gè)窗口大小span=2x2=4。
  • 參數(shù)num_skips,代表從整個(gè)窗口中選取多少個(gè)不同的詞作為output word,當(dāng)skip_window=2,num_skips=2時(shí),會(huì)得到兩組 (input word, output word) 形式的訓(xùn)練數(shù)據(jù),即 ('quick', 'brown'),('quick', 'the')。
  • 訓(xùn)練時(shí),剔除高頻的停用詞來(lái)減少模型的噪音,并加速訓(xùn)練,如'the'、'a'等,它們對(duì)其他詞的貢獻(xiàn)不大。
  • input word和output word都是one-hot編碼的向量。最終模型的輸出是一個(gè)概率分布。

對(duì)于輸入為'the'時(shí),訓(xùn)練時(shí)的一個(gè)batch會(huì)有兩個(gè)輸入(the, quick)和(the, brown)

模型輸入:

輸入的每一個(gè)詞都是一個(gè)One-Hot表示形式,("the", "quick", "brown", "fox", "jumps","over","lazy","dog"),我們對(duì)這個(gè)詞匯表的單詞進(jìn)行編號(hào)0-7。那么”dog“就可以被表示為一個(gè)8維向量[0, 0, 0, 0, 0, 0, 0, 1]。

通常詞匯表比較大,如果詞匯表有10000個(gè)詞,模型的輸入就是一個(gè)10000維的向量,那么輸出也是一個(gè)10000維度(詞匯表的大小)的向量,它包含了10000個(gè)概率,每一個(gè)概率代表著當(dāng)前詞是輸入樣本中output word的概率大小。

隱含層:

  • 網(wǎng)絡(luò)的隱層沒有使用任何激活函數(shù),但是輸出層使用了sotfmax

  • 隱含層節(jié)點(diǎn)的個(gè)數(shù)就是詞向量的維數(shù),由One-Hot映射為Dristributed representation

  • 上圖網(wǎng)絡(luò)中隱層的權(quán)重矩陣應(yīng)該為10000行,300列(隱層有300個(gè)結(jié)點(diǎn))。最終每個(gè)單詞可以被編碼為300維的詞向量

  • Google在最新發(fā)布的基于Google news數(shù)據(jù)集訓(xùn)練的模型中使用的是300個(gè)特征的詞向量,在Python的gensim包中封裝的Word2Vec接口默認(rèn)的詞向量大小為100, window_size為5

下圖中,左右兩張圖分別從不同角度代表了輸入層-隱層的權(quán)重矩陣。左圖中每一列代表一個(gè)10000維的詞向量和隱層單個(gè)神經(jīng)元連接的權(quán)重向量。右圖中,每一行實(shí)際上代表了每個(gè)單詞的詞向量。

最終的目標(biāo)就是學(xué)習(xí)這個(gè)隱層的權(quán)重矩陣

我們現(xiàn)在回來(lái)接著通過(guò)模型的定義來(lái)訓(xùn)練我們的這個(gè)模型。

input word和output word都會(huì)被我們進(jìn)行one-hot編碼。輸入被one-hot編碼后大多數(shù)維度上都是0(實(shí)際上僅有一個(gè)位置為1),所以向量稀疏,如果我們將一個(gè)1 x 10000的向量和10000 x 300的矩陣相乘,它會(huì)消耗相當(dāng)大的計(jì)算資源,為了高效計(jì)算,隱層權(quán)重矩陣看成了一個(gè)”查找表“(lookup table),進(jìn)行矩陣計(jì)算時(shí),直接去查輸入向量中取值為1的維度下對(duì)應(yīng)的那些權(quán)重值。隱層的輸出就是每個(gè)輸入單詞的“嵌入詞向量”。

輸出層

經(jīng)過(guò)神經(jīng)網(wǎng)絡(luò)隱層的計(jì)算,詞從一個(gè)1 x 10000的向量變成1 x 300的向量,再被輸入到輸出層。輸出層是一個(gè)softmax回歸分類器,它的每個(gè)結(jié)點(diǎn)將會(huì)輸出一個(gè)0-1之間的值(概率),這些所有輸出層神經(jīng)元結(jié)點(diǎn)的概率之和為1。

下面是一個(gè)例子,訓(xùn)練樣本為 (input word: “ants”, output word: “car”) 的計(jì)算示意圖。

2、CBOW

定義:給定上下文,來(lái)預(yù)測(cè)input word(與Skip-Gram相反)


輸入數(shù)據(jù):輸入有多個(gè)單詞,每個(gè)單詞與隱含層矩陣相乘后得到多個(gè)詞向量,此時(shí)對(duì)多個(gè)詞向量平均,再輸出到輸出層。

3、模型加速

DNN模型最大的問(wèn)題在于從隱藏層到輸出的softmax層的計(jì)算量很大,因?yàn)橐?jì)算所有詞的softmax概率,再去找概率最大的值==>Hierarchical Softmax
Hierarchical Softmax(霍夫曼樹)提高模型訓(xùn)練的效率(時(shí)間復(fù)雜度O(n)==>O(logn))。但是如果訓(xùn)練樣本里的中心詞w是一個(gè)很生僻的詞,那么霍夫曼樹向下走很久==>Negative Sampling
Negative Sampling:neg個(gè)負(fù)例,每次網(wǎng)絡(luò)更新不對(duì)所有負(fù)樣本更新

(1)Hierarchical Softmax

定義:Hierarchical Softmax是一種對(duì)輸出層進(jìn)行優(yōu)化的策略,輸出層從原始模型的利用softmax計(jì)算概率值改為了利用Huffman樹計(jì)算概率值。

哈夫曼樹怎么來(lái)的? 將語(yǔ)料庫(kù)中詞以及詞出現(xiàn)的頻率構(gòu)造一顆哈夫曼樹,默認(rèn)左邊(編碼為0)是負(fù)類,右邊(編碼為1)是正類,哈夫曼樹的葉子節(jié)點(diǎn)就是語(yǔ)料庫(kù)中的所有的詞 ,詞頻越高的詞,距離根節(jié)點(diǎn)就越近。

從根節(jié)點(diǎn)出發(fā),到達(dá)指定葉子節(jié)點(diǎn)的路徑是唯一的。softmax概率計(jì)算只需要沿著樹形結(jié)構(gòu)進(jìn)行就可以。如下圖所示,可以沿著霍夫曼樹從根節(jié)點(diǎn)一直走到葉子節(jié)點(diǎn)的詞w2

和之前的神經(jīng)網(wǎng)絡(luò)語(yǔ)言模型相比,霍夫曼樹的所有內(nèi)部節(jié)點(diǎn)就類似之前神經(jīng)網(wǎng)絡(luò)隱藏層的神經(jīng)元,其中,根節(jié)點(diǎn)的詞向量對(duì)應(yīng)我們的投影后的詞向量(即隱含層詞向量),而所有葉子節(jié)點(diǎn)就類似于之前神經(jīng)網(wǎng)絡(luò)softmax輸出層的神經(jīng)元,葉子節(jié)點(diǎn)的個(gè)數(shù)就是詞匯表的大小。在霍夫曼樹中,隱藏層到輸出層的softmax映射是沿著霍夫曼樹一步步完成的,因此這種softmax取名為"Hierarchical Softmax"。

實(shí)現(xiàn):在word2vec中,采用二元邏輯回歸的方法,即規(guī)定沿著左子樹走是負(fù)類(霍夫曼樹編碼1),沿著右子樹走是正類(霍夫曼樹編碼0)。判別正類和負(fù)類的方法是使用sigmoid函數(shù)

優(yōu)勢(shì):第一,二叉樹,將計(jì)算量為V降為log2V。第二,由于使用霍夫曼樹是高頻的詞靠近樹根,高頻詞需要更少的時(shí)間會(huì)被找到,這符合貪心優(yōu)化思想。

被劃分為左子樹而成為負(fù)類的概率為P(?)=1?P(+)。在某一個(gè)內(nèi)部節(jié)點(diǎn),要判斷是沿左子樹還是右子樹走的標(biāo)準(zhǔn)就是看P(?)、P(+)誰(shuí)的概率值大。而控制P(?)、P(+)誰(shuí)的概率值大的因素一個(gè)是當(dāng)前節(jié)點(diǎn)的詞向量,另一個(gè)是當(dāng)前節(jié)點(diǎn)的模型參數(shù)θ(需要訓(xùn)練)。

對(duì)于上圖中的w2,如果它是一個(gè)訓(xùn)練樣本的輸出,那么我們期望對(duì)于里面的隱藏節(jié)點(diǎn)n(w2,1)的P(?)概率大,n(w2,2)的P(?)概率大,n(w2,3)的P(+)概率大。

回到基于Hierarchical Softmax的word2vec本身,我們的目標(biāo)就是找到合適的所有節(jié)點(diǎn)的詞向量和所有內(nèi)部節(jié)點(diǎn)θ, 使訓(xùn)練樣本達(dá)到最大似然。


CBoW

(2)Negative Sampling

Word2Vec 的作者在它的第二篇論文中強(qiáng)調(diào)了三個(gè)創(chuàng)新:

  • 將常見的單詞組合(word pairs)或者詞組作為單個(gè)“words”來(lái)處理。

  • 對(duì)高頻次單詞進(jìn)行抽樣來(lái)減少訓(xùn)練樣本的個(gè)數(shù)。

  • 對(duì)優(yōu)化目標(biāo)采用“negative sampling”方法,這樣每個(gè)訓(xùn)練樣本的訓(xùn)練只會(huì)更新一小部分的模型權(quán)重,從而降低計(jì)算負(fù)擔(dān)。

創(chuàng)新一:Word pairs and "phases"

作者指出,一些單詞組合(或者詞組)的含義和拆開以后具有完全不同的意義。比如“Boston Globe”是一種報(bào)刊的名字,而單獨(dú)的“Boston”和“Globe”這樣單個(gè)的單詞卻表達(dá)不出這樣的含義。因此,在文章中只要出現(xiàn)“Boston Globe”,我們就應(yīng)該把它作為一個(gè)單獨(dú)的詞來(lái)生成其詞向量,而不是將其拆開。同樣的例子還有“New York”,“United Stated”等。

在Google發(fā)布的模型中,它本身的訓(xùn)練樣本中有來(lái)自Google News數(shù)據(jù)集中的1000億的單詞,但是除了單個(gè)單詞以外,單詞組合(或詞組)又有3百萬(wàn)之多。

創(chuàng)新二:高頻詞抽樣

對(duì)于“the”這種常用高頻單詞,存在兩個(gè)問(wèn)題:

  • 當(dāng)我們得到成對(duì)的單詞訓(xùn)練樣本時(shí),("fox", "the") 這樣的訓(xùn)練樣本并不會(huì)給我們提供關(guān)于“fox”更多的語(yǔ)義信息,因?yàn)椤皌he”在每個(gè)單詞的上下文中幾乎都會(huì)出現(xiàn)。

  • 由于在文本中“the”這樣的常用詞出現(xiàn)概率很大,因此我們將會(huì)有大量的(”the“,...)這樣的訓(xùn)練樣本,而這些樣本數(shù)量遠(yuǎn)遠(yuǎn)超過(guò)了我們學(xué)習(xí)“the”這個(gè)詞向量所需的訓(xùn)練樣本數(shù)。

Word2Vec通過(guò)“抽樣”模式來(lái)解決這種高頻詞問(wèn)題。

基本思想:對(duì)于訓(xùn)練原始文本中遇到的每一個(gè)單詞,它們都有一定概率被我們從文本中刪掉,而這個(gè)被刪除的概率與單詞的頻率有關(guān)。

抽樣率

ωi 是一個(gè)單詞,Z(ωi) 是 ωi 這個(gè)單詞在所有語(yǔ)料中出現(xiàn)的頻次。如果單詞“peanut”在10億規(guī)模大小的語(yǔ)料中出現(xiàn)了1000次,那么 Z(peanut) = 1000/1000000000 = 1e - 6。

有一個(gè)參數(shù)叫“sample”,這個(gè)參數(shù)代表一個(gè)閾值,默認(rèn)值為0.001(在gensim包中的Word2Vec類說(shuō)明中,這個(gè)參數(shù)默認(rèn)為0.001,文檔中對(duì)這個(gè)參數(shù)的解釋為“ threshold for configuring which higher-frequency words are randomly downsampled”)。這個(gè)值越小意味著這個(gè)單詞被保留下來(lái)的概率越小(即有越大的概率被我們刪除)。

P(ωi) 代表著保留某個(gè)單詞的概率:

圖中x軸代表著 Z(ωi) ,即單詞 ωi 在語(yǔ)料中出現(xiàn)頻率,y軸代表某個(gè)單詞被保留的概率。對(duì)于一個(gè)龐大的語(yǔ)料來(lái)說(shuō),單個(gè)單詞的出現(xiàn)頻率不會(huì)很大,即使是常用詞,也不可能特別大。

從這個(gè)圖中,我們可以看到,隨著單詞出現(xiàn)頻率的增高,它被采樣保留的概率越來(lái)越小,我們還可以看到一些有趣的結(jié)論:

● 當(dāng) Z(ωi) <= 0.0026 時(shí),P(ωi) = 1.0 。當(dāng)單詞在語(yǔ)料中出現(xiàn)的頻率小于 0.0026 時(shí),它是 100% 被保留的,這意味著只有那些在語(yǔ)料中出現(xiàn)頻率超過(guò) 0.26% 的單詞才會(huì)被采樣。

● 當(dāng)時(shí) Z(ωi) = 0.00746 時(shí),P(ωi) = 0.5,意味著這一部分的單詞有 50% 的概率被保留。

● 當(dāng) Z(ωi) = 1.0 時(shí),P(ωi) = 0.033,意味著這部分單詞以 3.3% 的概率被保留。

創(chuàng)新三:負(fù)采樣(negative sampling)

訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)意味著要輸入訓(xùn)練樣本并且不斷調(diào)整神經(jīng)元的權(quán)重,從而不斷提高對(duì)目標(biāo)的準(zhǔn)確預(yù)測(cè)。每當(dāng)神經(jīng)網(wǎng)絡(luò)經(jīng)過(guò)一個(gè)訓(xùn)練樣本的訓(xùn)練,它的權(quán)重就會(huì)進(jìn)行一次調(diào)整。

vocabulary的大小決定了我們的Skip-Gram神經(jīng)網(wǎng)絡(luò)將會(huì)擁有大規(guī)模的權(quán)重矩陣,所有的這些權(quán)重需要通過(guò)我們數(shù)以億計(jì)的訓(xùn)練樣本來(lái)進(jìn)行調(diào)整,這是非常消耗計(jì)算資源的,并且實(shí)際中訓(xùn)練起來(lái)會(huì)非常慢。

negative sampling解決了這個(gè)問(wèn)題,它是用來(lái)提高訓(xùn)練速度并且改善所得到詞向量的質(zhì)量的一種方法。不同于原本每個(gè)訓(xùn)練樣本更新所有的權(quán)重,負(fù)采樣每次讓一個(gè)訓(xùn)練樣本僅僅更新一小部分的權(quán)重,這樣就會(huì)降低梯度下降過(guò)程中的計(jì)算量。

當(dāng)我們用訓(xùn)練樣本 ( input word: "fox",output word: "quick") 來(lái)訓(xùn)練我們的神經(jīng)網(wǎng)絡(luò)時(shí),“ fox”和“quick”都是經(jīng)過(guò)one-hot編碼的。如果我們的vocabulary大小為10000時(shí),在輸出層,我們期望對(duì)應(yīng)“quick”單詞的那個(gè)神經(jīng)元結(jié)點(diǎn)輸出1,其余9999個(gè)都應(yīng)該輸出0。在這里,這9999個(gè)我們期望輸出為0的神經(jīng)元結(jié)點(diǎn)所對(duì)應(yīng)的單詞我們稱為“negative” word。

當(dāng)使用負(fù)采樣時(shí),我們將隨機(jī)選擇一小部分的negative words(比如選5個(gè)negative words)來(lái)更新對(duì)應(yīng)的權(quán)重。我們也會(huì)對(duì)我們的“positive” word進(jìn)行權(quán)重更新(在我們上面的例子中,這個(gè)單詞指的是”quick“)。

在論文中,作者指出指出對(duì)于小規(guī)模數(shù)據(jù)集,選擇5-20個(gè)negative words會(huì)比較好,對(duì)于大規(guī)模數(shù)據(jù)集可以僅選擇2-5個(gè)negative words。

隱層-輸出層擁有300 x 10000的權(quán)重矩陣。如果使用了負(fù)采樣的方法我們僅僅去更新我們的positive word-“quick”的和我們選擇的其他5個(gè)negative words的結(jié)點(diǎn)對(duì)應(yīng)的權(quán)重,共計(jì)6個(gè)輸出神經(jīng)元,相當(dāng)于每次只更新 300 x 6 = 1800 個(gè)權(quán)重。對(duì)于3百萬(wàn)的權(quán)重來(lái)說(shuō),相當(dāng)于只計(jì)算了0.06%的權(quán)重,這樣計(jì)算效率就大幅度提高。

選擇negative words

使用“一元模型分布(unigram distribution)”來(lái)選擇“negative words”。

一個(gè)單詞被選作negative sample的概率跟它出現(xiàn)的頻次有關(guān),出現(xiàn)頻次越高的單詞越容易被選作negative words。

代碼中的公式實(shí)現(xiàn)如下:

每個(gè)單詞被賦予一個(gè)權(quán)重,即 f(ωi), 它代表著單詞出現(xiàn)的頻次。

公式中開3/4的根號(hào)完全是基于經(jīng)驗(yàn)的,論文中提到這個(gè)公式的效果要比其它公式更加出色。你可以在google的搜索欄中輸入“plot y = x^(3/4) and y = x”,然后看到這兩幅圖(如下圖),仔細(xì)觀察x在[0,1]區(qū)間內(nèi)時(shí)y的取值,x^(3/4) 有一小段弧形,取值在 y = x 函數(shù)之上。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評(píng)論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,538評(píng)論 3 417
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評(píng)論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評(píng)論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,761評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,207評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,419評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,959評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,782評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,983評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評(píng)論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,222評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評(píng)論 1 286
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,678評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,978評(píng)論 2 374

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

  • 1. 導(dǎo)入 ??這是語(yǔ)言表示系列的第1篇,主要講述了分布式表示里的Word2vec方法。該系列目前暫定有4篇語(yǔ)言的...
    brucep3閱讀 3,247評(píng)論 0 5
  • 前面的文章主要從理論的角度介紹了自然語(yǔ)言人機(jī)對(duì)話系統(tǒng)所可能涉及到的多個(gè)領(lǐng)域的經(jīng)典模型和基礎(chǔ)知識(shí)。這篇文章,甚至之后...
    我偏笑_NSNirvana閱讀 13,975評(píng)論 2 64
  • Deep Learning 算法已經(jīng)在圖像和音頻領(lǐng)域取得了驚人的成果,但是在 NLP 領(lǐng)域中尚未見到如此激動(dòng)人心的...
    MobotStone閱讀 2,992評(píng)論 1 12
  • 《高效能人士的七個(gè)習(xí)慣》 001習(xí)慣 A:早起就是因?yàn)榭吹胶芏嗳硕荚缙穑氡谱约阂话眩饋?lái)做什么? B:早起是因...
    芬芬vstar閱讀 341評(píng)論 1 2
  • 譯文地址:Java中常見的坑 概述 Java是門極簡(jiǎn)風(fēng)格的語(yǔ)言,比其它語(yǔ)言相比,它故意保持較少的特性,不僅在有些不...
    IT程序獅閱讀 992評(píng)論 0 3