由于對nlp還沒有整體的了解弹澎,只是看了幾篇博客。現(xiàn)抡谐,只說word2vec裁奇。word2vec其實只是工具。
輸入是 語料庫麦撵。
假設(shè)是 每個詞對應(yīng)一個連續(xù)的特征向量刽肠;一個連續(xù)平滑的概率模型(此模型的輸入是詞向量的序列,輸出是這段序列的聯(lián)合概率)
參數(shù)是 詞向量免胃;概率模型里的參數(shù)音五。
目標(biāo)是? 極大似然。極大似然的方向不同(word到context羔沙,context到word)躺涝,就有了CBOW和Skip-gram兩個模型。
輸入: 由語料庫得到的扼雏,one-hot 詞向量坚嗜。概率模型: one-hot 向量* 要學(xué)習(xí)的詞向量,可以得到分布的詞向量诗充。再經(jīng)過神經(jīng)網(wǎng)絡(luò)苍蔬,轉(zhuǎn)化成概率。
word2vec調(diào)優(yōu)(別人的經(jīng)驗總結(jié)):
1. 根據(jù)具體任務(wù)蝴蜓,選一個領(lǐng)域相似的語料碟绑。語料對詞向量的影響比模型的影響要重要得多得多得多。領(lǐng)域選好了茎匠,可能只要 1/10 甚至 1/100 的語料格仲,就能達(dá)到一個大規(guī)模泛領(lǐng)域語料的效果。有時候語料選的不對诵冒,甚至?xí)?dǎo)致負(fù)面效果(比隨機(jī)詞向量效果還差)凯肋。當(dāng)只有小規(guī)模的領(lǐng)域內(nèi)語料,而有大規(guī)模的領(lǐng)域外語料時汽馋,到底是語料越純越好否过,還是越大越好。在我們的實驗中惭蟋,是越純越好苗桂。這一部分實驗數(shù)據(jù)比較豐富,原文相對清楚一些告组。
2. 在這個條件下煤伟,語料越大越好。然后下載一個 word2vec 的新版(14年9月更新)
3. 語料小(小于一億詞便锨,約 500MB 的文本文件)的時候用 Skip-gram 模型
4. 語料大的時候用 CBOW 模型围辙。
CBOW是從輸入的上下文信息來預(yù)測目標(biāo)詞(例如利用 [the cat sits on the] 來預(yù)測 [mat] );而skip-gram模型則是相反的放案,從目標(biāo)詞來預(yù)測上下文信息姚建。一般而言,這種方式上的區(qū)別使得CBOW模型更適合應(yīng)用在小規(guī)模的數(shù)據(jù)集上吱殉,能夠?qū)芏嗟姆植际叫畔⑦M(jìn)行平滑處理掸冤;而Skip-Gram模型則比較適合用于大規(guī)模的數(shù)據(jù)集上。
5. 最后記得設(shè)置迭代次數(shù)為三五十次友雳,維度至少選 50稿湿,就可以了。
至于評價標(biāo)準(zhǔn):很難說押赊,說不清楚饺藤。
1種是用類比評價。2種是直接把vector做特征流礁,去看在模型的效果涕俗。
gensim 的word2vec 的參數(shù)說明:
classgensim.models.word2vec.Word2Vec(sentences=None,size=100,alpha=0.025,window=5,min_count=5,max_vocab_size=None,sample=0.001,seed=1,workers=3,min_alpha=0.0001,sg=0,hs=0,negative=5,cbow_mean=1,hashfxn=,iter=5,null_word=0,trim_rule=None,sorted_vocab=1,batch_words=10000)
sentences: 語料庫。 ? ? ?size: 詞向量的維度神帅。 ? alpha :學(xué)習(xí)率 咽袜。 ? window:窗口長度。
min_count : 出現(xiàn)次數(shù)低于此值的詞枕稀,可以忽略。 sg:0谜嫉,CBOW萎坷。1,skip -gram ?沐兰。默認(rèn)是0哆档。
workers:用多少線程去訓(xùn)練模型。
hs= ?1, 在訓(xùn)練過程中用到分層softmax住闯。 0 (default),negativeis 非0瓜浸, 負(fù)采樣。
negative? > 0, 負(fù)采樣比原,表示有多少噪音詞應(yīng)該被 drawn (一般為 5-20)插佛,默認(rèn)是 5。 0的話,不用負(fù)采樣量窘。
cbow_mean: 0, 上下文詞向量的和.雇寇。默認(rèn)是1,,上下文詞向量的平均. 只在cbow有效。
iter:迭代次數(shù)锨侯,默認(rèn)5嫩海。
trim_rule: 字典額外的規(guī)則。制定某個詞是否應(yīng)該在字典中囚痴,是否應(yīng)該被去掉叁怪,或者保留。 如深滚,word count < min_count則丟棄單詞.?
sorted_vocab:默認(rèn)為1, 在分配單詞索引之前,按降序?qū)υ~匯表進(jìn)行排序奕谭。
batch_words:對于傳遞給每個worker(線程)的批處理example的大小(以字表示)。默認(rèn)10000成箫。
http://blog.csdn.net/szlcw1/article/details/52751314
http://spaces.ac.cn/archives/4233/#不是總結(jié)的總結(jié)
看到其他人的博客展箱,才知道自己想的,看的蹬昌,有多膚淺混驰。所謂Embedding層,就是一個one hot的全連接層罷了(再次強(qiáng)調(diào)皂贩,這里說的完全等價栖榨,而不是“相當(dāng)于”),而詞向量明刷,就是這個全連接層的參數(shù)婴栽;至于Word2Vec,就通過大大簡化的語言模型來訓(xùn)練Embedding層辈末,從而得到詞向量(它的優(yōu)化技巧有很多愚争,但模型結(jié)構(gòu)就只是這么簡單);詞向量能夠減少過擬合風(fēng)險挤聘,是因為用Word2Vec之類的工具轰枝、通過大規(guī)模語料來無監(jiān)督地預(yù)訓(xùn)練了這個Embedding層,而跟one hot還是Embedding還是詞向量本身沒啥關(guān)系组去。
1. 解釋為什么做文本的相似度或者分類時鞍陨,可以把文本中詞向量相加或者求平均之類,就可以有很好的效果从隆。
如果我們用傳統(tǒng)的詞袋模型诚撵,不考慮詞序,然后后面接一個全連接層键闺。為了防止過擬合寿烟,這個全連接層的參數(shù)用預(yù)訓(xùn)練的詞向量代替,那么結(jié)果就是等價于直接將對應(yīng)的詞向量取出辛燥,然后求和韧衣!也就是說盅藻,詞向量求和得到句向量,實際上就是傳統(tǒng)的詞袋模型的等價物畅铭!
詞向量的表達(dá):最初的one-hot辦法氏淑,維度由詞庫的大小決定,維度高硕噩,很稀疏假残,而且不考慮詞之間的關(guān)系。關(guān)于降低維度炉擅,最初的方法就是SVD辉懒。而SVD分解等價于一個三層的自編碼器,這就是一個N維輸入谍失,中間節(jié)點為n個眶俩,N維輸出的自編碼器方案痴昧,也等價于一個SVD分解裹匙。
再看word2vec狂丝,Word2Vec的一個CBOW方案是篮赢,將前后若干個詞的詞向量求和(embedding),后接一個N維的全連接層昌犹,并做一個softmax來預(yù)測當(dāng)前詞的概率盏档。而這種詞向量求和般哼,等價于原來的詞袋模型接一個全連接層(這個全連接層的參數(shù)就是詞向量表窃判,也是此模型中要求的參數(shù))钞楼,這樣來看,Word2Vec也只是一個N維輸入袄琳,中間節(jié)點為n個询件,N維輸出的三層神經(jīng)網(wǎng)絡(luò)罷了,所以從網(wǎng)絡(luò)結(jié)構(gòu)上來看唆樊,它跟自編碼器等價宛琅,也就是跟SVD分解等價。
http://spaces.ac.cn/archives/4216/
SVD相當(dāng)于意味著聚類窗轩。
p(bj|ai)=∑k,lp(bj|dk)p(dk|cl)p(cl|ai)
每一項都有非常清晰的概率意義:
p(cl|ai)是ai表現(xiàn)為類別cl的概率;
p(dk|cl)是類別cl后接類別dk概率座咆;
p(bj|dk)是已知類別dk時痢艺,元素為bj的概率。
我們通過概率模型介陶,為SVD分解賦予了聚類意義堤舒。
那么可以思考SVD、HMM哺呜、word2vec舌缤、als等之間的相同點。理解輸入矩陣、輸出矩陣国撵、矩陣分解和網(wǎng)絡(luò)陵吸。
我們降維,并不是純粹地為了減少儲存量或者減少計算量介牙,而是“智能”的初步體現(xiàn)壮虫。
差別在于:1、Word2Vec的實現(xiàn)方案环础,可以看作是通過前后詞來預(yù)測當(dāng)前詞或反過來囚似,而自編碼器或者SVD則是通過前后詞來預(yù)測前后詞;
? ? ? ? ?2线得、Word2Vec最后接的是softmax來預(yù)測概率饶唤,也就是說實現(xiàn)了一個非線性變換,而自編碼器或者SVD并沒有贯钩。
2. 什么樣的詞叫相似募狂,用數(shù)學(xué)的表達(dá)是什么。Word2vec得到了詞向量魏保,都可以怎么用熬尺。
什么叫“相似”:相似度的定義是看場景的。
?余弦相似度表達(dá)的是谓罗,空間向量中粱哼,夾角,反向 檩咱。word2vec表達(dá)的詞向量揭措,是基于分布式表達(dá)。也就是用上下文的分布來表達(dá)詞刻蚯。但是無詞序绊含。而余弦值與向量模長沒關(guān)系,因此它描述的是“相對一致”炊汹。那么躬充,余弦相似度大,事實上意味著這兩個詞經(jīng)常跟同一批詞搭配讨便,或者更粗糙講充甚,那就是在同一句話中,兩個詞具有可替換性霸褒。
相似也可以說是伴找,另一種相似,可以理解為相關(guān)废菱,理解為經(jīng)常一起出現(xiàn)技矮。在數(shù)學(xué)上抖誉,可以用互信息的大小來描述。