[發明專利]一種基于靜態-動態注意力變分網絡的對話生成方法有效
| 申請號: | 201911250610.6 | 申請日: | 2019-12-09 |
| 公開(公告)號: | CN111143509B | 公開(公告)日: | 2023-06-30 |
| 發明(設計)人: | 賀瑞芳;王瑞芳;常金鑫;王龍標;黨建武 | 申請(專利權)人: | 天津大學 |
| 主分類號: | G06F16/33 | 分類號: | G06F16/33;G06F16/332;G06F40/30;G06F40/205 |
| 代理公司: | 天津市北洋有限責任專利代理事務所 12201 | 代理人: | 劉子文 |
| 地址: | 300072*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 靜態 動態 注意力 網絡 對話 生成 方法 | ||
1.一種基于靜態-動態注意力變分網絡的對話生成方法,其特征在于,包括以下步驟:
(1)構建上下文理解模塊:
上下文理解模塊是利用句子編碼器和上下文編碼器對訓練語料中的對話上下文進行編碼得到關于對話上下文的歷史向量ln;該模塊中給定對話上下文x=(x1,x2,…xi,…,xn),其中n表示上下文中句子的個數,xi=(xi,1,xi,2,…,xi,Ni)表示句子xi中有Ni個單詞;生成回復y=(y1,y2,…,yi,…,ym),其中yi表示回復中的第i個單詞,m表示回復中單詞的個數;
句子編碼器由雙向GRU構成,針對上下文中每一個句子xi進行編碼得到句子向量hi,其具體計算公式如下:
分別表示上下文句子xi中第j個單詞在前向GRU和后向GRU中的潛在狀態,Ni表示句子xi中單詞的個數;表示句子編碼器中的前向GRU,表示句子編碼器中的后向GRU;hi,j則為上下文句子xi中第j個單詞在雙向GRU中的狀態向量;hi是表示上下文句子xi的句子向量;同理可得到回復y的向量表示hy;
上下文編碼器由GRU構成,將上下文中每一個句子的句子向量按順序作為輸入,計算得到關于對話上下文的歷史向量ln;具體計算公式如下:
其中表示GRU構成的上下文編碼器,h1,h2,…,hn表示輸入的句子向量,n為輸入句子向量的個數,為上下文編碼器得到的n個潛在向量,將上下文編碼器最后的潛在向量ln作為關于對話上下文的歷史向量;
(2)構建主旨提取模塊:
主旨提取模塊利用基于vMF分布的識別/先驗recognition/prior網絡得到全局結構信息潛在表示z并利用靜態注意力機制提煉出一個能夠代表回復中心思想的主旨表示csta;主旨提取模塊由基于vMF分布的識別/先驗網絡和靜態注意力機制組成;具體包括以下步驟:
首先,利用基于vMF分布的識別/先驗網絡采樣得到關于上下文的全局結構信息的潛在表示z;vMF分布即von?Mises-Fisher分布,用于表示單位球面上的概率分布,其密度函數如下:
上述公式中,d表示空間的維度,z表示d維的單元隨機向量;表示單位球面上的方向向量,||μ||=1;κ≥0表示濃度參數;Iρ表示ρ階的修正Bessel函數,其中ρ=d/2-1;上述分布指出了單位向量在球面上的分布情況;
全局結構信息的潛在表示z,根據如下公式進行采樣:
其中,ω∈[-1,1];
利用基于vMF分布的識別/先驗網絡的損失函數表示如下:
由上述公式可知,損失中包含兩個分布,qφ(z|x,y)為后驗分布用于表示識別網絡,具體表示為qφ(z|x,y)=vMF(μre,kre);pθ(z|x)為先驗分布用于表示先驗網絡,具體表示為pθ(z|x)=vMF(μprior,kprior);KL(qφ(z|x,y)||pθ(z|x))用于計算識別網絡和先驗網絡之間的KL散度;其中kre,kprior為常量,μre是后驗分布的參數,μprior是先驗分布的參數,具體計算如下:
其中fre(·)和fprior(·)是兩個線性函數,||·||用于確保正則化;
其次,利用靜態注意力機制得到關于回復中心思想的主旨表示csta;
在通過基于vMF分布的識別/先驗網絡采樣得到全局結構信息的潛在表示z后,利用z與作為靜態注意力機制的輸入得到權重α,計算如下:
α=spftmax(e)??????(15)
其中,vsta,Wl,Wz,bsta是待學習的參數,α=(α1,α2,…,αn)是通過softmax函數計算得到的關于的權重,它衡量了每個句子對于中心思想所做的貢獻;
通過以下公式計算主旨表示csta:
csta=∑iαihi??????(16);
(3)構建回復生成模塊:
基于主旨的回復生成模塊利用了動態注意力機制;該模塊中的解碼器以歷史向量ln、全局結構信息潛在表示z和主旨表示csta作為初始潛在狀態,最終生成語義相關且多樣性的回復;
具體步驟如下:
首先利用動態注意力機制在每個時間步t學習上下文向量目的是選擇解碼器在生成下一個單詞yt時應該關注的信息;在每個時間步t,解碼器都會處理前一個單詞的嵌入,并產生解碼器狀態st,用于確定上下文向量
利用st與h′i作為動態注意力機制的輸入得到βt,計算如下:
βt=softmax(dt)??????(18)
其中,h′i表示整個上下文中第i個詞的潛在向量;βt表示在第t時間步由softmax函數得到的動態注意力分布;vdyn,Wh′,Ws,bdyn是待學習的參數;計算如下:
表示在時間t學習到的上下文向量;
其次,將主旨表示csta、上下文向量和解碼器狀態st結合在一起,最終計算得到詞表分布pvocab:
V′,V,b,b′都是待學習的參數,Pvocab是整個詞表的概率分布,該概率分布用于學習回復中生成單詞的概率pvocab(yt);最終回復的生成概率如下:
上述解碼過程中的損失函數表示如下:
表示重構誤差;
整個過程的損失函數表示:
2.根據權利要求1所述一種基于靜態-動態注意力變分網絡的對話生成方法,其特征在于,步驟(1)中為得到訓練語料包括以下步驟:
(101)規范對話長度,保留原始訓練語料中對話長度為2-10輪的對話;
(102)將(101)中得到的對話中最后一句視為回復,其余句子視為上下文。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于天津大學,未經天津大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911250610.6/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種網頁搜索方法及裝置
- 下一篇:一種女性陰道殺菌結構





