实录 | DSTC 8“基于Schema的对话状态追踪”竞赛冠军方案解读
本文將回顧平安人壽近期在 PaperWeekly 直播間進行的主題為「DSTC 8“基于 Schema 的對話狀態追蹤”競賽冠軍方案解讀」的技術分享,由平安人壽 AI 團隊高級算法工程師馬躍老師主講。
在 2019 年第八屆對話系統挑戰賽(DSTC 8)中,平安人壽 AI 團隊斬獲包括 “Track4:基于 Schema 的對話狀態追蹤”在內的三項賽事世界第一,并受邀在 AAAI 2020 workshop 發表論文。
在該賽事中,平安人壽 AI 團隊提出了一個對話狀態追蹤框架 PA-DST,基于閱讀理解模型和 Wide & Deep 模型、綜合深度語義特征、特征工程和數據增強等技術,完成多領域的對話狀態追蹤。
本期直播視頻回放:
https://www.bilibili.com/video/BV1ha4y1Y7x1
?
以下是該方案的技術細節詳解。
比賽介紹
?
對話系統挑戰賽 DSTC 由微軟、卡內基梅隆大學的科學家于 2013 年發起,旨在帶動學術與工業界在對話技術上的提升,在對話領域具有極高的權威性和知名度,迄今已舉辦了 8 屆。比賽結合時下最前沿、最具挑戰性的對話系統技術問題設置比賽任務,本屆比賽吸引了全球超百支來自知名企業、頂尖大學及研究機構的代表隊伍參與。
▲?圖1 :?平安人壽AI團隊斬獲DSTC 8?Track4賽事冠軍
?
平安人壽 AI 團隊在 DSTC 8 中斬獲“基于 Schema 的對話狀態追蹤”、“端到端的問答預測”以及“面向多領域端到端對話系統”三項賽事世界第一。
本次分享賽題為“基于 Schema 的對話狀態追蹤”,該賽題任務為跨領域的多輪對話狀態追蹤,包括對 Zero-shot 領域的對話追蹤任務。為此,團隊創新性提出了端到端對話狀態追蹤框架,融合學術前沿深度模型和工業的特征工程來解決對話狀態追蹤問題。
?
1.1 背景簡介
對話狀態追蹤(Dialogue State Tracking, DST)是人機對話領域的一個重要問題,其目的是識別當前時刻用戶的對話狀態(意圖和槽位填充信息),其結果作為對話系統的動作生成依據。當前 DST 的核心難點在于跨領域的狀態繼承和 Zero-shot 領域的 DST 任務。此次 DSTC 8 “基于 Schema 的對話狀態追蹤”任務也是基于此背景提出。
?
1.2 任務介紹
本次任務圍繞多領域人機交互的 DST 進行,提出的模型需要對每一個用戶輪次的用戶狀態進行預測,準確識別領域中每個槽位填充的具體信息。該任務對每一個領域服務均給出了一個 Schema,通過這個 Schema 完成意圖和槽位的定義。以 Travel 為例,具體定義如下:
a)領域描述:一句自然語言描述當前領域,如 The biggest database of tourist attractions and points of interest
b)意圖集合,以 FindAttractions 意圖為例,有:
意圖名稱:FindAttractions
意圖描述:一句自然語言描述當前意圖,如:Browse attractions in a given city
必須填充的槽位集合:完成這個意圖必須填充的槽位
可選槽位集合:非必須填充槽位
c)槽位集合,對于每一個槽位,有以下信息:
槽位名稱,如 number_of_person
槽位描述:一句自然語言描述當前槽位,如:Number of people to find tickets for
是否可枚舉:不可枚舉槽位的取值為對話上下文的片段;可枚舉槽位的取值只能為 Possible_values 中的一個
Possible_values:如果為可枚舉槽,則有一個預定義好的槽值集合,如 [1,2,3,..,9];如果為不可枚舉槽,則無該字段。
通過上述的信息,完成了對服務的定義。在每一個用戶的輪次,模型在指定的領域內,需要預測的具體內容如下:
已知的所有必須填充槽位的槽值
如果為不可枚舉槽位,且槽值位于當前用戶的表達內容中,還需要給出槽值在用戶表達中的具體起止位置信息
?
1.3 比賽挑戰
本次任務的難度較大,一方面,多領域人機對話中,不同領域的槽位是有繼承性的,如地點槽位(如:機票預訂的目的地和賓館的城市);另一方面,需要考慮對 Zero-shot 服務的遷移性,在測試中,會出現大量全新的領域,他們在訓練集中沒有對應的訓練數據。
綜合這兩個方面,模型需要擺脫傳統 DST 中所有槽位都是預設好的限制,從繼承性和遷移性兩個方面進行全新設計。
?
解決方案介紹
2.1 可枚舉槽位 vs. 不可枚舉槽位
對于可枚舉槽位,因為它是使用了原文的一個對話片段來作為槽值,并且在數據中能夠直接獲取當前槽值在原文中的位置信息,我們使用了閱讀理解的模型(MRC-DST)來解決這類問題。
?
對于不可枚舉槽位,由于它的槽值不是原文中的一個直接片段,而是需要經過語義理解和歸一化得到,因此無法使用閱讀理解模型來解決。針對這類槽位,我們使用分類模型來進行建模,利用大規模預訓練模型來建立深度語義表示,同時,利用規則、正則之類的輔助方法抽取出語義離散特征。
綜合深度和離散兩類特征,建立了一個 Wide & Deep 的分類模型(WD-DST)來解決這類槽位的追蹤問題。
?
整體建模思路如圖2。
?
▲ 圖2 :?整體結構
?
2.2 MRC-DST
模型結構如圖3所示。
▲ 圖3 :?MRC-DST模型結構,包括兩部分輸入,對話歷史上下文信息和問題(槽位描述)
?
模型的輸入包括兩部分:
?
第一部分為整個對話的上下文信息,對于不同角色的表達,我們使用了 User 和 System 標簽來區分,分別加在每個角色表達的內容頭部,再進行拼接,得到整個對話歷史 S;
?
第二部分為需要預測的槽位的描述 D,即 Schema 中提供的槽位自然語言描述。因為在開發集、測試集中,會存在一些 Zero-shot 的領域和槽位,如果只使用槽位名字來作為輸入,那么整個模型的通用能力就會下降,因為可以互相繼承的槽位他們取名之間的關聯性并不大。
例如在機票預訂服務中,關于人數的槽位被命名為 number_of_ticket,而在火車票預訂中,表示人數的槽位則被命名為 number_of_seat,只有通過更加詳細的解釋,才能夠確定他們是表達同一個意思的槽位,在多領域交叉進行交互的時候,才能被繼承。
在一般的 MRC 解決方案中,輸入的問題常常是問句形式存在的,但在狀態追蹤任務上,我們使用了槽位的描述來替代傳統 MRC 中的“問題”,省去了構造傳統問題的步驟。
參考 BERT-like 模型的拼接方式,得到最終的輸入 (注:XLNet 的輸入中 位于末端)。模型的輸出包括兩部分:
第一部分為 Answerable Indicator(槽值存在指示器),其功能是指示當前計算的槽位,是否能在上下文中找到答案片段。因為在交互過程中,并不是每個槽位都會被提及,因此需要設置一個答案指示器 ,來篩選出能夠找到槽值的槽位。
第二部分包括一個答案起止位置向量 和結束位置向量 。如果 Answerable Indicator 指示當前槽位有答案,則進行該部分計算。在兩個向量中,找到概率最大的起止位置,從輸入的對話歷史中截取對應的文本片段作為最終的槽值。
模型的計算過程如下:
模型基于 XLNet 得到的深度語義表示,計算槽值存在指示器和起止位置向量。假設真實的槽值存在性為 ,真實答案片段的起止位置向量為為 和 。使用兩個部分中三個 Loss 共同指導模型訓練:
?
2.3 WD-DST
模型結構如圖4所示
▲ 圖4 : WD-DST模型結構,包括三部分輸入,對話歷史上下文信息、問題(槽位描述)與需要判斷的槽值、離散特征
?
模型包括三部分輸入,第一部分和 MRC-DST 一致;第二部分與 MRC-DST 的輸入有一些差別。在這里除了使用槽位描述之外,還會對拼接上當前需要判斷的槽值;
第三部分為抽取到的離散特征,在這里我們抽取了包括槽值是否在對話歷史中、槽值的同義片段是否在歷史中、用戶表達的語氣、用戶是否表疑問等一系列統計特征來刻畫對話歷史。
模型的目標是判斷當前輸入的槽值,是否正確。最上層使用了一個全連接神經網絡來計算最終的得分。面對一個槽位的多個候選值,我們選取得分最高的一個作為最終槽值。整個模型使用真實的槽值標簽與輸出計算誤差進行訓練,具體的計算過程如下:
2.4 數據增強
一個值得一提的小技巧是數據增強,我們使用了業界的翻譯 API 和文本 API,對可枚舉槽位的槽值內容進行了同義拓展,從而提升了模型和特征工程的泛化性。
例如“演出活動”服務中的“類型”槽位,某一個取值為 Theater,通過數據增強,可以得到如 Drama、Broadway、The stage 等同義表達,只要同義片段被判定為最終答案,即等價于 Theater 為最終答案。
?
2.5 模型拓展與思考
在實驗的過程中,我們也發現了一些有意思的點,這里也列舉出來供參考:
當決策性信息處于上下文末端時(一般為用戶表達的最后一句話提及了槽值信息),MRC 和分類模型都容易預測錯誤。針對這個現象,我們直接將用戶表達的最后一句話復制并拼接在末端的方法來解決,相當于直接把上下文有效內容前置。
數據預處理中,我們使用統一的標簽來替換具有干擾性的信息,如電話號碼。
同一個模型,不同次 Fine-tuning,他們的錯誤 case 不同。針對這個問題,使用最簡單的 Ensemble 想法來解決,使用多個模型投票的策略來確定最終槽值。
?
應用價值
?
基于壽險業務場景需求,平安人壽 AI 團隊重點攻關對話式機器人技術。目前,對話式機器人作為平安人壽智能轉型的利器之一,在客戶服務和代理人賦能兩大業務體系中已大規模落地,覆蓋招聘、培訓、銷售支持、客服等業務場景,并將持續發揮價值。
?
平安人壽 AI 團隊此次參賽所應用到的創新技術,在實際業務場景中,可支持多領域的客服系統、人機對話平臺的對話管理等技術應用,對搭建壽險垂直領域的對話系統起到重要推動作用,能大幅提升對話式機器人的響應效率和服務體驗。
?
參考文獻
[1] Gao et al. "Dialog state tracking: A neural reading comprehension approach." arXiv 2019.
[2] Wu et al. "Transferable Multi-Domain State Generator for Task-Oriented Dialogue Systems" ACL 2019.
[3] Chao and Lane, "BERT-DST: Scalable End-to-End Dialogue State Tracking with Bidirectional Encoder Representations from Transformer", INTERSPEECH 2019.
[4] Cheng et al. "Wide & deep learning for recommender systems", Proceedings of the 1st workshop on deep learning for recommender systems. 2016.
[5] Rastogi et al. "Towards scalable multi-domain conversational agents: The schema-guided dialogue dataset." arXiv 2019.
[6] Zhang et al. "Find or classify? dual strategy for slot-value predictions on multi-domain dialog state tracking." arXiv 2019.
[7] Ma et al. "An end-to-end dialogue state tracking system with machine reading comprehension and wide & deep classification." AAAI 2020 DSCT 8 Workshop.
更多閱讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的实录 | DSTC 8“基于Schema的对话状态追踪”竞赛冠军方案解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 淮安金湖县哪里能买到正宗的茶馓?
- 下一篇: ACL 2020 | 知识库问答的多跳复