詞表征學(xué)習(xí)算法 — Word2Vec

Word2Vec 是 google 在2013年提出的詞向量模型囊扳,通過 Word2Vec 可以用數(shù)值向量表示單詞,且在向量空間中可以很好地衡量兩個單詞的相似性沽损。

1.? 詞向量

讓計算機理解人類的語言是一件很 Cool 的事情令哟,而首先要做的就是將單詞表示成一個數(shù)值向量(稱為詞向量),以方便計算機處理炬太。比較直觀的做法有one-hot 編碼和共現(xiàn)矩陣等。

1.1 one-hot 編碼

one-hot 編碼驯耻,首先構(gòu)造一個容量為 N 的詞匯表亲族,每個單詞可以用一個 N 維的詞向量表示,詞向量中只有單詞在詞匯表的索引處取值為 1可缚,其余為 0霎迫。

one-hot 編碼主要的缺點是:當(dāng)詞匯表的容量變大時,詞向量的特征空間會變得很大帘靡;另外 one-hot 編碼不能區(qū)分單詞之間的相似度知给。

one-hot 詞向量

1.2 共現(xiàn)矩陣

還是剛剛的詞匯表,假設(shè)現(xiàn)在語料庫中只有三個句子 “I have a cat”描姚、“cat eat fish”涩赢、“I have a apple”,則可以構(gòu)造出單詞間的共現(xiàn)矩陣?A轰胁。例如 “I” 和 “have” 在兩個句子中共同出現(xiàn)過谒主,因此在?A?中的權(quán)重為 2朝扼;而 “I” 和 “cat“ 只在一個句子中共現(xiàn)赃阀,?A?中權(quán)重為 1 。

矩陣?A?的每一行就代表了一個單詞的詞向量擎颖,與 one-hot 編碼類似榛斯,使用共現(xiàn)矩陣的詞向量的維度也非常大。也可以使用 SVD (奇異值分解) 對?A進行分解搂捧,從而得到更低維度的詞向量驮俗,但是 SVD 算法的時間復(fù)雜度較高,對 n×n 的矩陣進行 SVD 分解的復(fù)雜度為 O(n^3) 允跑。

單詞共現(xiàn)矩陣

2. Word2Vec

Word2Vec 模型

Word2Vec 是一種淺層神經(jīng)網(wǎng)絡(luò)王凑,包含輸入層?x搪柑,隱藏層?h和輸出層?o。輸入層索烹、輸出層的維度為 N? (詞匯表的大小)工碾,隱藏層維度為 D (詞向量的維度)。輸入層與隱藏層之間的網(wǎng)絡(luò)權(quán)重矩陣為?V(N×D)百姓,輸入層與隱藏層之間的網(wǎng)絡(luò)權(quán)重矩陣為?V'(N×D)渊额。

Word2Vec 簡要公式

Word2Vec 輸入層?x?接收單詞 a 的 one-hot 編碼,輸出層?o?計算出所有單詞出現(xiàn)在單詞 a 上下文的概率垒拢,概率用 softmax 計算旬迹。Word2Vec 在語料庫中訓(xùn)練,使單詞出現(xiàn)的條件概率盡可能符合語料庫中的分布求类。訓(xùn)練完后奔垦,神經(jīng)網(wǎng)絡(luò)的權(quán)重向量矩陣?V就是最終的詞向量矩陣,而?V'?是詞作為預(yù)測輸出時的向量矩陣尸疆。

詞向量矩陣和預(yù)測輸出的向量矩陣

Word2Vec 有兩種模型 CBOW 和 Skip-Gram宴倍,兩種模型的區(qū)別在于 CBOW 使用上下文詞預(yù)測中心詞,而 Skip-Gram 使用中心詞預(yù)測其上下文單詞仓技。圖為 Word2Vec 論文中的 CBOW 和 Skip-Gram 模型圖鸵贬,接下來介紹 Skip-Gram 和 CBOW。

CBOW 和 Skip-Gram

2.1 CBOW

注意下面的描述中?w(x) 表示第 x 個單詞脖捻,v(x) 表示第 x 個單詞對應(yīng)的詞向量, v'(x) 表示預(yù)測輸出時對應(yīng)第 x 個單詞的權(quán)重向量

給定一個句子 [w(1), w(2), w(3), ..., w(T)]阔逼,對于任意一個單詞 w(t),其上下文單詞包括 [w(t-c), ..., w(t-1), w(t+1), ..., w(t+c)]地沮,c 為上下文窗口的大小嗜浮。

中心詞與上下文單詞

CBOW 希望通過上下文單詞 [w(t-c), ..., w(t-1), w(t+1), ..., w(t+c)] 預(yù)測中心詞是 w(t) 的概率,因此輸入到神經(jīng)元的有 2c 個 one-hot 編碼摩疑。實際上是把上下文單詞 [w(t-c), ..., w(t-1), w(t+1), ..., w(t+c)] 對應(yīng)的詞向量的均值傳入神經(jīng)網(wǎng)絡(luò)的隱藏層?h(如下公式)危融,然后計算輸出單詞 w(t) 的概率。

CBOW 隱藏層的計算

因此對于一個句子 [w(1), w(2), w(3), ..., w(T)]雷袋,CBOW 需要最大化以下目標(biāo)函數(shù)吉殃,其中概率使用 softmax 計算:

CBOW 的目標(biāo)函數(shù)

2.2 Skip-Gram

Skip-Gram 與 CBOW 不同,給定一個句子 [w(1), w(2), w(3), ..., w(T)]楷怒,對于任意一個中心詞 w(t)蛋勺,需要計算上下文單詞的 [w(t-c), ..., w(t-1), w(t+1), ..., w(t+c)] 的概率。因此需要最大化以下目標(biāo)函數(shù):

Skip-Gram 目標(biāo)函數(shù)

3. 優(yōu)化方法

優(yōu)化 CBOW 和 Skip-Gram 都需要計算 softmax鸠删,其中需要在所有單詞上進行求和抱完,效率低下,一般可以采用兩種優(yōu)化方法:Hierarchical softmax 和 Negative sampling刃泡。

3.1 Hierarchical softmax

對于一個 N 分類問題巧娱,softmax 可以求出每一個類的概率碉怔,并且 N 個類的概率之和為1。Hierarchical softmax 簡化了 softmax 的計算禁添,采用二叉樹結(jié)構(gòu) (可以使用霍夫曼樹優(yōu)化)眨层,把一個 N 分類問題轉(zhuǎn)換成 log N 個二分類問題。

Hierarchical softmax

其中 n 表示節(jié)點上荡,n(w, j) 表示從根節(jié)點到單詞 w 路徑上的第 j 個節(jié)點趴樱,n(w, 1) 表示從根節(jié)點,L(w) 表示從根節(jié)點到單詞 w 的路徑長度酪捡。

輸入單詞的詞向量為 v(x)叁征,則到達某一節(jié)點 n(w, j) 后往左子樹走和往右子樹走的概率分別為:

Hierarchical softmax 在某個節(jié)點走向左右子節(jié)點的概率

而通過單詞 v(x) 觀察到其上下文單詞 w 的概率可以如下計算:

Hierarchical softmax 從根節(jié)點到目標(biāo)單詞 w 葉節(jié)點的概率

3.2 Negative sampling

Negative sampling 是負采樣算法,給定訓(xùn)練樣本單詞 x 和 x 的上下文單詞 pos逛薇。負采樣算法將 pos 作為 x 的正樣本捺疼,然后從詞匯表中隨機采樣 k 個單詞 neg 構(gòu)成負樣本,然后最大化通過 x 觀察到 pos 的概率永罚,最小化通過 x 觀察到負樣本 neg 的概率啤呼。需要最大化如下目標(biāo)函數(shù):

負采樣算法目標(biāo)函數(shù)

每個單詞被采樣作為負樣本的概率如下:

負樣本概率

4. 總結(jié)

Word2Vec 的優(yōu)點:模型簡單;訓(xùn)練速度快呢袱;訓(xùn)練中會考慮單詞的上下文官扣。

Word2Vec 的缺點:上下文窗口較小,也沒有使用全局的單詞共現(xiàn)信息羞福;每個單詞的詞向量是固定的惕蹄,無法解決一詞多義的問題。

參考文獻

《Distributed Representations of Sentences and Documents》

《Efficient estimation of word representations in vector space》

《word2vec Parameter Learning Explained》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末治专,一起剝皮案震驚了整個濱河市卖陵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌张峰,老刑警劉巖泪蔫,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異喘批,居然都是意外死亡撩荣,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門谤祖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來婿滓,“玉大人老速,你說我怎么就攤上這事粥喜。” “怎么了橘券?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵额湘,是天一觀的道長卿吐。 經(jīng)常有香客問我,道長锋华,這世上最難降的妖魔是什么嗡官? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮毯焕,結(jié)果婚禮上衍腥,老公的妹妹穿的比我還像新娘。我一直安慰自己纳猫,他們只是感情好婆咸,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著芜辕,像睡著了一般尚骄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上侵续,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天倔丈,我揣著相機與錄音,去河邊找鬼状蜗。 笑死需五,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的轧坎。 我是一名探鬼主播警儒,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼眶根!你這毒婦竟也來了蜀铲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤属百,失蹤者是張志新(化名)和其女友劉穎记劝,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體族扰,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡厌丑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了渔呵。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怒竿。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖扩氢,靈堂內(nèi)的尸體忽然破棺而出耕驰,到底是詐尸還是另有隱情,我是刑警寧澤录豺,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布朦肘,位于F島的核電站饭弓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏媒抠。R本人自食惡果不足惜弟断,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望趴生。 院中可真熱鬧阀趴,春花似錦、人聲如沸苍匆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锉桑。三九已至排霉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間民轴,已是汗流浹背攻柠。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留后裸,地道東北人瑰钮。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像微驶,于是被迫代替她去往敵國和親浪谴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

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