Soft_Job 板


LINE

年初決定寫個對話式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研發部門與開發流程介紹/ --
QR Code



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.25.155 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1585506572.A.430.html
1F:推 hentai: 感謝分享 03/30 10:13
2F:推 ian90911: 感謝分享 03/30 10:45
3F:推 SuperSunny: 感謝大神分享 03/30 13:16
4F:推 vvind: 推 03/30 14:18
5F:推 qrtt1: 有看有推 03/30 16:49
6F:推 single4565: 推 03/30 19:25
7F:→ DrTech: 學術文章翻譯,實際上跟工業界結合落差蠻大的 04/02 12:37
8F:→ DrTech: 建議附上一些學術文章的參考文獻來源。尊重一下原作者。 04/02 12:41
我日前在業界帶領團隊研發新一代Chatbot產品,而敝司在此領域已經有近十年的經驗了; 這些文章是以個人業界研發經驗為主,廣讀的Paper為輔,每一字一句都是直接憑著記憶, 思考和內化後親手撰寫的總結與心得。 不是任何學術文章的翻譯,而且完全出於業界的實務需求;文章也已經盡量力求完美, 如果相關內容有錯誤或不符合現況,歡迎提出具體問題,一起討論交流加以完善。 另外,我也很樂意整理本文中,提到的所有文獻下載連結,以供大家參考, 請給我一些時間。
9F:推 tommykang: 推獅子大神 謝謝分享業界經驗 04/02 15:47
10F:→ tommykang: DrTech不懂裝懂 04/02 15:47
不會啦!同樣是對話式AI,每間公司的研發方向和腳步不同, 有不同的業界經驗是正常的,也因為這樣才會有分享的價值。
11F:推 a2551127: lion大的文筆真的很好 我不懂nlp所以看不懂有關文獻無法 04/02 17:41
12F:→ a2551127: 入門 但是這系列寫的很全面又好懂 推推 希望之後能繼續 04/02 17:41
13F:→ a2551127: 以實務的角度對每項技術深入說明 04/02 17:41
謝謝,完成自然語言生成篇後,會想先講講"知識圖譜"在業界的實際應用情況。
14F:推 tommykang: 我的意思是DrTech前幾篇連Chatbot不代表閒聊都不懂 04/02 18:56
15F:→ tommykang: 還在學術界工業界落差大 別來亂好嗎?軟工版不適合打高空 04/02 19:00
你的意思應該是Chatbot一詞,不只代表"閒聊",其實還包含"問答"和"任務導向對話系統" ,我之前的確糾正過DrTech;由於常有人誤解這點,這也是我親手寫專欄的用意,希望能 帶給大家正確的觀念。
16F:→ DrTech: 不貼原始論文打臉啦。只是提醒而,繼續抄當作自己發表我也 04/03 09:00
17F:→ DrTech: 沒意見。另外,本人nlp幾年了,論文也有幾篇,專利超過40 04/03 09:00
18F:→ DrTech: 篇。那些說我不專業的,或者學術定義的chatbot不專業的, 04/03 09:00
19F:→ DrTech: 真沒必要,互相尊重吧。 04/03 09:00
20F:→ DrTech: 此行業已經很少人做了,沒必要拉仇恨。真的只是提醒引用原 04/03 09:03
21F:→ DrTech: 文讓大家有更多參考而已。 04/03 09:03
22F:→ DrTech: 我們都是知識工作者,用別人的成果註明出處很平常吧。 04/03 09:07
胡說八道,就是業界心得分享,哪來的原始論文, 有的話請你直接貼上來,咱們比對一下驗真章。 雖然他們罵你不專業,可能會讓你不舒服,我也不知道你拿的是什麼專利, 但你的確對「Chatbot、NLP」等對話式AI不是很熟悉, 才會覺得「只有開放領域的閒聊才會用Chatbot這個詞, Chatbot不包含任務導向的對話系統」,但那是完全錯誤的觀念, 跟是不是學術定義無關,業界與學界皆是以Chatbot一詞代表「閒聊、問答和任務導向 對話系統」,請參考以下連結: 1.英文維基百科的定義 https://en.wikipedia.org/wiki/Chatbot, 2.中文IThome的介紹 https://www.ithome.com.tw/news/113445 3.我整理的Chatbot類型與對比 http://www.lionethan.com/2020/01/chatbot%E7%9A%84%E9 但為了避免任何爭議,如同我稍早說的,我也已經開始著手尋找,我在文中提到的所有 方法,以及敝司和業界常用架構的學術出處,已逐步整理到參考文獻中。
23F:推 jimmy55311: 推熱心助人的獅子大大 猛猛der 別管Dr.了啦 這種人很 04/03 11:26
24F:→ jimmy55311: 愛貶低別人提高自己 只要有寫錯他就罵死你 寫得好他就 04/03 11:26
25F:→ jimmy55311: 說你是翻譯的 不是翻譯的他就說你抄沒附來源 讓他去吠 04/03 11:26
26F:→ jimmy55311: 根本沒人想理他 04/03 11:26
27F:推 tommykang: 不能同意jimmy更多 04/03 11:38
沒關係的,每個人的想法不同,講清楚就好了,也不是做不到; 已新增參考文獻,註明所有方法的首篇學術文獻了,若有缺失歡迎補充。
28F:→ SuperSunny: 又不是在寫論文,還要人家附參考文獻,笑死 04/03 22:43
29F:推 SuperSunny: 推L大的邏輯和文筆,還有態度 04/03 22:54
還在努力學習,謝謝Sunny。
30F:推 wili06543: 感謝分享 04/04 15:35
不客氣。
31F:推 May75504: 感謝獅子大神分享實務心得,軟體工作版應該少點酸民 04/06 15:33
32F:→ May75504: 多鼓勵這些願意花時間分享經驗的高手專家 04/06 15:34
33F:推 jing8281: 推這篇 04/10 10:40
34F:推 SuperSunny: 恭喜lion大奪冠 04/24 21:14
沒想到會拿到第一名,感謝大家支持。 ※ 編輯: lion741205 (111.249.149.20 臺灣), 03/20/2021 09:28:19







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP