[徵文] 對話式AI專欄: Chatbot對話管理篇
年初決定寫個對話式AI專欄,把個人在業界的開發經驗寫下來,到目前為止已經有七篇文
章了,詳述了聊天機器人框架的方方面面;第八篇文章還在拖稿時,碰到Soft Job版徵文
活動,覺得本系列非常契合活動的技術與實務經驗分享宗旨,相關知識也不是隨便就能取
得的,就趁今晚打著夜燈,熬夜把它給寫完了,在此分享給各位業界先進。
【閱讀本文前建議先看】
http://www.lionethan.com/Chatbot的類型與對比/
http://www.lionethan.com/Chatbot的閱讀能力-自然語言理解篇/
【什麼是對話管理】
聊天機器人的對話管理(Dialogue Management)是為了根據目前的對話狀態,決定系統應
該做些什麼。通常分為兩個子模組,負責更新對話狀態的「對話狀態追蹤」(
Dialogue State Tracking),其輸入自然語言理解模組所得到的使用者動作,以及過往的
對話歷史,輸出對話狀態;以及決定系統動作的「對話策略學習」(Dialogue Policy
Learning),其輸入對話狀態,輸出系統動作。上述的「使用者動作、對話狀態、系統動
作」皆可用一個意圖與一組槽位值表示。
【對話狀態追蹤】
目的是透過「使用者動作」及「對話歷史」更新對話狀態,其對話歷史可能隱含著因資訊
不足,經過系統反問使用者後,產生的「多輪對話內容」;有些需求還會參考使用者畫像
(User Profile),以補足必要的「個性化資訊」。透過推理和總結上述內容,轉換成簡
單的對話狀態(一個意圖與一組槽位值),系統可以將當前的對話狀態映射成更完整的表
示(Representation)。為了考慮自然語言的模稜兩可,語音辨識或自然語言理解模組所
產生的失誤,根據可能正確的使用者動作數量,可進一步分成只考慮置信度最高的1-Best
,以及考慮多個使用者動作與置信度的N-Best方法。
【對話策略學習】
目的是透過「對話狀態」決定系統該做些什麼,如果對話狀態的意圖在系統能夠提供的服
務項目之內,系統會檢查槽位值是否齊全,然後使用其內容查詢服務API,以得到關鍵答
案或內容;若對話狀態的意圖不明,或其符合特定服務但槽位值有缺失,系統應該主動向
使用者提問,透過多輪對話及對話狀態追蹤來蒐集足夠的資訊。最後將關鍵答案或內容封
裝到系統動作中,以一個意圖及一組槽位值代表,提供給自然語言生成模組(Natural
Language Generation)。
【對話管理的實作方法】
基於規則( Rule-based )的方法,透過編寫明確的規則,來建立各種槽位狀態下,使用
者動作所對應的系統動作,此種方法無法處理不確定的狀態,且需要手工編寫規則,僅適
合特定領域的簡單場景。
基於有限狀態機(Finite-State Machine, FSM),此種方法又可分為「以點代表槽位狀態
,以邊代表系統動作」,以及「以點代表系統動作,以邊代表槽位狀態」兩種方案;槽位
狀態可分為有或無,系統動作則是詢問槽位或最後回答兩種,為避免置信度過低,也可以
增加動作請使用者二次確認。由於前者在槽位增加時,會使狀態數量急遽增多,只適合資
料驅動的方式;若要以手工建置會建議採用後者。採用有限狀態機的優點在於實作簡單,
且容易理解,缺點是每個狀態和動作都要手工設計,不利於複雜場景。
基於統計(Statistical-based)的方法,通常採用馬可夫鏈(Markov Chain)將對話過
程表示成決策過程,而系統在每個對話狀態中決定下一步動作。採用馬可夫鏈的優點在於
只需要在決策過程中定義槽位狀態與系統動作,就可以自動學習到狀態的移轉關係,也可
在過程中導入強化學習(Reinforcement Learning)與線上學習(Online Learning),缺
點是同樣需要手工設計,不利於複雜場景。
基於深度學習(Deep Learning)的方法,輸入使用者動作及相關特徵,輸出對應的系統
動作,以訓練深度類神經網路模型。基於深度學習的方法需要大量訓練資料才能夠取得效
果,目前實際應用上還難以滿足此須求。
【對話管理的具體流程】
1.自然語言理解模組取得使用者對話「推薦我一家台北的餐廳」,此時會偵測使用者意圖及
識別命名實體,並將結果封裝成使用者動作(意圖=推薦餐廳, 地點=台北),得以將自然
語言映射成簡單的語意表示。
2.對話狀態追蹤模組透過使用者動作(意圖=推薦餐廳, 地點=台北)更新當前的對話狀態,
然後在地點填充常用的預設值,並透過使用者畫像補充用餐的個性化資訊,最後輸出對話
狀態(意圖=推薦餐廳, 地點=台北公館, 口味=喜歡吃辣)。
3.對話策略學習模組得到對話狀態後,發現其意圖在系統能夠提供的服務項目之內,但還缺
少了用餐時間,系統應該反問使用者;所以輸出系統動作(意圖=對空白槽位提問, 地點=
台北公館, 口味=喜歡吃辣, 時間=Null)。
4.自然語言生成模組執行系統動作,產生問句向使用者提問欲用餐的時間「你想在什麼時
間用餐呢?」。
5.自然語言理解模組取得次輪的使用者對話「明天中午」,再次偵測意圖及識別命名實體,
得到使用者動作(意圖=不明, 時間=2020年3月30日12點)。
6.對話狀態追蹤模組參考使用者動作及對話歷史,更新當前的對話狀態(意圖=推薦餐廳,
地點=台北公館, 口味=喜歡吃辣, 時間=2020年3月30日12點)。
7.對話策略學習模組利用使用者動作及對話歷史,蒐集餐廳推薦服務的必要資訊,透過查詢
服務API得到答案後,封裝成系統動作(意圖=推薦餐廳, 地點=台北公館, 口味=喜歡吃辣
, 時間=2020年3月30日12點, 餐廳=右手餐廳, 類型=泰式料理)。
8.自然語言生成模組執行系統動作,產生具體答案「建議你明天中午可以到台北公館的右手
餐廳享用酸辣的泰式料理」。
【未來的發展方向】
為了解決基於深度學習的對話管理方法,在訓練資料上普遍不足的問題,業界已嘗試使用
N-Shot Learning在小樣本下進行訓練,以及使用Zero-Shot Learning在沒有任何訓練
資料的情況下,進行現有模型的遷移與補全,以及在馬可夫鏈決策過程中,導入強化學習
與線上學習,建立獎懲與持續學習的機制;也有學者將GAN應用在自然語言處理上,透過
SeqGAN讓兩個模型相互博弈, 以學習最強的對話策略。
【參考文獻】
POMDP-based Statistical Spoken Dialogue Systems: a Review
http://mi.eng.cam.ac.uk/~sjy/papers/ygtw13.pdf
Maximum Entropy Markov Models for Information Extraction and Segmentation
http://www.ai.mit.edu/courses/6.891-nlp/READINGS/maxent.pdf
Reinforcement Learning
https://en.wikipedia.org/wiki/Reinforcement_learning
One-Shot Learning
https://en.wikipedia.org/wiki/One-shot_learning
Zero-Shot Leaning
https://en.wikipedia.org/wiki/Zero-shot_learning
SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient
https://arxiv.org/abs/1609.05473
【其他對話式AI專欄文章】
http://www.lionethan.com/Chatbot的類型與對比/
http://www.lionethan.com/基於知識庫的問答系統實作方法/
http://www.lionethan.com/模組化的任務導向對話系統實作方法/
http://www.lionethan.com/Chatbot的閱讀能力-自然語言理解篇/
http://www.lionethan.com/Chatbot的記憶與決策-對話管理篇/
http://www.lionethan.com/Chatbot的寫作能力-自然語言生成篇/ (預計四月完成)
http://www.lionethan.com/預訓練語言模型比較(elmo、bert、gpt-2)/
http://www.lionethan.com/Chatbot的挑戰與發展趨勢/
http://www.lionethan.com/AI研發部門與開發流程介紹/
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.25.155 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1585506572.A.430.html
推
03/30 10:13,
5年前
, 1F
03/30 10:13, 1F
推
03/30 10:45,
5年前
, 2F
03/30 10:45, 2F
推
03/30 13:16,
5年前
, 3F
03/30 13:16, 3F
推
03/30 14:18,
5年前
, 4F
03/30 14:18, 4F
又做了一些補充,感謝閱讀
推
03/30 16:49,
5年前
, 5F
03/30 16:49, 5F
推
03/30 19:25,
5年前
, 6F
03/30 19:25, 6F
→
04/02 12:37,
5年前
, 7F
04/02 12:37, 7F
→
04/02 12:41,
5年前
, 8F
04/02 12:41, 8F
我日前在業界帶領團隊研發新一代Chatbot產品,而敝司在此領域已經有近十年的經驗了;
這些文章是以個人業界研發經驗為主,廣讀的Paper為輔,每一字一句都是直接憑著記憶,
思考和內化後親手撰寫的總結與心得。
不是任何學術文章的翻譯,而且完全出於業界的實務需求;文章也已經盡量力求完美,
如果相關內容有錯誤或不符合現況,歡迎提出具體問題,一起討論交流加以完善。
推
04/02 15:47,
5年前
, 9F
04/02 15:47, 9F
→
04/02 15:47,
5年前
, 10F
04/02 15:47, 10F
不會啦!同樣是對話式AI,每間公司的研發方向和腳步不同,
有不同的業界經驗是正常的,也因為這樣才會有分享的價值。
另外,這類文章我比較偏好邏輯論述寫作技巧,所以讀起來有學術味,比較不帶情感。
推
04/02 17:41,
5年前
, 11F
04/02 17:41, 11F
→
04/02 17:41,
5年前
, 12F
04/02 17:41, 12F
→
04/02 17:41,
5年前
, 13F
04/02 17:41, 13F
謝謝,完成自然語言生成篇後,會想先講講"知識圖譜"在業界的實際應用情況。
推
04/02 18:56,
5年前
, 14F
04/02 18:56, 14F
→
04/02 19:00,
5年前
, 15F
04/02 19:00, 15F
你的意思應該是Chatbot一詞"不只代表閒聊",其實還包含問答與任務導向對話系統,
大家常常誤解這點,也是我親手寫專欄的用意,希望能帶給大家正確的觀念。
→
04/03 09:00,
5年前
, 16F
04/03 09:00, 16F
如果有請你貼上來,咱們比對一下驗真章,不打迷糊仗
絕對沒什麼原始論文,因為單純就是團隊研發Chatbot框架的經驗分享與心得
→
04/03 09:00,
5年前
, 17F
04/03 09:00, 17F
→
04/03 09:00,
5年前
, 18F
04/03 09:00, 18F
→
04/03 09:00,
5年前
, 19F
04/03 09:00, 19F
我也不認同,隨便去說你不專業,如同你說的都是同業,請相互尊重
→
04/03 09:03,
5年前
, 20F
04/03 09:03, 20F
→
04/03 09:03,
5年前
, 21F
04/03 09:03, 21F
→
04/03 09:07,
5年前
, 22F
04/03 09:07, 22F
允許我再次說明,這些文章不是學術文獻的翻譯,每一字一句都是以個人業界經驗為主,
廣讀的文獻為輔;經過思考和內化後,直接憑著記憶,親手撰寫的總結和心得,而且完全
以業界實務的觀點撰寫。
文章除了闡述敝司和業界慣用的模組化架構、系統流程和個人舉例說明與心得,只有在少
許篇幅,用一兩句話列舉敝司或業界在各環節常用的方法名稱,並從個人經驗或團隊聽聞
中闡述其優缺點,所以沒有去找那些方法的學術出處;以一篇專欄文章來說,這樣的寫法
合情合理,希望你能夠理解。
但既然DrTech大大都提了,為了避免任何爭議,我也已經開始盡力尋找,我在文中提到的
所有方法,以及敝司和業界常用架構的學術出處,將逐步整理到參考文獻中。
推
04/03 11:26,
5年前
, 23F
04/03 11:26, 23F
→
04/03 11:26,
5年前
, 24F
04/03 11:26, 24F
→
04/03 11:26,
5年前
, 25F
04/03 11:26, 25F
→
04/03 11:26,
5年前
, 26F
04/03 11:26, 26F
推
04/03 11:38,
5年前
, 27F
04/03 11:38, 27F
沒關係的,每個人的想法不同,講清楚就好了,也不是做不到;
已新增參考文獻,註明所有方法的首篇學術文獻了,若有缺失歡迎補充。
→
04/03 22:43,
5年前
, 28F
04/03 22:43, 28F
推
04/03 22:54,
5年前
, 29F
04/03 22:54, 29F
還在努力學習,謝謝Sunny
推
04/04 15:35,
5年前
, 30F
04/04 15:35, 30F
不客氣
推
04/06 15:33,
5年前
, 31F
04/06 15:33, 31F
→
04/06 15:34,
5年前
, 32F
04/06 15:34, 32F
謝謝大大
※ 編輯: lion741205 (101.12.49.111 臺灣), 04/07/2020 06:53:59
推
04/10 10:40,
5年前
, 33F
04/10 10:40, 33F
推
04/24 21:14,
5年前
, 34F
04/24 21:14, 34F
Soft_Job 近期熱門文章
44
211
PTT職涯區 即時熱門文章