NLP基礎教程

語言和數(shù)學的產(chǎn)生都是為了同一個目的---記錄和傳播信息。直到半個多世紀前香農(nóng)博士提出信息論,人們才開始把數(shù)學和信息系統(tǒng)自覺地聯(lián)系起來勾给。

1. 文字和語言 vs 數(shù)字和信息

我們的祖先迅速學習新事物饰及,語言也就越來越豐富右蕊,越來越抽象捉邢。語言描述的共同要素,比如物體商膊、數(shù)量和動作便抽象出來伏伐,形成了今天的詞匯。當語言和詞匯多到一定程度晕拆,人類僅用大腦已經(jīng)記不住所有詞匯了藐翎,于是材蹬,高效記錄信息的需求就產(chǎn)生了,這便是文字的起源吝镣。

image.png

數(shù)字是計數(shù)系統(tǒng)的基礎堤器。當然早期數(shù)字并沒有書寫的形式,而是掰手指末贾,這就是我們今天使用十進制的原因闸溃。

描述數(shù)字最有效的是古印度人,他們發(fā)明了包括0在內(nèi)的10個阿拉伯數(shù)字拱撵,就是今天全世界通用的數(shù)字辉川。阿拉伯數(shù)字或者說印度數(shù)字的革命性不僅在于它的簡潔有效,而且標志著數(shù)字和文字的分離拴测。這在客觀上放自然語言的研究和數(shù)學在幾千年里沒有重合的軌跡乓旗,而且越走越遠。

2. 從規(guī)則到統(tǒng)計

任何一種語言都是一種編碼方式集索,而語言的語法規(guī)則是編解碼的算法屿愚。利用語言來傳遞信息是人的特質(zhì)。

當時科學家頭腦里的自然語言處理基礎層是句法分析語義分析

image.png

對于語義來說舉例:
"The pen is in the box."和"The box is in the pen."中兩個pen的區(qū)別务荆。第一句比較好理解妆距,第二句需要靠常識了,翻譯成中文是“盒子在圍欄里”蛹含。這是一個簡單的例子毅厚,但清晰地說明了當時自然語言處理研究方法上存在的問題。

可以說浦箱,利用計算機處理自然語言的努力直到10世紀70年代初是相當失敗的吸耿。1970年以后統(tǒng)計語言學的出現(xiàn)使得自然語言處理重獲新生,并取得了今天的非凡成就酷窥。

推動這個技術路線轉(zhuǎn)變的關鍵人物是弗里德里克·賈里尼克和他領導的IBM華生實驗室咽安。最初,他們也沒有想解決整個自然語言處理的各種問題蓬推,而只是希望解決語音識別的問題妆棒。李開復修過他的課,算是他的學生沸伏,也是卡內(nèi)基-梅隆大學最早從傳統(tǒng)自然語言處理方法轉(zhuǎn)到基于統(tǒng)計方法的研究者糕珊。李開復和洪小文出色的工作,幫助他的導師拉杰·雷迪獲得了圖領獎毅糟。

基于統(tǒng)計的方法的核心模型就是通信系統(tǒng)加隱含馬爾科夫模型红选。這個系統(tǒng)的輸入和輸出都是一維的符號序列,而且保持原有的次序姆另。最早獲得成功的語音識別就是這樣的喇肋,接下來第二個獲得成功的是詞性分析也是如此坟乾。而在句法分析中,輸入的是一維的句子蝶防,而輸出的是二維的分析樹甚侣;在機器翻譯中,雖然輸出的依然是一維句子(另一種語言)间学,但是次序會有很大的變化殷费,所以上述方法就不太管用了。2005年以后菱鸥,隨著Google基于統(tǒng)計方法的翻譯系統(tǒng)全面超過了基于規(guī)則方法的SysTran翻譯系統(tǒng)宗兼,基于規(guī)則方法學派固守的最后一個堡壘被拔掉了。

今天氮采,幾乎不再有科學家自稱是傳統(tǒng)的基于規(guī)則方法的捍衛(wèi)者殷绍。而自然語言處理的研究也從單純的句法分析和語義理解,變成了非常貼近實際應用的機器翻譯鹊漠、語音識別主到、文本到數(shù)據(jù)庫自動生成、數(shù)據(jù)挖掘和知識的獲取躯概,等等登钥。

3. 統(tǒng)計語言模型

自然語言從它產(chǎn)生開始,逐漸演變成一種上下文相關的信息表達和傳遞的方式娶靡,因此讓計算機處理自然語言牧牢,一種基本的問題就是為自然語言這種上下文相關的特性建立數(shù)學模型。這個數(shù)學模型就是在自然語言處理中常說的統(tǒng)計語言模型姿锭。

統(tǒng)計語言模型產(chǎn)生的初衷是為了解決語音識別問題塔鳍。假定S表示某一個有意義的句子,由一連串特定的順序排列的詞w_1,w_2,...,w_n組成呻此,這里n是句子長度÷秩遥現(xiàn)在阶剑,我們想知道S在文本中出現(xiàn)的可能性表箭,也就是數(shù)學上所說的S的概率P(S)。因此干奢,需要有個模型來估算忿磅。既然S=w_1,w_2,...,w_n糯彬,那么不妨把P(S)展開表示:
P(S)=P(w_1,w_2,...,w_n)\tag{3.1}

利用條件概率公式,S這個序列出現(xiàn)的概率等于每一個詞出現(xiàn)的條件概率相乘葱她,于是P(w_1,w_2,...,w_3)可展開為:
P(w_1,w_2,...,w_n)=P(w_1)P(w_2|w_1)P(w_3|w_1,w_2)···P(w_n|w_1,w_2,...,w_{n-1})\tag{3.2}

其中P(w_1)表示第一個詞w_1出現(xiàn)的概率情连;P(w_2|w_1)是在已知第一個詞的前提下,第二個詞出現(xiàn)的概率览效;依次類推却舀。不難看出,詞w_n的出現(xiàn)概率取決于它前面的所有詞锤灿。到了最后一個詞w_n挽拔,條件概率P(w_n|w_1,w_2,...,w_{n-1})的可能性太多,無法估算但校。怎么辦螃诅?于是一種偷懶的方法,成為馬爾科夫假設∽创眩現(xiàn)在术裸,S出現(xiàn)的概率就變得簡單了:
P(S)=P(w_1)P(w_2|w_1)P(w_3|w_2)···P(w_i|w_{i-1})···P(w_n|w_{n-1})\tag{3.3}
公式(3.3)對應的統(tǒng)計語言模型是二元模型。當然亭枷,也可以假設一個詞由前面N-1個詞決定袭艺,對應的模型稍微復雜些,被稱為N元模型叨粘。

接下來的問題就是如何估算條件概率P(w_i|w_{i-1})猾编。根據(jù)它的定義:
P(w_i|w_{i-1})=\frac{P(w_{i-1},w_i)}{P(w_{i-1})}\tag{3.4}
只要數(shù)一數(shù)w_{i-1},w_i這對詞在統(tǒng)計的文本中前后相鄰出現(xiàn)了多少次\#( w_{i-1},w_i),以及w_{i-1}本身在同樣的文本中出現(xiàn)了多少次\#(w_{i-1})升敲,然后兩數(shù)分別除以語料庫的大小\#答倡,即可得到這些詞或者二元組的相對頻度:
f(w_{i-1},w_i)=\frac{\#(w_{i-1},w_i)}{\#}\tag{3.5}
f(w_{i-1})=\frac{\#(w_{i-1})}{\#}\tag{3.6}

根據(jù)大數(shù)定理,只要統(tǒng)計量足夠驴党,相對頻度就等于概率瘪撇,即
P(w_{i-1},w_i)\approx\frac{\#(w_{i-1},w_i)}{\#}\tag{3.5}
P(w_{i-1})\approx\frac{\#(w_{i-1})}{\#}\tag{3.6}

因此:
P(w_i|w_{i-1})\approx\frac{\#(w_{i-1},w_i)}{\#(w_{i-1})}\tag{3.7}
數(shù)學的精彩之處就在于簡單的模型可以干大事。

4. 談談分詞

對于西方拼音語言來講港庄,詞之間有明確的分界符倔既,統(tǒng)計和使用語言模型非常直接。而對于一些亞洲語言(如中攘轩、日叉存、韓、泰等)度帮,詞之間沒有明確的的分界符歼捏。

分詞的輸入是一串漢字,例如一個句子:“中國航天官員應邀到美國與太空總署官員開會”笨篷,而分詞的輸出則是用分界符瞳秽,比如用斜線或者豎線分割的一串詞:中國/航天/官員/應邀/到/美國/與/太空/總署/官員/開會。

最容易想到的分詞方法率翅,就是字典:

  1. 查字典法---北京航天航空大學的梁南元教授提出的练俐;
  2. 最少詞數(shù)的分詞理論---哈爾濱工業(yè)大學的王曉龍博士;
  3. 統(tǒng)計語言模型---清華大學電子工程系的郭進博士冕臭;
  4. 沒有詞典的分詞方法---清華大學孫茂松教授和香港科技大學吳德凱教授腺晾;

利用統(tǒng)計語言模型分詞的方法燕锥,假定一個句子S可以有幾種分詞方法,為了簡單起見悯蝉,假定有以下三種:
A_1,A_2,A_3,...,A_k
B_1,B_2,B_3,...,B_m
C_1,C_2,C_3,...,C_n

其中归形,A_1,A_2,...B_1,B_2,...C_1,C_2,...等都是漢語的詞,上述各種分詞結(jié)果可能產(chǎn)生不同數(shù)量的詞串鼻由。那么最好的一種分詞方法應該保證分完詞后這個句子出現(xiàn)的概率最大暇榴。也就是滿足:
P(A_1,A_2,A_3,...A_k)>P(B_1,B_2,B_3,...,B_m)\tag{4.1}
并且
P(A_1,A_2,A_3,...A_k)>P(C_1,C_2,C_3,...,C_n)\tag{4.2}

需要指出的是任何方法都有它的局限性。在工業(yè)界蕉世,只要采用基本的統(tǒng)計語言模型蔼紧,加上一些業(yè)界熟知的技巧就能得到很好的分詞結(jié)果,不值得再去花大精力去做研究狠轻,因為即使能夠進一步提高準確率奸例,提升空間也很有限。

5. 隱馬爾科夫模型(HMM)

隱馬爾科夫模型成功地解決了復雜語音識別哈误、機器翻譯等問題哩至。

人類信息的交流貫穿了人類的進化和文明的全過程,而自然語言是人類交流信息的工具蜜自,語言和通信的聯(lián)系是天然的菩貌。通信的本質(zhì)就是編解碼和傳輸?shù)倪^程。但是自然語言處理早期的努力都集中在語法重荠、語義和知識表述上箭阶,離通信的原理越走越遠,而這樣離答案也就越來越遠戈鲁。當自然語言處理的問題回歸到通信系統(tǒng)中的解碼問題時仇参,很多難題都迎刃而解了。

通信模型

在通信中婆殿,如何根據(jù)接收端的觀測信號o_1,o_2,o_3,...來推測信號源發(fā)送的信息s_1,s_2,s_3,...呢诈乒?只需要從所有的源信息中找到最可能產(chǎn)生出觀測信號的那一個信息。用概率論的語言來描述婆芦,就是已知o_1,o_2,o_3,...的情況下怕磨,求得令條件概率
P(s_1,s_2,s_3,...|o_1,o_2,o_3,...)達到最大值的那個信息串s_1,s_2,s_3,...,即
s_1,s_2,s_3,...=\arg\max_{s_1,s_2,s_3,...}P(s_1,s_2,s_3,...|o_1,o_2,o_3,...)\tag{5.1}

當然消约,上面的概率不容易直接求出肠鲫,利用貝葉斯公式可以把上述公式等價變換成
\frac{P(o_1,o_2,o_3,...|s_1,s_2,s_3,...)P(s_1,s_2,s_3,...)}{P(o_1,o_2,o_3,...)}\tag{5.2}
其中P(o_1,o_2,o_3,...|s_1,s_2,s_3,...)表示信息s_1,s_2,s_3,...在傳輸后變成接收的信號o_1,o_2,o_3,...的可能性;而P(s_1,s_2,s_3,...)表示s_1,s_2,s_3,...本身是一個在接收端合乎情理的信息的可能性或粮;最后P(o_1,o_2,o_3,...)表示在發(fā)送端產(chǎn)生信息o_1,o_2,o_3,...的可能性导饲。

首先,一旦信息o_1,o_2,o_3,...產(chǎn)生了,它就不會改變了渣锦,這時P(o_1,o_2,o_3,...)就是一個可以忽略的常熟硝岗。因此,上面的公式可以等價成
P(o_1,o_2,o_3,...|s_1,s_2,s_3,...)P(s_1,s_2,s_3,...)\tag{5.3}
這個公式完全可以用隱含馬爾可夫模型(Hidden Markov Model)來估計袋毙。

隱馬爾可夫模型是馬爾科夫鏈的一個擴展:每一個狀態(tài)只和前一個狀態(tài)有關辈讶,任一時刻t的狀態(tài)s_t是不可見的。所以觀察者沒法通過觀察到一個狀態(tài)序列s_1,s_2,s_3,...s_T來推測轉(zhuǎn)移概率等參數(shù)娄猫。但是,隱馬爾科夫模型在每個時刻t會輸出一個符號o_t生闲,而且o_ts_t相關且僅跟s_t相關媳溺。這個被稱為獨立輸出假設。隱含馬爾可夫模型的結(jié)構(gòu)如下:其中隱含的狀態(tài)s_1,s_2,s_3,...是一個典型的馬爾科夫鏈碍讯。鮑姆把這種模型稱為“隱含”馬爾科夫模型悬蔽。

隱含馬爾可夫模型

基于馬爾科夫假設和獨立輸出假設,我們可以計算出某個特定的狀態(tài)序列s_1,s_2,s_3,...產(chǎn)生出輸出符號o_1,o_2,o_3,...的概率捉兴。

P(s_1,s_2,s_3,...,o_1,o_2,o_3,...)=\prod_tP(s_t|s_{t-1})P(o_t|s_t)\tag{5.4}

公式(5.4)在形態(tài)上和公式(5.3)非常相似蝎困,即把
P(o_1,o_2,o_3,...|s_1,s_2,s_3,...)=\prod_tP(o_t|s_t) \\ P(s_1,s_2,s_3,...)=\prod_tP(s_t|s_{t-1}) \tag{5.5}
代入(5.3),這時正好得到(5.4)倍啥。這樣通信的解碼問題就可以用隱含馬爾可夫模型來解決了禾乘。

至于如何找出上面式子的最大值,進而找出要識別句子s_1,s_2,s_3,...虽缕,可以利用維特比算法(Viterbi Algorithm)始藕。在公式(5.3)中,P(s_1,s_2,s_3,...)是語言模型氮趋。

針對不同的應用伍派,P(s_1,s_2,s_3,...|o_1,o_2,o_3,...)的名稱也各不相同,在語音識別中它被稱為“聲學模型”(Acoustic Model)剩胁,在機器翻譯中是“翻譯模型”(Translation Model)诉植,而在拼寫校正中是“糾錯模型”(Correction Model)。

圍繞著隱含馬爾可夫模型有三個基本問題:

  1. 給定一個模型昵观,如何計算某個特定的輸出序列的概率晾腔;(Forward-Backword算法)
  2. 給定一個模型和某個特定序列,如何找到最可能產(chǎn)生這個輸出的狀態(tài)序列索昂;(維特比算法)
  3. 給定足夠量的觀測數(shù)據(jù)建车,如何估計隱含馬爾可夫模型的參數(shù);(模型訓練問題)

在利用隱含馬爾可夫模型解決實際問題中椒惨,需要事先知道從前一個狀態(tài)s_{t-1}進入當前狀態(tài)s_t的概率P(s_t|s_{t-1})缤至,也被稱為轉(zhuǎn)移概率,和每個狀態(tài)s_t產(chǎn)生相應輸出符號o_t的概率P(o_t|s_t),也稱為發(fā)射概率领斥。這些概率被稱為隱含馬爾可夫模型的參數(shù)嫉到,而計算或者估計這些參數(shù)的過程稱為模型的訓練

我們從條件概率的定義出發(fā)月洛,知道:(如果有足夠多的人工標注數(shù)據(jù)/大數(shù)定律)
P(o_t|s_t)=\frac{P(o_t,s_t)}{P(s_t)}\approx\frac{\#(o_t,s_t)}{\#(s_t)}\tag{5.6}
P(s_t|s_{t-1})=\frac{P(s_t,s_{t-1})}{P(s_{t-1})}\approx\frac{\#(s_{t-1},s_t)}{\#(s_{t-1})}\tag{5.7}

有監(jiān)督的訓練的前提是需要大量人工標注的數(shù)據(jù)何恶。比如在語言識別中的聲學模型訓練。人是無法確定產(chǎn)生某個語音的狀態(tài)序列的嚼黔,因此也就無法標注訓練模型的數(shù)據(jù)细层。而在另外一些應用中,雖然標注數(shù)據(jù)是可行的唬涧,但是成本非常高疫赎。比如訓練中英機器翻譯的模型,需要大量中英對照的語料碎节,還要把中英文的詞一一對應起來捧搞,這個成本非常高。因此狮荔,訓練隱含馬爾可夫模型更實用方式僅僅通過大量觀測到的信號o_1,o_2,o_3,...就能推算模型參數(shù)的P(s_t|s_{t-1})P(o_t|s_t)的方法胎撇,這類方法稱為無監(jiān)督的訓練方法(鮑姆·韋爾奇算法)。

鮑姆·韋爾奇算法的每一次迭代都是不斷地估計新的模型參數(shù)殖氏,使得輸出的概率達到最大化晚树,因此這個過程被稱為期望最大化,簡稱EM過程受葛。EM過程保證算法一定能收斂到一個局部最優(yōu)點题涨,很遺憾它一般不能保證找到全局最優(yōu)點。因此总滩,有一些自然語言處理的應用纲堵,比如詞性標注中,這種無監(jiān)督的鮑姆·韋爾奇算法訓練出的模型比有監(jiān)督的訓練得到的模型效果略差闰渔,因為前者未必能收斂到全局最優(yōu)點席函。但是如果目標函數(shù)是凸函數(shù),則只有一個最優(yōu)點冈涧,在這種情況下EM過程可以找到最佳值茂附。

隱含馬爾可夫模型和幾乎所有的機器學習的模型工具一樣,它需要一個訓練算法(鮑姆·韋爾奇算法)和使用時的解碼算法(維特比算法)督弓。

6. 信息的度量和互信息

直到1948年营曼,香農(nóng)在他的著名的論文“通信的數(shù)學原理”中提出了“信息熵”的概念,才解決了信息的度量問題愚隧,并且量化出信息的作用蒂阱。

那么如何量化信息量的度量呢?舉例,2014年舉行了世界杯足球賽录煤,大家都很關心誰會是冠軍鳄厌。假如我錯過了看世界杯,賽后我問一個知道比賽結(jié)果的觀眾“哪支球隊是冠軍妈踊?”他不愿告訴我了嚎,而是讓我猜。并且每猜一次廊营,他就要收一元錢才告訴我是否猜對了歪泳,那么我要掏多少錢才知道誰是冠軍呢?我可以把球隊編上號露筒,從1到32夹囚,然后提問:“冠軍球隊在1-16號中嗎?”假如他告訴我猜對了邀窃,我會接著問“冠軍在1-8號中嗎?”假如他說我猜錯了假哎,我自然知道冠軍隊在9-16號中瞬捕。這樣只需五次,我就知道哪支球隊是冠軍舵抹。所以肪虎,誰是冠軍這條消息的信息量只值5塊錢。

當然惧蛹,香農(nóng)不是用錢扇救,而是用“比特”這個概念來度量信息量。信息量的比特數(shù)和所有可能情況的對數(shù)函數(shù)log有關香嗓。(log32=5迅腔,log64=6

對于任意一個隨機變量X,它的信息熵定義如下:
H(X)=-\sum_{x\in X}P(x)logP(x)\tag{6.1}

變量的不確定性越大靠娱,熵也就越大沧烈,要把它搞清楚,所需要信息量也就越大像云。幾乎所有的自然語言處理锌雀、信息與信號的處理的應用都是一個消除不確定性的過程。

自然語言的統(tǒng)計模型迅诬,其中的一元模型就是通過某個詞本身的概率分布腋逆,來消除不確定因素;而二元及更高階的語言模型則還使用了上下文的信息侈贷,那就能準確預測一個句子中當前的詞匯了惩歉。在數(shù)學上可以嚴格證明為什么這些“相關的”信息也能夠消除不確定性。

假定XY是兩個隨機變量,X是我們需要了解的柬泽。假定我們現(xiàn)在知道了X的隨機分布P(X)慎菲,那么也就知道了X的熵:

H(X)=-\sum_{x\in X}P(x)logP(x)\tag{6.2}

定義在Y的條件下的條件熵為:
H(X|Y)=-\sum_{x\in X,y\in Y}P(x,y)logP(x|y)\tag{6.3}

可以證明H(X)\geq H(X|Y),也就是說多了Y的信息之后锨并,關于X的不確定性下降了露该!

用一句話概括來說:信息的作用在于消除不確定性,自然語言處理大量問題就是尋找相關的信息第煮。

關于“相關性”香農(nóng)提出了“互信息”的概念作為兩個隨機事件“相關性”的量化度量:
I(X;Y)=\sum_{x\in X,y\in Y}P(x,y)log\frac{P(x,y)}{P(x)P(y)}\tag{6.4}

I(X;Y)=H(X)-H(X|Y)\tag{6.5}
互信息是一個取值在0到min(H(X),H(Y))之間的函數(shù)解幼,當XY完全相關時,它們的取值是H(X)包警,同時H(X)=H(Y)撵摆;當二者無關時,它的取值是0害晦。(可以解決詞義的二義性)特铝。

“相對熵”,在有些文獻里也被稱為“交叉熵”壹瘟,相對熵也用來衡量相關性鲫剿,但和互信息不同,它用來衡量兩個取值為正數(shù)的函數(shù)的相似性稻轨,它的定義如下:
KL(f(x)||g(x))=\sum_{x\in X}f(x)\log\frac{f(x)}{g(x)}\tag{6.6} \\ =\sum_{x\in X}f(x)[\log f(x)-\log g(x)] \\ =\sum_{x\in X}[f(x)\log f(x)-f(x)\log g(x)] \\ =\sum_{x\in X}f(x)\log f(x) - \sum_{x\in X}f(x)\log g(x) \\ = H(X)-\sum_{x\in X}f(x)\log g(x)

同樣灵莲,大家不必關心公式本身,只要記住下面三條結(jié)論就好:

1. 對于兩個完全相同的函數(shù)殴俱,它們的相對熵等于零政冻;
2. 相對熵越大,兩個函數(shù)差異越大线欲;反之明场,相對熵越小,兩個函數(shù)差異越欣罘帷榕堰;
3. 對于概率分布或者概率密度函數(shù),如果取值均大于零嫌套,相對熵可以度量兩個隨機分布的差異性逆屡。

需要指出的是,相對熵是不對稱的踱讨,即
KL(f(x)||g(x))\neq KL(g(x)||f(x))\tag{6.7}
這樣使用起來不方便魏蔗,為了讓它對稱,詹森和香農(nóng)提出一種新的相對熵的計算方法痹筛,將上式的不等式兩邊取平均莺治,即:
JS(f(x)||g(x))=\frac{1}{2}[KL(f(x)||g(x))+KL(g(x)||f(x))]\tag{6.8}

相對熵最早使用在信號處理上廓鞠。如果兩個隨機信號,它們的相對熵越小谣旁,說明這兩個信號越接近床佳,否則信號的差異越大。后來研究信息處理的學者們也用它來衡量兩段信息的相似程度榄审,比如說如果一篇文章是照抄或者改寫另一篇砌们,那么這兩篇文章中詞頻分布的相對熵就非常小,接近于零搁进。在Google的自動問答系統(tǒng)中浪感,我們采用了上面詹森-香農(nóng)度量來衡量兩個答案的相似性。

7. 表示學習:One-hot表示法饼问、詞袋模型影兽、分布式表示、共現(xiàn)矩陣

One-hot表示法先提取語料的詞匯表莱革,比如“保險/費用/的/計算/方法/需要/參考/標準”峻堰,得到詞匯表。
{
"保險": 1,
"費用": 2,
"計算": 3,
"方法": 4,
"需要": 5,
"參考": 6,
"標準": 7
}
詞匯表的構(gòu)建通持咽樱基于對文本分詞和去停用詞后進行的茧妒,可以不考慮單詞的先后順序,每個單詞都用唯一的id表示左冬。將上面的詞用One-hot表示。
{
"保險": [1, 0, 0, 0, 0, 0, 0],
"費用": [0, 1, 0, 0, 0, 0, 0],
"計算": [0, 0, 1, 0, 0, 0, 0],
"方法": [0, 0, 0, 1, 0, 0, 0],
"需要": [0, 0, 0, 0, 1, 0, 0],
"參考": [0, 0, 0, 0, 0, 1, 0],
"標準": [0, 0, 0, 0, 0, 0, 1]
}

One-hot表示法是一種離散表示法纸型,其單詞向量所組成的矩陣為稀疏矩陣拇砰。缺點是詞匯表龐大,將占用很大的存儲空間狰腌,并且詞向量之間不存在關聯(lián)關系除破,這就使經(jīng)常同時出現(xiàn)的詞匯或同義詞在One-hot表示法中不能體現(xiàn)。

詞袋模型(BOW)是指忽略文檔的語法和語序等要素琼腔,將文檔僅僅看成是若干無序的單詞集合瑰枫,且每個詞都是獨立的。

詞袋模型

詞袋模型經(jīng)常出現(xiàn)在自然語言處理和信息檢索領域丹莲。

文本 BOW
保險/費用/計算/參考/標準 [1,1,1,0,0,1,1]
保險/費用/的/計算/費用 [1,2,1,0,0,0,0]

基于One-hot表示法的詞袋模型光坝,文檔的表示與每個詞在文檔中順序沒有關系,向量的長度與詞匯表大小相同甥材,而每個元素是該索引位置所代表的詞在文檔中出現(xiàn)的頻率盯另。

分布式表示法:

1-dim 2-dim ··· 50~300dim
python 0.52 0.21 0.37 ···
ruby 0.48 0.21 0.33 ···
word 0.05 0.23 0.06 ···

在現(xiàn)代統(tǒng)計自然語言中,有一個非常有洞見的想法洲赵,就是:能否用一個詞附近的其他詞來表示該詞鸳惯?就像你認識一個新認識的朋友商蕴,想知道他的收入,你可以看一下他周圍10個朋友的收入大致是多少芝发,來推斷他的收入是多少一樣绪商。

共現(xiàn)矩陣,基于前面那個想法辅鲸,就有了這樣一個局域窗口格郁,這個窗口的作用就是看一下周圍的幾個詞才好,窗口長度一般設5-10瓢湃。那他怎么表示呢理张?
假設有三句話:
I like deep learning,
I like NLP,
I enjoy flying,

Counts I like enjoy deep learning NLP flying ,
I 0 2 1 0 0 0 0 0
like 2 0 0 1 0 1 0 0
enjoy 1 0 0 0 0 0 1 0
deep 0 1 0 0 1 0 0 0
learning 0 0 0 1 0 0 0 1
NLP 0 1 0 0 0 0 0 1
flying 0 0 1 0 0 0 0 1
, 0 0 0 0 1 1 1 0

其中面臨的主要問題就是向量維數(shù)隨著詞典大小線性增長,且對于模型有著嚴重的稀疏性問題绵患。

8. CNN

https://skymind.ai/wiki/convolutional-network
LeNet-5

9. RNN雾叭、LSTM、GRU

s_t=f(Ws_{t-1}+Ux_t+b) \\ o_t=g(Vs_t+b)=softmax(Vs_t+b) \tag{9.1}

RNN

f_t=\sigma(W^f s_{t-1}+U^f x_t) \\ i_t=\sigma(W^i s_{t-1}+U^i x_t) \\ o_t=\sigma(W^o s_{t-1}+U^o x_t) \\ \tilde{c_t}=tanh(W^cs_{t-1}+U^cx_t) \\ c_t=f_t \circ c_{t-1} + i_t \circ \tilde{c}_t \\ s_t=o_t \circ tanh(c_t) \tag{9.2}

LSTM

r_t=\sigma(W^r s_{t-1}+U^r x_t) \\ z_t=\sigma(W^z s_{t-1}+U^r x_t) \\ \tilde{s_t}=tanh(r_t \circ W^s s_{t-1}+U^s x_t) \\ s_t=(1-z_t)\circ s_{t-1} + z_t \circ \tilde{s_t} \tag{9.3}

GRU

參考文獻

  1. 《數(shù)學之美》
  2. 《智能問答與深度學習》
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末落蝙,一起剝皮案震驚了整個濱河市织狐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌筏勒,老刑警劉巖移迫,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異管行,居然都是意外死亡厨埋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門捐顷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來荡陷,“玉大人,你說我怎么就攤上這事迅涮》显蓿” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵叮姑,是天一觀的道長唉地。 經(jīng)常有香客問我,道長传透,這世上最難降的妖魔是什么耘沼? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮朱盐,結(jié)果婚禮上耕拷,老公的妹妹穿的比我還像新娘。我一直安慰自己托享,他們只是感情好骚烧,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布浸赫。 她就那樣靜靜地躺著,像睡著了一般赃绊。 火紅的嫁衣襯著肌膚如雪既峡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天碧查,我揣著相機與錄音运敢,去河邊找鬼。 笑死忠售,一個胖子當著我的面吹牛传惠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播稻扬,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼卦方,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了泰佳?” 一聲冷哼從身側(cè)響起盼砍,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逝她,沒想到半個月后浇坐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡黔宛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年近刘,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片臀晃。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡觉渴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出积仗,到底是詐尸還是另有隱情,我是刑警寧澤蜕猫,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布寂曹,位于F島的核電站,受9級特大地震影響回右,放射性物質(zhì)發(fā)生泄漏隆圆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一翔烁、第九天 我趴在偏房一處隱蔽的房頂上張望渺氧。 院中可真熱鬧,春花似錦蹬屹、人聲如沸侣背。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贩耐。三九已至弧腥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間潮太,已是汗流浹背管搪。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留铡买,地道東北人更鲁。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像奇钞,于是被迫代替她去往敵國和親澡为。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

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