李保珍,顧秀蓮
(南京審計大學 信息工程學院,江蘇 南京 211815)
詞嵌入是將自然語言語料庫中的詞語,以向量的形式映射為計算機可處理的、蘊含詞語上下文語義的一種數值化處理技術[1]。word2vec模型是典型的靜態詞嵌入方法之一,可把自然語言語料庫中的詞語表示成統一意義維度的結構化的短向量,把詞嵌入到一個可計算的向量空間中[2]。
傳統的詞嵌入模型是在神經網絡的基礎上進行簡化,移除隱藏非線性激活層,直接將嵌入層和輸出層的Softmax layer連接[3-4]。然而,傳統的詞嵌入模型只能從固定的詞匯量集合中學習已有的詞語。隨著社會的發展,衍生了許多已有詞匯表外的新詞,并且許多已有的詞匯也會衍生出新的含義。如“桌面”主要是指桌子的表面,但在部分語境中也會表示電腦或手機的打開界面。如果在一個任務遇到一個新詞語,并且這個詞語沒有出現在用于訓練的文本語料庫中,即未登錄詞[5]。傳統的詞嵌入模型尚不能為這個新的詞語構建嵌入向量。此外,文本語料庫中會存在具有多重含義的詞語,例如,詞語“驕傲”,既有正面含義表示贊賞和高興,也有負面含義表示自負和自我膨脹,該詞語雖然形式相同,但表達的意思卻大相徑庭,只有考慮上下文語境才能識別出其恰當的含義。傳統的詞嵌入模型所構建的向量空間維度的確定存在一定的隨機性,如何構建合理的向量空間維度,以嵌入形式表示特定詞語在上下文語境下的恰當語義,以克服一詞多義所帶來的歧義問題,尚需進一步改進相關的詞嵌入模型。
針對傳統的詞嵌入模型所存在的未登錄詞問題及一詞多義問題,該文提出基于詞共現的詞嵌入改進模型。主要創新點為,通過綜合考慮詞嵌入與詞共現兩方面因素,將基于傳統詞嵌入模型所構建的詞嵌入向量,與經過詞共現計算所構建的詞共現向量融合。單獨創建未登錄詞的嵌入向量,并可綜合兼顧更多的語義空間維度,以提高詞嵌入的語義識別精度,減少一詞多義所帶來的歧義性干擾。
國內外對于傳統的靜態詞嵌入模型有大量的改進。針對詞的多義性問題,一種方法是詞性標注。例如,sense2vec是word2vec的一個擴展,在預處理步驟中,訓練語料庫中的所有單詞都用詞性(POS)標記進行注釋,然后學習由單詞本身及其POS標記組成的標記的嵌入[6]。通過這種方式,產生了不同的表達方式。另一種是對單詞出現的上下文進行聚類或使用額外的資源[7]。例如,Vector-Space Models模型即通過聚合單詞出現的上下文信息來編碼單詞的多重含義以及wordnet來識別單詞的多種含義[8]。
針對未登錄詞問題,Wang等人通過生成代表詞之間的依賴信息的詞向量,提出了Charter to Word模型[9];Bojanowski等人通過學習文本和文本中所有字符n-grams的表示,然后組合單詞中出現的n-grams的嵌入來計算單詞的嵌入[10]。
然而,上述傳統的詞嵌入改進途徑尚不能同時解決一詞多義和未登錄詞的詞嵌入問題。如何同時兼顧一詞多義和未登錄詞問題,以減少一詞多義所帶來的歧義性干擾,以及未登錄詞所帶來的冷啟動問題,需要融合詞語之間更多的相關性信息。此外,與傳統的詞嵌入模型相比,上述改進途徑大多需要更多的模型參數及計算資源,面對海量的語料庫和實時性計算要求,如何減少模型的參數以提高計算效率也是詞嵌入改進的目標。
該文基于負采樣訓練的連續詞袋訓練模型,通過權重矩陣和共現矩陣,單獨構建基于語料庫的詞向量模型,該途徑可有效解決一詞多義的歧義性干擾以及未登錄詞的冷啟動問題,并可有效提升詞嵌入模型的計算效率。
為解決一詞多義的歧義性干擾以及未登錄詞的冷啟動問題,以提升詞嵌入的效率,需要在詞嵌入過程中兼顧詞語之間的相似信息。該文基于負采樣和連續詞袋(CBOW)的詞嵌入模型,通過融合共現矩陣所揭示的詞語之間相似信息,提出了傳統詞嵌入模型的改進途徑。
經典的神經網絡詞向量語言模型一般有輸入層(詞向量)、隱藏層和輸出層(softmax層)三層[11]。傳統的詞嵌入模型對神經網絡做了如下簡化:(1)移除隱藏非線性激活層,直接將嵌入層與輸出層的Softmax layer連接;(2)忽略序列信息,輸入的所有詞向量匯總到同一個嵌入層;(3)增加上下文窗口得到詞嵌入的CBOW模型[12]。
傳統的詞嵌入模型中引入負采樣不僅能夠加速模型計算速度,還保證了模型訓練的效果[13],負采樣將預料中一個詞串的中心詞替換成其他詞,將不存在的字串作為負樣本,只更新隱藏權重矩陣的一部分。基于負采樣(Negative Sampling)和CBOW的詞嵌入模型,輸入CBOW的訓練語料樣本、詞向量的維度、CBOW的上下文大小、步長和負采樣個數。所有模型參數和字向量都是隨機初始化的。之后,對于每個訓練樣本負采樣出n個負例中心詞并且梯度迭代過程使用隨機梯度上升法。最后,輸出與詞匯表中每個單詞對應的模型參數和所有單詞向量。
從數學上講,這是通過首先從W0中選擇適當的行來計算上下文詞嵌入的總和來實現的。然后將該向量乘以從W1中選擇的幾行:其中一行對應于目標詞,而其他行對應于隨機選擇k個“噪聲”詞(負采樣)。在應用非線性激活函數之后,通過將該輸出與標簽向量t∈Rk+1進行比較來計算反向傳播誤差,該標簽向量t∈Rk+1在目標字的位置為1,對于所有k個噪聲字為0。在模型訓練完成后,目標詞的嵌入是W0中的對應行。
用負采樣訓練的CBOW詞嵌入模型可以解釋為一個神經網絡,它預測一個單詞與其他單詞的相似性。在訓練期間文本中每出現一個單詞w,對應的二進制向量(在上下文單詞w的位置為1,在其他位置為0)被用作網絡的輸入,并乘以一組權重W0得到嵌入(與上下文單詞對應的W0中行的總和)。然后將該嵌入乘以另一組權重W1(對應于單詞嵌入Y的完整矩陣),以產生網絡的輸出,即包含單詞w與所有其他單詞的近似相似性的向量SWi∈RN。然后,通過將輸出的子集與二進制目標向量進行比較來計算訓練誤差,該目標向量用作僅考慮少量隨機詞時真實相似性的近似值。
共現矩陣的行或列作為詞向量表示后,它的統計數值代表了詞之間的相似程度[14]。從語料庫文本中可構建詞語之間的共現矩陣來揭示詞與詞之間的相似度。根據語料詞構成的共現詞向量矩陣,計算詞典中每個詞之間的成對相似度矩陣,歸一化后可得到0到1之間的相似度得分。在相似上下文中,兩個詞語嵌入向量之間的余弦相似性應接近1,當前詞語的窗口大小周圍共現詞語的數量[15]。由于語料庫的詞語數量通常較多,相似矩陣的計算量會隨著詞語維度增加而呈指數增長。但是一篇文檔的詞語數量通常有限,所以基于文檔計算詞語共現的共現矩陣具有高維和稀疏的特征[16]。如果選取少量的k個隨機詞,它們與目標詞的相似性有時會接近0。因此,一個詞語的嵌入和所有嵌入的矩陣的乘積應導致向量接近該詞的真正相似性。
改進的詞嵌入模型在輸入層依然沿用CBOW訓練模型和負采樣,將語料庫放入模型中訓練出權重矩陣WV*N,并對語料庫中每個單詞的出現次數進行累加,得到共現矩陣CoV*V。對共現矩陣CoV*V做歸一化處理,通過將共現矩陣的每一行除以相應詞語在語料庫文本中出現的次數M,即共現矩陣的歸一化,可得到語料庫的詞語向量SV*V,也即語料文本詞語之間的相似信息,通過將其與訓練得到的權重矩陣WV*N相乘,即:
(1)
在創建整個語料庫文本詞向量的同時,為提升模型的精確度和效率,可為未登錄詞單獨創建語料詞向量Xn。再針對未登錄詞對其他語料文本的影響程度,通過調節權重m(0 未登錄詞的語料文本詞向量的計算方式為未登錄詞語料庫中出現的詞xi對出現的次數Mu求平均值得到的。 (2) 同樣的,整體語料詞向量是通過整體的語料文本詞出現頻率求平均值得到的。 (3) 由此,可以得到新的語料詞向量的公式: SV*V=[m*Xu+(1-m)*Xg] (4) (5) 綜合上述思路和模型,可構建面向一詞多義及未登錄詞問題的詞嵌入改進模型,如圖1所示,算法步驟如下: 算法1:面向一詞多義及未登錄詞的詞嵌入改進。 輸入:需要計算詞嵌入的文本語料庫; 輸出:基于文本語料庫的詞向量矩陣。 (1)整個語料庫放入模型中訓練出權重矩陣Wv*N; (2)對語料庫中每個單詞的出現次數進行累加,得到共現矩陣CoV*V; (3)對共現矩陣CoV*V做歸一化,得到語料庫單詞向量SV*V; (5)針對未登錄詞對于其他剩余語料文本的影響程度,通過調控權重m(0 圖1 基于負采樣和CBOW的共現性詞嵌入改進模型 為說明改進的共現性詞嵌入模型與傳統詞嵌入模型相比較的優勢,以傳統詞嵌入模型作為基線,通過兩個類比任務和命名實體識別任務來評估模型的精確率和F值。 類比任務實驗采用text8數據集及questions-words數據集,數據集來自谷歌官網。其中text8數據集是包含空格符和26個英文字母的超長句子。questions-words數據集是包含14個類別以及每個類別數據都是4列的字符集。 命名實體識別任務實驗使用典型數據集conll2003[17]。命名實體識別(NER)是信息提取的子任務,conll2003數據集是由四列數據組成,并用一個空格分隔。數據分為四個類別,LOC(位置)、OGR(組織)、PER(人名)和MISC。每個單詞放在單獨的一行,每個句子后面都有一個空行。每行中的第一項是單詞,第二項是詞性標記,第三項是語法快速標記,第四項是命名實體標記。塊標簽和命名的實體標簽的格式為I-TYPE,這意味著該單詞在TYPE類型的短語內。只有當兩個相同類型的短語緊跟其后時,第二個短語的第一個單詞才會標記為B-TYPE,以表示它開始了一個新短語。帶有標簽O的單詞不是短語的一部分。 數據由三個文件組成:一個訓練文件training和兩個測試文件Testa和Testb。第一個測試文件Testa將在開發階段用于為學習系統找到合適的參數。第二個測試文件Testb用于最終評估。 類比任務用來評測詞向量好壞,以此來揭示詞嵌入模型在語義關系上的表現[18]。為了說明使用上下文編碼器創建的詞嵌入捕獲了詞語之間有意義的語義和句法關系,在與傳統詞嵌入模型一起發布的原始分類任務上對它們進行了評估。 首先使用如上所述的負采樣訓練的CBOW詞嵌入模型對text8語料庫進行訓練,其中負采樣“噪聲詞”neg為13,嵌入維度d為200,上下文窗口大小為5,隨機種子seed為3,從17 005 207個單詞和17 006個句子的語料庫中收集253 854個獨立詞,刪除頻率c低于最小計數min_count為5的單詞后,共有71 290個唯一單詞。71 290詞匯200特征訓練模型,16 718 844字訓練2 789.4 s,5 994字/s。 將傳統詞嵌入模型在text8語料庫上進行十次迭代訓練以提高精確率,包含約1 700萬個單詞和約70k個獨特單詞的詞匯,以及10億個基準數據集的訓練部分,其中包含超過7.68億個單詞,擁有486k個獨特單詞的詞匯量。 命名實體識別任務用作外部評估以說明改進的詞嵌入模型相對于傳統詞嵌入模型的優勢。實驗將數據集中的training數據通過詞嵌入模型訓練生成詞向量,而其他的如development等數據集未登錄詞表示為零向量。將詞向量與邏輯回歸分類模型一同訓練使用。實體命名識別任務從218 609個單詞和946個句子的語料庫中收集了20 102個獨特的單詞,迭代訓練做20次。為了驗證改進后的模型對于處理未登錄詞的優勢,對權重值m從0到1進行線性增長變化,并對training訓練集使用傳統詞嵌入模型進行100次迭代作為對比基線詞向量。 將conll2003數據集中的training用作基于負采樣和CBOW的詞嵌入訓練。Testa和Testb用作改進詞嵌入模型的訓練。為了隔離其他因素對性能的影響,實驗只使用詞語嵌入作為特征信息,不考慮詞語大小寫或詞性標記等其他信息。為了說明將詞嵌入與詞語的平均上下文詞向量相乘可以改進嵌入,改進的共現詞嵌入模型僅使用全局上下文詞向量進行計算,即m=1。為了說明將詞語的平均全局和未登錄詞語料上下文向量組合作為改進詞嵌入的輸入,可以有效解決一詞多義的問題,對于訓練詞匯表中出現的詞語,設置m<1。 為了評價實驗結果,引入精確率和F值作為實驗評價標準。精確率在文中表示命名實體識別任務中識別正確的樣本數與識別總樣本的比率。召回率表示識別正確的樣本數與實際任務中總樣本數的比率。而F值表示為精確率和召回率加權調和平均的統計值。 表1是類比任務的結果,展示了改進的共現性詞嵌入模型和基于負采樣和CBOW的傳統詞嵌入模型作為基線,經過迭代10次數據集的14個類別的精確率對比結果。 表1 類比任務精確率比對 整體上來說,10次迭代結果證明改進的共現性詞嵌入模型相比于傳統詞嵌入模型,精確率高出了約6.4個百分點。其中,改進后的capital-world和city-in-state類別訓練的詞向量精確性分別是傳統詞嵌入模型的1.7倍和1.88倍。改進的共現性詞嵌入模型在這些任務類別上表現較好的一個原因可能是,在前四個任務類別中,參與比較的城市和國家名稱只有單一的含義。此外,各個類別的精確率尚存在差異,說明詞典中的詞義多樣對精確率有一定的影響,也說明改進模型在詞的語義關系獲取上有更高的優勢。 表2展示了training、Testa、Testb數據訓練出的詞向量與邏輯回歸分類模型應用于LOC、FER、MISC及ORG 4類命名實體識別任務中的F值,其中m值設為0.6。其中,Testa訓練出的詞向量在LOC、FER、MISC三項任務中的F值最高。Testa和Testb訓練出的詞向量在四項任務的F值都高于training。通過表中實驗結果數據的對比,可以看出改進的共現性詞嵌入模型訓練所得到的詞向量,在識別詞的多義性性能上優于傳統詞嵌入模型訓練所得到的詞向量,抗一詞多義帶來的歧義干擾能力更強。 表2 命名實體識別任務F值比對 % m值變化對F值的影響如圖2所示。對training數據使用傳統詞嵌入模型進行100次迭代訓練,test數據中的未登錄詞用零向量表示,傳統詞嵌入模型訓練出的結果就是training數據。實驗中對公式中的權重m賦值從0到1,呈線性增長并無限逼近1。實驗結果表明改進的共現性詞嵌入模型在命名實體識別任務中性能優于傳統的詞嵌入模型。當m=0.63時,F值最高,這說明未登錄詞數據集合與語料庫數據集混合得到的詞向量優于通過單個數據文本得到的詞嵌入向量。改進的共現性詞嵌入模型生成的詞向量能夠更有效地為未登錄詞創建詞向量,詞嵌入向量更符合上下文語境含義,提高了詞嵌入向量的效果。 圖2 m值變化對F值的影響 圖3為基于詞嵌入模型三次隨機初始化的命名實體識別任務結果。當使用傳統詞嵌入(虛線)的平均性能被視為基線,其他嵌入都是詞語的全局和局部詞向量的各種組合。對比得出,改進的共現性詞嵌入模型在性能上是有所提升的,全局語料與未登錄詞語料混合創建出的詞向量效果最優。 圖3 不同詞語嵌入特征下的NER性能 綜合考慮詞嵌入和詞共現兩方面因素,提出基于詞共現的詞嵌入改進模型。通過融合訓練后的詞嵌入矩陣與詞語的共現矩陣,可在新的詞嵌入權重矩陣中蘊含詞語間的相似度信息。該途徑既可將文本中出現但訓練語料庫中不存在的詞語進行嵌入向量表示,又可兼顧更多維度的語義空間維度,進而可更準確識別詞語的上下文語境含義,以減少一詞多義所帶來的歧義性干擾。因此,改進的詞嵌入模型可以創建未登錄詞嵌入,并可根據詞語的上下文語境確定其恰當的含義。此外,改進的詞嵌入模型在提升詞嵌入處理能力的同時,也可縮短相關的進程時間,具有較強的實際意義。未來的研究中將進一步考慮詞語間的順序,綜合考慮詞語間的相似性和詞語語序,并將更多維度的信息融入到權重矩陣中,以進一步提升詞嵌入模型的精確率。




3 實 驗
3.1 數據準備
3.2 實驗設置
3.3 實驗結果及分析




4 結束語