Knowledge-Aware Graph-Enhanced GPT-2 for Dialogue State Tracking论文笔记
Knowledge-Aware Graph-Enhanced GPT-2 for Dialogue State Tracking
本文是英國英國劍橋大學工程系發表在EMNLP2021上面的論文
用于對話狀態追蹤的知識感知圖形增強GPT-2
Abstract
對話狀態追蹤是對話系統的核心。
重點關注的問題是:
模型架構捕獲的是序列生成對話狀態時容易丟失的跨域下不同的域槽的關系和依賴。
目前生成DST中很好的基線GPT-2中存在一個問題,雖然GPT2可以做槽值預測的任務,但是由于其因果建模的情況,后面預測的槽值依賴于先前的槽值,但是當后面的槽值先被預測出來就不能推斷出之前的槽值了,這樣就會導致性能下降。
模型結構流程:使用Graph Attention NetWork得到的表示來增強GPT-2。允許模型對槽值進行因果順序的判斷
結果:報告了MUZ2.0中的性能,同時證明了圖模型在DST 中確實能起到作用,
Introduction
本篇論文研究的是對話狀態追蹤的兩個點:
(1)使用原自GAT編碼的對話行為表示去增強GPT2,從而允許因果、順序預測槽值,同時顯示的建立 跨域的槽和值之間的關系
(2)使用GAT改進跨域槽共享值得預測。同時研究了弱監督的DST的訓練方式。
提出一篇論文中提到的預定義域槽之間的存在三種類型的關系:
(1)共享相同候選槽值集的域槽
(2)域槽的候選槽值集是另一個域槽候選曹植集的子集。
(3)不同的域槽的槽值之間存在著相關性。
根據用戶要定義的酒店的星級,可以確定價格的范圍
以往的研究者們探索過使用GNN來捕獲域槽和槽值之間的關系(但是沒有深入的探索GNN如何利用他們之間的關系,即沒有很好的分析GAT網絡如何促進DST 的性能)
本文非常深入的分析了 GAT如何在GPT-2的非常優秀的基線上進行改進。
因為GPT2的因果建模,導致槽值生成時會產生先生成后面的槽值,這樣會導致前面正確的槽值生成不出來,這就是GPT2在生成槽值上的限制,我們使用GAT使得GPT2提前獲得域槽之間的關系,也就可以提前推理到生成槽值之間的因果順序關系,生成時就不容易出錯了。
模型如果可以提前捕獲跨域槽值之間的關系,就不需要想MUZ數據集那樣給每一回合的對話都詳細的注釋對話狀態,只需要給一整輪對話注釋對話狀態,同時我們可以采用生成摘要對話狀態的方式,這就使得我們訓練數據的注釋減少了很多,即弱監督訓練。
此處論文也提到了,如果我們只使用一整輪的(會話級別)的注釋來訓練仍可以達到DST 的可接受的性能,那么創建DST 數據集將更加輕松,但是我們目前做的實驗只是去利用數據集當中最后一回合的對話狀態注釋當做會話級別的注釋來訓練。
論文總體來說做出的貢獻:
(1)提出一個混合架GAT結合GPT2,同時模型架構在弱監督的數據集中,模型的性能依舊穩健
(2)使用GAT解決GPT2中的因果推理的限制,解決DST的性能原因,論文中證明了GPT-2的因果推理生成槽值會影響DST的性能
(3)論文研究了模型如何捕捉域槽之間的關系 ,并分析了圖改進互相依賴的曹植的域槽
模型雖然使用GPT優化了DST 的性能,同時還著重分析了模型是否改進了域槽值得預測
Graph Neural Networks
本文使用的是GAT網絡
將每一輪對話的加權無向圖公式如上
其中V是節點集,包含N個節點{vi},
表示的是邊的集合,所有節點和節點之間連的邊的集合。
表示的是N*N的二元對稱鄰接矩陣S
S中的每個位置的只有兩個數1,或者0。1代表第i個節點和第j個節點之間有邊,0表示的則相反。
每一個節點vi都有一個特征,F指的是特征長度。將這些所有節點的特征組成一個維度為N * F的矩陣大X
表示將每個圖節點的特征傳遞給他的鄰居節點
相當于與鄰居進行K輪特征交換
對于GAT的每一層的輸入是大X矩陣,維度是N * F。
上圖是經過一GAT層之后的輸出公式。
每一個GAT層使用的都是多頭注意力機制,以上述這種方式使得每個節點有選擇性的聚合鄰居信息
論文中每個初試節點需要聚合鄰居節點信息共L次,即一共有L層的GAT
Dialogue State Tracking with GPT-2 and Graph Neural Networks
論文中作者使用三個步驟,將GAT與GPY2融合在一起。
(1)使用GPT2編碼對話歷史和預定義實體當中所有的域槽和值
(2)將編碼后的域槽和值的嵌入輸入到GAT當中,讓GAT經過幾層的嵌入聚合
(3)將GAT更新后的嵌入輸入到解碼GPT2中
論文中的工作流程
①使用GPT2對對話歷史和預定義實體中的所有域槽和域槽值進行編碼,得到每個域槽和槽值的嵌入,NOTE:這里的域槽和槽值的嵌入包含了對話歷史上下文的信息。
②得到域槽和槽值的嵌入之后傳遞到圖注意力網絡中,用于特征的聚合和信息交換,同時論文的實驗中采用兩種類型的圖結構。
③將更新后的域槽特征被輸入到相應的槽的因果生成中。紅色標記是模型輸入,帶有藍色的是生成的輸出
Domain-Slot and Value Embedding
首先抽取預定義實體中所有的域槽和槽值的特征。
上述為對話歷史的表示
上述為預定義實體當中的所有域槽槽值的連接表示,表示為F。F中包含了所有的域槽值,域槽和槽值的順序確定,不隨每個樣本的變化而變化。
同時每個域槽錢都有一個簡短的文本描述,作用為了GPT-2生成功能提供上下文。
在編碼對話歷史和域槽槽值時中間采用特殊token連接。輸出域槽時,為了融入GAT輸出的更新后的域槽嵌入,可以從輸入時相應的位置處找到。
使用GPT2單獨編碼槽值,當槽值中包含多個詞,將每個詞的嵌入相加求平均。
編碼所有的域槽之后的組成的矩陣
編碼所有的槽值之后組成的矩陣
Nv和Ns分別指的是槽值的數量和域槽的數量
Inter-slot Information Exchange
域槽間信息交換
論文使用GAT捕捉域槽之間的信息,采用以下兩種圖結構:
每一個域槽作為圖結構中的一個節點,每個節點之間都有連接(全連接)
域槽和槽值分別都作為圖結構中的節點,將域槽和包含的槽值之間進行連接。
論文使用GAT 對圖中的每個節點信息進行更新
節點中的初始信息是由模型流程中的第一步抽取的嵌入。
經過GAT的操作過后,我們只使用域槽的嵌入如下:
Dialog State Prediction
在對話狀態的生成中,我們先只輸入對話歷史和到GPT2中
之后GPT2再生成出對話狀態的序列Yt如下:
訓練模型生成每個域槽名和其相關的槽值,中間的是分割域槽值的特殊標簽。
(這里生成的對話狀態對所有的預定義實體中的域槽進行槽值填充,此時即有些域槽的槽值會為None)
在生成對話狀態的時候,模型從來沒有少預測一個域槽,可以證明GPT-2的結構化生成能力。
Decoding
在解碼生成的過程中,我們要使用到GAT更新后的域槽嵌入
上述表示的是第i個域槽的GAT嵌入。
解碼時按照輸入時的順序,一個一個給域槽填充曹植,比如當給第i個域槽填充曹植時,先輸入第i個域槽的簡單文本描述到GPT2中,得到嵌入,將其與第i個域槽再GAT中的嵌入信息拼接在一起。
當預測到與域槽無關的分界符號時連接的是全零的向量
Experiments
使用的是MUZ2.0數據集。使用的是Slot ACC、Joint Acc
Train Regimes
兩種訓練方式:
(1)密度監督訓練任務,即每一輪對話話語都有對話狀態的注釋
(2)稀疏監督訓練任務:只使用最后一輪的對話話語的對話狀態作為當前一整輪的對話狀態注釋,訓練模型,之前的對話話語當做對話歷史
其中的GPT2和GAT聯合訓練,
測試評估時,使用的是test正常評估
L指的是GAT圖網絡跟心幾層
P指的是GAT中的多頭注意力機制,有幾頭
K指的是聚合節點信息時跨幾層
Graph_Type指的是論文中提出的兩個圖結構
DST Performeance
可以看到本文提出的SOTA
此實驗的目的是為了檢測模型針對稀疏監督的訓練方式的ACC,可以看到Acc最高。
在此實驗中可以看到即使是在稀疏監督的情況下,GPT-2依然可以將模型維持在很好的性能之下。
可以看到當我們擴大GAT的層數(L)、GAT的多頭數(P)、聚合信息的層數(K)可以更好的捕捉域槽和域槽值之間的關系。
可以看到當L、P不足時,我們可以使用DSV圖結構和增加聚合信息層數,增加acc
有了足夠多的 GAT 層,DSGraph 可以彌補顯式值節點和匹配的不足,有時甚至優于 DSVGraph 的性能,但這是以增加建模復雜性為代價的
GATs captureinter-slotdependencies
此實驗展示了多種模型在不同種域槽的精讀展示。當引入不同的GAT 時曹準確率不同程度的上升
GATs improve the predictions at intermediate dialogue turns
展示了在使用最后一輪對話狀態的注釋數據訓練的模型,當對話輪數的增多時,準確率在不斷下降。
總結
以上是生活随笔為你收集整理的Knowledge-Aware Graph-Enhanced GPT-2 for Dialogue State Tracking论文笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cesium获取坐标及高程
- 下一篇: 你需要来自trustedinstalle