盧美華 王巧玲

摘 要 本文首先簡要介紹了基于人工智能和大數(shù)據(jù)的“深度學(xué)習(xí)”,重點(diǎn)論述了Word2Vec算法及其在自然語言處理的應(yīng)用。運(yùn)用現(xiàn)有“深度學(xué)習(xí)”工具計(jì)算詞和句子的語義相似度,以及一些現(xiàn)實(shí)應(yīng)用。
關(guān)鍵詞 人工智能 深度學(xué)習(xí) Word2Vec 語義相似度
人工智能是計(jì)算機(jī)科學(xué)或智能科學(xué)的一個(gè)分支,涉及研究、設(shè)計(jì)及應(yīng)用智能機(jī)器,中國2017年3月已將人工智能納入國家戰(zhàn)略。
其誕生于上個(gè)世紀(jì)30年代,經(jīng)歷了不同的發(fā)展階段,致力于研究開發(fā)用于模擬、延伸和擴(kuò)展人類智能的理論、技術(shù)及應(yīng)用系統(tǒng),希望探究人類收集信息、反應(yīng)決策和實(shí)施行為的本質(zhì),并生產(chǎn)出與人類處理問題相似的智能機(jī)器。
人工智能經(jīng)歷了如下個(gè)歷史階段:(1)孕育奠基期(20世紀(jì)30年代到1956年);(2)形成發(fā)展期(1956年到20世紀(jì)60年代末);(3)低谷瓶頸期(20世紀(jì)70年代到80年代初期);(4)專家系統(tǒng)推廣階段(20世紀(jì)80年代至90年代);(5)深度學(xué)習(xí)引領(lǐng)發(fā)展階段(21世紀(jì)至今)。隨著互聯(lián)網(wǎng)的全球覆蓋為其提供海量的數(shù)據(jù)基礎(chǔ),算法的進(jìn)步使得機(jī)器的深度學(xué)習(xí)成為可能,硬件制造水平的提高提升了計(jì)算機(jī)的數(shù)據(jù)處理能力,大數(shù)據(jù)和實(shí)時(shí)決策時(shí)代的到來,讓人工智能在各領(lǐng)域的研究成果層出不窮。為了充分利用大數(shù)據(jù),數(shù)據(jù)挖掘、神經(jīng)網(wǎng)絡(luò)等各種學(xué)科應(yīng)運(yùn)而生。把神經(jīng)網(wǎng)絡(luò)運(yùn)用到NLP(自然語言處理)產(chǎn)生了深度學(xué)習(xí)算法。計(jì)算語義相似度是深度學(xué)習(xí)算法在自然語言處理中的一個(gè)非常重要的應(yīng)用。
1語義距離相似度
劉群、李素建以基于實(shí)例的機(jī)器翻譯為背景,認(rèn)為語義相似度就是兩個(gè)詞語在不同的上下文中可以互相替換使用而不改變文本的句法語義結(jié)構(gòu)的程度。兩個(gè)詞語,如果在不同的上下文中可以互相替換且不改變文本的句法語義結(jié)構(gòu)的可能性越大,二者的相似度就越高,否則相似度就越低。
詞語的語義相似度計(jì)算主要有兩種方法 :一類是通過語義詞典,把有關(guān)詞語的概念組織在一個(gè)樹形的結(jié)構(gòu)中來計(jì)算;另一類主要是通過詞語上下文的信息,運(yùn)用統(tǒng)計(jì)的方法進(jìn)行求解。
2詞語語義相似度的計(jì)算方法
詞語距離有兩類常見的計(jì)算方法,一種是根據(jù)某種世界知識或分類體系來計(jì)算,一種利用大規(guī)模的語料庫進(jìn)行統(tǒng)計(jì)。
2.1根據(jù)分類體系計(jì)算詞語語義距離的方法
該方法又稱基于樹的語義相似度研究方法,基于樹的語義相似度計(jì)算的算法大體上分為兩種:一是基于距離的語義相似性測度;二是基于信息內(nèi)容的語義相似性測度。英語語義分析網(wǎng)上資源有WordNet、FrameNet和VerbNet,中文的語義詞典有《同義詞林》。語義詞典都是將所有的詞組織在一棵或幾棵樹狀的層次結(jié)構(gòu)中。在一棵樹狀圖中,任何兩個(gè)結(jié)點(diǎn)之間有且只有一條路徑。于是,這條路徑的長度就可以作為這兩個(gè)詞語概念間語義距離的一種度量;而且隨著概念所處結(jié)點(diǎn)越深,其所包含的語義信息越豐富,越能準(zhǔn)確地決定概念的性質(zhì),它們對語義相似度起著決定作用。
通過查閱Wordne,boy和girl之間的最短路徑是boy—male—person—female—girl,最小路徑長度為4。而instructor和boy之間的最小路徑是instructor—educator—professional person—adult—person—boy,最小路徑長度為6。因此,girl比teacher在語義上更接近于boy。該測度算法在基于Wordnet的語義網(wǎng)中獲得了較好的計(jì)算結(jié)果。
2.2利用大規(guī)模的語料庫進(jìn)行統(tǒng)計(jì)
語料庫語言學(xué)是近年來國內(nèi)外語言學(xué)及外語教學(xué)界討論最多的熱門課題之一。
基于語料庫的詞語相似度研究大都采用了上下文語境的統(tǒng)計(jì)描述方法,即認(rèn)同這樣一個(gè)論斷:同義詞、近義詞的上下文也相同,上下文可以為詞語定義提供足夠信息。Word2Vec即是在實(shí)際的大規(guī)模語料中以該詞在上下文中出現(xiàn)的頻率來度量,于是對于每一個(gè)詞都可以得到一個(gè)相關(guān)性的特征詞向量,然后利用這些向量之間的相似度作為這兩個(gè)詞的相似度。
2.3兩類主要語義相似度計(jì)算方法的比較分為客觀計(jì)算和經(jīng)驗(yàn)法兩種
客觀計(jì)算的前提條件是:兩個(gè)詞匯具有一定的語義相關(guān)性,當(dāng)且僅當(dāng)它們在概念的結(jié)構(gòu)中有且僅有一條路徑;而經(jīng)驗(yàn)法的前提條件是:詞語的上下文可以為詞語定義提供足夠信息,兩個(gè)詞語語義相似當(dāng)且僅當(dāng)它們處于相似的上下文環(huán)境中。所用的工具不同,前者用語義詞典,后者用大規(guī)模語料庫。前者的理論依據(jù)是樹圖和圖論,后者是向量空間。優(yōu)點(diǎn)比較:前者直觀而且簡單有效,可以字面上不相似的詞匯間的相似度;后者能夠客觀地反映詞語的形態(tài)、句法、語義等特點(diǎn)。缺點(diǎn)也是明顯的:前者受人的主觀影響比較大,有時(shí)不能反映客觀現(xiàn)實(shí)性能;后者依賴于語料庫的優(yōu)劣,存在數(shù)據(jù)稀疏的問題,也有噪聲干擾。
2.4詞向量
Word2Vec也叫word embeddings,中文名“詞向量”,作用就是將自然語言中的字詞轉(zhuǎn)為計(jì)算機(jī)可以理解的稠密向量(Dense Vector)。在Word2Vec出現(xiàn)之前,自然語言處理經(jīng)常把字詞轉(zhuǎn)為離散的單獨(dú)的符號,也就是One-Hot Encoder。
例:杭州 [,0,0,0,0,1,0,……,0]? ?上海 [0,1,0,0,0,0,……,0]
寧波 [1,0,0,0,0,0,……,0]? ? ?北京 [0,0,0,0,0,0,……,1]
比如上面的這個(gè)例子,在語料庫中,杭州、上海、寧波、北京各對應(yīng)一個(gè)向量,向量中只有一個(gè)值為1,其余都為0。但是使用One-Hot Encoder有以下問題。一方面,城市編碼是隨機(jī)的,向量之間相互獨(dú)立,看不出城市之間可能存在的關(guān)聯(lián)關(guān)系。其次,向量維度的大小取決于語料庫中字詞的多少。如果將世界所有城市名稱對應(yīng)的向量合為一個(gè)矩陣的話,那這個(gè)矩陣過于稀疏,并且會造成維度災(zāi)難。
使用Vector Representations可以有效解決這個(gè)問題。Word2Vec可以將One-Hot Encoder轉(zhuǎn)化為低維度的連續(xù)值,也就是稠密向量,并且其中意思相近的詞將被映射到向量空間中相近的位置。
如果將embed后的城市向量通過PCA降維后可視化展示出來,那就是這個(gè)樣子。
我們可以發(fā)現(xiàn),華盛頓和紐約聚集在一起,北京上海聚集在一起,且北京到上海的距離與華盛頓到紐約的距離相近。也就是說模型學(xué)習(xí)到了城市的地理位置,也學(xué)習(xí)到了城市地位的關(guān)系。
Word2Vec主要分為CBOW(Continuous Bag of Words)和Skip-Gram兩種模式。CBOW是從原始語句推測目標(biāo)字詞;而Skip-Gram正好相反,是從目標(biāo)字詞推測出原始語句。CBOW對小型數(shù)據(jù)庫比較合適,而Skip-Gram在大型語料中表現(xiàn)更好。
對同樣一個(gè)句子:Hangzhou is a nice city。我們要構(gòu)造一個(gè)語境與目標(biāo)詞匯的映射關(guān)系,其實(shí)就是input與label的關(guān)系。
這里假設(shè)滑窗尺寸為1,CBOW可以制造的映射關(guān)系為:[Hangzhou,a]—>is,[is,nice]—>a,[a,city]—>nice;Skip-Gram可以制造的映射關(guān)系為(is,Hangzhou),(is,a),(a,is), (a,nice),(nice,a),(nice,city)。
你可能會注意到,這個(gè)訓(xùn)練過程的參數(shù)規(guī)模非常巨大。假設(shè)語料庫中有30000個(gè)不同的單詞,hidden layer取128,Word2Vec兩個(gè)權(quán)值矩陣維度都是[30000,128],在使用SGD對龐大的神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)時(shí),將是十分緩慢的。而且,你需要大量的訓(xùn)練數(shù)據(jù)來調(diào)整許多權(quán)重,避免過度擬合。數(shù)以百萬計(jì)的重量數(shù)十億倍的訓(xùn)練樣本意味著訓(xùn)練這個(gè)模型將是一個(gè)野獸。一般來說,可以通過Hierarchical Softmax、Negative Sampling等方式來解決。
2.5 Word2Vec的應(yīng)用舉例
騰訊詞向量是現(xiàn)成的Word2Vec深度學(xué)習(xí)工具。以下是利用騰訊詞向量,制作的單詞游戲:
(1)詞類比(Word Analogy):
機(jī)場-飛機(jī)+火車=高鐵站W(wǎng)indows-microsoft+google=android? 老婆-老公+丈夫=妻子
(2)兩個(gè)詞的加減:
中國+力量=中國強(qiáng)大 AI+NLP=機(jī)器學(xué)習(xí)CEO+微軟=納德拉
(3)中文和“自然語言處理”語義相似的短語有:自然語言理解,計(jì)算機(jī)視覺,深度學(xué)習(xí),機(jī)器學(xué)習(xí),圖像識別,語義理解,自然語言識別,知識圖譜,自然語言,自然語音處理。
(4)中文和“NLP”語義相似的短語有:神經(jīng)語言,機(jī)器學(xué)習(xí)理論,時(shí)間線療法,神經(jīng)科學(xué),統(tǒng)計(jì)學(xué)習(xí),統(tǒng)計(jì)機(jī)器學(xué)習(xí),nlp應(yīng)用,知識表示,強(qiáng)化學(xué)習(xí),機(jī)器學(xué)習(xí)研究。
3句子語義相似度的計(jì)算
如何定義句子的similarity其實(shí)是比較困難的,往往和具體應(yīng)用也比較相關(guān),到底需求是topic上的相關(guān),還是說semantic上的相關(guān),例如:
I like this laptop.
I do not like this laptop.
A man is playing a harp.
A man is playing a keyboard.
通過判斷,兩句話之間“非常不相似”,盡管它們的句法結(jié)構(gòu)相同,并且其中的詞嵌入也類似。
如果用不同的similarity定義方法,得出的結(jié)果也是不同的。這個(gè)和paraphrase的研究其實(shí)也有些關(guān)系,現(xiàn)在大多數(shù)工作感覺都是從similarity的角度去做,但其實(shí)按照嚴(yán)格定義應(yīng)該是看雙向的entailment。
我們首先對句子進(jìn)行分詞,然后對分好的每一個(gè)詞獲取其對應(yīng)的 Vector,然后將所有 Vector 相加并求平均,這樣就可得到 Sentence Vector 了,然后再計(jì)算其夾角余弦值即可。
示例如下:
句子: '你在干嘛' 與 '你正做什么'的相似度計(jì)算結(jié)果如下:0.6701133967824016
如下句子“你在干什么”,“你在干啥子”,“你在做什么”,“你好啊”,“我喜歡吃香蕉”與句子“你在干啥”的相似度結(jié)果分別是:你在干什么 0.8785495016487204 你在干啥子 0.9789649689827049 你在做什么 0.8781992402695274 你好啊 0.5174225914249863 我喜歡吃香蕉 0.582990841450621。
可以看到相近的語句相似度都能到 0.8 以上,而不同的句子相似度都不足 0.6,這個(gè)區(qū)分度就非常大了,可以說有了 Word2Vec 我們可以結(jié)合一些語義信息來進(jìn)行一些判斷,效果明顯也好很多。所以總體來說,Word2Vec 計(jì)算的方式是非常好的。
4總結(jié)
自然語言處理(NLP)還是一個(gè)不斷發(fā)展的學(xué)科,深度學(xué)習(xí)正在發(fā)揮越來越大的作用,取得了長足的進(jìn)步,AlphaGo戰(zhàn)勝世界圍棋冠軍即是例證。但是,人工智能的缺陷在于缺乏抽象思維能力和綜合認(rèn)知能力。它們?nèi)鄙俪WR,缺少對這個(gè)世界真正的認(rèn)知,它們沒有固定的世界模型,也就沒有辦法把語言和一個(gè)世界模型相對照,而這個(gè)常識系統(tǒng)我們?nèi)祟愂亲顝?qiáng)大的。人工智能不能真正理解很多語境。深度學(xué)習(xí)很難理解篇章。隨著計(jì)算機(jī)技術(shù)、人工智能的逐步發(fā)展,特別是機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的進(jìn)步,人類解放大腦的時(shí)候?yàn)槠诓贿h(yuǎn)。計(jì)算機(jī)在語言教學(xué)和語言研究發(fā)面將發(fā)揮越來越大的作用。
參考文獻(xiàn)
[1] 盧美華,王巧玲.基于英漢平行語料庫語義分析的翻譯教學(xué)系統(tǒng)設(shè)計(jì)與應(yīng)用[J].教師,2015(08):36.
[2] 盧美華.《實(shí)用英語語料庫》的建立與英語教學(xué)[J].北京農(nóng)業(yè)職業(yè)學(xué)院學(xué)報(bào),2007(01):72-73.
[3] 盧美華,王巧玲.網(wǎng)絡(luò)環(huán)境下英語聽力、口語知識建構(gòu)[J].外語教學(xué),2011(32):168-169.