舉個簡單例子,你可以對任何一個主要的虛擬助理,如Alexa、Google助理、Siri或Cortana說:「設定一個後天早上9點的提醒」,然後虛擬助理都能理解,不必使用特定的說話順序或神奇咒語。也可以說:「星期三早上9點提醒我」,或「設定在5月16日上午9點提醒」,然後都能得到相同結果。NLP的重點在於析取意義,而不論語法。

20180607TA01P1 在邊緣裝置中或雲端的NLP聊天機器人,何者能提供更好的服務?

多虧了人工智慧(AI),具體來說是深度學習(DL),NLP才有了最新進展。在Google I/O 2018,藉由Google Duplex的公開,我們稍微窺看到這個科技的發展進度。Google Duplex是能讓Google助理代替使用者撥打電話、安排會面時間的功能,如預約剪頭髮、向餐廳訂位。在現場播放的示範影片中,可以聽見Google助理就像真人一樣地自然說話。

這裡的技術挑戰在於要瞭解話語的細微差異,及因應預期外的狀況。用來達成這些成就的深度神經網路使用了需要大量處理及耗能的極複雜計算,並且只能在遠端的雲端伺服器中使用。

另一方面,許多可攜式裝置,如照相機與藍牙喇叭,只能允許某些預先定義的語音指令,如「開啟」、「關閉」、「錄影/錄音」、「播放」及「停止」。與虛擬助理幾乎能毫無阻礙對話,和非連線可攜式裝置的語音指令則極度受限,而造成這兩者之間差異的主要原因,就在於處理過程是在邊緣裝置或雲端上進行。邊緣處理擁有巨大吸引力,因為並非所有情況都能使用雲端,在很多情況下則是沒有必要或不受歡迎。

例如,在多數Android智慧型手機中都能發現這類語音指令,只要在相機應用程式開啟時說「Cheese」或「Smile」,就能拍照。若必須仰賴使用雲端,等待遠端處理指令,說不定會錯過許多千金難買的寶貴時刻,因此,在這個情況下邊緣處理就不可或缺。

不同廠商可以修改基本指令或新增,例如,在樂金(LG)手機上,說「Whisky」或「Kimchi」就能拍照。在這類語音指令中並未涉及到NLP,ASR引擎會辨識任何這些特定詞語,並觸動快門,因此這個功能只有在使用知道指令時才有用。若習慣說「Kimchi」來拍照,換了手機或許就無法啟用功能,也無法換其他說法叫相機拍照,除非使用了具體指令。這樣會嚴重影響使用者經驗,並可能導致使用者因為缺乏靈活性與使用方便性而拋棄這個科技。

另一個例子是GoPro最新Hero系列運動相機的酷功能,能讓人在攝影同時標註特別時刻,之後能直接找到標註,更容易分享與編輯影片的最棒部分。使用這個功能的語音指令是「GoPro HiLight」,不過,假設正滑著雪板在猛獁山(Mammoth Mountain)的斜坡一路俯衝,看到讓人驚豔的景色卻不記得要說指令時該怎麼辦?GoPro團隊也想到這點,因此他們增加了一個能觸動HiLight標註的選項,只要說「that was sick(太扯了)」就行。儘管這樣對相機說話蠻酷的,但依然不是NLP,你還是需要知道指令才能使用功能。這類型的介面強迫使用者要學習系統的規格,而不是由系統適應使用者的說法方式。

20180607TA01P2 嗯…想不起指令是什麼了。

根據Duplex背後的Google工程師,他們是透過限制聊天機器人對特定任務的語言脈絡才達成這個令人驚奇的成果。在一篇部落格文章中,他們指出研究中的關鍵洞察在於,Duplex在封閉、受限的領域中能有更好的表現。換句話說,Duplex聊天機器人只能對特定任務發揮作用,並無法進行一般對話。

同樣地,一家專門從事邊緣AI的公司Sensory創造出一款咖啡師聊天機器人,能使用NLP接受咖啡與茶飲的點單。這裡的重大成在於所有處理都是在邊緣裝置上完成,因此不需要雲端連線。

就實際層面而言,要求以小型輕巧電池供電的嵌入式處理器執行和雲端服務相同的語言分析並不合理。不過,透過限制語言脈絡及減少互動的複雜性,就能讓NLP變得夠節能,可在邊緣裝置上運作,邊緣聊天機器人能擁有的使用範圍要取決於其執行軟體與引擎的效率。

從使用者經驗的角度來看,重點在於聊天機器人能處理其任務的完整領域。若再回到相機的例子,除了拍照與錄影,使用者或許會想要播放影片、看照片、展示投影片、刪除影片檔等,使用NLP處理全部這些功能就能產生無縫與自然的互動介面,即使它並無法回答天氣相關問題或建議餐廳。

儘管完整功能的終端側NLP依然是未能解決的挑戰,但我們仍可以期待在不久的將來看見在使用者經驗方面的重大改進。包括邊緣裝置專用的特定AI結構,以及減少深度神經網路記憶體使用的新科技,這兩方面的進步都展現出令人興奮的成果。很快地,我們肯定能看見不需使用雲端的多元NLP能力。