第二章 文獻探討
第二節 聊天機器人發展與技術
人工智慧的一項分支—聊天機器人,如今發展蓬勃,應用在許多領域,電子 商務、氣象查詢、金融理財、旅遊搜尋、醫療保健、食品餐飲都有其蹤跡。本節 將就聊天機器人之發展與相關應用,以及聊天機器人關鍵技術做文獻探討。
一、 發展與相關應用
要講聊天機器人前,不得不先提的即是人工智慧(Artificial Intelligence, AI), John McCarthy 在 1955 年提出人工智慧的術語概念,並成立達特茅斯會議 (Dartmouth Conference)(McCarthy, Minsky, Rochester, & Shannon, 1955) , McCarthy(2007)將其解釋為「是製造智慧機器的科學和工程,特別是智慧計算機 程序,與使用計算機來理解人類智慧有關」,大英百科全書(Copeland, 1998)對其 定義為「數位計算機或以計算機控制之機器人可以執行與具智慧之生物相關任務 的能力」,劍橋字典(Artificial intelligence, n.d.)則將其解釋為「一個計算機程序,
其功能是具有人類思維的某些特性,比如理解語言的能力、識別圖片、從經驗中 學習」。
而另一位在人工智慧領域的先驅 Alan Turing 提出了一個問題「機器可以思 考嗎?(Can machines think?)」,接著做了一個實驗,讓一個受測者去詢問兩個他 不能看見的對象任意一問題,兩個對象分別為人與機器。如果經過若干問題後,
受測者無法分辨二者孰為人類、孰為機器,則此機器通過測試,這也就是著名的 圖靈測試(Turing Test) (Turing, 1950)。
聊天機器人(Chatbot)是經由對話或文字進行交談的電腦程式(或稱為人工智 慧),能夠模擬人類對話且通過圖靈測試(Chatbot, 2009)。公認最早出現的聊天機 器人為Joseph Weizenbaum 在 1966 年發布的 ELIZA,僅管 ELIZA 不能真正算得 上是具有智慧,它是靠著使用者輸入的內容辨識關鍵字,並從既有的回答中作回 覆,產生它好像有智慧的錯覺(Shah, Warwick, Vallverdú, & Wu, 2016;張文宗,
2017)。
聊天機器人若要成功,有三個主要關鍵 (Sarkar, 2013) : (Closed Domain)與開放領域(Open Domain)(見圖 2-2),封閉領域的聊天機器人 通常能完成特定任務,像是氣象查詢、電影查詢,一般商業性聊天機器人也都是 此類型,例如:Skyscanner 在 FB Messenger 中的聊天機器人可以查班機、推薦旅 遊地點;開放領域的聊天機器人是針對沒有一定目標或意圖的使用者,使用者可 以詢問任何問題,而聊天機器人必須回覆有意義的資訊,例如:羅布納獎(Loebner Prize)的四次獲獎者—Mitsuku、微軟小冰等,因為封閉領域有的聊天機器人有特 定任務,在實作上會比開放領域的聊天機器人簡單(Sanjeevi, 2018)。
圖2-2 聊天機器人類別
資料來源:Lempinen, K. (2017, February 23). What are Chatbots and how they impact Service Management [Web blog message]. Retrieved from
聊天機器人之應用若以回復機制做為區分則能分為檢索型(Retrieval-Based)
以 DialogFlow 處理自然語言 建置之減肥維護的激勵型聊 天機器人。
資料來源:研究者自行整理
二、 關鍵技術
一般而言,聊天機器人主要關鍵技術為自然語言處理(Natural Language Processing, NLP)與對話管理(Dialogue Management, DM)(王宏仁,2017),而自 然語言處理為計算機從自然語言輸入和/或生成自然語言輸出中提取有意義訊息 的過程(Warschauer & Healy, 1998, pp.67),其運作機制又分為自然語言理解
(Natural Language Understanding, NLU)與自然語言生成(Natural language generation, NLG)。聊天機器人在接收使用者輸入之文本後,會經過自然語言理 解,接著進入對話管理,然後經過自然語言生成,最後將結果返回給使用者(見 圖2-3),以下就聊天機器人之關鍵技術做說明。
圖2-3 聊天機器人組成架構
資料來源:王宏仁(2017)。【專家剖析】Chatbot 三大技術關鍵與最新研究方向
【新聞群組】。取自https://www.ithome.com.tw/news/113445 自然語言理解(NLU)
自然語言生成(NLG)
對話管理(DM) 自然語言處理(NLP)
(一) 自然語言理解
自然語言理解是機器要理解給定文本的含義,文本內每個單詞的特性與結構 需要被理解,簡單來說就是機器要「懂」人的語言。在理解結構上,以下幾個自 然語言的歧義要注意(Gill, 2017):
1. 詞彙歧義(Lexical Ambiguity):單詞有多重含義造成的歧異。
2. 句法歧義(Syntactic Ambiguity):語句因為句法而有多重解釋造成的歧異。
3. 語義歧義(Semantic Ambiguity):句子因語氣有多重含義造成的歧異。
4. 對應歧義(Anaphoric Ambiguity):在文章中先前出現的短語或單詞在後 面句子中有不同的含義造成的歧異。
接著通過詞彙和語法規則,理解每個單詞的含義。然而,有些詞有類似的含 義(同義詞),有些詞有多重含義(多義詞),又是需要注意的部分。
(二) 對話管理
對話管理是基於使用者輸入文本的狀態判斷聊天機器人應該採取什麼行動,
也就是聊天機器人需要表達什麼意思,其完成一項任務需要多個條件,若自然語 言理解拆解出的條件不完整,即會造成任務無法達成,所以對話管理中有三種行 為來幫助機器人可以順利完成任務:請求更多資訊(Request)、確認資訊(Confirm) 與回報資訊給使用者(Inform),以下為三種行為適用時機之說明(王宏仁,2017):
1. 請求更多資訊:當獲取的條件不完整時,聊天機器人即需向使用者請求 更多資訊;
2. 確認資訊:當提供的資訊不清楚,或是語意理解可能判斷錯誤等情形發 生時,聊天機器人需要向使用者確認資訊;
3. 回報資訊給使用者:當條件完整且資訊確認的情況下,聊天機器人即可 將回答回報給使用者。
(三) 自然語言生成
自然語言生成是從結構化數據中自動生成人可讀文本的過程。自然語言生成 的問題是難以處理,其過程可被分為三個階段(Gill, 2017):
1. 文本規劃(Text Planning):完成結構化數據的排序,選擇生成語句所包含 的基本訊息;
2. 語句規劃(Sentence Planning):將多個語句進行合併,從而完整呈現所要 的訊息;
3. 實現(Realization):將所要生成的訊息進行文法修正,從而生成最終結果。
自然語言生成的方式又可分為檢索式對話生成技術與生成式對話生成技術,
對應到聊天機器人產生回覆的方式就也分為檢索型與生成型(Britz, 2016)(見表 2-2):
1. 檢索型(Retrieval-Based Models):使用預先定義回應的知識庫和某種啟 發式方法來根據輸入內容和上下文選擇適當的回應,啟發式可以像基於 規則的表達式匹配一樣簡單,也可以像機器學習分類器的集合一樣複雜,
此種類型並不會生成任何新文本,只是從固定資料集中選擇回覆。
(1) 優點:實作較簡單的一種方式,且因為是從資料集中直接抓取回覆,
所以不會產生語法錯誤。
(2) 缺點:若有未定義到的問題可能就無法回覆,還有就是無法處理上 文出現的名詞等上下文實體訊息。
2. 生成型(Generative):不依賴於預定義的回應,而是從頭開始產生新的回 覆,生成型通常基於機器翻譯技術,但不是從一種語言翻譯成另一種語 言,而是從輸入內容(問題)轉換到輸出內容(回應)。
(1) 優點:可以參考輸入內容的實體,給予使用者一種與人交流的印象,
較智能的感覺。
(2) 缺點:不好訓練、可能會有語法錯誤的問題,且通常需要大量的數 資料來源:Britz, D. (2016, April 6). Deep Learning for Chatbots, Part 1 – Introduction [Web blog message]. Retrieved from
http://www.wildml.com/2016/04/deep-learning-for-chatbots-part-1-introduction/ Simple Supportive Information Service Today,為線上聊天參考服務),從該服務發 現讀者大多是詢問與圖書館基本與日常的服務資訊,又因電子資源的比例逐漸升 高,2008 年的調查結果顯示學生僅會找其所需資訊不會深入使用網站,也就是