臺大資工系助理教授陳縕儂表示,Chatbot目前有3個技術關鍵:自然語言理解技術、對話管理和自然語言生成系統,其中對話管理是最新的挑戰領域。

圖片來源: 

陳縕儂

目前常見的Chatbot主要有兩大類,一類是任務式(Task-Oriented)的Chatbot,另一種則是純聊天(Chit-Chat)的Chatbot。第一種任務型Chatbot類似個人數位助理,以幫助使用者完成特定任務為主,所以,中文上又有人稱其為功能型機器人,來和後者以社交互動、閒聊或沒有特定任務目標的聊天型Chatbot區分。在中文用詞上,兩者都可通稱為聊天機器人。

不過,若是任務型Chatbot所要完成的任務不複雜,甚至也不需要對話過程,就像是一個口令一個動作,可以由人來發動指定,再由程式來控制的Chatbot,則多半可以簡稱為Bot,開發人員常會寫一些腳本程式來自動化某些系統操作,其實就是一個Bot,或像在Slack平臺中,可以在小組對話中,直接對Bot程式下指令,來存取各種外部API提供的資訊。

其實,應該反過來說,Bot是更涵蓋更廣的軟體機器人,而Chatbot則是特別重視對話機制、對話過程的軟體機器人。

要打造出能夠提供複雜任務處裡能力的Chatbot,臺大資工系助理教授陳縕儂表示,有3個技術關鍵,自然語言理解技術、對話管理和自然語言生成系統。

不過,陳縕儂觀察,目前幾乎大多數Chatbot應用,都是利用了自然語言理解技術,拆解使用者所說的話,抽出執行任務的條件,就可以改用電腦程式來產生SQL指令,完成符合這些條件的查詢動作。能夠進一步具備對話管理能力的Chatbot比較少見。

臺大資工系助理教授陳縕儂表示,目前大多數Chatbot應用都是利用自然語言理解技術,能夠進一步具備對話管理能力的Chatbot比較少見,這也是目前最困難,也是Chatbot最新的研究主題之一。

在自然語言理解機制中,需要機器學習技術來建立一套對於特定領域的知識體系(Ontology),這就像是要訓練出一套可以讓機器理解人類語言背後意圖的語意詞彙或模式,在自然語言理解技術中,會利用意圖(Intent)和實體概念(Entity),這兩個機制來訓練出一套Ontology。開發者需要提供同一個意圖的大量問句,例如「今天幾點有高鐵班次到臺中?」的問句,意圖就是「定車票」,可以再透過自然語言理解機制,從中拆解出不同的條件,如時間、地點,這些條件就是Entity,Chatbot程式就可以根據意圖,搭配所掌握的條件資訊,來決定要採取的行動,而這就進入了對話管理的階段。

對話管理主要有3種行為:Request(請求更多資訊)、Confirm(確認資訊)和Inform(回報資訊給使用者)。要完成一項任務需要多個條件,若從自然語言理解過程拆解得到的條件資訊不完整,無法完成任務,就得讓Chatbot向使用者Request更多資訊,或是提供的資訊不清楚,或是語意理解可能判斷錯誤,就進行Confirm確認動作,若是可以執行任務,就可將執行結果,例如完成訂購後的訂購結果,回報給使用者(Inform)。但因為要完成越複雜的任務,需要提供越多的條件,也需要來回向使用者請求資訊和確認資訊,這個來回對話過程,目前還沒有一套可以通用的最佳作法,而且會因任務複雜度、任務情境、領域知識而有很大的差異,尤其是複雜任務需要經過多次對話,可能其中一次回應的改變,就會影響了最後是否能完成任務的結果。

陳縕儂表示,通常對話管理得靠增強式機器學習技術(Reinforcement learning),從互動過程來學習,而無法使用監督式機器學習技術,這也是目前最困難,也是Chatbot最新的研究主題之一。

而最後一項自然語言生成,則是最後一段,當決定了要採取的行動之後,如何產生出符合自然語言的語句,目前這個部分可透過回應規則的訂定,來設計一套這個Chatbot可用的回應句子清單。

但若要讓Chatbot使用者不會覺得互動過程過於呆板或制式化,甚至同樣的意思,可以變化不同的說法,陳縕儂表示,這就得靠機器學習技術來訓練,才能不用每次遇到新的領域或任務,就得重新設計一套新的回應規則範本。

 相關報導 企業Chatbot新機會


Advertisement

更多 iThome相關內容