本節書摘來自華章出版社《短文本資料了解》一書中的第1章,第1.2節,作者:王仲遠 編著,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
1.2.1短文本了解模型概述
本節根據短文本了解所需知識源的屬性,将短文本了解模型分為三類:隐性(implicit)語義模型、半顯性(semiexplicit)語義模型和顯性(explicit)語義模型。其中,隐性和半顯性模型試圖從大量文本資料中挖掘出詞與詞之間的聯系,進而應用于短文本了解。相比之下,顯性模型使用人工建構的大規模知識庫和詞典輔助短文本了解。
1隐性語義模型
隐性語義模型産生的短文本表示通常為映射在一個語義空間上的隐性向量。這個向量的每個次元所代表的含義人們無法解釋,隻能用于機器計算。以下将介紹幾種代表性的隐性語義模型。
隐性語義分析(latent semantic analysis,lsa)模型:最早的基于隐性語義的文本了解架構為lsa模型[54],也被稱為latent semantic indexing(lsi)模型。lsa模型旨在用統計方法分析大量文本進而推出詞與文本的含義表示,其思想核心是在相同語境下出現的詞具有較高的語義相關性。具體而言,lsa模型建構一個龐大的詞與文本的共現矩陣。對于每個詞向量,它的每個次元都代表一個文本;對于每個文本向量,其每個次元代表一個詞。通常,矩陣每項的輸入是經過平滑或轉換的共現次數。常用的轉換方法為tfidf。最終,lsa模型通過奇異值分解(svd)的方法将原始矩陣降維。在短文本的情境下,lsa模型有兩種使用方式。首先,在語料足夠多的離線任務上,lsa模型可以直接建構一個詞與短文本的共現矩陣,進而推出每個短文本的表示。其次,在訓練資料量較小的情境下,或針對線上任務(針對測試資料),可以事先通過标準的lsa模型方法得到每個詞向量,然後使用額外的語義合成方式擷取短文本向量。
超空間模拟語言(hyperspace analogue to language,hal)模型:一個與lsa模型類似的模型是hal模型[96]。hal模型與lsa模型的主要差別在于前者是更加純粹的詞模型。hal模型旨在建構一個詞與詞的共現矩陣。對于每個詞向量,它的每個次元代表一個語境詞。該模型統計目标詞彙與語境詞彙的共現次數,并經過相應的平滑或轉換(如tfidf、pointwise mutual information(pmi)等)得到矩陣中每個輸入的值。通常,語境詞的選取有較大的靈活性。例如,語境詞可被選為整個詞彙,或者除停止詞外的高頻詞[159]。類比lsa模型,在hal模型中可以根據原始向量的次元和任務要求選擇是否對原始向量進行降維。由于hal模型的産出僅僅為詞向量,在短文本了解這一任務中需采用額外的合成方式(如向量相加)來推出短文本向量。
神經語言模型(neural language model,nlm):近年來,随着神經網絡和特征學習的發展,傳統的hal模型逐漸被nlm[20,114,110,45]取代。與hal模型通過明确共現統計建構詞向量的思想不同,nlm旨在将詞向量當成待學習的模型參數,并通過神經網絡在大規模非結構化文本的訓練來更新這些參數以得到最優的詞語義編碼(常被稱作word embedding)。
最早的機率性nlm由bengio等提出[20]。其模型使用前向神經網絡(feedforward neural network)根據語境預測下一個詞出現的機率。通過對訓練文本中每個詞的極大似然估計,模型參數(包括詞向量和神經網絡參數)可使用誤差反向傳播(bp)算法進行更新。此模型的缺點在于僅僅使用了有限的語境。後來,mikolov等[114]提出使用遞歸神經網絡(recurrent neural network)來代替前向神經網絡,進而模拟較長的語境。此外,原始nlm的計算複雜度很高,這主要是由于網絡中大量參數和非線性轉換所緻。針對這一問題,mikolov等[110]提出兩種簡化(去掉神經網絡權重和非線性轉換)的nlm,即continuous bag of words(cbow)和skipgram。前者通過視窗語境預測目标詞出現的機率,而後者使用目标詞預測視窗中的每個語境詞出現的機率。
另一類非機率性的神經網絡以collobert和weston的工作[45]為代表。其模型senna考慮文本中的n元組。對每個n元組中某個位置的詞(如中間詞),模型選取随機詞來代替該詞,進而産生若幹新的n元組作為負樣本。在訓練中,一個簡單的神經網絡為n元組打分,訓練目标為正樣本得分s+與負樣本得分s-間的最大間隔排序損失(maxmargin ranking loss):
∑ngrammax(0,1-s++s-)
總而言之,nlm同hal模型相似,所得到的詞向量并不能直接用于短文本了解,而需要額外的合成模型依據詞向量得到短文本向量。
段向量(paragraph vector,pv):pv[98]是另一種基于神經網絡的隐性短文本了解模型。pv可被視作cbow和skipgram的延伸,可直接應用于短文本向量的學習。pv的核心思想是将短文本向量當作“語境”,用于輔助推理(例如,根據目前詞預測語境詞)。在極大似然的估計過程中,文本向量亦被作為模型參數更新。pv的産出是詞向量和文本向量,對于(線上任務中的)測試短文本,pv需要使用額外的推理擷取其向量。圖13比較了cbow、skipgram和兩種pv的異同。

2.半顯性語義模型
半顯性語義模型産生的短文本表示方法也是一種映射在語義空間裡的向量。與隐性語義模型不同的是,半顯性語義模型的向量的每一個次元是一個“主題”(topic),這個主題通常是一組詞的聚類。人們可以通過這個主題猜測這個次元所代表的含義。但是這個次元的語義仍然不是明确、可解釋的。半顯性語義模型的代表性工作是主題模型(topic model)。
主題模型:最早的主題模型為lsa模型的延伸。lsa模型嘗試通過線性代數(奇異值分解)的處理方式發現文本中的隐藏語義結構,進而得到詞和文本的特征表示;而主題模型則嘗試從機率生成模型(generative model)的角度分析文本語義結構,模拟主題這一隐藏參數,進而解釋詞與文本的共現關系。
最早的主題模型probabilistic lsa(plsa)模型由hofmann等提出[70]。plsa模型假設文本具有主題分布,而文本中的詞從主題對應的詞分布中抽取。以d表示文本,w表示詞,z表示主題(隐藏參數),z表示主題集合,則文本和詞的聯系機率p(d,w)的生成過程可被表示如下:
p(d,w)=p(d)∑z∈zp(w|z)p(z|d)
雖然plsa模型可以模拟每個文本的主題分布,然而其沒有假設主題的先驗分布(每個訓練文本的主題分布相對獨立),它的參數随訓練文本的個數呈線性增長,且無法應用于測試文本。
一個更加完善的主題模型為lda模型(latent dirichlet allocation model)[29]。lda模型從貝葉斯的角度為兩個多項式分布添加了狄利克雷先驗分布,進而解決了plsa模型中存在的問題。在lda模型中,每個文本的主題分布為多項式分布mult(θ),其中θ從狄利克雷先驗dir(α)中抽取。同理,對于主題的詞分布mult(φ),其參數φ從狄利克雷先驗dir(β)擷取。圖14對比了plsa模型和lda模型的盤子表示法(plate notation)。
總之,通過采用主題模型對短文本進行訓練,最終可以擷取每個短文本的主題分布,以作為其表示方式。這種方法将短文本轉為了機器可計算的向量。
3.顯性語義模型
近年來,随着大規模知識庫系統的出現(如wikipedia、freebase、probase等),越來越多的研究關注于如何将短文本轉化成人和機器都可以了解的表示方法。這類模型稱為顯性語義模型。與前兩類模型相比,顯性語義模型最大的特點就是它所産生的短文本向量表示不僅是機器可用于計算的,也是人類可以了解的,每一個次元都有明确的含義,通常是一個明确的“概念”(concept)。這意味着機器将短文本轉為顯性語義向量後,人們很容易就可以判斷這個向量的品質,并發現其中的問題,進而友善進一步的模型調整與優化。
顯性語義分析(explicit semantic analysis,esa)模型:在基于隐性語義的模型中,(低維)向量的每個次元并沒有明确的含義标注。與之相對的是顯性語義模型,向量空間的建構由知識庫輔助完成。最具代表性的顯性語義模型為esa模型[66]。esa模型同lsa模型的建構思路一緻,旨在建構一個龐大的詞與文本的共現矩陣。在這個矩陣中,每個輸入為詞與文本的tfidf。然而,在esa模型中詞向量的每個次元代表一個明确的知識庫文本,如wikipedia文章(或标題)。此外,原始的esa模型沒有對共現矩陣進行降維處理,因而産生的詞向量具有較高次元。在短文本了解這一任務中,需使用額外的語義合成方法推導出短文本向量。圖15比較了lsa模型、hal模型、esa模型和lda模型的差別與聯系。
概念化(conceptualization):另一類基于顯性語義的短文本了解方法為概念化[153,90,77,172]。概念化旨在借助知識庫推出短文本中每個詞的概念分布,即将詞按語境映射到一個以概念為次元的向量上。在這一任務中,每個詞的候選概念可從知識庫中明确擷取。例如,通過知識庫probase[166],機器可獲悉apple這個詞有fruit和company這兩個概念。當apple出現在“apple ipad”這個短文本中,通過概念化可分析得出apple有較高的機率屬于company這個概念。
最早的概念化方法由song等提出[153]。其模型使用知識庫probase,擷取短文本中每個詞與概念間的條件機率p(concept|word)和p(word|concept),進而通過樸素貝葉斯方法推出每個短文本的概念分布。這一單純基于機率的模型無法處理由語義相關但概念不同的詞組成的短文本(如“apple ipad”)。為解決無法識别語境的問題,kim等[90]對song的模型做出了改進。新的模型使用lda主題模型,分析整條短文本的主題分布,進而計算p(concept|word,topic)。
另一個基于probase的短文本了解架構為hua等提出的lexical semantic analysis(lexsa)[77]。lexsa将短文本了解系統化為分詞、詞性标注和概念識别三個步驟,并在每個步驟使用新的模型消除歧義。在分詞和詞性标注環節,作者分别使用圖模型推出短文本的最優分詞方式和詞的詞性;在概念識别環節,每個詞被表示成以概念為次元的向量。為了進一步強調lexsa中各環節的互相作用關系,wang等[172]提出為短文本建構統一的候選詞關系圖,并使用随機遊走(random walk)的方法推出最優的分詞、詞性和詞的概念。
**1.2.2短文本了解模型粒度分析
**
從另一個角度而言,短文本了解模型在文本分析上的粒度也有差異。部分方法直接模拟短文本的表示方式,是以本節将其歸為“文本”粒度。其餘大多數方法則以詞為基礎,這些方法首先推出每個詞的表示,然後使用額外的合成方式推出短文本的表示。本節将這些方法歸為“詞”粒度。本節将深入讨論121節中的短文本了解模型在文本分析粒度上的差異,并從應用層面論證方法的适用性。
1.文本粒度模型
首先,文本粒度的模型包含lsa模型、lda模型和pv。這些模型均嘗試直接推導出短文本的向量表示作為模型的輸出。在lsa模型中,通過建構一個詞與文本的共現矩陣,每個文本可用以詞為次元的向量表示。作為結果,可得到每個文本的主題分布。pv通過神經網絡推測(inference)的方式擷取文本向量的最優參數。上述模型所得的文本向量均可以直接用于與這些文本相關的任務,如文本分類[139,154]、聚類[173]和摘要生成[64]。值得注意的是,lsa模型同時輸出詞向量。因而在短文本數量不足的情況下,可以先采用基于大量完整文本的lsa模型擷取詞向量,再通過額外的合成方法擷取短文本向量。對于lda模型和pv而言,其模型亦可以通過額外的文本訓練,然後應用于短文本。
2.詞粒度模型
同lsa模型、lda模型和pv相比,其他模型(nlm、esa模型等)均屬于詞粒度模型,因為這些模型的産出僅為詞向量。針對短文本了解這一任務,必須使用額外的合成手段來推出短文本的表示。例如,在參考文獻[59,26,71]等工作中,作者均利用詞向量推導出文本表示,并用于後續的文本相似度判斷、文本複述、情感分析等任務。這裡的一個特例為概念化模型,由于概念化可以直接基于語境推出短文本中每個詞的概念,這樣的輸出方式已經可以滿足機器短文本了解的需求。因而概念化雖屬于詞粒度的模型但并不需要額外的文本合成。
3.文本合成
如何通過詞向量擷取任意長度的文本向量(包括短文本)是時下流行的一個研究領域。根據複雜度的不同,文本合成方法可被大緻分為代數運算模型[159,59,26,116,63]、張量模型[43,34,84]和神經網絡模型[114,145,148,85,91]。
代數運算模型:最早的合成模型由mitchell和lapata[116]提出。其模型使用逐點的(pointwise)向量相加的方式從詞向量推出文本向量。雖然這一基于“詞袋”的方法忽略了句子中的詞序(“cat eats fish”和“fish eats cat”将有相同的表示),但事實表明其在很多自然語言處理任務上有着不錯的效果,且其常常被用作複雜模型的基準[26]。類似的代數運算模型還有逐點的向量乘積[159,59,26]以及乘法與加法的結合運算[63]。
張量模型:張量模型[43,34]為代數運算模型的延伸,其試圖強調不同詞性的詞在語義合成中的不同角色。例如在red car這個詞組中,形容詞red對名詞car起修飾作用。而在eat apple中,動詞eat的角色好比作用于apple的函數。從這個角度而言,将不同詞性的詞均表示為同等次元的向量過于簡化。因而,在張量模型中不同詞性的詞被表示為不同次元的張量,整個句子的表示方式以張量乘法的形式擷取。目前,張量模型的最大挑戰是如何擷取向量與張量的映射關系[84]。
神經網絡模型:時下最為流行的文本合成模型為基于神經網絡的模型,如recursive neural network(recnn)[145,148]、recurrent neural network(rnn)[114]、convolutional neural network(cnn)[85,91]等。在這些模型中,最基本的合成單元為神經網絡。通常的形式為神經網絡根據輸入向量x1、x2推出其組合向量y:
y=f(w[x1∶x2]+b)
在上式中w和b為神經網絡參數,[x1∶x2]為兩個輸入向量相連,f為非線性轉換。
在具體的文本合成中,不同的神經網絡模型的構造不同。例如,recnn依賴于文法樹開展逐層的語義合成,它無法被用于短文本。相比之下,rnn(序列合成)和cnn(卷積合成)都可以通過詞向量快速推導出短文本向量。