本文主要用于記錄臉書AI研究院發(fā)表于2016年的一篇論文(引用量接近破千)。該論文提出的基于word2vec與字符級向量融合的詞向量構(gòu)建在保證效果的同時涂臣,大大提升了訓(xùn)練及預(yù)測效率惨险。本筆記主要為方便初學(xué)者快速入門羹幸,以及自我回顧。
論文鏈接:https://arxiv.org/abs/1607.04606
Github: https://github.com/facebookresearch/fastText
基本目錄如下:
- 摘要
- 核心思想
- 總結(jié)
------------------第一菇 - 摘要------------------
1.1 論文摘要
在自然語言處理任務(wù)中辫愉,以word2vec為代表的詞向量已經(jīng)被證實是有效的栅受,但這種將每一個詞都賦以一個單獨的詞向量的做法,卻忽視了詞本身形態(tài)學(xué)的差異(舉個最簡單的例子就是恭朗,對于英語中的復(fù)數(shù)問題屏镊,僅僅是多了個s或es,但卻是倆個詞向量的表達(dá))痰腮。這是一個很大的缺陷而芥,尤其是對于那種大語料的數(shù)據(jù),常常有很多偏僻詞的詞向量是無法學(xué)習(xí)得到的(因為會有一個voc size的上限)膀值。在本篇論文中棍丐,作者提出了一種基于skipgram的模型,唯一的區(qū)別是每一個詞匯均由n-gram構(gòu)成(其實就是簡單的相加求平均每一個字符級向量)沧踏。作者提出的模型有一個最大的優(yōu)勢就是效率高歌逢,且對生僻詞也有詞向量表達(dá)。并且在后續(xù)的實驗中證實悦冀,該模型的有效性趋翻。
------------------第二菇 - 核心思想------------------
2.1 論文模型預(yù)備知識 - 層次Softmax
簡單來說,Softmax回歸其實就是邏輯回歸在多類別分類上的推廣,而層次Softmax就是一種加速計算的方法踏烙。我們一步步拆解來看师骗,方便大家理解。
對于邏輯回歸的損失函數(shù)讨惩,想必但凡有一定ml基礎(chǔ)的都知道辟癌,
而其推廣到多分類問題就是(簡略推導(dǎo)見下圖手稿,詳細(xì)推導(dǎo)看這篇)荐捻,
熟悉了softmax求解的過程的讀者們黍少,想必也發(fā)現(xiàn)了在標(biāo)準(zhǔn)的求解過程中,要計算時的歸一化概率处面,需要遍歷計算所有分類的概率厂置,這在很大的時候,相當(dāng)耗時~于是魂角,這才有了分層softmax的概念昵济,其基本思想就是用樹的層級結(jié)構(gòu)(熟悉word2vec的同學(xué)應(yīng)該還能想起來那個霍夫曼樹吧~嘻嘻)來替代扁平化的softmax。使得在計算相應(yīng)類別概率時野揪,只需計算一條路徑上的節(jié)點概率值访忿,而不需要計算其他路徑。貼一張網(wǎng)上盜的圖斯稳,方便大家理解海铆,具體的計算推導(dǎo)可以參見該文章,本文就不在展開挣惰。直接擺出的一個結(jié)論就是卧斟,通過分層的softmax,計算復(fù)雜度從降低到通熄。
2.2 論文模型預(yù)備知識 - N-gram 特征
自然語言處理的入門基礎(chǔ)唆涝,也是最簡單的一種文本特征提取方式。其最基本的思想就是將文本內(nèi)容按照字節(jié)順序進(jìn)行大小為N的滑動窗口操作唇辨,形成了長度是N的字節(jié)片段序列。根據(jù)窗口N的大小不同能耻,也可分為unigram赏枚,bi-gram等。提取出了這些最基本的特征之后晓猛,才會有后續(xù)各種各樣的處理饿幅,比如tf-idf之類的,進(jìn)一步提升特征的質(zhì)量戒职。關(guān)于該項技術(shù)的應(yīng)用栗恩,本文也無需多言,想必大家是非常熟悉的洪燥。
2.3 論文模型預(yù)備知識 - CBOW模型理解
在深入FastText之前磕秤,大家還是先在回顧一下word2vec的基本原理乳乌。畢竟兩者有著很大的關(guān)聯(lián)啊~這里先介紹一下CBOW模型的基本思路,最基本的框架圖如下市咆,
輸入詞由目標(biāo)詞匯的上下文組成汉操,通過維的向量映射到隱含層,再通過維的向量映射到輸出層蒙兰。其中V就是詞匯量的大小磷瘤,N就是詞向量的緯度,輸出層就是被one-hot編碼的目標(biāo)詞(層級softmax派上用場了)搜变。具體的理解采缚,可以參見如下我讀研期間的手稿,
2.3 論文模型架構(gòu)
經(jīng)過上述的知識點回顧挠他,想必接下來對新的詞向量的理解就很簡單了“獬椋現(xiàn)在讓我們回到論文本身。
根據(jù)論文結(jié)構(gòu)绩社,我們也先來聊一聊摔蓝,論文的基礎(chǔ)模型。論文的第三章先介紹了一下加了負(fù)采樣處理的skipgram模型(關(guān)于負(fù)采樣的理解參見附件1)愉耙,其引出了損失函數(shù)如下圖贮尉,
其中的s是一個計分函數(shù),其是由的詞向量計算得到朴沿,如下猜谚,
到目前為止,其實還都是word2vec的東西赌渣,接下來的一章魏铅,作者展現(xiàn)了其創(chuàng)新的點。論文作者認(rèn)為坚芜,僅僅通過一個獨立的詞向量來表達(dá)一個詞览芳,會造成很大問題,比如忽視了詞的形態(tài)學(xué)信息鸿竖,因此作者提出來一個新的計分函數(shù)沧竟。
作者認(rèn)為每一個詞,都可以由n-gram的詞袋特征來表示缚忧,具體的表示見下面這個例子悟泵,假設(shè)n取3,對于單詞where闪水,其可以表示為糕非,
因此,此時模型要去學(xué)的就是wh, whe...等的向量表征,再通過求和得到where的詞向量表征朽肥,如下禁筏,
至此,本文的模型結(jié)構(gòu)部分就介紹完了鞠呈。簡單總結(jié)一下就是word2vec和字符級向量表達(dá)的結(jié)合版哈哈~
2.4 論文模型分析
在模型的實施細(xì)節(jié)里融师,我注意到,對于英文數(shù)據(jù)的訓(xùn)練蚁吝,本模型要比相對應(yīng)的skipgram基線模型慢1.5倍旱爆。。窘茁。(說話的很快呢怀伦。。山林。其實也可以理解房待,畢竟是n_gram的)。粗粗看了一下模型實驗分析驼抹,大概能得出幾個比較重要的結(jié)論如下桑孩,
1)對于不同的語言,采用n-gram的字符級向量信息框冀,帶來的收益并非都成正比流椒。對于類似德文這樣多復(fù)合詞的,會取得更好的效果明也,但是對英文來說宣虾,則不一定適用。
2)對于語法學(xué)(syntactic)的問題温数,本文的模型表現(xiàn)的更優(yōu)異绣硝,但是對于語意學(xué)(semantic)的問題,本文的模型則不會比基線模型表現(xiàn)的更好撑刺,有時候甚至表現(xiàn)的更糟糕鹉胖。
3)對于訓(xùn)練數(shù)據(jù)來說,作者實驗發(fā)現(xiàn)够傍,本文提出的模型次员,對于小樣本的數(shù)據(jù)量,同樣有著優(yōu)異的表現(xiàn)王带,并且對于生僻詞也有很好的表達(dá)。而且市殷,隨著數(shù)據(jù)量樣本的增多愕撰,對于本文的模型的收益的增加,是不如傳統(tǒng)的word2vec模型的。
其他的一些實驗的細(xì)節(jié)搞挣,大家可以參考原論文带迟,這里就不一一展現(xiàn)了。而且作者也一再強調(diào)了一件事囱桨,本文的模型適用于任何的語言仓犬,而且訓(xùn)練簡單,不需要任何其他的預(yù)處理舍肠,有興趣的讀者也可以去嘗試一下搀继,用來構(gòu)建中文的詞向量。
------------------第三菇 - 總結(jié)------------------
3.1 總結(jié)
到這里翠语,整篇論文的核心思想及其創(chuàng)新點已經(jīng)說清楚了叽躯。本論文主要集中在于闡述作者提出的新的詞向量的核心思想及構(gòu)建方法,并在之后進(jìn)行了一系列模型的調(diào)參實驗并且呈現(xiàn)了該詞向量模型與其他模型的效果驗證對比肌括。最終證明了該詞向量模型的廣泛適用性点骑。
簡單總結(jié)一下本文就是先羅列了一下該論文的摘要,再具體介紹了一下基于subinfo的word2vec改進(jìn)版的詞向量模型的核心思想及推導(dǎo)谍夭。希望大家讀完本文后能進(jìn)一步加深對該論文的理解黑滴。有說的不對的地方也請大家指出,多多交流紧索,大家一起進(jìn)步~??
------------------第四菇 - 附件------------------