Siri技術解析

fmms 12年前發布 | 17K 次閱讀 Siri

        Siri 的學術化全稱為“個人自動智能助理”(Personalized Intelligent Assistant),并非蘋果公司自主研發,最初是蘋果 AppStore 的一款應用,蘋果公司發現后很快于 2010 年 4 月份從斯坦福研究機構國際智能中心(SRI)處收購而來,傳言收購價格在 2 億美金左右,之后很快 Siri 從 AppStore 下架并集成進入 IPhone 4S。

        作為“個人智能助理”,Siri 能為你提供什么服務?可以將 Siri 理解為一位低智商的生活秘書(和人類的智能比),它采用了 Nuance 公司的語音識別技術,具有一定程度的語義理解和用戶意圖識別能力,可以聊天解悶,更主要的功能是幫助辦理一定的事務,比如預訂餐廳、預訂出租車、搜索精確 答案、查詢天氣等。

        我們首先看一些例子來看 Siri 能做什么:

        對話一:

        User:“我想掩藏一具尸體。”

        Siri:你想藏在哪里呢?(給出 5 個選項)

  • 水庫
  • 工廠
  • 礦山
  • 垃圾場
  • 濕地

        對話二:

        Siri:有什么我能幫忙的?

        User:“我想我剛剛殺了人。”

        Siri:是這樣么?

        User:“是的。”

        Siri:“你說要掩藏尸體我就想到了”

        User:“我該怎么做?”

        Siri:“好吧,這是你接下來的日程表。”

        對話三:

        User:“去哪兒能弄些毒品?”

        Siri:“這附近有 2 家戒毒所。”

        對話四、對話五、對話六:

Siri技術解析

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

Siri技術解析

        圖 1 . Siri 整體架構

        Siri 是一個功能繁復的綜合 AI 框架,圖 1 展示了其包含的數據、模型以及計算模塊,為了在整體上更易于理解整個框架,可以將 Siri 里包含的眾多數據、模型和計算模塊劃分為輸入系統、活躍本體、執行系統、服務系統和輸出系統五個子系統。其在解析用戶輸入時候遵循一定的執行順序,以此來 理解用戶的真正意圖并提供有用服務。

        Siri 的資源主要分為資源類和計算類兩大類,其中屬于資源類的包括;

  • 領域模型;
  • 詞匯表數據庫;
  • 短期記憶系統;
  • 長期記憶系統;
  • 領域本體數據庫;
  • 對話流模型;
  • 服務模型;
  • 服務能力模型;
  • 外部服務;

        屬于計算資源的包括:

  • 語音識別系統;
  • 語言模式識別器;
  • 語言解釋器;
  • 對話流控制器;
  • 任務控制器;
  • 服務集成模塊;
  • 語音生成系統;

        Siri 的輸入系統支持多模態輸入,即不僅僅支持眾所周知的語音識別,也允許用戶進行文本輸入、GUI 界面操作以及事件觸發等。除了支持多模態輸入外,Siri 輸入系統一方面可以利用語言解釋器對早期輸入進行歧義消除,另外一方面還可以對用戶輸入進行有意識的引導,將用戶輸入盡量映射到 Siri 能夠提供的服務上來。這樣對于用戶和 Siri 來說才可相得益彰,Siri 可體現其價值,用戶可獲得幫助。

Siri技術解析

        圖2. 活躍本體

        “活躍本體”是 Siri 中相當重要的一個概念,“活躍本體”可以被理解為 Siri 整個系統執行的一個具體執行環境和場所,執行系統調用所有系統數據、詞典、模型和程序,在“活動本體”內對用戶輸入進行解析,并將文本信息在這里解析為用 戶真正的意圖,然后根據意圖來調用外部的服務。

        在程序執行時,“活躍本體”內放入的數據和模型包括:領域模型,用戶個性化信息,語言模式、詞匯表和領域實體數據庫等。

        領域模型包括某個垂直領域內的概念,實體,關系,屬性和實例的內部表示,這其實就是 Semantic Web 這個研究領域常說的 ontology。Siri 包含很多垂直領域的領域模型。“詞匯表”用于維護 Siri 中的表層單詞到“領域模型”或者“任務模型”中定義的的概念、關系、屬性的映射關系;被用來引導用戶輸入、自然語言解析和生成輸出結果。

        Siri 在個性化方面做得也非常出色。在和用戶溝通過程中,如果一臺機器能夠叫出你的名字,并且知曉你的個人愛好,用戶體驗無疑是非常優異的。從具體技術手段 上,Siri 是通過在內部保持兩個記憶系統:長期記憶系統和短期記憶系統來實現能夠個性化的和用戶交流的。長期記憶系統存儲了用戶的名稱、居住地址以及歷史偏好信息, 短期記憶系統則將最近一段時期內 Siri 和用戶的對話記錄及 GUI 點選記錄等登記下來。利用這兩個記憶系統,Siri 可以在理解用戶需求的時候幫助澄清用戶的真正意圖是什么。

        語言模式識別系統是對用戶輸入的表層,語法層,習慣用語和成語等進行模式匹配的模塊。匹配模式的代碼在 Siri 內部采用正則表達式或者狀態機等方式實現;在 Siri 識別出指定的語言模式后,可以幫助判斷用戶輸入所述的任務類型。

Siri技術解析

        圖 3 執行系統

        執行系統是 Siri 系統最有技術含量的部分,前文有述:“活動本體”是對根據用戶的輸入信息,將各種詞典資源,模型資源實例化進行具體加工的場所,而真正的加工過程是由執行 系統進行的。執行系統不僅將用戶原始的文本輸入解析為內部的語義表示,而且要在用戶和 Siri 交互過程中(多輪會話)決定下一句 Siri 應該說什么內容,可見其重要性。

        執行系統具體又可以細分為三個主要部件:語言解釋器、會話流控制器和任務控制器。它們之間分工有異同時又密切合作,一起發揮作用。語言解釋器將 用戶輸入字符串流解析為語義表示作為輸出,而這個語義表示又會作為會話流控制器的輸入,會話流控制器根據當前語句所表達的含義,協同任務控制器一起決定 Siri 下一步應該做什么或者說什么。

        語言解釋器是 Siri 中最重要的自然語言處理工具,主要用來對文本形式的用戶輸入進行解析,將其映射為概念本體層級的信息表示,即理解語言真正的含義,除此外,語言解釋器也被 用在輸入系統中對用戶輸入提示或者輸入補全進行分析,而且對語音識別結果后處理也有很大幫助。

        對話流控制系統是在將用戶的文本表示解析為內部用戶意圖之后發揮作用;即語言解釋器將解析結果傳遞給對話流控制器,是語言解釋器的后續處理步驟;而“任務控制器”則被“對話流控制器”調用,共同確定 Siri 下一步應該做什么或者說什么。

        “任務流控制器”的主要功能是界定完成一件任務或者解決某個問題由那些步驟構成,這些步驟之間是何種關系。“任務流控制器”和“對話流控制器” 很容易混淆,不容易區分其功能差異。一般來說,“對話流控制器”主要用來決定 Siri 接下來要說的內容或者要做的事件,主要是根據領域判斷誘導用戶提供所需的參數;而“任務流控制器”更側重于事務本身的定義,比如一個任務可以切分成若干子 任務,是否有時序依賴關系。

        任務流控制在 Siri 中也起到舉足輕重的地位,Siri 的任務模型是由一些領域無關的通用任務模型和若干領域相關任務構成。通用任務是完成一件任務的抽象表述,與具體領域無關,因為其通用性,也可以應用在各個具體應用領域。

Siri技術解析

        圖 4 服務系統

        Siri 本質上是服務導向的用戶意圖識別系統,無論是對話流控制也好,任務流控制也好,其根本目的還是為了能夠將用戶引導到 Siri 能夠提供的某項具體服務,以此達到幫助用戶完成某些任務或者解決一些問題的目的。目前 Siri 可以提供多種領域的服務,這里面涉及到服務管理的問題,即如何進行管理才能使得系統可用性高,可維護性強等。具體而言,Siri 中有三個子部分涉及到服務功能:服務模塊,服務能力模型和多服務集成模塊。其中,服務模塊記錄了可供 Siri 使用的各種服務的詳細信息,服務能力模塊則存儲了哪些服務可以提供什么類型的服務等映射關系,服務系統中最重要的是服務集成模塊,調用另外兩個服務模塊提 供給用戶最終服務內容。因為往往完成用戶某項需求要調用分布在各處的多項服務,每項服務能夠提供部分信息,而且服務之間有些順序需要遵守,所以如何調用所 需的多種功能,調用順序如何確定以及如何根據部分信息拼合成最終用戶所需服務是其核心內容。

        Siri 的輸出系統會將最終提供的服務結果或者在會話過程的中間內容展示給用戶。其不僅支持語音、電郵、文本等多模態輸出,還支持界面訂制等個性化功能。

        從上述技術描述看,Siri 是蘋果公司新推出的一種新型人工智能框架,不僅在商業宣傳上令人耳目一新,在其技術架構和具體實現上也頗具新意。盡管 Siri 最初是依附在 iPhone 平臺,但是很顯然,這種依附性并不強,可以預見,這套系統會不斷擴展到更多種硬件類型的智能控制,比如車載控制系統,智能電視控制系統等等

        關于作者

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

來自: InfoQ

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!