Siri技术解析

fmms 10年前
     <p>        Siri 的学术化全称为“个人自动智能助理”(Personalized Intelligent Assistant),并非苹果公司自主研发,最初是苹果 AppStore 的一款应用,苹果公司发现后很快于 2010 年 4 月份从斯坦福研究机构国际智能中心(SRI)处收购而来,传言收购价格在 2 亿美金左右,之后很快 Siri 从 AppStore 下架并集成进入 IPhone 4S。</p>    <p>        作为“个人智能助理”,Siri 能为你提供什么服务?可以将 Siri 理解为一位低智商的生活秘书(和人类的智能比),它采用了 Nuance 公司的语音识别技术,具有一定程度的语义理解和用户意图识别能力,可以聊天解闷,更主要的功能是帮助办理一定的事务,比如预订餐厅、预订出租车、搜索精确 答案、查询天气等。</p>    <p>        我们首先看一些例子来看 Siri 能做什么:</p>    <p>        <strong>对话一:</strong></p>    <p>        <strong>User:“</strong><strong>我想掩藏一具尸体。”</strong></p>    <p>        Siri:你想藏在哪里呢?(给出 5 个选项)</p>    <ul>     <li>水库</li>     <li>工厂</li>     <li>矿山</li>     <li>垃圾场</li>     <li>湿地</li>    </ul>    <p>        对话二:</p>    <p>        Siri:有什么我能帮忙的?</p>    <p>        <strong>User:“</strong><strong>我想我刚刚杀了人。”</strong></p>    <p>        Siri:是这样么?</p>    <p>        <strong>User:“</strong><strong>是的。”</strong></p>    <p>        Siri:“你说要掩藏尸体我就想到了”</p>    <p>        <strong>User:“</strong><strong>我该怎么做?”</strong></p>    <p>        Siri:“好吧,这是你接下来的日程表。”</p>    <p>        <strong>对话三:</strong></p>    <p>        <strong>User:“</strong><strong>去哪儿能弄些毒品?”</strong></p>    <p>        Siri:“这附近有 2 家戒毒所。”</p>    <p>        <strong>对话四、对话五、对话六:</strong></p>    <p style="text-align:center;"><img border="0" alt="Siri技术解析" src="https://simg.open-open.com/show/9f81479ed4fc2c9e7752fee78648ff5c.jpg" width="579" height="299" /></p>    <p>        由以上六个用户和 Siri 的对话记录片段可以看出 Siri 具备一定的语义智能,如果了解其技术原理,可以知晓解闷陪聊功能并非其最初出发点和功能重点,在多个垂直领域帮用户完成一定的任务才是其核心功能。</p>    <p style="text-align:center;"><img border="0" alt="Siri技术解析" src="https://simg.open-open.com/show/7499c1399a87db3e16ceeb47cd8a11d6.jpg" width="478" height="523" /></p>    <p style="text-align:center;">        图 1 . Siri 整体架构</p>    <p>        Siri 是一个功能繁复的综合 AI 框架,图 1 展示了其包含的数据、模型以及计算模块,为了在整体上更易于理解整个框架,可以将 Siri 里包含的众多数据、模型和计算模块划分为输入系统、活跃本体、执行系统、服务系统和输出系统五个子系统。其在解析用户输入时候遵循一定的执行顺序,以此来 理解用户的真正意图并提供有用服务。</p>    <p>        Siri 的资源主要分为资源类和计算类两大类,其中属于资源类的包括;</p>    <ul>     <li>领域模型;</li>     <li>词汇表数据库;</li>     <li>短期记忆系统;</li>     <li>长期记忆系统;</li>     <li>领域本体数据库;</li>     <li>对话流模型;</li>     <li>服务模型;</li>     <li>服务能力模型;</li>     <li>外部服务;</li>    </ul>    <p>        属于计算资源的包括:</p>    <ul>     <li>语音识别系统;</li>     <li>语言模式识别器;</li>     <li>语言解释器;</li>     <li>对话流控制器;</li>     <li>任务控制器;</li>     <li>服务集成模块;</li>     <li>语音生成系统;</li>    </ul>    <p>        Siri 的输入系统支持多模态输入,即不仅仅支持众所周知的语音识别,也允许用户进行文本输入、GUI 界面操作以及事件触发等。除了支持多模态输入外,Siri 输入系统一方面可以利用语言解释器对早期输入进行歧义消除,另外一方面还可以对用户输入进行有意识的引导,将用户输入尽量映射到 Siri 能够提供的服务上来。这样对于用户和 Siri 来说才可相得益彰,Siri 可体现其价值,用户可获得帮助。</p>    <p style="text-align:center;"><img border="0" alt="Siri技术解析" src="https://simg.open-open.com/show/d982173f90835add34e8395040fe718d.jpg" width="555" height="273" /></p>    <p style="text-align:center;">        图2. 活跃本体</p>    <p>        “活跃本体”是 Siri 中相当重要的一个概念,“活跃本体”可以被理解为 Siri 整个系统执行的一个具体执行环境和场所,执行系统调用所有系统数据、词典、模型和程序,在“活动本体”内对用户输入进行解析,并将文本信息在这里解析为用 户真正的意图,然后根据意图来调用外部的服务。</p>    <p>        在程序执行时,“活跃本体”内放入的数据和模型包括:领域模型,用户个性化信息,语言模式、词汇表和领域实体数据库等。</p>    <p>        领域模型包括某个垂直领域内的概念,实体,关系,属性和实例的内部表示,这其实就是 Semantic Web 这个研究领域常说的 ontology。Siri 包含很多垂直领域的领域模型。“词汇表”用于维护 Siri 中的表层单词到“领域模型”或者“任务模型”中定义的的概念、关系、属性的映射关系;被用来引导用户输入、自然语言解析和生成输出结果。</p>    <p>        Siri 在个性化方面做得也非常出色。在和用户沟通过程中,如果一台机器能够叫出你的名字,并且知晓你的个人爱好,用户体验无疑是非常优异的。从具体技术手段 上,Siri 是通过在内部保持两个记忆系统:长期记忆系统和短期记忆系统来实现能够个性化的和用户交流的。长期记忆系统存储了用户的名称、居住地址以及历史偏好信息, 短期记忆系统则将最近一段时期内 Siri 和用户的对话记录及 GUI 点选记录等登记下来。利用这两个记忆系统,Siri 可以在理解用户需求的时候帮助澄清用户的真正意图是什么。</p>    <p>        语言模式识别系统是对用户输入的表层,语法层,习惯用语和成语等进行模式匹配的模块。匹配模式的代码在 Siri 内部采用正则表达式或者状态机等方式实现;在 Siri 识别出指定的语言模式后,可以帮助判断用户输入所述的任务类型。</p>    <p style="text-align:center;"><img border="0" alt="Siri技术解析" src="https://simg.open-open.com/show/aa4f61c4350c9c753de76823d3d420ae.jpg" width="546" height="304" /></p>    <p style="text-align:center;">        图 3 执行系统</p>    <p>        执行系统是 Siri 系统最有技术含量的部分,前文有述:“活动本体”是对根据用户的输入信息,将各种词典资源,模型资源实例化进行具体加工的场所,而真正的加工过程是由执行 系统进行的。执行系统不仅将用户原始的文本输入解析为内部的语义表示,而且要在用户和 Siri 交互过程中(多轮会话)决定下一句 Siri 应该说什么内容,可见其重要性。</p>    <p>        执行系统具体又可以细分为三个主要部件:语言解释器、会话流控制器和任务控制器。它们之间分工有异同时又密切合作,一起发挥作用。语言解释器将 用户输入字符串流解析为语义表示作为输出,而这个语义表示又会作为会话流控制器的输入,会话流控制器根据当前语句所表达的含义,协同任务控制器一起决定 Siri 下一步应该做什么或者说什么。</p>    <p>        语言解释器是 Siri 中最重要的自然语言处理工具,主要用来对文本形式的用户输入进行解析,将其映射为概念本体层级的信息表示,即理解语言真正的含义,除此外,语言解释器也被 用在输入系统中对用户输入提示或者输入补全进行分析,而且对语音识别结果后处理也有很大帮助。</p>    <p>        对话流控制系统是在将用户的文本表示解析为内部用户意图之后发挥作用;即语言解释器将解析结果传递给对话流控制器,是语言解释器的后续处理步骤;而“任务控制器”则被“对话流控制器”调用,共同确定 Siri 下一步应该做什么或者说什么。</p>    <p>        “任务流控制器”的主要功能是界定完成一件任务或者解决某个问题由那些步骤构成,这些步骤之间是何种关系。“任务流控制器”和“对话流控制器” 很容易混淆,不容易区分其功能差异。一般来说,“对话流控制器”主要用来决定 Siri 接下来要说的内容或者要做的事件,主要是根据领域判断诱导用户提供所需的参数;而“任务流控制器”更侧重于事务本身的定义,比如一个任务可以切分成若干子 任务,是否有时序依赖关系。</p>    <p>        任务流控制在 Siri 中也起到举足轻重的地位,Siri 的任务模型是由一些领域无关的通用任务模型和若干领域相关任务构成。通用任务是完成一件任务的抽象表述,与具体领域无关,因为其通用性,也可以应用在各个具体应用领域。</p>    <p style="text-align:center;"><img border="0" alt="Siri技术解析" src="https://simg.open-open.com/show/962a6c59ee2bf6958b23f5d08b0e07ef.jpg" width="506" height="303" /></p>    <p style="text-align:center;">        图 4 服务系统</p>    <p>        Siri 本质上是服务导向的用户意图识别系统,无论是对话流控制也好,任务流控制也好,其根本目的还是为了能够将用户引导到 Siri 能够提供的某项具体服务,以此达到帮助用户完成某些任务或者解决一些问题的目的。目前 Siri 可以提供多种领域的服务,这里面涉及到服务管理的问题,即如何进行管理才能使得系统可用性高,可维护性强等。具体而言,Siri 中有三个子部分涉及到服务功能:服务模块,服务能力模型和多服务集成模块。其中,服务模块记录了可供 Siri 使用的各种服务的详细信息,服务能力模块则存储了哪些服务可以提供什么类型的服务等映射关系,服务系统中最重要的是服务集成模块,调用另外两个服务模块提 供给用户最终服务内容。因为往往完成用户某项需求要调用分布在各处的多项服务,每项服务能够提供部分信息,而且服务之间有些顺序需要遵守,所以如何调用所 需的多种功能,调用顺序如何确定以及如何根据部分信息拼合成最终用户所需服务是其核心内容。</p>    <p>        Siri 的输出系统会将最终提供的服务结果或者在会话过程的中间内容展示给用户。其不仅支持语音、电邮、文本等多模态输出,还支持界面订制等个性化功能。</p>    <p>        从上述技术描述看,Siri 是苹果公司新推出的一种新型人工智能框架,不仅在商业宣传上令人耳目一新,在其技术架构和具体实现上也颇具新意。尽管 Siri 最初是依附在 iPhone 平台,但是很显然,这种依附性并不强,可以预见,这套系统会不断扩展到更多种硬件类型的智能控制,比如车载控制系统,智能电视控制系统等等</p>    <p>        <strong>关于作者</strong></p>    <p>        张俊林,《这就是搜索引擎:核心技术详解》作者,新浪微博研发人员,主要研究方向:自然语言处理、搜索技术、推荐系统及机器学习。</p>    <div id="come_from">     来自:     <a id="link_source2" href="/misc/goto?guid=4958334258919935264" target="_blank">InfoQ</a>    </div>