2012年4月1日

Siri技術解析




Siri技術解析

簡介

Siri的學術化全稱為「個人自動智能助理」(Personalized Intelligent Assistant),並非蘋果公司自主研發,最初是蘋果AppStore的一款應用,蘋果公司發現後很快於20104月份從斯坦福研究機構國際智能中心(SRI)處收購而來,傳言收購價格在2億美金左右,之後很快SiriAppStore下架並集成進入IPhone 4S
作為「個人智能助理」,Siri能為你提供什麼服務?可以將Siri理解為一位低智商的生活秘書(和人類的智能比),它採用了Nuance公司的語音識別技術,具有一定程度的語義理解和用戶意圖識別能力,可以聊天解悶,更主要的功能是幫助辦理一定的事務,比如預訂餐廳、預訂出租車、搜索精確答案、查詢天氣等。
我們首先看一些例子來看Siri能做什麼:
對話一:
User:「我想掩藏一具屍體。」
Siri
:你想藏在哪裡呢?(給出5個選項)
  • 水庫
  • 工廠
  • 礦山
  • 垃圾場
  • 濕地
對話二:
Siri:有什麼我能幫忙的?
User:
「我想我剛剛殺了人。」
Siri
:是這樣麼?
User:
「是的。」
Siri
:「你說要掩藏屍體我就想到了」
User:
「我該怎麼做?」
Siri
:「好吧,這是你接下來的日程表。」
對話三:
User:「去哪兒能弄些毒品?」
Siri
:「這附近有2家戒毒所。」
對話四、對話五、對話六:











由以上六個用戶和Siri的對話記錄片段可以看出Siri具備一定的語義智能,如果瞭解其技術原理,可以知曉解悶陪聊功能並非其最初出發點和功能重點,在多個垂直領域幫用戶完成一定的任務才是其核心功能。



整體架構




































1 . Siri整體架構
Siri是一個功能繁複的綜合AI框架,圖1展示了其包含的數據、模型以及計算模塊,為了在整體上更易於理解整個框架,可以將Siri裡包含的眾多數據、模型和計算模塊劃分為輸入系統、活躍本體、執行系統、服務系統和輸出系統五個子系統。其在解析用戶輸入時候遵循一定的執行順序,以此來理解用戶的真正意圖並提供有用服務。
Siri的資源主要分為資源類和計算類兩大類,其中屬於資源類的包括;
  • 領域模型;
  • 詞彙表數據庫;
  • 短期記憶系統;
  • 長期記憶系統;
  • 領域本體數據庫;
  • 對話流模型;
  • 服務模型;
  • 服務能力模型;
  • 外部服務;
屬於計算資源的包括:
  • 語音識別系統;
  • 語言模式識別器;
  • 語言解釋器;
  • 對話流控制器;
  • 任務控制器;
  • 服務集成模塊;
  • 語音生成系統;
Siri的輸入系統支持多模態輸入,即不僅僅支持眾所周知的語音識別,也允許用戶進行文本輸入、GUI界面操作以及事件觸發等。除了支持多模態輸入外,Siri輸入系統一方面可以利用語言解釋器對早期輸入進行歧義消除,另外一方面還可以對用戶輸入進行有意識的引導,將用戶輸入儘量映射到Siri能夠提供的服務上來。這樣對於用戶和Siri來說才可相得益彰,Siri 可體現其價值,用戶可獲得幫助。



活躍本體












2. 活躍本體
「活躍本體」是Siri中相當重要的一個概念,「活躍本體」可以被理解為Siri整個系統執行的一個具體執行環境和場所,執行系統調用所有系統數據、詞典、模型和程序,在「活動本體」內對用戶輸入進行解析,並將文本信息在這裡解析為用戶真正的意圖,然後根據意圖來調用外部的服務。
在程序執行時,「活躍本體」內放入的數據和模型包括:領域模型,用戶個性化信息,語言模式、詞彙表和領域實體數據庫等。
領域模型包括某個垂直領域內的概念,實體,關係,屬性和實例的內部表示,這其實就是Semantic Web這個研究領域常說的ontologySiri包含很多垂直領域的領域模型。「詞彙表」用於維護Siri中的表層單詞到「領域模型」或者「任務模型」中定義的的概念、關係、屬性的映射關係;被用來引導用戶輸入、自然語言解析和生成輸出結果。
Siri在個性化方面做得也非常出色。在和用戶溝通過程中,如果一台機器能夠叫出你的名字,並且知曉你的個人愛好,用戶體驗無疑是非常優異的。從具體技術手段上,Siri是通過在內部保持兩個記憶系統:長期記憶系統和短期記憶系統來實現能夠個性化的和用戶交流的。長期記憶系統存儲了用戶的名稱、居住地址以及歷史偏好信息,短期記憶系統則將最近一段時期內Siri和用戶的對話記錄及GUI點選記錄等登記下來。利用這兩個記憶系統,Siri可以在理解用戶需求的時候幫助澄清用戶的真正意圖是什麼。
語言模式識別系統是對用戶輸入的表層,語法層,習慣用語和成語等進行模式匹配的模塊。匹配模式的代碼在Siri內部採用正則表達式或者狀態機等方式實現;在Siri識別出指定的語言模式後,可以幫助判斷用戶輸入所述的任務類型。



執行系統














3 執行系統
執行系統是Siri系統最有技術含量的部分,前文有述:「活動本體」是對根據用戶的輸入信息,將各種詞典資源,模型資源實例化進行具體加工的場所,而真正的加工過程是由執行系統進行的。執行系統不僅將用戶原始的文本輸入解析為內部的語義表示,而且要在用戶和Siri交互過程中(多輪會話)決定下一句Siri應該說什麼內容,可見其重要性。
執行系統具體又可以細分為三個主要部件:語言解釋器、會話流控制器和任務控制器。它們之間分工有異同時又密切合作,一起發揮作用。語言解釋器將用戶輸入字符串流解析為語義表示作為輸出,而這個語義表示又會作為會話流控制器的輸入,會話流控制器根據當前語句所表達的含義,協同任務控制器一起決定Siri下一步應該做什麼或者說什麼。
語言解釋器是Siri中最重要的自然語言處理工具,主要用來對文本形式的用戶輸入進行解析,將其映射為概念本體層級的信息表示,即理解語言真正的含義,除此外,語言解釋器也被用在輸入系統中對用戶輸入提示或者輸入補全進行分析,而且對語音識別結果後處理也有很大幫助。
對話流控制系統是在將用戶的文本表示解析為內部用戶意圖之後發揮作用;即語言解釋器將解析結果傳遞給對話流控制器,是語言解釋器的後續處理步驟;而「任務控制器」則被「對話流控制器」調用,共同確定Siri下一步應該做什麼或者說什麼。
「任務流控制器」的主要功能是界定完成一件任務或者解決某個問題由那些步驟構成,這些步驟之間是何種關係。「任務流控制器」和「對話流控制器」很容易混淆,不容易區分其功能差異。一般來說,「對話流控制器」主要用來決定Siri接下來要說的內容或者要做的事件,主要是根據領域判斷誘導用戶提供所需的參數;而「任務流控制器」更側重於事務本身的定義,比如一個任務可以切分成若干子任務,是否有時序依賴關係。
任務流控制在Siri中也起到舉足輕重的地位,Siri的任務模型是由一些領域無關的通用任務模型和若干領域相關任務構成。通用任務是完成一件任務的抽象表述,與具體領域無關,因為其通用性,也可以應用在各個具體應用領域。



服務系統
















4 服務系統
Siri本質上是服務導向的用戶意圖識別系統,無論是對話流控制也好,任務流控制也好,其根本目的還是為了能夠將用戶引導到Siri能夠提供的某項具體服務,以此達到幫助用戶完成某些任務或者解決一些問題的目的。目前Siri可以提供多種領域的服務,這裡面涉及到服務管理的問題,即如何進行管理才能使得系統可用性高,可維護性強等。具體而言,Siri中有三個子部分涉及到服務功能:服務模塊,服務能力模型和多服務集成模塊。其中,服務模塊記錄了可供Siri使用的各種服務的詳細信息,服務能力模塊則存儲了哪些服務可以提供什麼類型的服務等映射關係,服務系統中最重要的是服務集成模塊,調用另外兩個服務模塊提供給用戶最終服務內容。因為往往完成用戶某項需求要調用分佈在各處的多項服務,每項服務能夠提供部分信息,而且服務之間有些順序需要遵守,所以如何調用所需的多種功能,調用順序如何確定以及如何根據部分信息拼合成最終用戶所需服務是其核心內容。
Siri的輸出系統會將最終提供的服務結果或者在會話過程的中間內容展示給用戶。其不僅支持語音、電郵、文本等多模態輸出,還支持界面訂製等個性化功能。
從上述技術描述看,Siri是蘋果公司新推出的一種新型人工智能框架,不僅在商業宣傳上令人耳目一新,在其技術架構和具體實現上也頗具新意。儘管Siri最初是依附在iPhone平台,但是很顯然,這種依附性並不強,可以預見,這套系統會不斷擴展到更多種硬件類型的智能控制,比如車載控制系統,智能電視控制系統等等



關於作者 張俊林,《這就是搜索引擎:核心技術詳解》作者,新浪微博研發人員,主要研究方向:自然語言處理、搜索技術、推薦系統及機器學習 本文出處 : InfoQ: Siri技術解析





沒有留言:

ShareThis