embedding詞向量介紹

原創(chuàng)作品电湘,轉(zhuǎn)載請注明出處

1.1 背景介紹

假設(shè)現(xiàn)在領(lǐng)導(dǎo)給你布置了一項任務(wù)梅屉,對產(chǎn)品的消費者評價進(jìn)行情感分類。聰明的你很自然的想到了nlp彪薛,那么具體要怎么做呢茂装。

要對評論進(jìn)行分類,首先我們需要先把評論用計算機(jī)可以理解的形式表達(dá)出來善延。最直接的方法先構(gòu)建評論中所有提及的詞匯少态,將其放入一個字典中。再對每句話中詞匯進(jìn)行計數(shù)易遣,然后用詞匯的數(shù)量來表示一句話彼妻。例如以下兩句話:



提及的詞匯有六個,

這時這兩句話的表達(dá)就出來了,如下圖所示

這種表示方法一般稱之為詞袋子侨歉,就是將所有詞都統(tǒng)一丟到袋子中再進(jìn)行計數(shù)屋摇,不考慮先后順序。此外相似的方法還有tfidf表達(dá)幽邓。這種方法不涉及對詞匯本身的表達(dá)炮温,只能用于表達(dá)句子。

那么我們要怎么表示詞匯呢牵舵?首先我們來思考一個問題柒啤,為什么要對詞匯進(jìn)行表達(dá)?這是因為畸颅,有了對詞匯的表達(dá)担巩,不同句子包含相同詞匯時,在含義上就被聯(lián)系在一起没炒,使用詞匯計數(shù)來表達(dá)是很難獲取這個信息的涛癌。

詞匯表達(dá)最簡單的方法就是one-hot編碼,就是使用一個詞表長度的向量來表示窥浪,詞匯在詞表中所處位置為1祖很,其他都為0,如下所示漾脂。

One-hot向量表示的缺點很明顯假颇,當(dāng)詞表越來越大的時候,表達(dá)每個詞匯的向量也就越來越長骨稿,而且這個矩陣是肉眼可見的稀疏笨鸡,這非常不利于深度學(xué)習(xí)模型的計算。因此坦冠,Duang Duang Duang形耗,下面有請我們的主角,embedding詞向量辙浑。

Embedding這個詞這幾年非常的火爆激涤,所謂萬物皆可embedding。那么embedding到底是什么含義呢判呕?在我看來倦踢,embedding就是對一個對象的分布式表達(dá)。這里的分布式表達(dá)可以理解成一個n維的向量侠草。這n維向量的含義是固定且不明確的辱挥,每個對象的表達(dá)相當(dāng)于是對象在這n維向量上的映射。

還是有點抽象边涕,看完下面我們?nèi)绾蔚玫絜mbedding詞向量晤碘,應(yīng)該會有新的理解褂微。

1.2 Embedding的傳統(tǒng)模型

最早的embedding向量是Bengio在2003的論文A Neural Probabilistic Language Model中提出。原論文的圖畫的不太好园爷,這里就不貼了宠蚂。模型有四層,輸入層是句子的中每個詞匯的索引腮介,隱層是將每個詞從embedding詞表中查出對應(yīng)詞匯的表達(dá)肥矢,再經(jīng)過的tanh激活層端衰,最后接一個softmax叠洗,預(yù)測對象是下個詞匯,可以看到這是一個非監(jiān)督語言模型旅东。其中的embedding詞表是可訓(xùn)練的灭抑,最終就可以得到每個詞匯的向量表達(dá)。

現(xiàn)在回過頭來看這篇論文可以說是很超前了抵代,但在當(dāng)時神經(jīng)網(wǎng)絡(luò)完全沒什么人氣腾节,這篇論文也就被埋沒了。下面就到了2013年荤牍。

2013年Mikolov提出了word2vec案腺,wordvec的模型結(jié)構(gòu)和NNLM很接近。區(qū)別在于word2vec的輸入是onehot編碼的康吵,將onehot(長度為詞表長度N)輸入乘以參數(shù)W(參數(shù)W其實就是每個詞的詞向量劈榨,是可訓(xùn)練的),這個過程和NNLM模型的查表的功能是一致的晦嵌。將得到的矩陣通過softmax得到最終預(yù)測的結(jié)果同辣。Wordvec有兩種結(jié)構(gòu)(見圖1),一個是利用上下文來預(yù)測中間的詞匯惭载,稱之為CBOW旱函,另一個是利用中間的詞匯來預(yù)測上下文的詞匯,稱為Skip-gram描滔。

圖1 wordvec中兩種模型結(jié)構(gòu)

1.3 Embedding 較新模型(ELMO棒妨、GPT、BERT含长、XLNET簡介)(選讀)

word2vec不能解決一詞多義的問題券腔,因為這個模型是靜態(tài)的,詞向量被訓(xùn)練好之后就固定下來了茎芋。蘋果電腦和吃蘋果中的蘋果會有一樣的向量表達(dá)颅眶。而這顯然是不合理的。

ELMO嘗試解決這個問題田弥,這個模型使用了兩層bi-lstm涛酗,這里的雙向分別對上文和下文進(jìn)行編碼,任務(wù)和CBOW是一樣也是使用n個上下文去預(yù)測中間詞。在最終計算一個詞向量時商叹,會將最下面的單詞特征向量和上兩層bi-lstm中得到的上下特征進(jìn)行加和燕刻。在最終應(yīng)用模型的時候,會先計算在當(dāng)前輸入下詞向量的表達(dá)再放進(jìn)任務(wù)模型中剖笙。
ELMO這種在編碼時直接將詞上下文加進(jìn)向量表達(dá)的方式很好的解決了一詞多義的問題

GPT做了什么呢卵洗?這個模型采用了和ELMO類型的訓(xùn)練過程,只是將其中的bi-lstm改成了transformer弥咪,但是只使用了上文信息來預(yù)測單詞过蹂,沒有使用下文

BERT是怎么做的呢,BERT和GPT的主要區(qū)別在于使用雙向的語言模型聚至,同時考慮了上下文對文本的影響

最近又新出了一個 XLNET酷勺,效果較BERT又有了很大的提升,他是怎么做的呢

BERT在預(yù)訓(xùn)練中使用了mask機(jī)制扳躬,將15%的單詞替換成mask脆诉,在這些mask單詞中只有80%被替換成了【mask】,10%被隨機(jī)替換成另一個單詞贷币,10%的單詞不變

由于在正式的任務(wù)中不會有帶有mask的數(shù)據(jù)击胜,會對應(yīng)用效果造成一定的影響。XLNET主要的貢獻(xiàn)是解決了mask帶來的負(fù)面影響役纹。XLNET具體做法:在預(yù)訓(xùn)練階段引入 Permutation Language Model偶摔,在預(yù)測單詞A的時候,將其他幾個單詞的順序隨機(jī)打亂字管,這樣就可以利用上下文的信息啰挪。具體實現(xiàn)是通過attention的掩碼機(jī)制,將其他被放到目標(biāo)單詞下文中的單詞隱藏掉嘲叔,因此XLNET中沒有明顯的mask亡呵,回避掉了mask的負(fù)面影響,但其實使用 Attention實現(xiàn)了同樣的功能硫戈。

1.4 Embedding流派劃分

預(yù)訓(xùn)練語言表達(dá)主要有兩個流派锰什,一個是非監(jiān)督的基于特征的方法,之前提到的CBOW就是這樣的方法丁逝,模型的輸出是詞向量汁胆,可以直接放入下游模型中。 ELMO也是屬于這一流派的模型霜幼,但是沒有可以直接拿來用的詞向量嫩码。使用的時候,需要將待處理的文本罪既,預(yù)訓(xùn)練詞向量(如Word2vec)铸题,前人訓(xùn)練好的模型參數(shù)和結(jié)構(gòu)一起放入ELMO模型中得到新的文本向量表達(dá)铡恕,這個新的向量表達(dá)可以很好的區(qū)分同一個詞在不同語境中的不同含義。后續(xù)就可以將這個新的向量表達(dá)直接放入下游任務(wù)模型中去使用了丢间。

另一個流派是fine-tuning方法探熔,也就是微調(diào)。這個方法的代表模型是GPT和BERT烘挫,該類模型的優(yōu)點是可以在預(yù)訓(xùn)練階段訓(xùn)練盡可能復(fù)雜的模型诀艰,盡可能多的數(shù)據(jù),在微調(diào)階段只需要根據(jù)任務(wù)重新學(xué)習(xí)部分參數(shù)就可以達(dá)到比較高的準(zhǔn)確率饮六。這個方法是從圖像領(lǐng)域中借鑒過來的其垄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市喜滨,隨后出現(xiàn)的幾起案子捉捅,更是在濱河造成了極大的恐慌,老刑警劉巖虽风,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異寄月,居然都是意外死亡辜膝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門漾肮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來厂抖,“玉大人,你說我怎么就攤上這事克懊〕栏ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵谭溉,是天一觀的道長墙懂。 經(jīng)常有香客問我,道長扮念,這世上最難降的妖魔是什么损搬? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮柜与,結(jié)果婚禮上巧勤,老公的妹妹穿的比我還像新娘。我一直安慰自己弄匕,他們只是感情好颅悉,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著迁匠,像睡著了一般剩瓶。 火紅的嫁衣襯著肌膚如雪秕脓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天儒搭,我揣著相機(jī)與錄音吠架,去河邊找鬼。 笑死搂鲫,一個胖子當(dāng)著我的面吹牛傍药,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播魂仍,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拐辽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了擦酌?” 一聲冷哼從身側(cè)響起俱诸,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赊舶,沒想到半個月后睁搭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡笼平,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年园骆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寓调。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡锌唾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出夺英,到底是詐尸還是另有隱情晌涕,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布痛悯,位于F島的核電站余黎,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏灸蟆。R本人自食惡果不足惜驯耻,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望炒考。 院中可真熱鬧可缚,春花似錦、人聲如沸斋枢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓤帚。三九已至描姚,卻和暖如春涩赢,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背轩勘。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工筒扒, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绊寻。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓花墩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親澄步。 傳聞我的和親對象是個殘疾皇子冰蘑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355