[發明專利]一種結合外部知識的文本向量檢索方法有效
| 申請號: | 202011612232.4 | 申請日: | 2020-12-30 |
| 公開(公告)號: | CN112685538B | 公開(公告)日: | 2022-10-14 |
| 發明(設計)人: | 史樹敏;劉宏玉;黃河燕 | 申請(專利權)人: | 北京理工大學 |
| 主分類號: | G06F16/33 | 分類號: | G06F16/33;G06F16/332;G06F16/35;G06F40/211;G06F40/30;G06F40/289 |
| 代理公司: | 北京正陽理工知識產權代理事務所(普通合伙) 11639 | 代理人: | 王民盛 |
| 地址: | 100081 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 結合 外部 知識 文本 向量 檢索 方法 | ||
1.一種結合外部知識的文本向量檢索方法,其特征在于,包括以下步驟:
步驟1:獲取問題和開放域語料庫;
其中,問題和開放域語料庫是指對于開放域檢索任務提供的相應問題和答案及待檢索的文檔集合;
步驟2:利用一個預訓練的依存句法模型,對問題中的每個單詞預測對應的詞性和依存句法結構標簽,即問題詞性和句法標簽序列;
其中,依存句法模型是指在通用領域句法語料上預訓練的相關模型,對于給定問題,能夠獲得問題中每個單詞的詞性信息和整個問題的句法結構;
步驟3:通過問題詞性和句法標簽序列,以問題中每個單詞的詞性和依存句法結構標簽得到問題對應的若干個連續子區間,即問題子條件序列;
其中,問題子條件是指利用問題中每個單詞詞性信息和句法結構以修飾實體為中心合并的過程,將問題表示成若干個子條件的過程;
步驟4:對問題進行分詞處理,得到拼接后的問題文本序列;
其中,文本序列是指將文本分詞后的序列通過預定義符號[CLS]和[SEP]進行拼接后的序列;
其中,拼接后的序列為“[CLS]問題文本[SEP]”,[CLS]是序列語義符號,[SEP]序列結尾符號;
步驟5:對問題文本序列進行向量化表示,通過預訓練的單詞特征向量表示問題文本序列的每個單詞的向量化表示得到問題文本序列中各個詞對應的特征向量;
其中,單詞特征向量是指將輸入文本序列向量化所使用的預訓練向量,包括語義向量、位置向量以及分段向量;
其中,語義向量是指當前單詞的語義特征信息,位置向量是指當前單詞在文本序列的位置特征信息,分段向量是指當前單詞來自于問題或者文檔的分段特征信息;
步驟6:將步驟5輸出的問題文本向量作為多頭自注意力網絡模型的輸入;
其中,多頭注意力網絡模型是指獲取問題和文檔上下文語義信息的預訓練網絡模型;
步驟7:利用步驟3輸出的問題子條件序列和步驟6中輸出的問題語義向量獲得問題子條件向量;
其中,獲得問題子條件向量的過程,是利用子條件序列中的每個條件對應的問題單詞找到對應的問題單詞語義向量,在條件的單詞維度進行max-pooling操作以獲得每個條件向量,最終得到所有的條件向量為問題子條件向量;
其中,問題子條件向量是指將問題中每個問題子條件分別表示成子條件所對應的語義向量,具體實現為:
conditioni=max_pooling(C[condition_i]) (4)
其中,max_pooling為最大池化操作,condition_i為問題子條件序列中第i個條件對應的問題單詞索引;
步驟8:利用步驟7輸出的問題子條件向量和步驟6中輸出的問題語義向量,通過attention機制獲得融合后的增強問題語義向量;
利用問題語義向量中[CLS]對應的向量計算與問題子條件向量的相似程度,作為問題子條件的重要程度對問題子向量加權求和,得到增強問題語義向量,記為Q;
其中,增強問題語義向量是指將問題中獲得的若干問題子條件進行重要性融合所得到的問題表示向量,具體計算[CLS]對應向量與問題子條件向量相似程度過程為:
Wi=softmax(conditioni·C[CLS]) (5)
其中,C[CLS]為問題語義向量中[CLS]所對應的向量表示,n為問題子條件數量;
步驟9:對于步驟4中輸入的問題,利用BM25算法,從開放域語料庫中檢索相關文檔,利用問題對應的答案信息,從中選擇出詞匯匹配但不包含正確答案的困難消極文檔Dhard_neg,從開放域語料庫中找到對應的積極文檔Dpos和消極文檔Dneg;其中,積極文檔、消極文檔和困難消極文檔,是指訓練階段,對于每個問題,在開放域語料庫中與問題內容相關的文檔和不相關的文檔;其中,積極文檔由開放域語料庫提供,消極文檔通過在開放域語料庫隨機采樣的方式獲得,困難消極文檔指通過BM25算法在開放域語料庫檢索與問題詞匯匹配但不包含目標答案的文檔;
步驟10:對于步驟4中輸出的積極文檔Dpos、消極文檔Dneg和困難消極文檔Dhard_neg,分別統計步驟3中輸出的問題子條件出現的頻率,作為問題子條件重要程度序列Wi*;
其中,問題子條件重要程度序列是指利用BM25算法為當前問題召回詞匯匹配的若干文檔,統計問題子條件在匹配文檔中出現的頻率作為重要程度分數來表示問題子條件在整個問題的重要性,計算問題子條件頻率的過程為:
f(conditioni)pos=(conditioni|Dpos)/|Dpos| (7)
f(conditioni)neg=(conditioni|Dneg)/|Dneg| (8)
f(conditioni)hard_neg=(conditioni|Dhard_neg)/|Dhard_neg| (9)
其中,D表示當前類型文檔集合;f(conditioni)pos表示積極文檔集合中當前子條件conditioni出現的頻率,f(conditioni)neg表示消極文檔集合中當前子條件conditioni出現的頻率,f(conditioni)hard_neg表示困難消極文檔集合中當前子條件conditioni出現的頻率;
每個子條件的頻率,通過公式(10)計算每個子條件中所有單詞在文檔出現的最大概率,以衡量當前子條件的頻率;分別計算三類文檔所對應的問題子條件頻率后,計算問題子條件重要程度序列Wi*通過下式實現:
Wi*=f(conditioni)pos+0.5*f(conditioni)hard_neg-f(conditioni)neg (11)
步驟11:利用步驟10輸出的問題子條件重要程度序列Wi*訓練步驟8中的參數Wi;具體通過問題子條件重要程度損失函數Lw實現:
Lw=∑iWi*log(Wi*/Wi) (12)
步驟12:為步驟9中輸出的積極文檔Dpos和消極文檔Dneg,重復上述步驟4到步驟6,輸出積極文檔語義向量和消極文檔語義向量,記為Dpos和Dneg;
至此,從步驟1到步驟12,完成了文本編碼,得到增強問題語義向量,積極文檔語義向量和消極文檔語義向量;
步驟13:利用步驟8中輸出的增強問題語義向量和步驟12中輸出的積極文檔語義向量和消極文檔語義向量,訓練開放域檢索模型的參數;參數更新后,計算增強問題語義向量和積極文檔語義向量與消極文檔語義向量的相關性,其中,訓練開放域檢索模型的參數,具體通過(13)和(14)實現:
Spos=f(Q,Dpos),Sneg=f(Q,Dneg) (13)
其中,f為衡量增強問題語義向量和文檔語義向量的相關性函數,Spos、Sneg為問題與積極文檔和問題與消極文檔的相關性分數,L為開放域檢索模型的損失函數,Lw為步驟11的問題子條件重要程度損失函數,α為損失函數閾值,N為樣本數量,n為問題子條件數量;
在開放域檢索模型預測階段,為每個問題在開放域文檔向量空間中計算并檢索相關性分數最高的top-n文檔,作為當前問題的檢索文檔,計算top-k召回值,召回值是開放域文檔檢索領域的檢索質量評價指標,top-k召回值越大代表檢索的效果越好,top-k召回值統計召回top-k文檔中包含對應答案的問題頻率。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京理工大學,未經北京理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011612232.4/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種管樁專用行車變頻調速控制系統
- 下一篇:一種潛水泵電纜進線密封結構





