麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種融合知識和情緒原因語境圖的共情對話生成方法

文檔序號:41754270發布日期:2025-04-29 18:22閱讀:4來源:國知局
一種融合知識和情緒原因語境圖的共情對話生成方法

本發明涉及信息處理,尤其涉及一種融合知識和情緒原因語境圖的共情對話生成方法。


背景技術:

1、在人機交互過程中,情緒的理解和表達尤為關鍵,共情對話系統作為開放域對話生成的一個重要研究方向,通過理解用戶的說話語境及情緒,以生成具有恰當內容和情緒的回復,從而與用戶產生情緒共鳴,以提升人機對話的自然度和互動性。共情對話生成技術不僅在學術上對于nlp的其他生成領域的發展起到了推動作用,在實際應用中,特別是教育和醫療領域,也展現出了獨特的應用價值。

2、現有方法大多從情緒理解和響應策略的優化兩個方向來改進共情反應的生成。在情緒理解方面,為了準確預測說話者的情緒狀態并據此生成合適的響應,研究者們提出了不同的方法。li等人提出了一種多分辨率的互動式共情對話生成模型empdg,通過使用外部情緒詞典和情緒分類器,為輸入序列創建了粗粒度和細粒度的情緒表示,通過層次化建模增強對上下文信息和多樣化情感的捕捉。majumder等人在mime模型中采用情感模擬機制,通過模仿對話者情感的方式來改善生成反應中的共情表達,同時結合情感權重動態調整生成的對話情感表達強度。在響應策略方面,shin等人提出”前瞻性情感預測”機制,預測用戶后續可能的情感狀態來建模共情反應,強調在對話過程中不僅要關注當前情感,還需展望潛在情感變化。并通過多任務學習、強化學習等方法優化共情反應模型,該模型在情緒層面模擬了對用戶體驗的反應,在認知層面深入理解了用戶的隱含感受。zhong等人則使用外部知識庫和transformer模型進行情緒識別,通過引入外部知識提高對復雜情感表達的理解能力,顯示出了知識在情緒理解中的重要作用。

3、現有的共情對話生成方法主要存在以下三個缺陷:

4、首先,多輪對話信息處理不足。傳統方法只是簡單地將每個話語與其固定數量的臨近話語連接起來構建一個圖,如empdg依賴對話歷史的拼接,在整合多輪對話的上下文信息時存在局限性,無法有效捕獲遠程上下文信息,導致生成的回復缺乏連貫性和深度。

5、其次,難以有效識別說話人表達的內容。目前的方法由于沒有深入理解對話的語境、社會知識等信息,如mime模型只關注于模仿用戶情緒,無法準確識別用戶通過隱喻、暗示等方式表達的內容,尤其是在涉及隱性情緒或復雜意圖時性能較差。

6、最后,情緒原因識別不夠精準?,F有研究往往側重于使用情緒的表層信息,例如“前瞻性情感預測”機制過于依賴情緒標簽,而忽視了情緒產生的具體原因,使得生成的回復在內容相關性上存在不足。


技術實現思路

1、本發明要解決的技術問題是針對上述現有技術的不足,提供一種融合知識和情緒原因語境圖的共情對話生成方法,通過引入情緒原因語境圖來有效解決多輪對話中的語境信息整合問題,通過引入知識庫中的背景知識結合情緒原因語境圖來提升系統對隱含表達情緒和意圖的理解能力,最終全面提升對話系統對用戶情緒的理解深度。通過情緒和原因的共同建模,讓系統更加明確地理解用戶的情緒來源,從而生成更具有針對性和人性化的共情響應。

2、為解決上述技術問題,本發明所采取的技術方案是:

3、一種融合知識和情緒原因語境圖的共情對話生成方法,提出融合知識和情緒原因語境圖的共情對話生成模型,該模型包括話語編碼、融合知識的對話語境圖、知識增強的kdcg網絡、情緒分類、情緒原因識別以及回復生成六個模塊;具體方法為:

4、步驟1:對數據集進行預處理,包括數據清洗和過濾、文本預處理、情緒類別編碼、控制標記引入;

5、步驟2:話語編碼;采用兩種嵌入方式對數據集中的語句進行詞嵌入,第一種方式利用預訓練的glove詞向量生成文本嵌入etext,捕捉話語的語義信息,第二種方式通過位置嵌入epos標識話語在對話中的位置,提供對話結構的位置信息;兩種嵌入相加后形成綜合話語嵌入表示,并將其輸入transformer編碼器,生成更高層次的話語編碼表示;

6、步驟3:知識獲取與知識編碼;從外部知識庫中獲取與對話內容相關的知識并對其進行編碼,以便后續與對話上下文進行有機結合;

7、步驟4:對話語境圖構建;根據對話和對應的說話人身份信息構建對話語境圖dcg,將對話表示為一個有向無環圖dag,保證每個話語節點僅接收來自特定先前話語的信息,進而避免信息通過任何路徑回傳至自身或其前序節點;

8、步驟5:構建融合知識的對話語境圖kdcg,用于將從話語中提取的知識融合到對話語境圖中;kdcg包括三部分,即話語節點集合v、話語互動的鄰接矩陣ac和話語間知識傳遞的鄰接矩陣ak,即g=(v,ac,ak);

9、步驟6:根據構建的對話語境圖kdcg進行知識融合;

10、步驟7:情緒分類;訓練情緒分類器,用于準確捕捉和響應用戶的情緒狀態,根據對話中最后一句話的上下文話語表示hlast產生情緒類別分布,并通過argmax函數選擇具有最大概率的情緒類別作為最終的預測情緒類別在訓練過程中通過最小化預測的情緒類別分布pemo和實際情緒標簽e*之間的交叉熵損失來優化情緒分類準確率,計算過程如公式(17)至公式(19)所示;

11、pemo=softmax(wehlast+be)??(17)

12、

13、lemo=-log(pemo(e*))????(19)

14、其中,softmax(·)為歸一化函數,we和be分別表示權重參數矩陣和偏置向量,lemo為情緒分類任務的損失函數;

15、步驟8:情緒原因識別;將情緒原因識別問題作為一個序列標記任務,目標是預測輸入對話序列中的每個單詞是否為引發說話人情緒的原因,即對每個單詞進行{0,1}二元標注;采用半監督方法,結合小規模已標記的數據和大規模未標記的數據進行訓練;

16、步驟9:回復生成;為了利用對話歷史、知識選擇和說話者情緒原因信息,使用gpt-2模型生成長度為m的目標回復y=[y1,y2,...ym],計算過程如公式(28)所示;

17、

18、其中,e0:t-1表示已生成的單詞序列的嵌入表示,h為知識增強的上下文信息表示,為預測的情緒類別,為整個輸入序列的情緒原因預測概率分布,y0:t-1為已生成的單詞序列,p(yt|y0:t-1)表示在已生成y0:t-1的條件下生成的第t個單詞yt的條件概率分布。

19、進一步地,所述步驟1中的預處理具體如下:

20、數據清洗和過濾:對數據集進行全面清洗,移除不完整或格式有誤的樣本,確保數據質量和一致性,減少訓練噪聲;

21、文本預處理:對每組對話文本進行標點符號替換、大小寫轉換和分詞處理,優化文本格式,標準化輸入數據;

22、情緒類別編碼:對情緒類別進行數值化編碼,將其映射為相應的數值表示,用于模型學習和預測;

23、控制標記引入:引入控制標記[unk]、[pad]、[sos]、[eos]、[usr]、[sys]、[cls],并分配唯一索引值;其中,[unk]表示未知詞匯,[pad]用于填充序列長度,[sos]和[eos]分別標記對話開始和結束,[usr]和[sys]區分用戶與系統發言,[cls]表示整個對話的綜合語義表示。

24、進一步地,所述步驟2中,兩種嵌入方式的計算公式分別如下:

25、etext(wm)=eglove(wm),m=1,2,…,t????????????(1)

26、epos(p)=posembed(p)????(2)

27、其中,wm表示對話中的第m個單詞,t為整個對話包含的單詞數量,eglove(wm)表示使用glove詞向量對wm進行詞嵌入,etext(wm)是wm嵌入后的文本表示;p表示話語在對話中的位置,posembed(p)表示對p進行位置嵌入,epos(p)是p嵌入后的位置表示;

28、所述生成更高層次的話語編碼表示h0,計算過程如下所示:

29、e=etext(wm)+epos(p)????????????(3)

30、h0=trsenc(e)?????????????????(4)

31、其中,e為兩種嵌入表示的求和結果,trsenc(·)表示使用transformer編碼器進行編碼操作。

32、進一步地,所述步驟3中,從外部知識庫中獲取與對話內容相關的知識具體方法如下:

33、選擇大規模常識知識庫atomic-2020作為外部知識源,使用預訓練常識推理模型comet的bart版本,分別根據5種關鍵常識關系xintent、xeffect、xreact、oeffect和oreact對常識知識進行推理,獲得常識特征序列分別表示對話中第i條話語ui根據特定常識關系進行推理得到的常識知識特征,其中i=1,2,…,n;n為整個對話包含的話語數量;5種關鍵常識關系中,xintent表示說話人的意圖,xeffect和oeffect分別表示在一次講話后對說話人自己和其他說話人的影響,xreact和oreact分別表示說話人和其他說話人在講話后的感受;

34、所述步驟3中,知識編碼的具體方法如下:

35、使用comet模型對輸入序列中的每一句話進行常識推理;針對每種關系r∈{xintent,xeffect,oeffect,xreact,oreact},生成5個常識推論和并將其連接起來獲得常識序列按照關系類型將這些知識分為認知狀態知識和情緒狀態知識;認知狀態知識是說話人和其他人的意圖和行為產生的影響,使用的關系類型為r1∈{xintent,xeffect,oeffect};情緒狀態知識是說話人和其他人的情緒反應,使用的關系類型為r2∈{xreact,oreact};設計兩個編碼器:認知編碼器enccog和情緒編碼器encaff,用于整合兩類知識;認知編碼器處理認知狀態知識,在常識序列的開頭添加特殊令牌[cls],并使用[cls]的最終隱藏狀態來代表整個序列的語義信息情緒編碼器處理情緒狀態知識,使用詞匯隱藏狀態的平均值來獲得情緒序列的表示具體計算過程如公式(5)至公式(8)所示;

36、

37、其中,hc和he分別為認知狀態知識序列和情緒狀態知識序列的編碼表示。

38、進一步地,所述步驟4的具體方法為:

39、輸入所有話語節點的集合v={v1,v2,...,vn}和說話人身份索引函數p(·),vi是第i條話語ui對應的圖節點,i=2,3,…,n;初始化邊集合關系類型集合r={0,1},其中l表示連接的節點屬于同一說話人,0表示不同說話人;

40、從第二個話語節點v2開始,依次遍歷每個節點vi;

41、對于當前節點vi,檢查其所有前序節點vτ,即從τ=i-1開始,逐步減少τ的值,直至τ=0;如果vi和vτ的說話人相同,即p(vτ)=p(vi),則在邊集合ε中添加一條邊(τ,i,1);如果vi和vτ的說話人不同,則添加一條邊(τ,i,0);

42、重復上述步驟,直至所有話語節點都遍歷完畢;

43、最后,輸出對話語境圖dcg的完整結構g=(v,ε,r)。

44、進一步地,所述步驟5中,話語節點集合v中的每個節點vi包括一個屬性e,用于存儲該話語表示;

45、話語互動的鄰接矩陣ac包括兩個屬性:flag和type;flag存儲0或1,用于標識邊是否存在;對于節點vi和vj,如果vi到vj之間有一條邊存在,則ac[i,j].flag=1,否則ac[i,j].flag=0;type存儲邊的關系類型,如果節點vi和vj的說話人身份pi和pj相同,則ac[i,j].type=ssi,否則ac[i,j].type=dsi;其中,ssi表示同一說話人信息傳遞,dsi表示不同說話人信息傳遞;

46、話語間知識傳遞的鄰接矩陣ak包括兩個屬性:flag和kno;矩陣ak的flag屬性與矩陣ac的flag屬性相同,用于標識邊的存在與否;kno用于存儲與邊相關聯的具體知識信息,即

47、根據說話人身份來來制定知識選擇策略,用于保持對話中的知識傳遞與說話者的互動的一致性:如果當前話語與其前一話語的說話人身份pi與pj相同,則選擇該說話人的意圖、影響和反應的知識,即xintent、xeffect和xreact;否則選擇其他人的影響和反應的知識,即oeffect和oreact。

48、進一步地,所述步驟6的具體方法為:

49、對于目標話語節點vi,計算其與同一層中相鄰節點vj的邊緣權重αi,j,計算過程如公式(9)所示;

50、

51、其中,是話語節點vi在kdcg第l-1層的節點表示,是話語節點vj在kdcg第l層的節點表示,和為可學習的參數矩陣,ni表示話語節點vi的相鄰節點集合,是話語節點vi對應的常識知識編碼表示,根據知識選擇策略決定是認知序列編碼表示還是認知序列編碼表示

52、根據計算得到的邊緣權重,從相鄰節點聚合上下文信息和知識信息,計算過程如公式(10)和公式(11)所示;

53、

54、其中,為可學習的參數矩陣,coni和klgi分別為節點的上下文信息聚合結果和知識信息聚合結果;

55、使用節點單元grun和上下文單元gruc來捕獲節點的當前狀態和上下文信息,計算過程如公式(12)和公式(13)所示;

56、

57、其中,nodi和ctxi分別為更新后的節點vi的當前狀態和上下文狀態;

58、然后,使用語境知識單元gruk和自循環知識單元grus來獲取與知識相關的豐富信息,計算過程如公式(14)和公式(15)所示;

59、

60、其中,ckgi和skgi分別為更新后的節點vi的語境知識狀態和自循環知識狀態,ki,i為節點vi與自身相關的知識信息;

61、最后,對四種類型的信息進行求和,更新每一層中vi的話語節點表示,計算過程如公式(16)所示;

62、

63、進一步地,所述步驟8中,對于已標記的數據,通過transformer編碼器獲得輸入序列x的上下文編碼表示h,并通過前饋神經網絡獲得整個輸入序列的情緒原因預測概率分布計算過程如公式(20)至公式(22)所示;

64、h=enc(x)????(20)

65、

66、其中,enc(·)表示使用transformer編碼器進行編碼操作,wc和bc為可學習參數,表示每個單詞為情緒原因的預測概率,cl表示每個單詞為情緒原因的真實概率,l1為情緒原因識別任務的損失函數;

67、對于未標記的數據,根據給定的輸入序列x=(x1,x2,…,xt)在情緒分類任務中的注意力權重分布來選擇權重最高的前k個單詞作為輸入序列的情緒原因,進而為未標記的數據自動構建情緒原因標簽,計算過程如下:

68、attcause=softmax(score(x))??????????(23)

69、icause=topk(x,attcause)?????????????(24)

70、

71、其中,score(·)表示每個單詞對情緒分類的貢獻得分,attcause表示輸入序列在情緒分類任務中的注意力權重分布,topk(·)表示選擇出權重最高的前k個單詞,icause為權重最高的前k個單詞的集合,label(·)表示每個單詞的情緒原因標簽;后續計算過程同(20)至公式(21);

72、此外,為更好地優化情緒原因識別效果,引入一個輔助損失函數l2,通過計算attcause與的內積來進行正則化約束,并綜合多個損失項來構造情緒原因分類任務的整體損失函數lece,計算過程如下:

73、

74、lece=λ1l1+λ2l2+λ3lemo??????(27)

75、其中,表示序列中各個單詞是情緒原因的概率分布,λ1、λ2和λ3表示每個損失項的權重參數。

76、進一步地,所述步驟9中,為了提高gpt-2模型在生成回復時對情緒原因因素的關注程度,在微調階段引入基于情緒原因的偏置自注意力機制,即在現有的gpt-2架構上引入基于情緒原因的乘法信號,而不增加任何額外的參數;根據深度神經網絡學習過程具有的層次性特點,設計一種動態的調整權重策略:在模型的前幾層,情緒原因因素的權重低,以確保句子結構的合理性;隨著層數的增加,情緒原因因素的權重逐漸提升,以確保模型在生成回復時能綜合考慮情緒因素;計算過程如公式(29)至公式(31)所示;

77、

78、baisedattention(q,k,v)=biasedweight(q,k)v(31)

79、其中,q=hwq,k=hwk,v=hwv,q、k和v分別為由文本編碼表示h經過不同的線性變換得到的查詢向量、鍵向量和值向量,dk表示向量維度,wq、wk和wv為變換矩陣,me為情緒原因偏置矩陣,λ為超參數,i為單位矩陣,zi∈{1,2,...,z}表示自注意力層的序號,maskedweight(·)表示經過掩碼處理的注意力權重分布,biasedweight(·)表示經過情緒原因偏置調整后的自注意力權重,normalize(·)表示按行歸一化函數,baisedattention(·)表示引入情緒原因偏置后的最終注意力計算結果。

80、采用上述技術方案所產生的有益效果在于:本發明提供的融合知識和情緒原因語境圖的共情對話生成方法,提出基于有向無環圖的對話語境建模方法,用于解決多輪對話語境信息的處理與整合不恰當的問題:首先,按照說話者的身份和位置關系,將對話中的每個話語與前序話語進行動態連接,根據對話的實際語境靈活構建對話語境圖(dcg);然后,利用圖神經網絡對dcg進行建模,在單層內多次聚合話語信息,有效編碼遠程上下文;最后,引入基于說話者身份信息的知識感知特征和增強歷史上下文信息的上下文信息單元,更加直觀地模擬遠程對話背景與周圍環境之間的信息傳播。

81、本發明提出融合知識的對話語境圖(knowledge?into?dialogue?context?graph,kdcg),用于解決對話中隱性情緒信息和需求難以識別的問題:首先,通過區分說話人和聽者的常識知識,獲取用戶的真實反應、意圖等關鍵信息;然后,引入atomic-2020中的社會常識知識,通過訓練comet模型,推斷超出常識知識圖范圍的文本信息;最后,選擇xintent、xeffect、xreact、oeffect和oreact五種關鍵關系類型的知識來豐富話語的表示,讓系統能夠更好地理解用戶話語中隱含的情感和需求。

82、本發明提出基于序列標注的半監督情緒原因識別方法,用于解決情緒原因被忽視和識別難度大的問題:首先,將情緒原因檢測視為序列標記問題;然后,結合小規模標記數據和大規模未標記數據來聯合建模情緒與原因的依存關系并構建半監督訓練模型;最后,使用訓練后的模型來預測說話者的情緒及其詞級情緒原因,提升情緒原因的識別能力,使生成的對話內容更具針對性和共情性。

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 宁南县| 青浦区| 青田县| 凤阳县| 勃利县| 开鲁县| 正阳县| 中超| 新丰县| 奈曼旗| 全南县| 潞西市| 辽阳县| 洞口县| 岐山县| 包头市| 光泽县| 东兴市| 深水埗区| 桂平市| 万盛区| 堆龙德庆县| 宁都县| 广汉市| 疏附县| 敖汉旗| 景宁| 和顺县| 林甸县| 武平县| 安图县| 鹤岗市| 绥化市| 赤城县| 阳原县| 巴楚县| 玉林市| 获嘉县| 蒙山县| 滁州市| 苏尼特左旗|