盧美華 王巧玲

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