唐煥玲,衛紅敏,王育林,朱 輝,竇全勝
1.山東工商學院 計算機科學與技術學院,山東 煙臺 264005
2.山東省高等學校協同創新中心:未來智能計算,山東 煙臺 264005
3.山東省高校智能信息處理重點實驗室(山東工商學院),山東 煙臺 264005
4.山東工商學院 信息與電子工程學院,山東 煙臺 264005
5.上海繪話智能科技有限公司,上海 200120
文本表示在自然語言處理領域占據重要的地位,對自然語言處理領域中的文本摘要[1-2]、信息抽取[3-4]、自動翻譯[5-6]等任務產生重要的影響。由于自然語言具有復雜性、多樣性等特點,使得目前文本表示的研究存在“維數災難”“向量高度稀疏”“淺層語義”等諸多問題[7-11],導致文本向量不能充分表達文本信息,文本語義表示仍然是目前研究的重點和難點[12]。
文本表示方法常用的是詞袋模型(bag of word,BOW)[13]和基于BOW 的向量空間模型(vector space model,VSM)[14],兩者將文本表示成實數值分量所構成的向量,在文本分類任務上取得不錯的效果,但是都存在向量高度稀疏、無法處理“一義多詞”和“一詞多義”的問題。
Blei等人[15]提出了LDA(latent Dirichlet allocation)主題模型,將主題看作是詞的概率分布,將文本表示從高維詞空間變換到低維主題空間。LDA主題模型屬于無監督學習,SLDA(supervised LDA)[16]模型將文檔類別標記作為觀測值加入LDA主題模型,能識別主題-類別之間的語義關系,提高了文本分類的性能。
Word2vec(word to vector)[17]模型成功用于情感分類、句法依存關系等領域,可以在大規模無監督文本語料上快速訓練得到詞向量,但是Word2vec 模型沒有區別上下文單詞與中心詞的語義關系,語義相對缺失,對后續任務的效果提升有限。
近年來,文本表示方法的研究有了新的進展。Glove(global vectors for word representation)模型[18]是基于全局詞頻統計的詞嵌入工具,將單詞之間的語義關系轉化為嵌入空間的向量偏移量,可以有效地計算單詞間的語義相似度。GPT(generative pre-training)系列模型[19-21]采用單向transformer疊加完成訓練,但其采取的語言模型是單向的,未考慮下文語義信息,語義相對缺失,且參數巨大。BERT(bidirectional encoder representations from transformers)[22]在transformer 中引入了注意力機制,能夠準確地訓練出詞向量,廣泛應用于許多領域,但其需要龐大的語料庫,計算量巨大且成本高,難以應用于實際生活中。
鑒于此,本文提出一種將LDA主題模型與Word2vec模型相融合的文本語義增強方法Sem2vec(semantic to vector)模型,利用該模型對文本語義進行增強,進一步提高后續自然語言處理任務的性能。Sem2vec 模型從預訓練的LDA主題模型中獲得單詞與主題之間的先驗知識,并通過主題嵌入向量,將該先驗知識融入語義詞向量的訓練之中。本文的主要貢獻如下:(1)利用LDA主題模型識別單詞主題分布,計算中心詞與上下文詞的主題相似度,從而得到上下文單詞的主題權重嵌入詞向量,作為Sem2vec模型的輸入。(2)根據最大化對數似然目標函數,訓練Sem2vec 模型獲得最優參數,根據最優參數計算單詞的語義詞向量表示。(3)根據單詞的語義詞向量進一步獲得文本語義向量表示。由此,利用LDA主題模型將全局語義信息融入到了詞向量的訓練之中。通過在不同數據集上的語義相似度計算和文本分類實驗,驗證了Sem2vec 模型的有效性,該模型在增強文本語義的同時,有效提高了模型的訓練速度。
LDA主題模型是三層貝葉斯概率生成模型,是一種無監督模型,該模型認為文檔是主題的概率分布,而主題是詞匯的概率分布,LDA概率圖模型如圖1所示[15]。

圖1 LDA概率圖模型Fig.1 LDA probability graph model
LDA主題模型采用Gibbs采樣算法,對第m篇文檔的第i個單詞t的隱含主題采樣,計算方法如式(1)所示:

Word2vec 模型是目前主流的詞分布式表示模型,Word2vec模型包含兩種模型,分別是CBOW(continuous bag of words model)模型與Skip-Gram(continuous skip-gram model)模型,模型結構如圖2所示[17]。CBOW的核心思想是通過上下文詞預測中心詞,Skip-Gram 則是通過中心詞預測上下文詞。與Skip-Gram模型相比,CBOW模型適合文本數量較大的運算,具有較高的計算精度,本文采用CBOW模型。

圖2 Word2vec模型結構Fig.2 Word2vec model structure
CBOW 模型本質上是采用三層神經網絡來訓練詞向量,模型輸入是某個特定詞上下文相關的詞,模型輸出是該特定詞的詞向量。在CBOW模型中訓練目標是使對數似然函數L最大化。

結合LDA 主題模型和Word2vec 模型,本文提出了一種將主題語義信息與詞向量相融合的文本語義表示方法,該方法從主題層面和詞層面來增強文本的語義。
在Word2vec 模型中,沒有區別上下文單詞與中心詞的語義關系,然而不同上下文單詞與中心詞在語義上是有差別的。為此,本文結合LDA主題模型,獲得單詞主題分布,識別單詞的主題語義信息,通過單詞主題嵌入向量,將該先驗知識用于Sem2vec模型語義詞向量的訓練之中,以增強文本的語義表示。Sem2vec模型結構如圖3所示。
如圖3 所示,Sem2vec 模型包括主題嵌入層、輸入層、隱藏層和輸出層。在主題嵌入層,由預先訓練生成的LDA主題模型,獲得主題-詞分布φ和文檔-主題分布θ。給定中心詞wi,根據主題-詞分布φ,計算中心詞與其上下文詞的主題相似度γi。然后,融合γi與Wi計算得到主題權重嵌入詞向量Ψi。Ψi作為Sem2vec 模型的輸入層的輸入,經過隱藏層函數計算后得到模型的輸出yi。在最大化對數似然目標函數約束下,通過反向傳播優化?和?′,經過多次迭代訓練得到最優?*和?′*。
不同于Word2vec模型,Sem2vec模型的輸入層前面增加了主題嵌入層,如圖3所示。

圖3 Sem2vec模型結構Fig.3 Sem2vec model structure
給定中心詞wi,首先進行上下文詞嵌入,假設上下文窗口大小為c,詞向量的維度為s,則其上下文詞嵌入向量為:






如算法1 所示,由預先訓練生成的LDA 主題模型,獲得主題-詞分布φ和文檔-主題分布θ。在每輪迭代訓練中,首先計算得到中心詞wi的主題相似度權重向量γi,然后對上下文詞向量進行主題加權,經過式(7)計算后得到單詞wi的主題權重嵌入矩陣Ψi,Ψi作為Sem2vec模型的輸入,經過隱藏層函數計算后得到輸出向量yi。而后通過梯度下降算法使得式(10)目標函數的對數似然概率最大化,反向優化?和?′,得到最優參數?*和?′*。其中超參數c、s和r的值在實驗中經驗選取。
對任意一篇新文檔中的每個單詞經過主題嵌入層計算得到主題權重嵌入列向量ψ?,輸入到Sem2vec 模型,根據最優參數?*按照式(14)計算,最終得到單詞的語義詞向量v。
Sem2vec 模型將主題語義信息融入到詞向量的訓練中,在訓練生成Sem2vec 模型之后,得到Sem2vec 模型的最優參數?*和?′*。任意單詞輸入到Sem2vec 模型,可以根據式(14)計算輸出其語義詞向量。在此基礎上,進一步計算文本的語義向量。
給定文本xm={w1,w2,…,wNm}為數據集D中的第m篇文檔,Nm為文檔單詞總數。對文本中的每個單詞wi,按照式(7)計算得到單詞wi的主題權重嵌入向量:

其中,xm∈?Nm?r。由此,在Sem2vec模型的基礎上,根據單詞的語義詞向量,可以獲得任意文本的語義向量表示。
本文在下述環境下進行實驗:64 位Windows10 系統,Intel?CoreTMi5-5200U CPU @ 2.20 GHz 處理器,8 GB 內存,使用的編程語言為Python,深度學習框架Pytorch。影響算法性能的主要參數及其影響的描述如表1所示。

表1 參數描述Table 1 Parameter description
實驗選取搜狗(Sogou)、清華(THUCNews)和20 新聞組(20newsgroup)這3個公開數據集,隨機抽取部分文檔和類別構建實驗數據集,描述如表2 所示。其中,20newsgroup 中選取20 類文檔,Sogou 中文數據集中選擇了包括類別為IT、軍事、教育、旅游和財經的5 類文檔,THUCNews 數據集中選擇了包括財經、彩票、房產、股票和家居的5類文檔。實驗中按照8∶2構建訓練集和測試集。

表2 數據集描述Table 2 Datasets description
為了驗證Sem2vec 模型的有效性,在表2 所示的中英文數據集上,從單詞的語義相似度和文本分類兩個角度,與Word2vec 和Glove 模型進行了對比實驗,具體的實驗對比方法描述如下所示。
(1)Sem2vec(cos):按式(5)余弦夾角計算單詞的主題相似度的Sem2vec 模型,記作Sem2vec(cos),訓練語義詞向量。
(2)Sem2vec(JS):按式(6)JS 散度計算單詞的主題相似度的Sem2vec模型,記作Sem2vec(JS),訓練語義詞向量。
(3)Word2vec:按照Word2vec模型訓練詞向量方法。
(4)Glove:按照Glove模型訓練詞向量方法。
實驗中,根據經驗設置超參數c=5,r=102,s=102。單詞的語義相似度的評價采用余弦相似度,分類結果的評價采用Accuracy、Macro-precision、Macro-recall 和Macro-F1。
3.3.1 語義相似度比較
利用單詞的語義相似度任務,驗證Sem2vec模型的有效性。首先基于Sem2vec 模型、Word2vec 模型和Glove模型,分別生成單詞的詞向量,計算并比較詞向量之間的語義相似度,相似度計算采用余弦夾角公式。在Sogou數據集上的對比實驗結果如表3所示。
如表3所示,第2列是一個類別的代表詞,第3~7列表示與對應的代表詞語義最相近的前5 個詞及語義相似度。從表3 中的數據可以直觀看出,與Word2vec 和Glove 模型相比,Sem2vec 模型在計算詞之間的語義相似度方面更準確一些。例如,選取“聯想”為“IT”類中的代表詞,在Sem2vec(JS)模型中,得到的與“聯想”的最相似是“電腦”,Sem2vec(cos)得到的最相似是“價格”,而Word2vec 模型得到的最相似詞是“系列”,與Word2vec模型相比,Sem2vec模型詞與詞之間的相關性更大。選取“考研”為“教育”類中的代表詞,在Glove 模型和Sem2vec(cos)模型中,與“考研”語義最相近的詞都是“專業”,其中Sem2vec(cos)的語義相似度為90.7%,Glove 的語義相似度為89.6%。這是因為Sem2vec 模型將單詞的主題分布信息融入到了語義詞向量的訓練學習中,因此可以更準確地捕獲單詞的語義信息,從而提高語義相似度計算的準確性。

表3 語義相似度比較Table 3 Comparison of semantic similarity
3.3.2 分類結果比較
這里利用文本分類任務,來驗證Sem2vec模型在文本語義表示方面的有效性?;赟em2vec、Glove 與Word2vec模型,在多種分類任務上進行了實驗比較,其中分類算法包括textcnn、BiLSTM 和Transformer,分類評估指標采用Accuracy、Macro-precision、Macro-recall和Macro-F1。在20newsgroup、Sogou 和THUCNews 數據集上的實驗比較結果如表4~6所示。

表4 20newsgroup上分類算法結果比較Table 4 Comparison results of various classification algorithms on 20newsgroup %
如表4所示,在20newsgroup數據集上,分類算法為textcnn時,對比Word2vec,Sem2vec(JS)的4種指標分別提高了2.60、3.48、2.58、2.62個百分點,對比Glove,指標分別提高了0.74、1.04、0.73、0.78 個百分點。當分類算法為BiLSTM 和Transformer 時,Sem2vec 模型的4 種分類指標也均高于Word2vec和Glove模型。
從表5 和表6 中的數據可以看出,在Sogou 和THUCNews數據集上,基于Sem2vec模型的各種文本分類算法的分類結果也均高于Word2vec 和Glove 模型。這是因為,基于Sem2vec模型的文本語義向量融入了單詞的主題分布信息,因此可以更準確地捕獲單詞的語義信息,從而提高文本分類的準確性。

表5 Sogou上分類算法結果比較Table 5 Comparison results of various classification algorithms on Sogou %

表6 THUCNews上分類算法結果比較Table 6 Comparison results of various classification algorithms on THUCNews%
Sem2vec、Word2vec 與Glove 模 型 在20newsgroup和THUCNews數據集上的時間性能比較如表7所示。
從表7中可以看出,在兩個數據集上,Sem2vec模型的分類準確率均高于Word2vec和Glove模型,且Sem2vec模型的訓練時間比Word2vec 模型要快9%~14%,比Glove 模型快7%~9%。如在20newsgroup 數據集上,當分類算法為textcnn 時,Sem2vec 模型的訓練時間比Word2vec 模型快14%,比Glove 模型快8%,且Sem2vec模型的分類準確率比Word2vec 高2.6 個百分點,比Glove 模型高0.74 個百分點,在其他分類算法上也是類似的。同樣的,在THUCNews 數據集上,Sem2vec 模型的訓練時間比Word2vec模型要快9%~14%,比Glove模型快7%~9%,且Sem2vec 模型的3 種分類準確度優于Word2vec 模 型1.59~1.71 個 百 分 點,優 于Glove 模 型0.58~0.68個百分點。原因在于,Sem2vec模型增加了主題嵌入層,相當于從預訓練的LDA 主題模型中獲得單詞與主題之間的先驗知識,該先驗知識通過主題嵌入向量來指導語義詞向量的訓練,從而加快了訓練速度。若詞典的大小為V,則Sem2vec 模型的時間復雜度為O(V)。

表7 Word2vec、Sem2vec與Glove時間性能比較Table 7 Time performance comparison of Word2vec,Sem2vec and Glove
在Sogou和THUCNews數據集上,對比分析Sem2vec、Word2vec 與Glove 模型在不同epoch 下,各種分類算法的Macro-precision、Macro-recall 和Macro-F1。實驗結果如圖4~9所示。
基于Sem2vec、Word2vec 和Glove 模型的各種分類方法的結果比較如圖4~9所示,其中橫坐標表示訓練次數epoch,縱坐標表示Macro-precision、Macro-recall 和Macro-F1??梢钥闯觯捎肧em2vec模型的各種分類結果優于對比模型。
如圖4~6所示,在Sogou數據集上,3種分類算法隨著epoch 的不斷變大,基于3 種模型的各種分類結果均逐漸提高,并收斂于一定的上限,并且可以從圖中看出,基于Sem2vec 的各種分類結果與對比模型相比更好。如圖4(a)所示,采用textcnn分類算法,當epoch=100時,對比Word2vec 的Macro-precision 值83.34%,Sem2vec(cos)的為85.71%,Sem2vec(JS)的為85.67%,分別提高了2.37個百分點和2.33個百分點。如圖5(b)所示,采用BiLSTM 分類算法,當epoch=100 時,對比Glove 的Macro-recall 值85.59%,Sem2vec(cos)的為86.87%,Sem2vec(JS)的為86.69%,分別提高了1.28個百分點和1.10 個百分點。在transformer 分類的算法上也是類似的,基于Sem2vec模型的各種分類結果均高于Word2vec和Glove模型。

圖4 Word2vec、Sem2vec和Glove的textcnn分類結果比較(Sogou)Fig.4 Comparison of textcnn classification results of Word2vec,Sem2vec and Glove(Sogou)

圖5 Word2vec、Sem2vec和Glove的BiLSTM分類結果比較(Sogou)Fig.5 Comparison of BiLSTM classification results of Word2vec,Sem2vec and Glove(Sogou)

圖6 Word2vec、Sem2vec和Glove的Transformer分類結果比較(Sogou)Fig.6 Comparison of Transformer classification results of Word2vec,Sem2vec and Glove(Sogou)

圖7 Word2vec、Sem2vec和Glove的textcnn分類結果比較(THUCNews)Fig.7 Comparison of textcnn classification results of Word2vec,Sem2vec and Glove(THUCNews)

圖8 Word2vec、Sem2vec和Glove的BiLSTM分類結果比較(THUCNews)Fig.8 Comparison of BiLSTM classification results of Word2vec,Sem2vec and Glove(THUCNews)

圖9 Word2vec、Sem2vec和Glove的Transformer分類結果比較(THUCNews)Fig.9 Comparison of Transformer classification results of Word2vec,Sem2vec and Glove(THUCNews)
同樣,如圖7~9所示,在THUCNews數據集上,基于Sem2vec 的各種分類方法的結果均高于對比模型。如圖7(a)所示,采用textcnn分類算法,當epoch=100時,對比Word2vec 的Macro-precision 值83.11%,Sem2vec(cos)的為85.67%,Sem2vec(JS)的為85.77%,分別提高了2.56個百分點和2.66個百分點。在BiLSTM和transformer 分類方法上也是類似的,相比于Word2vec 和Glove模型,Sem2vec模型增強了文本的語義表示,因此能夠提升文本分類的精度。
綜上所述,Sem2vec模型將單詞的主題分布信息融入了語義詞向量的訓練學習過程中,可以更準確地捕獲單詞的語義信息,因此能夠得到語義增強的詞向量表示,進而增強文本的語義表示。
本文提出了一種文本語義增強方法Sem2vec模型,該模型將主題語義信息融入到詞向量的訓練中,進而對文本語義進行增強。在多個數據集上,利用單詞語義相似度計算和文本分類兩個任務,對比分析了Sem2vec模型的有效性。實驗結果表明,與Word2vec和Glove模型相比,Sem2vec 模型在語義相似度計算方面更為準確。另外,根據Sem2vec 模型得到的文本語義向量,在多種文本分類算法上的分類結果,較對比模型可以提升0.58%~3.5%,同時也提升了時間性能。后續,將結合BTM(Biterm topic model)模型,對文本的語義增強表示展開進一步研究。