日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Chapter7-13_Dialogue State Tracking (as Question Answering)

發布時間:2024/7/5 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Chapter7-13_Dialogue State Tracking (as Question Answering) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 1 什么是Dialogue State Tracking
  • 2 數據集
  • 3 兩個挑戰
  • 4 經典模型

本文為李弘毅老師【Dialogue State Tracking (as Question Answering)】的課程筆記,課程視頻youtube地址,點這里👈(需翻墻)。

下文中用到的圖片均來自于李宏毅老師的PPT,若有侵權,必定刪除。

文章索引:

上篇 - 7-12 Controllable Chatbot

下篇 - 無

總目錄

1 什么是Dialogue State Tracking

Dialogue State Tracking是Task-oriented Dialogue的一個子模塊。先來講一下Task-oriented Dialogue是什么。Task-oriented Dialogue的輸入是用戶當前說的話和歷史的對話記錄,如果用戶的輸入是語音,會有一個額外的ASR模塊將輸入轉成文字,同時也會有一個額外的TTS模塊將輸出轉為語音。用戶的輸入會經過一個理解模塊NLU(Natural language understanding),輸出會交給state tracker,也就是本文的核心內容。state tracker會從當前的輸入中抽取有用的信息,保存下來。同時歷史的輸入都會以相同的形式把有用的信息保存下來。這些存下來的信息會以state的形式交給決策模塊(Policy)。Policy會告訴生成模塊NLG(natural language generation)該輸出什么內容。最后NLG輸出回應用戶的話。

說了一大堆,其實簡單來說Dialogue State Tracking就是上面的state tracker,目標是把用戶說的話簡化為一個有用的信息庫,也可以理解為做了摘要。下圖比較形象地說明了這一過程。這么多的對話,最終變成了key-value的鍵值對。

這些keys是人為事先定義好的內容,而value都是選擇題,也是人為規定好的選項。因為現在的Dialogue State往往有很多的keys,所以key會有domain和slot兩個部分組成,用來區別和歸類不同的keys,方便模型處理,也方面模型的遷移。

總之,Dialogue State Tracking就是根據對話內容,填寫事先設定好的keys的values是什么的問題。

2 數據集

Dialogue State Tracking比較著名的數據集有MultiWOZ 2.0,SGD,CrossWOZ等等。這里的這個WOZ就是取自綠野仙蹤(The Wizard of Oz),綠野仙蹤里最終的大BOSS是一個老頭子在幕后操縱的。這里的數據集也是用人來偽裝成AI和人對話得到的數據,沒錯就是人和人對話,AAI(Artificial Artificial Intelligence)。

3 兩個挑戰

Dialogue State Tracking的values要做成很多個選項是因為之前的方案都把這個當作一個分類問題,輸出的是一個類別,但比如電話號碼,時間等一些難以窮舉的選項,這個方法就行不通了,這是一個挑戰。

另一個挑戰是有新的keys進來,模型就要重新train過,數據也要重新構造過,遷移成本大。

總結一下:

  • 有些value難以窮舉
  • 新的key進來,遷移成本大

這兩個問題,都可以用QA(Question Answering)的方法解決。QA的結構如下圖所示,我們把Dialogue history作為source輸入,然后根據key問出相應的問題讓模型來回答即可。這樣模型回去從source中找一個span作為答案,解決了value難以窮舉的問題。然后針對domain不同,slot相同的問題,改一下問題的domain即可,解決了遷移的問題。當然前提是這個QA模型是ok的。

4 經典模型

Dialogue State Tracking比較經典的模型就是TRADE,其結構如下圖所示。Dialogue會經過一個encoder抽取特征,同時key的domain和slot會分別取embedding,然后加在一起作為question部分的輸入,同時也會和Dialogue的encoder輸出作一個attention。attention的結果會是一個slot gate,決定了是PTR(從對話中抽取一個span),還是DONTCARE(用戶不在乎),還是NONE(還沒提到這個key)。根據這個決定,state generator會輸出最終的結果。

因為key會分別抽取domain和slot的embedding,所以這個方法是可以適用于應的key的,這也意味著是可以解zero-shot的問題的。

有些key會有一些description,抽取這些description的embedding也是解決zero-shot問題的方法。

其他還有一些變形,比如Slot Carryover Prediction認為每說一句話都要把所有的keys問一遍太費時費力了,于是就設計了一個“是否同上”的classifier來幫助避免問一些已經知道且沒有被修改的keys;DST QA認為有些keys之間的values是有關聯的,比如知道了要訂哪家飯店,那么叫的出租車的目的地很可能就是這家飯店,然后設計了一個模塊來解決這個問題;SimpleTOD基于GPT-2設計了一個end-to-end的方法,用戶說一句話,模型輸出一句話,效果出奇地好。

總結

以上是生活随笔為你收集整理的Chapter7-13_Dialogue State Tracking (as Question Answering)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。