实现三元组表示的两个稀疏矩阵的加法_K-BERT | 基于知识图谱的语言表示模型
1.研究背景
BERT曾被應(yīng)用在多項(xiàng)NLP任務(wù)中,并且取得了很好的結(jié)果。它通過在大規(guī)模開放語料庫上進(jìn)行預(yù)訓(xùn)練以獲得通用的語言表示,然后在特定的下游任務(wù)中進(jìn)行微調(diào),吸收特定領(lǐng)域的知識(shí)。但這些模型在不同的領(lǐng)域執(zhí)行知識(shí)驅(qū)動(dòng)任務(wù)時(shí),效果不佳。為了解決這個(gè)問題,可以在特定領(lǐng)域的數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,或者在預(yù)訓(xùn)練時(shí)注入特定的領(lǐng)域知識(shí)。但這些方法一般非常耗時(shí)且昂貴。
有些學(xué)者提出將知識(shí)圖譜(KG)集成到語言表示(LR)中,為模型配備領(lǐng)域知識(shí),提高模型在特定領(lǐng)域任務(wù)上的性能,同時(shí)降低大規(guī)模預(yù)訓(xùn)練成本。但在知識(shí)整合的同時(shí),存在兩個(gè)不可避免的問題:1)異構(gòu)嵌入空間(HES),文本中的詞和KG中的詞嵌入向量空間不一致;2)知識(shí)噪音(KN),過多的知識(shí)融合會(huì)使句子偏離正確的意思。為了解決這些問題,文章提出一種基于知識(shí)圖譜的語言表示模型——K-BERT。K-BERT能夠與BERT模型兼容,加載任何預(yù)先訓(xùn)練好的BERT模型,并且通過配置KG可以很容易地將領(lǐng)域知識(shí)注入到模型中,而不需要預(yù)訓(xùn)練。另外,該模型引入了軟位置和可見矩陣來限制知識(shí)的影響以克服知識(shí)噪音。
2.方法
文章詳細(xì)介紹了K-BERT的實(shí)現(xiàn),K-BERT的模型體系結(jié)構(gòu)主要由四個(gè)模塊組成,即知識(shí)層、嵌入層、視圖層和掩碼轉(zhuǎn)換。其總體框架如圖1所示:
圖1 K-BERT的模型結(jié)構(gòu)K-BERT模型的每一部分都有著不可或缺的作用。對(duì)于輸入的句子,知識(shí)層首先從KG向其注入相關(guān)的三元組,將原始句子轉(zhuǎn)換為知識(shí)豐富的句子樹。然后將句子樹同時(shí)饋送到嵌入層和視覺層,然后將其轉(zhuǎn)換為符號(hào)級(jí)嵌入表示和可視矩陣。可見矩陣用于控制每個(gè)符號(hào)的可見區(qū)域,防止由于注入過多的知識(shí)而改變?cè)涞囊馑肌?/p>
2.1 知識(shí)層
知識(shí)層(KL)用于句子知識(shí)注入和句子樹轉(zhuǎn)換。給定輸入句子s={w0,w1,w2,...,wn}和知識(shí)圖譜K,KL輸出句子樹t={w0,w1,.,wi{(ri0,wi0),...,(rik,wik)},...,wn}。這個(gè)過程可以分為兩個(gè)步驟:知識(shí)查詢(K-Query)和知識(shí)注入(K-Inject)。
在K-Query中,從K-Query中選出句子s中涉及的所有實(shí)體名稱來查詢其對(duì)應(yīng)的三元組。K-Query可以表示為(1),
(1)
其中E={(wi,ri0,wi0),.,(wi,rik,wik)}是相應(yīng)三元組的集合。
接下來,K-Inject通過將E中的三元組注入到它們對(duì)應(yīng)的位置,將查詢到的E注入到句子s中,并生成一個(gè)句子樹t。在本文中,一棵句子樹可以有多個(gè)分支,但其深度固定為1,這意味著三元組中的實(shí)體名稱不會(huì)迭代地派生分支。K-Inject可以表示為(2),
2.2 嵌入層
嵌入層(EL)的功能是將語句樹轉(zhuǎn)換為可以饋送到掩碼轉(zhuǎn)換器中的嵌入表示。與BERT相似,K-BERT的嵌入表示是由符號(hào)嵌入、位置嵌入和段嵌入三部分組成,不同之處在于K-BERT嵌入層的輸入是句子樹,而不是符號(hào)序列。因此,如何在保留句子樹結(jié)構(gòu)信息的同時(shí)將句子樹轉(zhuǎn)換成序列是K-BERT的關(guān)鍵。
符號(hào)嵌入與BERT基本一致,不同之處在于語句樹中的符號(hào)在嵌入操作之前需要重新排列。在重新排列策略中,分支中的符號(hào)被插入到相應(yīng)節(jié)點(diǎn),而后續(xù)的符號(hào)則向后移動(dòng)。經(jīng)此操作后句子變得不可讀,丟失了正確的結(jié)構(gòu)信息。但該問題可以通過軟位置可視矩陣來解決。
BERT輸入句子的所有結(jié)構(gòu)信息都包含在位置嵌入中,可以將缺失的結(jié)構(gòu)信息重新添加到不可讀的重新排列的句子中,但句子位置信息會(huì)有所改變。要解決這個(gè)問題,需要給句子樹重新設(shè)置位置標(biāo)號(hào)。但在設(shè)置位置編號(hào)時(shí)又會(huì)發(fā)生實(shí)際沒有聯(lián)系的詞匯,因具有相同的軟位置標(biāo)號(hào)而出現(xiàn)聯(lián)系,導(dǎo)致句子意思發(fā)生改變。這個(gè)問題的解決方案是使用掩碼-自我注意機(jī)制。
2.3 視圖層
視圖層是K-BERT和BERT的最大區(qū)別,也是這種方法如此有效的原因。K-BERT的輸入是一棵句子樹,其中的分支是從KG獲得的知識(shí)。但它可能導(dǎo)致原句意思的變化,即KN問題。
在句子樹中,一個(gè)實(shí)體的三元組應(yīng)與其他詞匯無關(guān)。同時(shí),用于分類的[CLS]標(biāo)簽不能繞過主體詞匯來獲得修飾三元組的信息。為了解決這個(gè)問題,K-BERT使用可見矩陣M來限制每個(gè)符號(hào)的可見區(qū)域防止不相干詞匯相互干擾。可視矩陣可以表示為(3),
(3)
其中wi?wj表示在同一分支,wi?wj則不在。i和j是硬位置索引。
嵌入層和可視層的工作原理如圖2所示:
圖2 句子樹轉(zhuǎn)換成嵌入表示和可視矩陣工作過程2.4 掩碼轉(zhuǎn)換
可視矩陣M包含句子樹的結(jié)構(gòu)信息,但BERT中的編碼器不能接收M作為輸入,所以我們需要將其修改為Mask-Transformer,它可以根據(jù)M限制自注意區(qū)域。Mask-Transformer是一個(gè)由多個(gè)掩碼-自我注意塊組成的堆棧。
為了利用M中的句子結(jié)構(gòu)信息來防止錯(cuò)誤的語義變化,文章提出了一種掩碼-自注意,它是自我注意的擴(kuò)展。掩碼-自注意表示如(4)。
其中Wq,Wk和Wv表示可訓(xùn)練的模型參數(shù);hi表示第i個(gè)掩碼自我注意塊;dk是比例因子;M是可視矩陣。掩碼轉(zhuǎn)換的工作原理如圖4所示:
圖4 掩碼轉(zhuǎn)換是多個(gè)掩碼自我注意塊的堆棧
3.實(shí)驗(yàn)
3.1 數(shù)據(jù)集
K-BERT在12個(gè)中國自然語言處理任務(wù)上進(jìn)行微調(diào),其中8個(gè)是開放領(lǐng)域的,4個(gè)是特定領(lǐng)域的。文章采用兩個(gè)預(yù)訓(xùn)練語料庫:WikiZh和WebtextZH;三個(gè)中文知識(shí)圖譜:CN-DBpedia、HowNet和MedicalKG。在文章中,作者將K-BERT和Google BERT和Our BERT模型進(jìn)行了一個(gè)比對(duì),以觀察它的性能。
3.2 實(shí)驗(yàn)分析
在文章中,作者首先比較了KBERT和BERT在八個(gè)中文開放領(lǐng)域自然語言處理任務(wù)上的性能。這八個(gè)任務(wù)分別是:Book_revire、Chnsenticorp、Shopping、Weibo、XNLI、LCQMC、NLPCC-DBQA和MSRA-NER。
上述每個(gè)數(shù)據(jù)集分為三個(gè)部分:訓(xùn)練、開發(fā)和測(cè)試。實(shí)驗(yàn)結(jié)果如表1和表2所示:
表1 句子分類任務(wù)的不同模型在開放領(lǐng)域任務(wù)上的結(jié)果(ACC%)
表2 不同模型對(duì)NLPCC-DBQA(MRR%)和MSRA-NER(F1%)的結(jié)果
從表中可以看出,使用額外的語料庫(WebtextZh)也可以帶來性能提升,但不如KG顯著。
作者在兩個(gè)特定領(lǐng)域的任務(wù):Domain Q&A和Law_Q&A上評(píng)估了K-BERT的性能。實(shí)驗(yàn)結(jié)果如表3所示:
表3 特定領(lǐng)域任務(wù)的各種模型的結(jié)果(%)
結(jié)果表明,K-BERT在特定領(lǐng)域上的具有明顯的語言表示優(yōu)勢(shì)。
參考資料
https://www.aaai.org/Papers/AAAI/2020GB/AAAI-LiuW.5594.pdf
代碼
https://github.com/autoliuweijie/K-BERT
總結(jié)
以上是生活随笔為你收集整理的实现三元组表示的两个稀疏矩阵的加法_K-BERT | 基于知识图谱的语言表示模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021吉林高考26日几点可以查询成绩,
- 下一篇: Sql Server中自动序号的方法