人工智慧在聊天機器人上的應用

大家好,我是卡米哥,LINE 官方認證的 API 專家,LINE API Expert。目前在維護知名 Node.js 聊天機器人框架 Bottender

本篇文章將嘗試說明人工智慧、聊天機器人以及他們之間的關係,以及目前在聊天機器人上的應用。為了讓一般人也能讀懂,我會使用一些比喻,也許不是那麼精確,請各位大大們指教時小力一點。

人工智慧

人工智慧顧名思義就是可以用電腦作到一些看起來只有人類能做到的事,比方說分析、預測、決策等這方面的事情。早期是由人類設計數學模型並且寫成程式碼,電腦只負責做計算,不過目前比較主流的解法是使用機器學習的方式來解決問題。

機器學習

機器學習其實就是人類想要把設計數學模型這步也交給電腦去做,目前電腦的做法其實就是在大量的數學模型當中找到一個表現比較好的模型。當然人類必須告訴電腦什麼是「好」,電腦才有辦法做學習。所以人類要提供訓練資料或者價值觀給電腦,我們這裡關注訓練資料的部分就好。關於價值觀的部分,那又是另外一個世界了。

訓練資料

一筆訓練資料是由題目和答案所組成。電腦會嘗試使用許多個數學模型去閱讀訓練資料,看看哪一個模型的表現比較好。用一個簡單的比喻來說,數學模型就是學生,訓練資料就是老師,而訓練過程其實就是老師在上課。上完課之後當然就是挑出品質最好的學生,雇用他來工作。

既然訓練資料是老師,那麼老師的品質會影響學生的表現嗎?當然會!

聊天機器人

聊天機器人顧名思義就是可以聊天的機器人,我把他們簡單分為兩種:聽覺系和視覺系,比方說在智慧音箱或手機上的 Apple Siri、Google Assistant 這種語音類型的服務是屬於聽覺系聊天機器人,而例如 Messenger、LINE、Telegram、Slack 等通訊平台上的自動回覆系統算是視覺系聊天機器人。

聽覺系聊天機器人

聽覺系聊天機器人目前的處理方式是會先將語音轉成文字,後面走文字處理的流程,最後再將聊天機器人回覆的內容轉回語音播放。關於語音轉文字以及文字轉語音這塊目前是用人工智慧來解決的,似乎也沒有比人工智慧更好的解法。

對聽覺系聊天機器人來說,語音轉文字以及文字轉語音是硬需。

視覺系聊天機器人

當你傳一句話給聊天機器人的時候,聊天機器人是怎麼知道你在講什麼呢?這部分是透過文字比對法、搜尋引擎法、自然語言理解等方法來做的。

文字比對法就像是早期的人工智慧,是由工程師寫下一堆範例句型,當用戶說出滿足任何一個範例句型的話時,就能知道用戶想要表達的意思。這裡有個大問題就是用戶說出的句子可能同時滿足多個句型,這時候該怎麼辦呢?工程師必須事先決定好每個範例句型的優先級,並且祈禱不會發生任何的衝突。想當然在規則越多的時候,炸裂的機率也就跟著越高。

搜尋引擎是把所有的內容都放到搜尋引擎當中,用戶說出一句話時,就從內容中找到最接近的,直接傳回第一筆內容做為答案。其實要傳回多筆內容也不是不行,只是在聊天機器人上面通常沒有那麼大的版面。

自然語言理解則是透過機器學習的方式來迴避掉工程師需要維護規則優先級以及句型衝突的問題。事實上,在複雜的情況下根本不可能用人類寫規則的方式來滿足需求,透過大量的訓練資料讓電腦自行生成規則才是正解。

在視覺系聊天機器人上,經常可以看到按鈕的出現。這是聽覺系無法做到的事,或者說在聽覺系上做這件事情就會顯得彆扭,想像一下目前自動客服系統都是怎麼做的:「… 轉接真人客服請按【9】」。

自然語言理解在聽覺系聊天機器人上可能是硬需。

在視覺系上提供按鈕的好處顯而易見,如果用戶能夠點擊一下畫面就解決事情,那麼用戶絕對不會想要打字,想像一下打字要點擊多少下啊!這也就是為什麼在通訊平台上的主流聊天機器人都是按鈕式介面,因為這實在是太方便了。使用按鈕的聊天機器人不只用戶體驗好,開發者也不用解決困難的問題。

按鈕在視覺系聊天機器人上是硬需,讓用戶用點擊按鈕能有效降低開發成本,也能獲得好的用戶體驗。

難道自然語言理解在視覺系上沒搞頭嗎?

其實視覺系聊天機器人那一堆按鈕的畫面呈現方式很像 Yahoo 入口網站,由於內容漸漸越來越多、越來越複雜,使用目錄來呈現內容的方式,很難讓用戶迅速找到想要的東西,最後這種純目錄式的設計最終還是輸給了 Google 搜尋引擎。至今,幾乎所有的大型網站上都提供了搜尋框。

搜尋框在大型專案上是必備的。

其實視覺系聊天機器人天生就有搜尋框,那就是文字輸入介面。我們可以把文字輸入直接視為搜尋功能,使用自然語言理解技術,讓用戶迅速找到對應的內容,並且以按鈕呈現,讓用戶不用一直打字。

很多案主通常會以為他只要付錢,其他什麼事都不用做,就能獲得一個品質良好的聊天機器人。殊不知開發者做完功能時,系統上可是一點內容都沒有的呢!想像一下如果 Google 只有幾筆資料,卻不直接顯示資料列表,而是顯示一個搜尋框,到底是想要氣死誰?也就是說,內容不多的情況下,自然語言理解確實是沒什麼搞頭的。

⚠️注意:如果你的內容很少,做搜尋框給用戶會降低用戶體驗

人工智慧在聊天機器人上的應用

做個總結,在聽覺系聊天機器人上必備的人工智慧有「語音轉文字」、「文字轉語音」、「自然語言理解」,然而這些酷炫的東西在視覺系聊天機器人卻都只是選配而已。

大人的想法當然會是「我全都要」這應該不用解釋吧?

不過要使用自然語言理解的話,記得要請專業人士來輸入訓練資料,要不然訓練出智障機器人是很常見的,不要因為機器人很智障就覺得是開發者智障,因為智障的人通常是…

巧婦難為無米之炊啊~

我們正在開發的 Bottender:Node.js 上的聊天機器人框架,目前主要是針對視覺系聊天機器人來設計。作為一個高品質的聊天機器人框架,我們當然也有提供串接到自然語言理解服務的功能,如果你想要做個豐富內容的視覺系聊天機器人,那麼 Bottender 就是你最好的選擇。

都看到這裡了,不拍個手嗎?

在追求真理的道路上

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store