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