小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

白話word2vec

 太極混元天尊 2018-05-06


閱讀大概需要5分鐘

跟*隨小博主,每天進(jìn)步一丟丟


作者:gan
鏈接:https://
zhuanlan.zhihu.com/p/36312907


背景介紹和一些直觀的理解

word2vec 是2012年被被Google提出來的將文本生成詞向量模型,其中包括了兩個(gè)模型,continous bag of words(CBOW)Skip Gram。兩個(gè)模型分別從兩個(gè)角度來建立詞的預(yù)測模型,CBOW是通過一個(gè)或多個(gè)單詞的上下文來進(jìn)行這個(gè)詞語的預(yù)測,而Skip Gram模型是通過一個(gè)或多個(gè)單詞來進(jìn)行上下文的預(yù)測。

首先我們需要理解的一個(gè)問題,為什么我們需要對詞進(jìn)行編碼,也就是所謂的詞向量化?我們知道任何數(shù)學(xué)模型,其輸入都需要是數(shù)值型的,而在自然語言處理中,我們面對的是文字,而文字是無法直接被數(shù)學(xué)模型所直接利用的。所以我們需要將文字進(jìn)行編碼,而編碼就是給每一個(gè)字符一個(gè)向量來進(jìn)行表示。在word2vec出來之前,我們常用的主要是one hot encoding的方法,也就是對于每一個(gè)單詞,我們用在一個(gè)位置為1,其余位置為0的向量進(jìn)行表示。而向量的維度就是我們單詞量的大小。而向量的每一個(gè)位置,只能用來表示唯一的一個(gè)單詞。舉個(gè)例子,假設(shè)我們的有詞庫只有10個(gè)單詞,分別是:今,天,是,你,我,他,買,水,果,家。這里我們分別用one hot encoding的方法來表示每一個(gè)詞,那么有下面的結(jié)果:


可以看到對于每一個(gè)單詞,我們用唯一的一個(gè)向量對它進(jìn)行了表示。那么很顯然這種表示方法至少有下面的一些缺陷

  1. 在常見的距離下面,單詞與單詞間的距離都是沒有差別的,“今”和“天”的距離和“今”和“果”的距離是一樣的

  2. 其次隨著單詞量的增加,向量的維度也隨之增加,而且對于詞庫中沒有的新詞,都無無法有唯一的向量與之一一對應(yīng)

  3. 當(dāng)單詞量較大時(shí),也即向量的維度過高時(shí),勢必加大了任何機(jī)器學(xué)習(xí)模型的計(jì)算量,降低了計(jì)算效率
    ......

所以,詞向量的提出目的就是解決上面提到的這些問題。而詞向量主要有以下一些特點(diǎn)

  1. 如果單詞量為N,那么可以用一個(gè)n維的向量來表示每一個(gè)單詞,并且n遠(yuǎn)遠(yuǎn)小于N,常見的n為100到300,也可以更具具體和需求問題設(shè)定

  2. 詞向量每一個(gè)位置不再是只能取0和1的數(shù)值,而是可以取任意的實(shí)數(shù)

  3. 詞向量之間的差在一定程度上是有意義的,比如,中國的詞向量為v1,北京的詞向量為v2,美國的詞向量為s2,華盛頓的詞向量為s2,通過word2vec學(xué)習(xí)出來的這些詞向量大致有這樣的特征。這個(gè)是很漂亮的一個(gè)近似關(guān)系,相當(dāng)于說v1-v2近似的等于首都這種關(guān)系,也正是受到word2vec的啟發(fā),在知識圖譜表示學(xué)習(xí)中,衍生了一些名為Trans的編碼算法

  4. 除此之外,地名和地名在詞向量空間中的距離比地名和動(dòng)物的詞向量距離近,等等,換句話說就是描述同一屬性和種類的詞向量的距離要小于不同屬性和種類的詞向量的距離


CBOW模型的介紹

前面也說了,CBOW模型是用于一個(gè)單詞的上下文來進(jìn)行單詞的預(yù)測。換句話說,就是看了一個(gè)或多個(gè)單詞的上下文,我們希望能對詞庫中所有的單詞有個(gè)概率的預(yù)測,而我們想要預(yù)測的一個(gè)或多個(gè)單詞,它的概率要盡可能的大。這不正好就掉入了極大釋然估計(jì)的管轄范圍了嗎?如果我么有一大堆的上下文和要對應(yīng)要預(yù)測的一個(gè)或多個(gè)單詞,既然我們的模型對于每一個(gè)或多個(gè)單詞都有一個(gè)概率的估計(jì),那么我們根據(jù)我們已有的樣本,把它們的概率全部乘起來,然后通過調(diào)整模型的參數(shù)最大化這個(gè)概率。


一個(gè)上下文預(yù)測一個(gè)單詞的情況


我們先來理解這種最簡單的惡情況,這個(gè)理解清楚了,推廣到其它復(fù)雜的情況其實(shí)是很直接和水到渠成的事情了。我們以兩個(gè)簡單的句子來作為例子:

  1. “他 今天 很 開心”。

  2. “她 好像 不 太 高興”

一般中文中訓(xùn)練詞向量時(shí),都會將句子進(jìn)行分詞,上面我用空格將詞進(jìn)行了分割,這里不對分詞進(jìn)行介紹。在CBOW模型中,有一個(gè)窗口參數(shù),具體意思就是上下文的定義在距離這個(gè)單詞左右不超過窗口的距離。這里我們窗口設(shè)置為2。那么按照這個(gè)規(guī)則,我們可以生成下面的訓(xùn)練樣本,第一個(gè)位置為上下文,第二單詞為中心詞匯

在這次例子中,我們的單詞總量一共是九個(gè)(簡單器件就假設(shè)這為我們?nèi)康膯卧~),分別為”他”,”今天”,”很”,”開心”,”她”,”好像”,”不”,”太”,”高興”,并且有下面的one hot encoding。

假設(shè)我們最后需要的詞向量為維度為3的向量,那么我們可以構(gòu)建如下圖所示的全鏈接的三層的神經(jīng)網(wǎng)絡(luò)(9×3×9),最后一層嵌套一個(gè)softmax函數(shù)進(jìn)行每個(gè)單詞概率的輸出。

從輸入層到隱藏層的變換,我們可以用一個(gè)9×3的矩陣來表示,初始化為

從隱藏層到輸出層,我們可以用一個(gè)3×9的矩陣來表示,初始化為

有了上面的這些符號,那么我們來看我們第一個(gè)樣本(今天,他)經(jīng)過我們的模型變換會得到什么樣的結(jié)果。因?yàn)榻裉?,那么從輸入層到隱藏層,進(jìn)行矩陣乘法


就是“今天”在CBOW下的編碼,當(dāng)然因?yàn)檫@里只是初始化的值,后面模型會隨著樣本的訓(xùn)練而調(diào)整這個(gè)數(shù)值,從而得到最后“今天”真正的編碼。


從隱藏層到輸出層,直接繼續(xù)進(jìn)行矩陣的乘法,那么有

在進(jìn)行softmax的變化,我們得到了最后對于每個(gè)單詞的預(yù)測概率均為19,而我們的訓(xùn)練樣本是希望“他”對應(yīng)的概率要盡量的高,也就是”他”的概率要為1,其它的單詞概率為0,這樣模型的輸出和真實(shí)的樣本存在了偏差,那們我們就可以直接利用這個(gè)誤差來進(jìn)行反向傳遞,調(diào)整我們模型的參數(shù),從而達(dá)到了學(xué)習(xí)調(diào)優(yōu)的目的。


如果我們再回頭看上面的計(jì)算流程,其實(shí)可以這樣理解上面的矩陣 。對于每一個(gè)單詞v,我們給其賦予兩個(gè)編碼,分別記為,此處我們都默認(rèn)向量都是列向量,那么構(gòu)成了矩陣中單詞 v 對應(yīng)的那一行,對應(yīng)了矩陣 中單詞 v 對應(yīng)的那一列。而通過單詞 v 對其它單詞任意單詞 s 預(yù)測的概率通過下面的公式求得

其中為兩向量的內(nèi)積,現(xiàn)在我們有一系列的觀測樣本,,那么基于上面的分析,我們可以構(gòu)建基于這些樣本的釋然函數(shù),有

取對數(shù)后有

所以最后我們其實(shí)就是在最大化釋然函數(shù)。為什么說計(jì)算上面的釋然函數(shù)很復(fù)雜呢?大家可以看到對數(shù)里面的求和項(xiàng),其實(shí)需要對所有單詞進(jìn)行一次遍歷,也就是說如果我們詞庫有1萬個(gè)單詞,那么每一步迭代就需要計(jì)算一萬次,如果詞庫有一百萬,一千萬甚至是上億的單詞量呢?可想而知道,這個(gè)計(jì)算量是相當(dāng)當(dāng)大的。所以有一系列的方法來逼近這個(gè)計(jì)算,后面我們也會介紹hierarchical softmax和negative sampling的方法,他們是為解決這個(gè)計(jì)算效率問題的。


多個(gè)上下文預(yù)測一個(gè)單詞的情況

前面說了那么個(gè)多一個(gè)上下文預(yù)測一個(gè)單詞的情況,接下來我們再講講怎么擴(kuò)展到多個(gè)上下文預(yù)測一個(gè)單詞,畢竟從直觀的角度來講,多個(gè)上下文預(yù)測中心詞匯絕對要比一個(gè)上下文預(yù)測中心詞匯要靠譜一些。

首先對于任意的單詞v,其上下文的單詞集合記為 C ,這里上下文是距離中心單詞v一定距離的所有單詞的集合,而模型基于上下文對v的概率預(yù)測我們記為,為了求這個(gè)概率,我們可以這樣做一個(gè)轉(zhuǎn)換,對于每一個(gè)單詞,我們先求得其在隱藏層的向量 ,然后計(jì)算所有上下文單詞隱藏層向量的的平均值,,對任意單詞 v 的預(yù)測概率,我們有下面的結(jié)果

所以,如果我們有一系列的訓(xùn)練樣本基于CBOW模型,我們可以得到下面的額釋然函數(shù)



Skip gram 模型


Skip gram 模型和CBOW完全是相反的出發(fā)角度,Skip gram 模型是通過中心單詞預(yù)測上下文,而Google提出的Word2Vec的論文中,也推薦使用這個(gè)方法來進(jìn)行詞向量的學(xué)習(xí)。同樣我們也先理解一個(gè)中心單詞預(yù)測一個(gè)上下文的情況,然后擴(kuò)展到一個(gè)單詞預(yù)測多個(gè)上下文的情況。

一個(gè)單詞預(yù)測一個(gè)上下文


這是最簡單的情況,在公式上面其實(shí)和CBOW模型一模一樣,唯一的區(qū)別就是訓(xùn)練樣本從以前的(上下文單詞,中心詞匯)變成了(中心詞匯,上下文單詞)。同樣我們沿用之前的一些符號,而且也是一樣的有簡單的三層神經(jīng)網(wǎng)絡(luò)。假設(shè)我們有訓(xùn)練樣本,那么基于上面的分析,我們可以構(gòu)建基于這些樣本的釋然函數(shù),有

取對數(shù)后有



一個(gè)單詞預(yù)測多個(gè)上下文的情況


同樣沿用之前的一些符號,記中心單詞為 v ,上下文單集合為 C , 這次我們要預(yù)測的是上下文的概率,為了轉(zhuǎn)換成一個(gè)單詞預(yù)測一個(gè)上下文的情況,我們可以做獨(dú)立的假設(shè),也就是有了下面的額公式

上面第一個(gè)等式就是上下文的預(yù)測條件概率獨(dú)立的假設(shè)。同樣基于一些列的樣本, ,我們可以寫出其釋然函數(shù)


一些思考


前面我們也提到了,上面兩種方法學(xué)習(xí)出來的編碼有一些很好的特征,其中一個(gè)特征就是詞性和語意相同的詞,他們的詞向量在詞向量空間中的距離比較近。這個(gè)通過Skip Gram模型來看,很好理解,比如有兩個(gè)詞,,他們的上下文都為C,而模型的第一步都是查找其隱藏層的編碼,后面計(jì)算 的過程完全一樣,那么理論上來講,在最優(yōu)的情況下會最終一樣。如果他們的上下文不完全一樣,分別為, 而兩者之間有大部分詞匯相似,那么魔性最優(yōu)的情況一定是的值比較接近,那樣才會在才在大多數(shù)情況下一致。


此外論文中推薦的額是使用Skip Gram模型,個(gè)人的理解估計(jì)是Skip Gram模型比較直接,而且實(shí)現(xiàn)起來架構(gòu)幾乎不變,只需要把目標(biāo)函數(shù)變?yōu)槌朔e的形式就行了(獨(dú)立的假設(shè))。而CBOW在多個(gè)上下文預(yù)測一個(gè)中心詞的時(shí)候需要先對上下文的所有編碼進(jìn)行均值的計(jì)算,這一點(diǎn)沒有Skip Gram模型那么直接。其次可能是Skip Gram模型的結(jié)果在一些數(shù)據(jù)集上表現(xiàn)更好,解釋性更強(qiáng)的緣故。


詞向量編碼是近幾年很流行的方法,而現(xiàn)在任意的NLP的問題都會將文本進(jìn)行詞向量編碼后再進(jìn)行后續(xù)的建模和計(jì)算,往往效果都遠(yuǎn)好于直接用one hot編碼。而受詞向量編碼思想的影響,網(wǎng)絡(luò)編碼也在知識圖譜的表示和推斷方面衍生出了一些列的思想和方法。


無論如何,希望能對正在入門NLP和學(xué)習(xí)word2vec的你有些幫助。


reference


Distributed Representations of Words and Phrases and their Compositionality

word2vec Parameter Learning Explained

Word2Vec Tutorial - The Skip-Gram Model · Chris McCormick

雅思一下下


undermine vt.破壞,漸漸破壞;挖掘地基

estrange vt. 使疏遠(yuǎn);離間

feasible adj.可行的;可能的;可實(shí)行的

democratic adj.民主的;民主政治的;大眾的

qualitative adj.定性的;質(zhì)的,性質(zhì)上的


優(yōu)質(zhì)公眾號推薦


cdeveloper

簡介:這個(gè)號名叫 C 開發(fā)者,主要致力于 C/C++,Linux 方向的技術(shù)分享。但是這個(gè)號并不僅僅分享技術(shù),每周都會分享一些小工具,號主的日常實(shí)踐總結(jié)出來的認(rèn)知經(jīng)驗(yàn)等,另外這個(gè)號的排版「特別美觀」,曾被知名互聯(lián)網(wǎng)大佬「stormzhang」推薦過,強(qiáng)烈推薦關(guān)注!



    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多