[發明專利]一種基于傳遞的同義詞擴展方法有效
| 申請號: | 202010063190.7 | 申請日: | 2020-01-19 |
| 公開(公告)號: | CN111274794B | 公開(公告)日: | 2022-03-18 |
| 發明(設計)人: | 魯偉明;俞家樂;吳飛;莊越挺 | 申請(專利權)人: | 浙江大學 |
| 主分類號: | G06F40/247 | 分類號: | G06F40/247;G06F40/284;G06N3/04;G06N3/08 |
| 代理公司: | 杭州求是專利事務所有限公司 33200 | 代理人: | 劉靜 |
| 地址: | 310058 浙江*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 傳遞 同義詞 擴展 方法 | ||
1.一種基于傳遞的同義詞擴展方法,其特征在于,包括以下步驟:
1)數據集構建:爬取并解析百科詞條正文,存儲到Lucene索引文件中,同時利用Word2Vec工具訓練詞向量;爬取百科詞條的多義詞頁面,解析得到每個頁面中所有多義義項,并從義項的詞條頁中獲取該義項的同義屬性;同一義項若存在多個同義詞,則以該義項名稱作為中間實體e2,任選它的兩個同義詞作為e1和e3,構成正例三元組t′=e1,e2,e3;具有相同名稱的不同義項,可以隨機選取兩個義項各自的同義詞分別作為e1和e3,與義項名e2構成負例三元組;所有實體三元組t′構成了集合T;根據已獲得的實體三元組集合,在語料的Lucene索引文件中進行布爾檢索,得到同時包含一對實體的所有語句si并構成共現語句包S={s1,s2,...,s|s|},即檢索e1和e2得到共現語句包S1,檢索e2和e3得到共現語句包S2;
2)句子編碼:對步驟1)中每個實體三元組t′對應的兩個語句包S1和S2,采用BERT模型或BiLSTM模型進行句子編碼,具體過程如下:
a)BERT編碼:給定一個同時包含實體對ei和ej的語句s,利用BERT自帶分詞器對s進行分詞,并在s前后插入句子起始符“[CLS]”和終止符“[SEP]”,在兩個實體前后分別用特定符號“[ENT1]”和“[ENT2]”進行標示,得到語句序列s′={w0,w1,...,w|s|+5},其中wk為序列中第k個詞語;將預處理后的語句序列輸入到BERT模型中,獲得編碼后的整個序列表示H={h0,h1,...h|s|+5},其中hk為第k個詞的隱層向量輸出;根據兩個實體的位置,同時可以得到ei的序列表示和ej的序列表示整個句子的隱層表示為hs=h0,即“[CLS]”對應輸出;
b)BiLSTM編碼:給定一個同時包含實體對ei和ej的語句s,采用HanLP分詞器對s分詞,得到語句序列s″={w1,w2,...,w|s|};將序列中的每個詞wk轉換為詞嵌入后,拼接每個詞的詞向量與距離實體對ei和ej的兩個位置向量和作為該詞的嵌入表示其中dw為詞向量維度,dp為位置向量維度,為向量拼接操作;將序列輸入BiLSTM模型中進行編碼,正反向編碼公式如下:
其中,BiLSTM采用兩層標準的長短期記憶網絡,LSTMfw為正向編碼公式,LSTMbw為反向編碼公式,vt為第t個時間步的輸入,為正向第t個時間步的隱層輸出,為反向第t個時間步的隱層輸出,即對應句子中第t個詞語;
將正反向的隱層輸出拼接,得到作為第t個詞語的隱層表示,即獲得整個語句的序列表示H={h1,h2,...h|s|};類似上述步驟a),同時可得到ei的序列表示和ej的序列表示將正向最后一個時間步的隱層狀態與反向最后一個時間步的隱層狀態拼接,作為句子的隱層表示
c)句子表示:利用步驟a)或步驟b)對語句s編碼后,得到了句子隱層表示hs和實體序列表示與將hs經過一個包含激活函數tanh的全連接層轉化,得到句子向量vs,公式如下:
vs=tanh(Wshs+bs)
其中和為模型的可訓練參數,dh為編碼器隱層輸出的維度,dc為全連接層的輸出維度;
對實體序列中每個詞的隱層向量計算平均,同樣經過一個包含激活函數tanh的全連接層轉化,計算獲得ei的實體向量與ej的實體向量公式如下:
其中 和為模型的可訓練參數,k′∈{1,2,3}為實體編號;將句子向量與兩個實體向量拼接,作為該句子的最終表示
d)語句包表示:通過前三個步驟,對語句包S中每個語句進行編碼,得到語句向量集合同時采用注意力機制對語句包內的有效語句加以選擇,得到每個句子的注意力權重αi,計算公式如下:
公式采用的是乘法注意力,其中表示同義關系向量,由模型隨機初始化,維度與句子向量相同,exp為指數函數;
將所有語句向量進行加權求和,即得到語句包的向量表示Vs:
將Vs依次經過一個全連接層和一個softmax層,得到預測概率p(ei≈ej|S),即模型基于語句包S,判別實體對ei和ej存在同義關系的概率,同時也驗證了語句選擇的有效性:
o=W1Vs+b1
其中和為模型的可訓練參數,o1和o2為向量o的兩個元素,o1對應模型預測為正確的維度,o2對應模型預測為錯誤的維度;
3)實體編碼:將實體三元組t′對應語句包S1和S2中的所有語句分別經過步驟2)中編碼器編碼后,獲得S1中e1的實體向量包和e2的實體向量包以及S2中e3的實體向量包和e2的實體向量包利用步驟2)中第d)步的句子注意力權重,對實體向量包進行加權,作為實體在整個語句包內的語義融合向量,公式如下:
其中k∈{1,2}為語句包編號,i∈{1,2,3}為實體編號,為語句包Sk中第j個語句的注意力權重,為該句中第i個實體;經過計算,得到四個實體融合向量和
接著采用門控機制分別將的語義融入將的語義融入得到e2在S1中的最終向量表示在S2中的最終向量表示公式為:
其中語句包編號k∈{1,2},實體編號i∈{1,3},為門控向量,是可訓練參數,維度與實體向量相同,⊙為向量元素乘操作;
4)多角度實體匹配:對步驟3)中得到的e2的兩個實體向量包和以及e2的兩個實體向量和同時采用E2E、E2B和B2B三種匹配進行多角度實體語義匹配,具體匹配過程如下:
a)E2E匹配:實體向量之間的匹配,利用向量元素乘的結果作為匹配向量Vm,其中為向量元素乘操作:
b)E2B匹配:實體向量和實體向量包之間的匹配,主要采用基于LSTM模塊的多步匹配策略,將中每個向量作為LSTM每一個時間步的輸入,并且不斷通過影響隱層狀態h′t的計算,以提取出與間語義相似的部分,計算公式如下:
其中LSTM(x,[h,c])為標準的LSTM單元,x為輸入,h和c分別為LSTM的隱層狀態和單元狀態;即按照標準LSTM進行循環計算,單元狀態ct不變,隱層狀態h′t只取前dc個元素,與當前輸入相加后拼接輸入到下一步計算中;i∈{1,2}和j∈{1,2}為語句包編號,為拼接操作;dc與實體向量維度相同;
以LSTM模塊最后一個時間步的輸出作為E2B的匹配向量,即匹配和得到匹配和得到
c)B2B匹配:實體向量包之間的匹配,實際為兩個包內所有向量間的兩兩匹配,首先計算和的相似度矩陣M:
其中為模型的可訓練參數,dc為實體向量維度;
對于中的某個向量與中每個向量匹配得到|S2|個相似分數,將所有分數取平均即得到與整個的相似分數,公式為:
其中mij為M中第i行第j列元素,mean_pooling為平均池化函數;
接著通過softmax公式計算中每個向量的對應權重向量,經過加權后獲得關于的匹配向量
在相似度矩陣M的第0維上進行操作為匹配,得到同理,在M的第1維上進行相同操作即為匹配,可得到
5)同義關系分類:將步驟4)中得到的五個匹配向量拼接,依次通過一個全連接層和一個softmax分類器,得到基于語句包S1和S2、實體三元組t′中e1和e3存在同義關系的概率p(e1≈e3|S1,S2):
其中為模型的可訓練參數,和為om中兩個元素,對應模型預測為正確的維度,對應模型預測為錯誤的維度;
6)模型訓練:采用交叉熵作為損失函數,通過步驟2)計算所有實例集合T對應的語句包的有效選擇概率,同時計算損失L1:
其中和為第i個實例對應的兩個支持語句包,θ1為步驟2)中所有參數;
通過步驟5)獲得所有實例的預測概率,并計算損失L2:
其中θ2為步驟3)至步驟5)中所有參數;
最終將步驟2)的有效語句選擇作為子任務,與步驟5)的同義關系預測主任務進行聯合訓練,即加和兩種損失作為模型的總損失L=L1+L2,并采用優化器最小化損失函數,獲得最佳模型。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于浙江大學,未經浙江大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010063190.7/1.html,轉載請聲明來源鉆瓜專利網。





