王 飛 譚 新
1(解放軍外國(guó)語(yǔ)學(xué)院 河南 洛陽(yáng) 471003) 2(91709部隊(duì) 吉林 琿春 133300)
Word2Vec是Mikolov等[1]在2013 年開發(fā)的一款語(yǔ)言處理工具包,它能夠在訓(xùn)練語(yǔ)言模型的同時(shí)將詞表示成分布式詞向量。Word2Vec相關(guān)的國(guó)外文獻(xiàn)[2-5]和國(guó)內(nèi)學(xué)者針對(duì)Word2Vec所作的各類分析研究文獻(xiàn)[6-8]較為全面地介紹了Word2Vec的設(shè)計(jì)原理及其訓(xùn)練思想,對(duì)它的計(jì)算模型進(jìn)行了整理和說(shuō)明。這些研究?jī)?nèi)容對(duì)詞表示研究和自然語(yǔ)言處理相關(guān)任務(wù)解決方案設(shè)計(jì)有很大幫助。深度學(xué)習(xí)在文本處理中最大的進(jìn)展是為詞匯的語(yǔ)義表示帶來(lái)了突破。通過(guò)學(xué)習(xí)得到低維度稠密性實(shí)數(shù)值詞向量來(lái)表示語(yǔ)義,將特征表示從離散的one-hot向量表示轉(zhuǎn)換為連續(xù)的低維稠密向量表示(也叫分布式表示),能夠大大壓縮one-hot表示中離散的維度,將更多的語(yǔ)義信息蘊(yùn)含于每一維數(shù)值中,增加了不同向量的語(yǔ)義關(guān)聯(lián)性。
Mikolov等[1]開發(fā)的Word2Vec工具在訓(xùn)練詞向量方面表現(xiàn)突出,它產(chǎn)生的分布式詞向量成為了語(yǔ)義表示強(qiáng)有力的工具,一個(gè)詞可以通過(guò)刻畫它的各種屬性來(lái)高效表示,屬性又與多個(gè)概念相關(guān)聯(lián)。每個(gè)詞既包含從上位詞繼承來(lái)的公有屬性,也包含自身所有的私有屬性,具有較好的語(yǔ)言學(xué)特性,可在很多模型和任務(wù)中發(fā)揮作用。分布式詞表示是文本處理領(lǐng)域的基礎(chǔ)和核心,許多基于詞匯語(yǔ)義處理的工作在應(yīng)用了分布式詞表示后都取得了一定程度的提升。一個(gè)好的詞向量可以作為輸入應(yīng)用于現(xiàn)有的機(jī)器學(xué)習(xí)系統(tǒng)來(lái)改善訓(xùn)練效果,例如詞性標(biāo)注、句法分析、機(jī)器翻譯和情感分析等任務(wù)。Mikolov等[2]通過(guò)Word2Vec產(chǎn)生的分布式詞向量進(jìn)行語(yǔ)義距離的計(jì)算發(fā)現(xiàn),分布式詞向量對(duì)于發(fā)現(xiàn)語(yǔ)料內(nèi)上下文中語(yǔ)義距離最近的詞效果很好,并且根據(jù)語(yǔ)義的線性偏移較好地預(yù)測(cè)相關(guān)詞。Word2Vec模型沒有考慮詞序以及習(xí)慣用語(yǔ)的表示,所以訓(xùn)練簡(jiǎn)單高效,依靠大語(yǔ)料和迭代運(yùn)算來(lái)彌補(bǔ)詞序等方面帶來(lái)的不足。分布式詞表示作為文本處理領(lǐng)域的基礎(chǔ),可以直接用于現(xiàn)有的機(jī)器學(xué)習(xí)系統(tǒng),完成自然語(yǔ)言處理各方面的任務(wù)以提升性能。Word2Vec建立語(yǔ)言模型本質(zhì)上就是從語(yǔ)言外部考慮了目標(biāo)詞與上下文的關(guān)系,通過(guò)淺層神經(jīng)網(wǎng)絡(luò)訓(xùn)練方法,根據(jù)目標(biāo)詞預(yù)測(cè)上下文或者根據(jù)上下文預(yù)測(cè)目標(biāo)詞,同時(shí)統(tǒng)計(jì)詞頻信息,最后得到了分布式詞向量表示,詞向量中包含著上下文信息的語(yǔ)義關(guān)系,屬于數(shù)據(jù)密集型科學(xué)范式。Word2Vec在大規(guī)模語(yǔ)料的條件下訓(xùn)練效果良好,可以通過(guò)向量空間計(jì)算余弦距離進(jìn)行語(yǔ)義相似度計(jì)算,來(lái)尋找語(yǔ)義相似度高的詞。近兩年,很多工作圍繞分布式詞向量展開,在詞向量的基礎(chǔ)上提出了句向量、段落向量、實(shí)體和關(guān)系向量等?;诓煌Z(yǔ)言單位的分布式向量表示,有研究者[15-16]又嘗試了詞向量的不同組合方式,從簡(jiǎn)單加和線性組合到復(fù)雜的非線性組合,目的是為了找到語(yǔ)義信息豐富且準(zhǔn)確的向量表示,發(fā)現(xiàn)語(yǔ)義組合的規(guī)律,以便在更多應(yīng)用領(lǐng)域中發(fā)揮作用。本文在深入理解Word2Vec的設(shè)計(jì)原理和它的訓(xùn)練思想的基礎(chǔ)上,研究影響Word2Vec訓(xùn)練效果的多種因素,在基于特定領(lǐng)域語(yǔ)料的情況下,通過(guò)分詞預(yù)處理,設(shè)置維度參數(shù),選擇混合算法等環(huán)節(jié),嘗試發(fā)現(xiàn)能夠優(yōu)化Word2Vec性能的策略,在具體任務(wù)中生成更好的詞向量,對(duì)相關(guān)研究工作提供支持。
Bengio等[9]在2003年提出了一種神經(jīng)概率語(yǔ)言模型,其中包含四個(gè)層次,分別為輸入層、投影層、隱藏層和輸出層。Word2Vec以神經(jīng)概率語(yǔ)言模型為基礎(chǔ)構(gòu)建,主要有三點(diǎn)不同:1) Word2Vec簡(jiǎn)化成了一個(gè)三層的神經(jīng)網(wǎng)絡(luò),只包含輸入層-投影層-輸出層;2) 從輸入層到投影層的操作中,神經(jīng)概率語(yǔ)言模型是將輸入詞向量進(jìn)行拼接,而Word2Vec則是將輸入詞向量累加求和;3) 神經(jīng)概率語(yǔ)言模型的輸出層是線性結(jié)構(gòu),而Word2Vec的Hierarchical Softmax算法模型的輸出層則采用了霍夫曼樹結(jié)構(gòu)。
Word2Vec為訓(xùn)練詞向量提供了連續(xù)詞袋(CBOW)和skip-gram[4]兩種模型,在訓(xùn)練每種模型的時(shí)候又分HS和NEG兩種方法。除了Google官網(wǎng)上的開源的C語(yǔ)言版Word2Vec工具,又出現(xiàn)了其他語(yǔ)言版本,其中Python版的Word2Vec包含在Gensim工具包中,在其最新版的Gensim-0.12.3中,已經(jīng)實(shí)現(xiàn)了Word2Vec原版中的兩種訓(xùn)練模型和兩種算法,并對(duì)原版代碼進(jìn)行了優(yōu)化。
1.2.1 CBOW模型
CBOW(Continuous Bag-of-Words Model)模型是通過(guò)上下文來(lái)預(yù)測(cè)當(dāng)前詞出現(xiàn)的概率。假設(shè)當(dāng)前詞w的上下文Context(w)是由w的前后各c個(gè)詞所構(gòu)成的,那么三層的情況則分別為:1) 輸入層,其中包含了Context(w)中2c個(gè)詞的詞向量;2) 投影層,將輸入層的2c個(gè)詞向量進(jìn)行累加求和;3) 輸出層,采用Hierarchical Softmax技術(shù),以語(yǔ)料中出現(xiàn)過(guò)的詞作為葉子節(jié)點(diǎn),以詞頻作為權(quán)重構(gòu)造一棵霍夫曼樹。
Hierarchical Softmax是Word2Vec中的一種關(guān)鍵技術(shù)[3],它將同一層次的多分類情況轉(zhuǎn)化為多層二分類,從而降低了復(fù)雜度。它的思想是每一次分類都存在一個(gè)概率,將通往葉子節(jié)點(diǎn)路徑中每次二分類的概率相乘,就是p(w|Context(w))。
1.2.2 Skip-gram模型
Skip-gram模型是根據(jù)當(dāng)前詞w預(yù)測(cè)它的上下文,因此所求的概率就轉(zhuǎn)化為p(Context(w)|w)。Skip-gram模型在處理文本時(shí),采取跳過(guò)一些詞取共現(xiàn)詞的方法,能夠捕捉到與當(dāng)前詞非直接相連的詞之間的關(guān)系。Skip-gram模型結(jié)構(gòu)為:1) 輸入層中包含的是當(dāng)前詞w的詞向量;2) 因?yàn)橹挥幸粋€(gè)輸入向量,沒有累加計(jì)算,投影層將詞向量v(w)恒等投射到輸出層;3) 輸出層與CBOW相同,也構(gòu)造了一棵霍夫曼樹。
Word2Vec的CBOW和Skip-gram模型中,除了Hierarchical Softmax模型外,Mikolov等[3]還提出了Negative Sampling(通常簡(jiǎn)稱為NEG),它是 Noise Contrastive Estimation(NCE)的一個(gè)簡(jiǎn)化版本。NCE的本質(zhì)是根據(jù)已知的概率密度函數(shù)來(lái)估計(jì)未知的概率密度函數(shù)。與Hierarchical Softmax相比,NEG模型中的輸出層沒有采用霍夫曼樹,而采用了相對(duì)簡(jiǎn)單的隨機(jī)負(fù)采樣;NEG不對(duì)目標(biāo)詞w路徑的中間節(jié)點(diǎn)進(jìn)行更新,而是隨機(jī)選取部分中間節(jié)點(diǎn)對(duì)其權(quán)重進(jìn)行更新。這些設(shè)計(jì)特點(diǎn)提高了模型的訓(xùn)練速度和詞向量的質(zhì)量。
以Word2Vec為基礎(chǔ),為訓(xùn)練得到準(zhǔn)確性更高的詞向量,有研究[10]提出了兩個(gè)可能會(huì)提升Word2Vec訓(xùn)練效果的問(wèn)題:1) 對(duì)于中文語(yǔ)料,必須進(jìn)行分詞預(yù)處理,不同的分詞結(jié)果對(duì)Word2Vec的訓(xùn)練效果有何影響;2) 在Word2Vec中Hierarchical Softmax和Negative Sampling是兩種不同的優(yōu)化算法,如果混合使用這兩種算法對(duì)Word2Vec的訓(xùn)練效果有何影響。目前對(duì)這兩個(gè)問(wèn)題的研究尚無(wú)公開文獻(xiàn),在多篇Word2Vec相關(guān)論文中也只是分別介紹了兩種優(yōu)化算法,并未提及混合算法的模式及效果。在Word2Vec進(jìn)行詞向量訓(xùn)練的過(guò)程中,首先需要分詞語(yǔ)料作為輸入,再通過(guò)優(yōu)化算法進(jìn)行輸出,這是訓(xùn)練過(guò)程中的兩個(gè)緊密結(jié)合的環(huán)節(jié)。對(duì)這兩個(gè)問(wèn)題進(jìn)行研究,有助于提升Word2Vec的性能和詞向量的訓(xùn)練精度,使查詢出來(lái)的相關(guān)詞更加準(zhǔn)確,為其他應(yīng)用提供支持。另外,調(diào)整參數(shù),混合兩種算法模式的過(guò)程更能加深對(duì)Word2Vec設(shè)計(jì)思路的還原,根據(jù)設(shè)計(jì)思想的啟發(fā)可以嘗試將其用在更多的應(yīng)用領(lǐng)域?;诖耍疚奶岢鋈齻€(gè)工作假設(shè):1) 分詞器準(zhǔn)確率越高,詞向量訓(xùn)練效果越好;2) 切分出來(lái)的詞匯語(yǔ)義完整性越高,詞向量訓(xùn)練效果越好;3) 混合算法訓(xùn)練效果優(yōu)于單一算法,產(chǎn)生的詞向量準(zhǔn)確性高。
為了驗(yàn)證以上假設(shè),為使得語(yǔ)料對(duì)訓(xùn)練的影響最小化,本文選取南海相關(guān)領(lǐng)域新聞?wù)Z料分別進(jìn)行測(cè)試,保證了語(yǔ)料的純度,根據(jù)測(cè)試結(jié)果進(jìn)行比較詞向量的優(yōu)劣。
為發(fā)現(xiàn)優(yōu)化Word2Vec性能的策略,訓(xùn)練生成一個(gè)準(zhǔn)確性更高的詞向量這一研究目的,本文的工作主要有:1) 針對(duì)同一語(yǔ)料用三種不同的分詞器進(jìn)行分詞,對(duì)分詞結(jié)果進(jìn)行訓(xùn)練,將訓(xùn)練出的詞向量結(jié)合分詞器本身的評(píng)測(cè)結(jié)果進(jìn)行綜合對(duì)比評(píng)估,得出結(jié)論;2) 對(duì)一種分詞器的分詞結(jié)果通過(guò)調(diào)整參數(shù)設(shè)置實(shí)現(xiàn)單一算法和混合算法策略的訓(xùn)練,采用平均準(zhǔn)確率對(duì)訓(xùn)練出的詞向量進(jìn)行評(píng)估,得出結(jié)論。
本實(shí)驗(yàn)采用了兩種版本的Word2Vec,分別是Windows環(huán)境下Python語(yǔ)言的gensim-0.12.3和Ubuntu 14.04環(huán)境下c語(yǔ)言版。Windows環(huán)境下不能直接調(diào)用python版Word2Vec,需要編寫接口文件。分詞實(shí)驗(yàn)時(shí),需要為分詞器編寫接口文件,以及用于去除標(biāo)點(diǎn)符號(hào)和特殊字符的分詞預(yù)處理文件。
來(lái)斯惟等[11]研究表明,語(yǔ)料的領(lǐng)域性越強(qiáng),語(yǔ)料越純,訓(xùn)練出的詞向量準(zhǔn)確性越高。本實(shí)驗(yàn)主要考察分詞效果和算法使用的準(zhǔn)確性,盡可能排除其他因素的干擾,故實(shí)驗(yàn)語(yǔ)料來(lái)源于新浪、網(wǎng)易等大型門戶網(wǎng)站中的南海及釣魚島相關(guān)新聞?wù)Z料,語(yǔ)料范圍都屬于中國(guó)領(lǐng)海問(wèn)題領(lǐng)域,具有針對(duì)性。時(shí)間集中在2012年,語(yǔ)料大小為86 MB,共計(jì)22 000篇文章。根據(jù)語(yǔ)料內(nèi)容,結(jié)合詞頻統(tǒng)計(jì)信息,通過(guò)該領(lǐng)域?qū)<易罱K選取了十個(gè)關(guān)鍵詞作為查詢?cè)~,以便評(píng)測(cè)使用。十個(gè)查詢?cè)~為:南海、中國(guó)、菲律賓、越南、釣魚島、沖突、黃巖島、海軍、主權(quán)、南沙群島。
在Word2Vec的訓(xùn)練過(guò)程中,主要涉及以下幾個(gè)參數(shù)[12],如表1所示。
表1 Word2Vec主要訓(xùn)練參數(shù)
同時(shí),根據(jù)來(lái)斯惟等[11]研究發(fā)現(xiàn),做具體 NLP 任務(wù)的時(shí)候,詞向量大于50 維之后效果提升就比較少了,并且維數(shù)越大,訓(xùn)練時(shí)間就越長(zhǎng)。綜合考慮,本實(shí)驗(yàn)將訓(xùn)練維數(shù)設(shè)置為100維。根據(jù)已有資料[13]的建議,skip-gram窗口大小設(shè)置為8。
本實(shí)驗(yàn)中采用了三種分詞器,分別是ICTCLAS2013漢語(yǔ)分詞系統(tǒng),Python下的插件“jieba”分詞器,以及清華大學(xué)THULAC中文詞法分析包。實(shí)驗(yàn)步驟:1) 導(dǎo)入生語(yǔ)料C,將形式為多篇TXT文檔的訓(xùn)練語(yǔ)料置于一個(gè)文件夾內(nèi)。2) 采用不同分詞器進(jìn)行分詞,分別利用編寫好的接口文件對(duì)語(yǔ)料進(jìn)行分詞處理,詞與詞之間由空格隔開,去掉標(biāo)點(diǎn)符號(hào),最后分別得到三個(gè)長(zhǎng)文本形式的分詞語(yǔ)料:C-ict、C-jb和C-th。3) 利用gensim-0.12.3中內(nèi)置的Word2Vec對(duì)三個(gè)分詞語(yǔ)料進(jìn)行訓(xùn)練,訓(xùn)練參數(shù)設(shè)置為:size=100,window=8,min_count=5,sg=1,hs=1,cbow=0,negative=0,sample=0。訓(xùn)練完畢后得到3個(gè)不同的訓(xùn)練模型:M-ict、M-jb和M-th。4) 根據(jù)模型輸入查詢?cè)~,Word2vec返回與查詢?cè)~語(yǔ)義最相近的前20個(gè)詞,人工對(duì)這20個(gè)詞進(jìn)行相關(guān)性標(biāo)注,再進(jìn)行分析計(jì)算。通過(guò)實(shí)驗(yàn)觀察,Word2vec返回的相關(guān)詞排序超過(guò)一定數(shù)量之后,與查詢?cè)~的余弦距離值就比較大了,體現(xiàn)在具體含義上,相關(guān)性就很小了。同時(shí)考慮到觀察者對(duì)查詢結(jié)果的關(guān)注度一般不會(huì)超過(guò)當(dāng)前終端顯示,因此實(shí)驗(yàn)中將相關(guān)詞數(shù)量設(shè)定為20。
實(shí)驗(yàn)流程如圖1所示。
圖1 不同分詞結(jié)果實(shí)驗(yàn)流程
實(shí)驗(yàn)步驟:1) 導(dǎo)入分好詞的語(yǔ)料,形式為詞與詞之間用空格隔開的長(zhǎng)文本,在本實(shí)驗(yàn)中采用的是jieba分詞器進(jìn)行分詞的文本C-jb。2) 在使用Python版Word2Vec訓(xùn)練時(shí)發(fā)現(xiàn),調(diào)用negative算法訓(xùn)練時(shí)效率非常低,處理速度在10 word/s以內(nèi)。故在Ubuntu14.04環(huán)境下用C語(yǔ)言版Word2Vec進(jìn)行詞向量訓(xùn)練。通用參數(shù)設(shè)置為:size=100,window=8,min_count=5,sample=1e-3。實(shí)驗(yàn)劃分成八個(gè)實(shí)驗(yàn)組,分別采用單一加速算法(sg+hs,cbow+hs,sg+negative-20,cbow+negative-20),以及混合加速算法(sg+negative-20+hs,cbow+negative-20+hs)對(duì)C-jb文本進(jìn)行訓(xùn)練。訓(xùn)練完畢后得到6個(gè)不同的訓(xùn)練模型:M1-M6。3) 根據(jù)模型查詢相關(guān)詞,獲取與其相關(guān)詞的前20個(gè),并人工進(jìn)行相關(guān)性標(biāo)注,再進(jìn)行分析計(jì)算。
混合算法實(shí)驗(yàn)流程如圖2所示。
圖2 單個(gè)與混合模型對(duì)比實(shí)驗(yàn)流程
3.5.1 評(píng)測(cè)方法
由于Word2vec的訓(xùn)練過(guò)程是無(wú)監(jiān)督的,對(duì)于相關(guān)詞向量的查詢,詞向量的評(píng)價(jià)大體上可以分成兩種方式:第一種是將詞向量輸入現(xiàn)有系統(tǒng)中,例如機(jī)器翻譯、情感分析等任務(wù),通過(guò)觀察系統(tǒng)性能的提升來(lái)評(píng)價(jià)詞向量的好壞;第二種是從語(yǔ)言學(xué)的角度對(duì)詞向量進(jìn)行分析,如相似度、語(yǔ)義偏移等。 Mikolov 根據(jù)語(yǔ)義偏移現(xiàn)象構(gòu)建了測(cè)試集,使用類比(analogy)的方式來(lái)評(píng)測(cè)。由于沒有一個(gè)標(biāo)準(zhǔn)的評(píng)測(cè)準(zhǔn)則,本實(shí)驗(yàn)中以基本詞的相似度來(lái)做評(píng)測(cè)。在語(yǔ)料領(lǐng)域固定,詞向量維度固定的情況下,只考察分詞以及混合算法對(duì)詞向量的影響是可以達(dá)到評(píng)測(cè)效果的。評(píng)測(cè)過(guò)程為分別輸入10個(gè)查詢?cè)~,Word2vec返回與查詢?cè)~語(yǔ)義最相近的前20個(gè)詞,人工對(duì)這20個(gè)詞進(jìn)行相關(guān)性標(biāo)注,計(jì)算平均查準(zhǔn)率的均值MAP(Mean Average Precision)。MAP平均查準(zhǔn)率的均值計(jì)算公式如下:
(1)
式中:參數(shù)Q是提問(wèn)式的個(gè)數(shù),N表示查詢?cè)~的個(gè)數(shù),在本實(shí)驗(yàn)中,由于每次查詢均只查詢一個(gè)詞,故Q=N=10。AveP(q)代表了第q個(gè)查詢的平均查準(zhǔn)率:
(2)
式中:r表示默認(rèn)返回的相關(guān)詞個(gè)數(shù),M為第i個(gè)實(shí)際相關(guān)詞的位置。在本實(shí)驗(yàn)中r為word2vec返回的相關(guān)詞個(gè)數(shù),r=20。M為第i個(gè)人工選取出的實(shí)際相關(guān)詞的位置。
采用MAP值作為評(píng)測(cè)標(biāo)準(zhǔn)不僅考慮了查詢?cè)~的相關(guān)性,還考慮了相關(guān)詞在整個(gè)查詢中的排序,在查詢中相關(guān)詞的排序越靠前,MAP值就越高。同僅計(jì)算查詢?cè)~的相關(guān)性比較,MAP值能更加客觀有效地反映訓(xùn)練的效果。
3.5.2 評(píng)測(cè)步驟
評(píng)測(cè)步驟如下:1) 向Word2Vec導(dǎo)入訓(xùn)練模型;2) 取10個(gè)關(guān)鍵詞查詢集合Q={q1,q2,…,q10},查詢出與關(guān)鍵詞相關(guān)的前20個(gè)詞構(gòu)成集合D,對(duì)D進(jìn)行人工相關(guān)性標(biāo)注,相關(guān)的標(biāo)注為2,不相關(guān)標(biāo)注為1;3) 根據(jù)MAP的計(jì)算公式計(jì)算出相關(guān)結(jié)果,進(jìn)行對(duì)比分析。
4.1.1 評(píng)測(cè)結(jié)果
對(duì)10個(gè)關(guān)鍵詞的查詢結(jié)果計(jì)算得出MAP值如表2所示。
表2 相關(guān)詞查詢的MAP值
4.1.2 結(jié)果分析與問(wèn)題
1) 通過(guò)圖3的比較可知ICTCLAS分詞結(jié)果的訓(xùn)練效果最好,平均查準(zhǔn)率均值超過(guò)了0.5,較jieba分詞器和THULAC都高。
圖3 不同分詞結(jié)果查詢MAP值比較
根據(jù)之前的假設(shè),分詞準(zhǔn)確率越高,訓(xùn)練效果越好。結(jié)合清華大學(xué)所做的包括THULAC在內(nèi)幾款分詞器評(píng)測(cè)[14],ICTCLAS在微軟研究評(píng)測(cè)集及北京大學(xué)評(píng)測(cè)集上的準(zhǔn)確率均不如THULAC,但其召回率均高于THULAC,由此可見,word2vec訓(xùn)練效果實(shí)際上與分詞器的召回率成正相關(guān)。
2) 觀察THULAC和jieba的分詞結(jié)果,發(fā)現(xiàn)THULAC的分詞結(jié)果語(yǔ)義完整性更高,因此其平均查準(zhǔn)率較高。例如對(duì)“釣魚島”一詞進(jìn)行查詢,THULAC反饋的結(jié)果中第一個(gè)就是“尖閣群島”,而jieba分詞的結(jié)果中,是將“尖閣”一詞單獨(dú)切分出來(lái),語(yǔ)義信息不完整,相關(guān)性較低,由此驗(yàn)證了第二個(gè)假設(shè)。
本實(shí)驗(yàn)得出以下結(jié)論:1) ICTCLAS分詞系統(tǒng)更適用于本語(yǔ)料的相關(guān)詞查詢;2) 分詞結(jié)果對(duì)于Word2Vec的訓(xùn)練結(jié)果具有一定的影響,分詞召回率越高,Word2Vec的訓(xùn)練結(jié)果就越好;3) 分詞結(jié)果語(yǔ)義信息越完整,訓(xùn)練效果越好。
4.2.1 評(píng)測(cè)結(jié)果
對(duì)M1-M6訓(xùn)練模型進(jìn)行查詢給出的10個(gè)關(guān)鍵詞,評(píng)測(cè)結(jié)果如表3和圖4所示。
表3 不同算法相關(guān)詞查詢結(jié)果
圖4 單個(gè)與混合模型查詢結(jié)果MAP值
4.2.2 結(jié)果分析與問(wèn)題
1) 通過(guò)表3和圖4可以看出混合模型算法在平均查準(zhǔn)率的均值上要優(yōu)于單個(gè)模型算法。特別是在sg算法與混合模型算法搭配時(shí),詞向量的平均查準(zhǔn)率有較大的提升。sg算法以單詞周圍出現(xiàn)的單詞作為上下文,假設(shè)如果兩個(gè)單詞上下文相似,則這兩個(gè)單詞就相似,即使這兩個(gè)單詞可能從未同時(shí)出現(xiàn)在一段文本范圍內(nèi)。該算法建模了單詞間的縱向關(guān)系,更加適合處理涉及單詞自身的各種應(yīng)用。負(fù)采樣最終的詞向量表示是通過(guò)極大對(duì)數(shù)似然估計(jì)得到。在此情況下,使用了負(fù)采樣的sg模型,對(duì)于單詞wi以及其上下文cj,目標(biāo)函數(shù)如下[13]:
(3)
2) 根據(jù)實(shí)驗(yàn)結(jié)果分析,進(jìn)一步閱讀Word2Vec C語(yǔ)言版的源碼,解析并還原了源碼中調(diào)用兩種優(yōu)化算法的核心架構(gòu)和流程,發(fā)現(xiàn)hs和neg兩種算法沒有采取并行計(jì)算,而是順序調(diào)用,在hs算法結(jié)果的基礎(chǔ)上用neg算法對(duì)結(jié)果進(jìn)一步疊加優(yōu)化。解析出算法整體架構(gòu)如圖5所示。
圖5 混合算法訓(xùn)練架構(gòu)
3) 本實(shí)驗(yàn)中,進(jìn)行查詢的詞大都是語(yǔ)料中的常見的實(shí)體名,通過(guò)圖4,可以分析出在進(jìn)行實(shí)體名查詢時(shí),采用cbow+negative+hs的算法得到的效果是最好的,最差的是sg+negative。進(jìn)一步分析其原因,發(fā)現(xiàn)這與算法的特性是相符的。在相關(guān)文獻(xiàn)[4]中提到,cbow和negative算法對(duì)常見詞有利,而sg與softmax對(duì)罕見詞有利,并且sg和negative搭配使用得出的結(jié)果精度不高。實(shí)驗(yàn)結(jié)果進(jìn)一步驗(yàn)證了這個(gè)結(jié)論。
本實(shí)驗(yàn)得出以下結(jié)論:1) 混合模型算法在訓(xùn)練效果上優(yōu)于單個(gè)模型算法,并澄清了混合算法的流程架構(gòu),根據(jù)算法特性得出混合算法的最優(yōu)適用策略。2) 在進(jìn)行常見的實(shí)體名查詢時(shí)采用cbow+hs+negative的算法可以得到最好的效果。
本文在解析了Word2Vec的基本算法及其原理,通過(guò)多個(gè)試驗(yàn)對(duì)影響其訓(xùn)練精度的因素進(jìn)行了研究,得到了以下結(jié)論:1) 發(fā)現(xiàn)分詞結(jié)果的召回率和語(yǔ)義完整性對(duì)詞向量訓(xùn)練效果有重要影響,對(duì)未來(lái)的應(yīng)用提供了分詞系統(tǒng)選擇的依據(jù);2) 發(fā)現(xiàn)混合模型算法訓(xùn)練效果普遍優(yōu)于單一模型算法,在針對(duì)特定領(lǐng)域語(yǔ)料訓(xùn)練時(shí)得出Word2Vec的優(yōu)化策略;3) cbow+negative+hs的混合模式最適合于常見實(shí)體名的查詢。
在基于領(lǐng)域本體的任務(wù)中可以跟據(jù)語(yǔ)料的特點(diǎn)選用適當(dāng)?shù)姆衷~器和相應(yīng)的算法組合來(lái)訓(xùn)練質(zhì)量更高的詞向量。一個(gè)好的詞向量可以作為輸入應(yīng)用于現(xiàn)有的機(jī)器學(xué)習(xí)系統(tǒng)來(lái)改善訓(xùn)練效果,例如詞性標(biāo)注、句法分析、機(jī)器翻譯和情感分析等任務(wù)。詞向量包含了詞的語(yǔ)義,可以用來(lái)完成分類、聚類等任務(wù),也可以進(jìn)行詞的相似度計(jì)算,利用其在向量空間的位置,可以進(jìn)行關(guān)系挖掘,相關(guān)詞發(fā)現(xiàn)等工作。它的設(shè)計(jì)思想還可應(yīng)用在社交網(wǎng)絡(luò)中的推薦,計(jì)算商品的相似度和短文本的快速檢索中。
本實(shí)驗(yàn)研究了分詞器以及加速算法設(shè)置對(duì)Word2Vec訓(xùn)練的影響,在本文的基礎(chǔ)上,還可以從以下幾個(gè)方面研究Word2Vec性能的改進(jìn)和應(yīng)用:1) Word2Vec中沒有考慮詞序等語(yǔ)言學(xué)特征,如果能將更多的語(yǔ)言學(xué)特征(例如依存關(guān)系)引入其訓(xùn)練過(guò)程中,可能對(duì)提升訓(xùn)練效果有幫助;2) 訓(xùn)練出的詞向量中存在語(yǔ)言學(xué)線性平移特性,可以根據(jù)該性質(zhì)進(jìn)行推理,挖掘相關(guān)實(shí)體,如知識(shí)圖譜的補(bǔ)全;3) 詞向量之間存在著一定的同義關(guān)系和上下位關(guān)系,如何將語(yǔ)義本體知識(shí)加入到詞向量的構(gòu)建中,使詞向量包含更豐富的語(yǔ)義本體信息,將會(huì)提升知識(shí)表示學(xué)習(xí)。
[1] Mikolov T,Chen K,Corrado G,et al.Efficient Estimation of Word Representations in Vector Space[J].Computer Science,2013.
[2] Mikolov T,Yih W T,Zweig G.Linguistic regularities in continuous space word representations[C]//NAACL HLT 2013-2013 Conference of the North American Chapter of the Association for Computational Linguistics:Human Language Technologies,Proceedings of the Main Conference,2013:746-751.
[3] Mikolov T,Sutskever I,Chen K,et al.Distributed Representations of Words and Phrases and their Compositionality[J].Advances in Neural Information Processing Systems,2013,26:3111-3119.
[4] Mikolov T,Le Q V,Sutskever I.Exploiting Similarities among Languages for Machine Translation[J].Computer Science,2013.
[5] Goldberg Y,Levy O.word2vec Explained:deriving Mikolov et al.’s negative-sampling word-embedding method[J].Eprint Arxiv,2014.
[6] 熊富林,鄧怡豪,唐曉晟.Word2vec的核心架構(gòu)及其應(yīng)用[J].南京師范大學(xué)學(xué)報(bào)(工程技術(shù)版),2015(1):43-48.
[7] 鄭文超,徐鵬.利用word2vec對(duì)中文詞進(jìn)行聚類的研究[J].軟件,2013(12):160-162.
[8] 周練.Word2vec的工作原理及應(yīng)用探究[J].科技情報(bào)開發(fā)與經(jīng)濟(jì),2015(2):145-148.
[9] Bengio Y,Schwenk H,Senécal J S,et al.A neural probabilistic language model[J].Journal of Machine Learning Research,2003,3(6):1137-1155.
[10] Peghoty.Word2Vec中的數(shù)學(xué)原理詳解[OL].(2014-07-21).http://www.cnblogs.com/peghoty/archive/2014/07/21/3857839.html.
[11] Lai S W,Liu K,He S Z,et al.How to Generate a Good Word Embedding?[J].IEEE Intelligent Systems,2016,31(6):5-14.
[12] Rong X.word2vec Parameter Learning Explained[J].Computer Science,2014.
[13] Beck_zhou.word2vec使用指導(dǎo)[OL].(2014-04-22).http://blog.csdn.net/zhoubl668/article/details/24314769.
[14] 清華大學(xué)自然語(yǔ)言處理與社會(huì)人文計(jì)算實(shí)驗(yàn)室.THULAC:一個(gè)高效的中文詞法分析工具包[OL].(2016-03-31).http://thulac.thunlp.org/.
[15] Gershman S J,Tenenbaum J B.Phrase similarity in humans and machines[C]//Proceedings of the 37th Annual Conference of the Cognitive Science Society,2015:776-781.
[16] Blacoe W,Lapata M.A comparison of vector-based representations for semantic composition[C]//Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning.Association for Computational Linguistics,2012:546-556.
[17] Cao K,Rei M.A Joint Model for Word Embedding and Word Morphology[C]//The Workshop on Representation Learning for Nlp,2016:18-26.
[18] Levy O,Goldberg Y.Neural word embedding as implicit matrix factorization[J].Advances in Neural Information Processing Systems,2014,3:2177-2185.
[19] Fu R,Guo J,Qin B,et al.Learning Semantic Hierarchies via Word Embeddings[C]//Meeting of the Association for Computational Linguistics,2014:1199-1209.
[20] Chen Y,Perozzi B,Alrfou R,et al.The Expressive Power of Word Embeddings[J].Computer Science,2013.
[21] Bian J,Gao B,Liu T Y.Knowledge-Powered Deep Learning for Word Embedding[M]//Machine Learning and Knowledge Discovery in Databases,2014:132-148.
[22] Rothe S,Schütze H.AutoExtend: Extending Word Embeddings to Embeddings for Synsets and Lexemes[J].Computer Science,2015.
[23] Shazeer N,Pelemans J,Chelba C.Skip-gram Language Modeling Using Sparse Non-negative Matrix Probability Estimation[J].Computer Science,2014.