构建智能用户辅助设备的方法

文档序号:5264676阅读:879来源:国知局
专利名称:构建智能用户辅助设备的方法
技术领域
本发明与数据处理中的专家系统有关。具体地说,本发明涉及一种自动机推理系统和方法,通过推断用户在操作软件系统或应用上的需要和偏好为软件用户提供帮助和使计算机系统和软件的功能最佳化。
背景技术
虽然在图形用户接口方面的显著进步已使各种软件应用对于个人计算机用户来说较容易操作和更富有成效,但是为了使使用更为方便就需要包括越来越多的复杂功能部件。首次面对一个复杂的软件应用,一个新的用户可能会被大量复杂的可通过用户接口的菜单和工具栏访问的功能搞得不知所措。对于一个不熟悉软件功能的用户来说,在希望发现怎样实施所希望的功能的过程中,通常不能依靠菜单冲浪,迅速地在菜单选项之间来回切换。即使用户知道一个或几个方法利用一个软件应用执行一项任务,然而往往找不到一条有效的途径。此外,用户可能知道怎样执行任务而不是自己执行任务,他们宁可让一个系统事先主动地确定他们的需要和执行或提供需执行的操作,如弹出即将需要的应用、退出应用和从远地服务器预取文件或信息以使它们在需要时马上可用。
以自动方式确定需执行的最佳行动或提供给正在用软件进行工作的用户的最佳信息需要开发与软件程序配合工作、具有根据用户的背景和行动识别出用户的要求、意图或目标的计算方法。这些方法可以通过构成和利用直接将用户的要求与他们的背景和行动联系起来的模型得出。
在采用模型对执行各种任务的人们的意图进行推理和根据这些模型提供可采纳的建议或帮助上已经有了一些研究。研究在教育中利用计算机的一些研究人员已致力于编制利用用户模型确定错误理解的原因和指导学生的最佳方式的程序。这些模型监视用户对问题和其他询问作出的回答。八十年代的战略计算倡议(Strategic ComputingInitiative)把注意力部分集中在根据一组不同的输入对飞行员的意图进行推理和为他们提供驾驶和用战斗机战斗的最佳帮助的方法。在许多诸如“飞行员助理”的课题中,工程技术人员致力于设计能对用户意图进行推理的系统。通常,采用基于规则的逻辑方法来确定或按优先次序排列可供选择的方案。
在利用概率模型模型化用户对诸如监视复杂、时间要求苛刻的应用之类的任务的要求上也做了一些工作。早期的一些对概率依从模型及其在改善信息显示上的应用的探讨反映在通过对用户建模控制向飞机驾驶员显示的信息的一些实验项目中。概率推理作为控制向飞行员显示的信息的一种措施进行了研究。其他工作包括利用决策论方法推断需向NASA任务控制中心的飞行工程师显示的最重要的信息。这些方法考虑了上下文、用户熟练程度和来自宇航运载工具的遥测数据作出这些判决,利用了用户的想法和意图的瞬时性和概率模型。其他有关工作探索了在给定各个显示折衷方案情况下向飞行员显示的最佳类型的信息和解释。在其他工作中,科研人员研究了利用概率模型用计算机操作系统的命令行输入系统帮助正在工作的计算机用户。
还有一些项目注意力集中在利用若干组逻辑规则和根据逻辑规则的试探方法根据上下文和行动为用户提供帮助上。例如,在为Microsoft Windows操作系统编写的一些应用中可用的公共上下文敏感帮助可以通过选择一个图形目标和点击一个标准的帮助命令(例如键盘上的一个功能键)来访问。于是,就为用户提供帮助信息,说明这个图形目标(如工具栏)的功能。另一个例子是Microsoft Excel产品中的TipWizard系统,它利用了一大组逻辑规则,不断监视相继发生的用户事件,为用户提供帮助,使他们更有效地完成任务。在授予给Luciw等人的美国专利No.5,390,281所说明的对Apple计算机所做的工作中,利用了若干组规则通过应用对规则的若干条件与在具体情况下看到的、其中部分可转换为与这个规则指示的行动对应的强度的那些特定条件进行比较的启发式推理在一些任务上为用户提供帮助。
还有一些工作对较为复杂的概率模型作了研究,考虑了用户目标和需要软件帮助中的不确定性。Microsoft Office产品的AnswerWizard功能为了帮助用户使用计算机软件应用利用概率模型判读用户自由文本查询中的词。在这个工作中,在查询中可以看到的有关词组与各种帮助之间的不确定关系用概率加以模型化。这方面的研究可参见美国专利申请No.08400797。
然而,这些以前的研究中还没有一个利用复杂的方法在不确定性的情况下考虑多种证据(包括用户的背景信息和程序自主监测到的用户的活动)对用户需要帮助进行推理,根据推理为用户提供有意义的相关帮助。这些系统也没有考虑监视用户与软件程序的交互作用,因此,在用户用自由文本查询直接请求帮助时,系统也不能将对自由文本查询中的词的分析与历来对用户行动和程序上下文的分析加以综合考虑。
因此,希望开发的是这样一种智能用户辅助设备,它能在考虑多种证据(包括用户的背景信息和用户的活动)的基础上自主地体会到用户在使用一个特定功能或执行某具体任务上可能需要帮助和显示可提供的相关帮助。还需要这样一种智能用户辅助设备,每当用户用自由文本查询直接请求帮助时,它能将对自由文本查询中的词的分析与历来对用户行动和程序上下文的分析综合起来加以考虑。本发明解决了在考虑多种证据(包括用户的背景信息和用户的活动)的基础上自主地体会到用户在使用一个特定功能或执行某具体任务上可能需要帮助和显示可提供的相关帮助的问题。本发明还解决了每当用户用自由文本查询直接请求帮助时将对自由文本查询中的词的分析与历来对用户行动和程序上下文的分析综合起来加以考虑的问题。此外,本发明还能对几种事件进行监视和推理,这些事件包括一个程序中的关键数据结构的状态,在通常与图形用户界面交互作用过程中用鼠标器控制的光标进行的普通用户输入序列,请求帮助时在自由文本查询中键入的词,有关用户的诸如凝视和姿态信息之类的视觉信息,以及语音信息。

发明内容
本发明提供了一种为一个软件程序构建一个帮助用户操作这个软件程序的智能用户辅助设备的方法。对于这个所标识的程序功能,为完成提供智能用户帮助的任务建立了一个推理模型。这个推理模型通过分析有关用户的行动、程序的状态和词的信息计算出各备选的用户的意图、目标和信息要求。定义了所标识的程序功能的一系列模型化事件供推理模型使用,以提供智能用户帮助。标识了表明发生模型化事件的基本用户接口交互作用。
本发明还包括一个使高层事件可以通过组合低层事件产生的通用事件合成和监视系统。这个事件系统与一个推理系统相结合能对几类事件进行监视和推理,以满足不同的需要。各类事件包括一个程序中的关键数据结构的状态,在通常与图形用户界面交互作用过程中用鼠标器控制的光标进行的用户输入序列,请求帮助时在自由文本查询中键入的词,有关用户的诸如凝视和姿态信息之类的视觉信息,以及语音信息。本发明还提供了一种监视用户与一个软件程序的交互作用和加以概率推理的系统和方法,用来检测用户在使用一个特定功能或执行某具体任务上可能需要帮助。系统不断地审视用户的行动,根据这个信息产生有关用户需要和目标的概率。
在一个典型的实施例中,对各种基于文本的帮助主题或演示不同软件任务是相关的这些似然性进行计算,以便为用户提供帮助。对相关的帮助主题的概率以及用户可能需要帮助的概率也进行计算。在这个实施例中,在请求帮助时本发明计算出用户需要帮助的各种备选形式的概率,利用这个信息按优先次序列出一个帮助主题表。在还没有请求帮助时,系统利用它的推理确定用户可能需要帮助的时间,自主地提供帮助,这取决于计算得出的提供帮助的重要性是否超过用户设置的门限的值。每当用户用自由文本查询直接请求帮助时,这个实施例就将对自由文本查询中的词的分析与历来对用户行动和程序上下文的分析综合在一起加以考虑。
本发明包括一个丰富的可更新用户资料系统。在帮助主题实施例中,推理系统访问用户资料系统,不断核查用户能力,根据用户能力改变给出的帮助。
本发明还包括一个具有一个带注释的贝叶斯网络的新颖推理系统,以具备专用的时序推理能力。时序推理的机制用来考虑事件发生后事件与用户的当前需要和目标的相关性随时间的变化。这种推理机包括一个新的专用近似过程,它利用一个单个显式贝叶斯网络数据库,但根据自观察以后所过去的时间改变网络中的似然信息。
这种系统还允许用户控制在为用户提供帮助前必需达到的门限,这使用户可以根据用户各自对于受帮助打扰的容忍程度修改系统的行为。最后,这些方法可以与多种图形用户接口,包括呈卡通人物形式的友善用户接口,结合起来。


在本说明的附图中图1为一个计算机系统的方框图;图2示出了为一个软件程序构建智能用户设备的流程图;图3例示了一个二变量贝叶斯网络;图4为一个智能用户辅助设备的方框图;图5为一个带监测的应用程序的方框图;图6为一个与智能用户辅助设备配合使用的带监测的电子表格应用程序的方框图;
图7为一个事件处理器的方框图;图8是一个建立模型化事件合成器的事件系统描述工具的方框图;图9为一个用户资料系统的方框图;图10为图9所示用户资料系统的事件状态更新例行程序的流程图;图11为图9所示用户资料系统的用户资料访问例行程序的流程图;图12为图9所示用户资料系统的用户化个别指导例行程序的流程图;图13为本发明所提出的推理系统的方框图;图14为例示利用本发明所提出的为用户提供帮助的IUAF的任何软件程序的总影响关系的贝叶斯网络图;图15为部分贝叶斯网络的例示图,示出了在各时刻的一些概率依从关系;图16为按照本发明的原理设计的用来获取用户信息的信息价值过程的流程图;图17-22分别例示了在一个电子表格应用的典型实施例中按照本发明的原理构成的IUAF的一些屏幕输出;图23例示了在一个电子表格应用的典型实施例中按照本发明的原理构成的IUAF的屏幕输出,显示专为用户制定的个别指导的摘要;图24示出了按照本发明的原理构成的IUAF的贝叶斯网络的一部分;图25示出了用于电子表格应用的贝叶斯网络的一部分,其中例示了电子表格绘图数据的模型化事件和资料化事件;图26示出了在一个电子表格应用的典型实施例中按照本发明的原理构成的带瞬时动态信息注释的贝叶斯网络;图27示出了贝叶斯网络的一部分,其中例示了按照本发明的原理建立的在一个多应用的设置中帮助退出的模型;图28-30示出了贝叶斯网络的一部分,其中例示了在一个多应用的设置中为帮助退出所进行的推理;
图31为示出IUAF控制器的各种控制模式的例示图;图32为按照本发明所提出的将对用户行动和程序状态的分析进行的推理与对自由文本查询的分析进行的推理综合起来考虑的方法的流程图;图33为本发明的自主帮助过程的流程图;图34例示了为一个电子表格程序提供智能用户帮助的友善界面;以及图35为显示利用推理结果改善语音识别的带语音识别系统的IUAF的方框图;图36显示为用户提供电子表格程序帮助的较完整的贝叶斯网络。
具体实施例方式
本发明提供了一种可以通过组合低层事件来建立高层事件的通用事件合成和监视系统。这种事件系统与推理系统相结合就能为各种目的对各类事件进行监视和推理。所谓各类事件包括一个程序中关键数据结构的状态,在与图形用户界面交互作用过程中用鼠标器控制的光标执行的普通用户输入序列,自由文本求助请求中打入的词,有关用户的可视信息(如凝视和姿态信息),以及语音信息。本发明还利用了一种新颖的事件描述工具,可以迅速开发能通过组合用户的行动来建立高层事件的通用事件处理器。
本发明还包括一种具有带注释的贝叶斯网络的新颖推理系统,以包括一些专用的瞬时推理过程。这种推理机包括一个特定的近似过程,它利用单个显式贝叶斯网络知识库,但根据自观察以后所经过的时间改变网络中的似然信息。这个知识库包括带瞬时动态信息的专用注释,而推理机包括处理相关性随时间改变的专用过程。
本发明还提供了一种利用概率和逻辑推理决定为计算机软件用户提供帮助的最佳方式的智能用户辅助设备和方法。本发明还提供了一种建立智能用户辅助设备的方法,通过分析有关用户的行动、程序状态和词语的信息构造计算用户的意向、目的或信息需要的概率的推理模型。本发明的一个典型实施例通过对用户与软件应用的交互作用的监视运用概率推理来体会用户在使用某个功能上或要完成特定任务上可能需要帮助。本发明的这个实施例还接受来自用户的请求帮助的自由文本查询,将对用户行动和程序状态的推理分析与对自由文本查询的推理分析结合起来。本发明的这个实施例还采用了一个新颖的用户资料系统,存储最初可以通过用户输入或与用户的对话建立的、以后根据用户的行动更新的用户能力的信息。这个持久的用户资料提供了在推理分析期间所需的用户能力信息,还能在一段应用对话结束后为用户制定个别指导信息。
此外,这个实施例还包括确定什么时候用户可能需要帮助的自主帮助推理,根据计算得出的给予帮助的重要性和用户设定的门限的级别自动给予帮助。在用户真正用自由文本查询直接请求帮助时,系统还将对自由文本请求中的词的分析与对用户行动的历来分析结合起来。
图1为适合实现本发明典型实施例的计算机系统10的方框图。熟悉本技术领域的人员可以理解,图1所示的计算机系统10只是示例性的,本发明也可以用其他计算机系统配置(如分布系统和多处理器系统)和便携设备实现。计算机系统10包括处理器12和输入/输出系统14。输入装置例如可以是摄像机15、键盘16、鼠标器18、拾音器20、指点装置或其他输入装置。输出装置例如可以是显示屏22、打印机24、扬声器26或其他输出装置。计算机系统10可以包括将语音系统与拾音器20和扬声器26对接的语音接口27。计算机系统10可以包括将视觉识别和监视系统与摄像机15或其他带红外反射器或三维超声传感器的专用头盔对接的视觉识别和监视接口29。计算机系统10还可以包括将计算机与网络(可以是局域网或诸如Internet那样的广域网)30对接的网络接口28。此外,计算机系统10还包括存有应用程序和智能用户辅助设备的系统存储器32和永久性存储器34。永久性存储器可以是软盘、CDROM、硬驱动器或固件。计算机系统10包括操作系统36和一些应用程序,如电子表格(spreadsheet)应用程序38、文字处理应用程序40或其他应用程序42。系统总线44将处理器12、系统存储器32、永久性存储器34和输入/输出系统14互连在一起。熟悉本技术领域的人员可以理解,智能用户辅助设备可以直接并入应用程序,也可以是作为系统库或操作系统一部分的独立设备。
智能用户辅助设备(IUAF)综述虽然软件适用性研究可以精确确定用户界面在访问复杂功能时的问题,加以简化,使用户界面对于访问这些功能更为直观,但对用户界面的改善并不能为没有经验的用户藏起大量的复杂功能或简化复杂功能的操作性而不减少通过界面暴露的功能数和/或仅暴露完整功能的简化版本。
软件程序适用性研究的一个附加收获是可以标识用户在使用某个软件程序的基本功能中遇到困难时的行为。本发明提供了一种通过观察和理解用户在遇到这种困难时或在可能由于提供自动帮助而获益时的行为为一个具体软件程序构成一个智能用户辅助设备的处理方法。
图2示出了为一个软件程序构成智能用户辅助设备的方法的流程图。这个方法的第一个步骤50是标出一个具体软件程序中用户遇到困难或可能从自动帮助获益的基本功能以及用户在遇到这些困难或希望得到帮助时的行动。完成这一步骤的一种方式是在对这个具体软件程序进行适用性研究期间观察和记录用户遇到困难时的行动。例如,在电子表格程序适用性研究期间,可能要请求与电子表格交互作用的用户更新电子表格上的数据的图形图表(如条形图)。然而,用户可能还没有改变或修正已建立的条形图的经验。于是,用户就表现出如下行为首先,用户通过将鼠标器指针压到条形图上双击鼠标器按钮选择这个条形图;然后,用户会暂停一段时间,省视这个图表,寻思或搜索下一步操作。观察到这个行动,表示用户在利用电子表格的图表功能上正遇到困难。
一旦标出了在利用基本功能上的困难,下一个步骤52就是建立一个为所标基本功能提供智能帮助的任务的模型。一种模型是一个能表示可观察证据、中间变量和所关注假设之间的概率关系的相关变量网络,如贝叶斯网络。贝叶斯网络是一个有向非循环图,其中的节点表示随机变量,而节点间的连线表示这些变量之间的概率关系。一个贝叶斯网络表示了一组变量的联合概率分布。业已研究了一些称为贝叶斯推理算法的计算程序来处理贝叶斯网络。这些算法用来在变量状态值有改变后更新贝叶斯网络中变量状态上的概率分布。状态改变的一个例子是在观察到这个领域的一些状态后为表示这个领域的这些可观察状态的变量的状态指定新的值。有关贝叶斯网络的情况可参见“智能系统中的概率推理”(“Probabilistic Reasoning In IntelligentSystems”,by Judea Pearl,1Morgan Kaufmann Publishing Inc.SanMateo,1988)。
节点中有些是表示可以观察到的证据的变量,而另一些则表示不能观察或很难观察到的所关注假设,这些假设在进行自动判决时要用到。图3示出了一个简单的二变量贝叶斯网络。这个网络表示了用户处于一个需要帮助的状态68与用户正在多菜单探索69或“菜单冲浪”(menu surfing)而没有进展之间的关系。菜单冲浪可以察觉,但用户是否需要帮助却不能轻易观察到。在对用户面对复杂软件功能遇到的困难进行建模中,证据节点可以表示用户在用一个软件程序功能完成朝向目标的行动或遇到困难时的行动,而假设节点可以表示用户的目标或用户为了用这个功能完成任务所需的具体帮助。例如,在创建一个图表时用户在选择了建立图表命令后暂停。可以用一个证据节点变量表示用户选择一个命令后暂定这个情况。一个假设节点变量可以表示在用户选择建立图表命令之后暂定的情况下用户在创建一个图表中需要帮助这个假设的概率。利用贝叶斯网络是构建这类用户行动与假设之间不确定关系的模型的一种方法。熟悉本技术领域的人员可以理解,也能利用其他模型,如判决树或基于规则的推理。
无论是哪种模型,下个步骤54是定义证据变量和相应的模型化事件,这些模型化事件能用来鉴别个人在使用软件程序基本功能上可能有的个别困难和所需帮助,并且在用户的与软件的交互作用中是可以察觉的。在构建智能辅助设备的贝叶斯网络模型中的一个关键任务是定义将要观察的证据变量和指出这些变量与表示所关注假设的变量之间的概率关系。这些事件都是有利于检测和鉴别个人在使用一个软件应用的复杂软件功能特别是特殊的复杂软件功能上通常可能有的个别困难和需要的事件。
对于识别用户什么时候和需要什么样的帮助有价值的观测种类包括搜索证据(如多菜单探索),寻思证据(如突然暂停或减慢命令流),注意力集中证据(如选择后停在目标上),无效动作证据(如命令/撤消、对话框打开后又关闭而没有动作),无效命令序列的证据、正在处理的文件的结构和语义内容,以及目标明确的行动序列。此外,程序状态和程序内容、用户能力、用户检阅信息的历史也都是有用的。
在构建贝叶斯网络和规定这些可观察变量中,重要的是要考虑将有利于检测用户行动的智能用户辅助设备的特性和规定。必需考虑那些软件系统或应用可加利用的基本事件。在发发生时可被系统检测到的模型化事件设计成与可观察变量相应。模型化事件必需根据软件程序产生的基本事件定义。
在运行时,与可观察证据变量相应的在贝叶斯网络中模型化的模型化事件提供给推理系统,由它将这些证据变量设置为具体值。智能用户辅助设备具有考虑最近多个模型化事件并行发生的能力,考虑这些事件发生的时间的能力,以及利用这些所监测信息更新贝叶斯网络内受观察变量的状态的能力。在推理系统中,按照受观察变量的状态和定时对贝叶斯网络及其相应的动态改变的设置进行分析,产生各个所关注假设的经更新的似然性。这些概率用来对用户的行动作出判决,确定向用户显示什么信息。
完成定义贝叶斯网络中的证据变量及相应的模型化事件后,下一步骤56是标识指示发生各模型化事件的基本事件。模型化事件可用发生与用户行动或程序状态关联的单个基本事件定义,或者可以表示由一个或多个基本事件构成的序列。例如,(1)用户选择一个条形图和(2)停在这个图上超过10秒没有动作这两个基本事件可以合成一个模型化事件,相应于贝叶斯网络中的一个证据变量。这样两个基本事件可以组合成一个模型化事件Sel-Chart-Pause,表示用户在更新电子表格的带数据图表上有困难。
贝叶斯网络中的变量可以是二值的,也就是只有两个状态(如不发生、发生),也可以有多个状态。在有多个值的情况下,变量设置为状态中与观察相应的一个状态。虽然说明的是二值观察变量的情况,但这些技术也可以用于具有更多的值的变量。在观察到模型化事件、将情况通知推理系统时,与这个事件相应的证据变量就在得知事件发生的时刻被置为“发生”。每当对贝叶斯网络执行概率推理时,考虑所有可由模型化事件设置的变量的状态。通过推理,所关注的假设变量就会有所改变。例如,如果发生Sel-Chart-Pause和其他要更新用户在与图表有关的任务上有困难的概率的观察,那么指配给用户在更新电子表格的带数据图表上有困难这个假设的概率就可能增大。
模型化事件的另一个例子是用户选择了与图表有关的命令集合中的任何一个命令后接着又选择Undo(撤消)命令的行动。发生一个集合中任何基本或模型化事件之一后接Undo命令会合成一个Chart-Cmd-Undo模型化事件。在这个模型化事件设置贝叶斯网络中的相应证据节点后,可以看到指配给用户在更新电子表格的带数据图表上有困难这个假设的概率增大。再来看前面这个例子,模型化事件Sel-Chart-Pause的基本事件是(1)用户选择一个条形图,然后(2)暂停了超过预定的一段时间(如10秒)没有动作。
基本事件可以用作模型化事件。例如,Del-Chart是一个基本事件,表示删除一个图表,但它也是一个模型化事件,相应于贝叶斯网络中的一个观察变量。
模型化事件还包括有关一个应用中的数据结构的状态的文本信息。例如,Chart-View,表示一个图表正在显示。这将增大用户需要图表制作有关帮助的概率。
出现在自由文本查询中的词也是基本事件。高层的模型化事件可以定义为在用户的查询中出现预定词集合中的一个词。如果用户的查询是“我怎样改变这个图表中的颜色”,那么在这个查询中发现一个词集合(例如,在这种情况下,集合含有词“修改”,“改变”,和“更新”作为它的元)中的一个词出现的这个模型化事件就送至推理系统。在查询中其他重要的词,如“颜色”和“图表”,被发现是包括在先前模型化集合的包括类似的词的集合中时也检测为模型化事件。这些模型化事件以与“改变”相同的方式加以分析。
模型化事件中在软件程序的多次使用中一直出现的那类定义为资料信息。这些模型化事件包括指示用户有能力或缺乏能力的事件,存储在用户资料数据库内。存储在用户资料内的事件提供有关用户的附加信息,如用户在操作具体应用功能或完成特定任务方面的先前经验,或过去检阅指导材料的情况。这些事件可以相应于在贝叶斯网络内所表示的变量,由推理系统用来调整对假设的评估。
基本事件的其他类型可以包括有关用户是否在计算机前的信息,如由附近检测器所收集到的,按用户的视觉特点来说,包括如由摄像机和视觉识别和跟踪系统所识别的用户凝视的视点、用户的表情或用户的姿势的信息,以及如由语言理解系统所检测到和所处理的用户发话的语调的信息。
为每个模型化事件标识了基本事件和它们的适当组合后,下一步骤58是为软件程序构成一个事件监视器,监视用户接口的动作,提取推理分析需输入的基本事件。在构建智能用户辅助设备中,在步骤60,将所构成的监视器与软件应用集成在一起,配备软件应用。熟悉本技术领域的人员能够理解,事件监视器可以集成在应用软件内,也可以是一个独立部件,作为系统库或操作系统的一部分。
为了完成智能用户辅助设备,事件处理器根据基本用户接口动作合成模型化事件(步骤62)。然后,根据模型构成一个知识库(步骤64)。最后一个步骤66是根据模型构成一个利用知识库确定发生模型化事件时确定所建议的用户帮助的推理机。一个具有推理过程的贝叶斯网络既用作知识库也用作推理机。
图4为采用上述方法构成的智能用户辅助设备(IUAF)的一个实施例的各部件的功能方框图。智能用户辅助设备包括一个带监测的软件程序72,用来监视由正与这个软件程序交互作用的用户引起的行动或事件。事件处理器74周期性地核查这些行动或事件,以便发现它们之中是否有什么单独或组合在一起表示贝叶斯网络内的可观察变量的行动或事件。推理系统76对模型化事件进行分析,形成和评估用户可能需要什么帮助的多个假设。这些事件能导致增大或减小用户在使用一个具体应用功能上或在完成一个特定任务上遇到困难的概率。
推理系统76还访问用户资料系统76,查核用户能力,根据用户能力改变给予的帮助。用户的背景、表示在一些具体方面的能力的成功完成的关键任务和先前检阅的帮助都可以是存储在用户资料系统78内的变量。
IUAF控制器79根据设定的控制模式启动推理系统76执行的推理分析循环。可以每当用户请求帮助时或每当发生某些特定事件中的一个或多个事件时启动推理周期,也可以就周期性地启动推理循环,或者是这些模式的任何组合。在控制模式设置成在发生一个特定事件时触发推理循环或设置成周期性地启动推理循环的情况下,每当计算出的提供帮助的重要性超过用户设定的自动帮助门限时,推理系统76将自动地为用户提供帮助。在控制模式设置成每当用户请求帮助时启动推理循环的情况下,每当用户提出自由文本查询时,就将对用户行动和程序上下文的推理分析与对自由文本查询中的词的分析结合起来考虑。
熟悉本技术领域的人员显然理解,本方框图中所示的这些功能块可以做成各个独立的部件,也可以将几个或所有的功能块做在一个部件内。例如,可以将一个独立的库配置成具有推理系统功能和事件处理器功能。在这样实现的情况下,推理系统可以周期性地向经装备的程序查询自上次查询后发生的所有基本事件,也可以就询问最近发生的特定数量的事件,然后推理系统可以访问这个具体软件程序的模型化事件数据库,确定这些基本事件中是否有一些是推理分析输入的模型化事件。熟悉本技术领域的人员也可理解,除了在用户用自由文本查询直接请求帮助的情况以外,推理分析可以只包括对用户行动和程序上下文的历来分析。在这种情况下,每当用户用自由文本查询时,推理分析可以只包括对自由文本查询中的词的分析。熟悉本技术领域的人员也可理解,对于不同类别的模型化事件,如查询中的词和接口中的行动,可以分别进行不同的分析,然后再对这些分别分析的结果进行综合。在综合中可以控制对不同分析的结果所加的权。
带监测的程序任何软件程序或库都可以是一个带监测的程序,包括操作系统程序和应用程序。作为一个带监测的程序的例子,下面将对一个应用程序进行说明。一个典型的软件应用含有一个用户接口和一些应用过程。当一个用户利用输入装置通过按压键盘的键或点击鼠标器的按钮与一个软件应用交互作用时,操作系统就将这些用户行动翻译成事件送至这个应用程序。应用程序的用户接口部件对这些事件进行处理后送至响应这些事件的相应应用过程。为一个具体应用的智能用户辅助设备构成的事件监视器可以集成在应用软件内,如图5所示。在这种配置中,事件监视器84观测到有事件从用户接口部件82送至应用过程86时,就通过一个对事件处理器的呼叫接口将它们送至事件处理器。它也可以配置成一个是系统或应用数据库一部分的独立部件,周期性地呼叫应用程序,以将自上个周期以来的所有事件都发送给它,或者它可以就请求应用程序只发送特定数量的最近发生的事件。或者,它可以配置成操作系统的一部分,在这种情况下,事件监视器监视从操作系统送至应用程序的事件,并将它们送至事件处理器。
图6为作为在帮助主题实施例中的带监测的电子表格应用程序的功能方框图。当用户利用输入装置与电子表格应用程序交互作用时,操作系统将这些用户行动翻译成事件送至电子表格应用程序。例如,用户可以将鼠标器的指示压在一个菜单项上再点击鼠标器上的按钮。操作系统就将这个用户行动翻译成用户点击了一个应用菜单项的事件,将这个事件送至电子表格应用。带监测的电子表格应用程序90的用户接口部件92接收到这个事件后,就将它送至相应的电子表格应用过程96进行处理。电子表格事件监视器94监视从用户接口部件92送至应用过程96的事件,在发现这个事件时就将一个拷贝送至事件处理器。
事件处理器事件处理器是一个通用的监视和事件合成系统,可以根据低层事件的组合来生成高层事件。事件处理器不需要具备复杂的推理能力。然而,熟悉本技术领域的人员可以理解,可以利用各种确定性和概率论的事件预处理方法进行任意的事件提取和组合,以各种数学函数(包括可以直接解释为似然性的那些)将事件变换为数值信息。
由于事件处理器产生由一些逻辑事件构成的集合,因此任何推理机(无论是基于规则的还是概率的)都可利用它的输出。图7为例示事件处理器各组成部分的方框图。基本事件或用户与输入装置交互作用由诸如带监测的程序那样的事件源100送至事件处理器。带监测的程序可以利用一个调用接口规定送至事件处理器的事件信息。接收到这些事件,事件处理器可以为每个事件加上时间标记,以几种存储信息的数据结构(包括记录数据库或以时间标记或先进先出为序的有限环形队列)中的一种数据结构存入诸如系统存储器那样的本地存储器102。
模型化事件合成器104周期性地监视本地存储器102内的基本事件,搜索可以合成一个模型化事件的一个或多个基本事件。这通常可以由推理系统74在一个推理循环的开始加以启动。然而,模型化事件合成器104也可以在推理循环之间,如每当接收到一个新的基本事件或在接收到特殊的触发事件时,进行事件合成。于是,模型化事件合成器104按照在事件描述中规定的事件合成规则根据基本事件形成模型化事件。模型化事件合成器104将根据基本事件产生的各模型化事件存入模型化事件数据库108。
熟悉本技术领域的人员可以理解,可以为每个利用智能用户辅助设备的独立程序分别配备一个模型化事件数据库。例如,可以为驻留在一个计算机系统的每个带监测的应用程序分别配备一个模型化事件数据库。熟悉本技术领域的人员也可以看到,还可以再配备一个独立的通用模型化事件数据库,存储诸如启动一个程序或退出一个程序之类的共同的系统或应用事件。在这种情况下,推理系统在推理循环内可以访问通用模型化事件数据库和当前正在运行的这个程序的模型化事件数据库。
在模型化事件数据库的一个例子中,这个数据库为每个模型化事件都存有一个单项记录。在一个带智能用户接口的程序启动时,存储在用户资料内的原有持久性事件可用来对模型化事件数据库进行初始化。随着合成器形成模型化事件,在模型化事件数据库内更新相应的事件记录。这种模型化事件数据库内的模型化事件的记录格式的一个例子为

这些字段中用来计数发生的次数和发生的速率的字段LastTime和Count存储在存储所有的持久性模型化事件的用户资料数据库内。程序初始化时,这些字段从用户资料数据库装入模型化事件数据库内的它们相应的模型化事件。
模型化事件只是在一段比较短的时间内才是有意义的。一个模型化事件有意义的这段时间称为它的有效期(horizon)。不同的事件可以具有不同的有效期。用户行动所产生的大多数事件的有效期的适当时间长度为60秒。有效期的长度确定了在推理系统76内考虑一个模型化事件的时间长度。
可以为每个模型化事件指定一个缺省的系统或应用有效期,也可以指定一个专用有效期。每当访问或更新模型化事件数据库104时,驻留在模型化事件数据库104内的超过有效期的模型化事件就被删去。然而,在从模型化事件数据库104内删去前,那些持久性模型化事件先录入用户资料。通常,推理机76和用户资料都起着事件宿的作用,对模型化事件数据库104进行访问,提取模型化事件记录。然而,有一个例外。在程序初始化时,存储在用户资料内的原有持久性事件用来初始化模型化事件数据库104,从而修改了程序的性能。
事件系统描述工具事件描述工具可以在建立软件程序的智能用户辅助设备期间快迅地为特定应用程序建立模型化事件合成器和模型化事件数据库。业已为根据可由一个程序(例如应用)得到的基本事件(例如在10秒内访问多个菜单而没有动作,光标压在电子表格位置等)构成模型化事件(例如菜单冲浪)开发了一种语言。这种语言允许一些基本事件直接用作模型化事件,和将一些基本事件形成较高层的模型化事件。此外,模型化事件也可以再组合形成其他的模型化事件。具体地说,这种语言可以用注意到时间性的算子对基本事件进行布尔组合,将布尔型事件组合成模型化事件。事件描述工具可以直接与贝叶斯网络建模工具链接,使得在构建和改进贝叶斯用户模型的同时可以产生模型化事件和它们的定义。
图8为用来产生模型化事件合成器104和模型化事件数据库定义118的代码的事件系统描述工具110的方框图。在定义模型化事件步骤期间建立的每个模型化事件定义用来以事件语言114规定和描述事件。然后,事件描述114送至事件语言翻译器116,将描述的事件语言语句翻译成诸如C那样的高级语言代码,以建立模型化事件合成器104,事件语言翻译器还建立模型化事件数据库定义。作为这个进程的一部分,事件语言翻译器116还可以在应用一种数据结构的系统内直接根据模型化事件数据库定义118建立模型化事件数据库106,存储有关模型化事件的状态的信息。
事件语言包括布尔和集合算子,以及包括暂停和顺序的时序操作。模型化事件以用事件描述语言写成的独立文本段定义,然而,也可以利用专用的定义形式构成。文本定义被建立为各模型化事件的命名语句块。这些定义含有基本事件的标记,并且指出对一个或多个基本事件的操作。以事件定义语言作出的模型化事件说明的通用形式为declare ModeledEventName{<expression list>
}对于Dwell_on_Chart模型化事件的模型化事件说明的例子为declare Dwell_on_Chart{(and(Select_Chart,Dwell(5,s))}翻译器将事件定义语言的语法语句翻译成模型化事件名称Dwell_on_Chart,通过附加一个带事件名称的记录更新模型化事件数据库和初始化所有的记录字段。一个模型化事件可以是几个其他事件(包括其它模型化事件)的复合,也可以就是一个基本事件的重命名。这种事件综合语言支持需要对基本事件、模型化事件、算术和逻辑算子进行逻辑组合的中缀表示式。随着各基本操作的执行,所得到的中间结果处理成为一个事件,具有类似的特性。
事件语言具有一系列逻辑、集合论算子和时序、算术算子。这些算子可以用来定义具体事件和根据事件集合广义化定义的事件。例如,高层事件可以通过用如下Element那样的算子进行抽象化或广义化建立Element({x1,…,xn})发生任何由事件集合{x1,…,xn}中的元而引起的事件。这样的集合可以定义为特定的事件类。
时序算子可以用来以事件的时间顺序定义事件。时间间隔可以用用户动作数、时间量或其他可以定义为用户动作和时间的函数的时间间隔度量。例如,用经换算的秒定义模型化事件是很有益的。将度量时间间隔的秒用用户工作速度加以比例换算后,可使各时间常数适合工作速度比平均用户速度快或慢的用户。在规定时间算子时,通过规定时间量纲d的值来指出测量时间间隔的量纲(例如,c表示命令,s表示秒,ss表示经换算的秒)。下面列出了一些有用的时序算子Rate(x,t,d)在量纲为d的持续期t内发生至少x个基本事件;Ensemble_N({x1,…,xn},t,d)在量纲为d的持续期t内发生事件集合{x1,…,xn}中的至少N个事件;All({x1,…,xn},t,d)在量纲为d的持续期t内发生特定的事件集合{x1,…,xn}中的所有事件;Sequence({x1,…,xn},t,d)在量纲为d的持续期t内发生在一个事件集合{x1,…,xn}中所规定的各个事件;TightSeq({x1,…,xn},t)在量纲为d的持续期t内发生在一个事件集合{x1,…,xn}中所规定的各个事件;以及Dwell(t,d)用户有t秒或用量纲d换算后的t秒没有动作。
此外,还可以规定一些参数,用来定义贝叶斯网络内的模型化事件与其他变量之间自模型化事件发生以来随时间增大保持不变或改变的概率关系。在一般情况下,可以提供任何时间函数来描述贝叶斯网络内的事件与其他变量的概率关系在一个事件发生后随时间增大的改变情况。
具体地说,这种语言可以描述在当时时刻tp假设Hj为真的条件下过去在时刻to发生事件Ei的概率p(Ei,to|Hj,tp)自事件最近发生以来随时间量tp=t增大而改变的情况。
表示时间动态的实用性差别包括有效期和衰减。
有效期在一个事件为真的时刻t=to开始,概率关系保持为p(Ei,to|Hj,to)不变的时间间隔。只要当前时刻tp与最近发现这个事件的时刻to的差小于有效期,这个概率就保持不变。
动态描述p(Ei,to|Hj,tp)和p(Ei,to|not(Hj),tp)在有效期后的与时间有关的函数。动态可以概括地用由这些概率的比定义的似然比的变化来描述。这些函数指出了初始概率p(Ei,to|Hj,tp)和p(Ei,to|not(Hj),tp)随着事件成为真的时间距当前时间tp的距离增大而改变的情况。可以断定,这些概率在某个时间收敛为p(not(Ei)|Hj,tp)和p(not(Ei)|not(Hj),tp),而初始似然比在tp=to时收敛为这两个概率之比,因此可将这些函数评估为使概率或似然比从tp=to时的初始似然比衰减为与事件不发生相应的似然比。
这些概率可以计算为以初始概率(tp=t0)、与事件不发生相应的概率和当前时间tp为自变量的保证任何时刻概率之间一致性的函数。即p(Ei,to|Hj,tp)=f[p(Ei,to|Hj,tx),p(not(Ei)|Hj,tp),tp]以及p(Ei,to|not(Hj),tp)=f[p(Ei,to|not(Hj),tp),p(not(Ei)|not(Hj),tp),tp]用来定义模型化事件的算子可以影响得出的模型化事件的持续期信息。合取导致存储任何下级事件的最近发生时间,而析取导致存储与最先为真的下级事件相应的时间。
所产生的模型化事件的中间结果的值段按表达式结果设置。所有算术比较操作的结果或为1(布尔“真”)或为0(布尔“假”)。如果算术操作的自变量是一个事件,那么在这个事件发生时自变量估为1,而在这个事件没有发生时自变量估为0。为当前循环的时间段设置与基数相应的时间标记,换句话说,开始时间为上个循环的时间,而结束时间为当前时间。
由于这种语法允许递推,因此应该注意不要出现无限递推。这些语句输入一个称为事件描述块的文本文件。
然后,事件描述块114由事件定义语言翻译器116加以处理。事件语言翻译器将事件描述语言114变换成可编辑成机器语言的C++代码,直接链接事件处理器系统库、IUAF库、操作系统库或其他已实现的库。翻译一个高层事件描述的结果是建立模型化事件的模型化事件合成器104。模型化事件合成器104在一个推理周期期间被调用时,建立当前有效的模型化事件的集合,返回给调用方。于是,推理代码执行由这个事件集合指出的相应操作。
用户资料系统推理系统76访问用户资料系统78检查用户能力,根据用户能力改变给出的帮助。用户的背景、指示在具体范围内用户能力的成功完成关键任务的情况、用户先前检阅的帮助都是可存储在一个持久性文件内随时间加以更新的变量。这种有关用户的背景、经验和能力的持久性信息称为“资料信息”。
图9为用户资料系统78的方框图。用户资料系统78包括用户资料数据库120、用户资料访问例行程序122、事件状态更新例行程序124、背景和能力对话例行程序126和用户化个别指导例行程序128。
用户资料数据库120含有格式上与模型化事件数据库106内的记录一致的记录,因此在模型化事件数据库记录与用户资料库记录之间有着一个共同的格式。这个共同的格式使得用模型化事件更新用户资料数据库和推理机在访问这些数据库进行推理分析时解释这些记录都更为方便。用户资料数据库记录得到持久性存储,从而这些记录形成一个对具体用户在一些特定软件应用上的能力的历史性记录。这个数据库是按用户和应用情况加以维护的。指示用户能力的持久性存储的模型化事件的例子为完成或没完成一定任务、成功或不成功利用一些具体功能、过去接受帮助或检阅帮助信息等等情况。
图10为示出用户资料数据库120怎样用用户与具体应用程序交互作用的事件状态加以更新的流程图。事件状态更新例行程序120在步骤130检索出模型化事件数据库内的第一个模型化事件记录,然后在步骤132检验该记录是否标为一个持久性记录。如果是标为一个持久性记录,就在步骤134将这个记录加至用户资料数据库。如果不是称为一个持久性记录,就不将它加至用户资料数据库。然后,通过步骤136和138依次返回,再检索模型化事件数据库内的下一个记录,检验它是否标为一个持久性记录(步骤132),如果是标为一个持久性记录,就将它加至用户资料数据库(步骤134)。
如果具备了一个含有“持久性事件”信息的标准存储用户资料,那么这个用户资料就能通过本地网或互联网一直随同用户,无论用户处在何地,都可专为用户改编用户的软件。在一个软件应用激活的同时,一个新的用户可以挂到系统上,使用这个激活的软件应用。图11为示出每当新用户挂到系统或应用上时访问用户资料的情况的流程图。在一个用户挂到系统或应用上时(步骤140),用户资料访问例行程序122就对本地用户资料数据库进行搜索,寻找这个用户的资料(步骤141)。如果发现这个资料,就将通向用户资料的路径送至推理系统76(步骤142)。如果没有发现这个用户的资料(因为用户可能正在远地使用这个应用),用户资料访问例行程序就对所用的网络进行搜索,寻找任何含有这个用户资料的用户资料数据库(步骤143)。如果没有发现用户的资料数据库,或者在任何受访问的用户资料数据库内都没有发现用户的资料,用户资料访问例行程序就请求用户进入与用户的用户能力对话(步骤144),为这个用户建立一个用户资料(步骤145)。然后,将通向这个用户资料的路径送至推理系统76(步骤142)。如果没有完成对话,就将通向缺省资料信息的路径送至推理系统76(步骤146)加以利用。
除了维护一个持久性用户资料在实时推理期间使用外,还可以不断地对在一个或多个会话期间用户对帮助的需要超过某门限的重复模式进行背景分析,以便结合用户具体情况编制用户化帮助信息指南,在用户与该程序会话结束时提供给用户。图12为产生用户化指南的例行程序的流程图。在用户与一个特定应用程序会话期间,由推理系统76记录超过有关概率门限的帮助主题的直方图(步骤150)。在用户请求退出与应用程序的会话时,用户资料系统就将这个直方图保存在这个用户的资料内(步骤152),根据记录在直方图内的帮助主题准备相应的用户化帮助信息指南(步骤154)。在退出这个应用程序时,用户资料系统就通知用户,已准备了用户化指南供在线检阅或打印成使用细则(步骤156)。
推理系统在启动一个推理分析循环时,推理系统76访问模型化事件数据库106,提取自上个推理循环以来发生的各模型化事件的模型化事件记录。图13示出了推理系统的功能方框图。推理系统76包括一个或多个知识库160和一个推理机165。知识库160含有使表示现实世界的可观察状态(如用户行动和词之类)的变量与表示不可能直接观察或需要很大花费才能观察到的有关用户的目标和需要帮助的情况的所关注假设的变量联系起来的信息。例如,可以不必直接审视用户的目标,而将一连串的计算机命令记录下来。可以主动地对用户询问有关目标的情况,然而这可能很使用户觉得烦恼。
一个包括由一系列逻辑规则组成的相互关联的集合的确定性知识库可以将观察与隐假设联系起来。然而,将不定性关系处理为观察与有关用户需要的假设的似然性之间的概率通常更为适当。例如,在试图理解和预测一个诸如人类生理那样的复杂系统的行为中,通常不能用一些确定性关系完全建立一个考虑系统的所有成分的模型和通过接入一个确定性模型根据一组症状进行诊断或设计治疗。为了诊断和对复杂系统作出判决,通常必需在不确定的情况下进行推理,显然要涉及我们理解中的不完全性。概率论为我们提供了在给定有关观测变量与我们认为是重要的隐变量之间一组关系的知识的情况下诊断和预测复杂系统的性状的方法。我们可以利用概率论方法来表示和推断在诸如一个病人的症状之类的观察与诸如病人所患疾病之类的变量之间的或强或弱的非确定性关系。复杂系统的一个很好的例子是一个意图通过与计算机软件应用或系统交互作用完成一项任何的用户。要构建将一个用户的行为与他的目标或意图联系起来的确定性模型是十分困难的。判断用户的需要的最佳方式是根据我们对各种用户目标与行动之间的关系的理解进行适当抽象,以概率论方法来表示和推断这些关系。概率论方法使我们可以在适合我们对用户和他们的行动不完全理解的抽象级别上构建模型。
贝叶斯网络或称为推理图的贝叶斯网络的推广可以用来表示在给定诸如一个或多个用户行动之类的可观察信息的情况下用户的行动与诸如用户目标、用户意向和用户需要之类隐匿而重要的状态之间的确定性或非确定性关系。贝叶斯网络是一个有向非循环图,其中的节点为随机变量,而弧表示这些变量之间的概率关系。一个贝叶斯网络内的变量是随机性变量或确定性变量。贝叶斯网络表示对于它所表示的变量集合的联合概率分布。在随机变量各值上的概率分布取决于上一辈或是节点母体的母变量的值。确定性变量的值是其前驱变量的确定性函数。影响图是贝叶斯网络的一种推广,再提出了一些附加节点,表示可能的行动和产生的后果的效用。
推理机165包括对知识库160进行操作的推理过程166。知识库160包括一个贝叶斯网络162。熟悉本技术领域的人员将认识到,知识库可以是一个确定性知识库,带有作为推理机的推理过程的逻辑链接过程。或者,知识库可以是一个贝叶斯影响图,带有作为推理机的推理过程的对贝叶斯网络进行操作的推理过程。作为推理机165的部件,还包括时序推理过程167和信息值过程168。其他专用过程也可以包括在内。
贝叶斯推理过程对贝叶斯网络进行操作,在根据观察将可观察或证据变量的状态设置为具体状态的情况下计算出在网络内各变量的值上的一致后验概率分布。假设我们关心的是在没有观察到的所关注假设H1,…,Hm上的概率分布,并且可以利用观察和资料信息E1,…,En。贝叶斯网络推理算法计算出在给定观察的条件下在H上的概率分布p(H|E1,…,En)。对于影响图来说,执行的是决策论推理,标识各备选行动的期望效用。最佳行动为与最高期望效用相应的行动。
在最普通的意义上,设计智能用户辅助设备的推理的任务从决策论(概率论的一种扩展,反映在不确定性情况下的值的关系)观点可以看得最为清楚。影响图使我们可以表示有关不确定性、行动、行动的后果和这些后果的价值之间的基本关系。这种表示方式有利于设计、理解和在许多情况下实际实现智能用户辅助系统。然而,一般情况是可以构建一个比较简单的系统,不是明显表示判决、后果和后果的效用,而是使用贝叶斯网络来表示概率关系,结合过程控制和门限使用概率推理作为较复杂的影响图模型的近似。
图14示出了对用户建模和采取行动帮助软件用户的总体影响图,作为用作知识库的贝叶斯影响图的一个示例性实施例。如图所示,用户背景170以不确定性影响用户在使用软件中的总目标171和用户在使用软件中的知识172。用户知识172还受用户可能已看到的先前帮助173的影响。用户背景170和先前帮助173为可以存储在一个持久性文件内的变量,可随时加以更新。这种有关用户的背景、经验和能力的持久性信息称为“资料信息”。如这个影响图所示,用户的目标171和知识172又以不确定性影响用户的信息需要174。目标171和需要174再影响所感知的活动175和可能在对软件或软件帮助系统的查询中使用的词176。用户的效用函数177表示为一个菱形。效用177直接受用户的信息需要174、采取自主行动的代价178(例如当前对用户打扰的程度)和所采取的行动的影响。对于系统来说可以采取几类行动,包括提供建议或帮助179、执行各种软件行动180和从系统或直接从用户获取先前没有观察到的信息181。如图14中在帮助变量的代价178旁的标尺所示,可以允许用户直接改变帮助的代价,以便灵活地控制给系统的自主程度。
推理系统的总目标是标识在给定用户需要和采取自主行动的代价情况下使用户的期望效用最佳的行动。给定一个有关用户背景和行动的证据集E,计算出在所关注的用户需要的假设H上的概率分布。在图14所示的贝叶斯影响图的情况下,计算在用户对帮助的需要上的概率分布。必需考虑在所有可能行动的集合A中各行动的期望值。为此,考虑各后果的效用,这表示为一个效用模型(菱形节点)。效用模型含有有关后果的价值或效用的信息。后果(A,H)定义为采取的行动A和实际的用户需要状态H的二元组。效用模型告诉我们与每个后果对应的效用u(A,H)。采取的最佳行动A*为在不确定性情况下使期望效用最大的行动,计算为A*=arg maxA∑ju(Ai,Hj)p(Hj|E)虽然影响图表示了行动的显式模型,但贝叶斯网络通常较为容易构建,能利用有关网络内各变量的概率的门限或规则进行判决和行动,根据赋予各种状态(包括描述有关行动的优先性的状态)的可信度指出什么时候应该采取行动。诸如图14所示的影响图可用来阐明在贝叶斯网络所采用的近似情况。
时序推理和动态推理系统76还包括处在知识库160内的专用时序推理知识库164和处在推理机165内的时序推理过程167,对随着一些观察在过去逐个时刻发生而改变模型中的观察与其他变量的关系进行推理。在一般情况下,应用贝叶斯过程和知识库对在所有时刻所看到的观察模式进行推理需要考虑在同一时刻和不同时刻的各个变量和它们之间的相关性。构建包括对于不同时刻流逝的各变量拷贝和相关性的贝叶斯网络用以进行推理会导致十分困难的推理计算问题,其响应时间对于与程序交互作用的用户来说是不能接受的。因此,进行一些近似是有价值的。在一种近似方法中,在各时刻只考虑一些特定的、被认为最重要的相关性。
一个带有在不同时刻的变量集合和所表现的典型要关性的贝叶斯网络的一部分示于图15。图15所示的贝叶斯网络明显地示出了在不同时刻的随机变量以及在同一时刻的变量之间和在不同时刻的变量之间的概率依从的相关性。在变量之间缺乏依从关系的就认为是独立的。图中示出了在当前时刻提供给用户的基本相关帮助与早些或晚些时刻提供给用户的最相关帮助之间的可能影响。此外,图中强调了观察(Ei和Ej)在当前的状态与在过去和将来所作的观察之间的可能依从关系。图中还指出了在当前的基本相关帮助与过去的观察之间的关系。在一般情况下,这种多重连接的网络在模型构建期间是很难求解和评估的。
下面将说明一种易于求解和评估的对各时刻的相关帮助进行推理的方法,这种方法作了一些附加的独立性假设,将过去陆续观察到的证据与所关注假设之间的关系用决定这些观察与当前的目标或对帮助的需要之间概率关系的强度的参量化函数来表示。在一个典型的实施例中采用了这种近似方法,虽然用的是单个显式贝叶斯网络,但是使系统可以隐含地考虑在各时刻上构建的多重贝叶斯网络的情况。这个方法利用了在建模期间可直接评估出适当描述一个贝叶斯网络内的观察变量与其他变量之间概率关系的动态的函数。在建模时,评估每个观察变量Ei的有效期和动态,并用这信息标注这个观察变量Ei。在运行时,推理机165内的过程167就利用这些有关有效期和动态的信息。一个事件的有效期为与假设Hj的概率关系保持为p(Ei,to|Hj,to)和p(Ei,to|not(Hj),to)一直不变的时间间隔。动态为当前时刻的这些概率随所述以前时刻而改变的情况。
直观推断事件的有效期可以是对于系统考虑的所有观察事件都使用一个缺省的有效期,除非另有规定,也可以使用一个具有有限长度k的事件队列,在分析中只考虑最近的k个模型化事件。这种方法可以与刚才所说明的动态结合使用。
信息价值推理机165还包括信息期望价值(EVI)过程168,用来计算从用户获取信息的期望价值。EVI过程和可在概率模型中应用的信息论近似方法对于熟悉决策论的人员来说都是很清楚的。EVI过程是一个计算获取还没有观察的变量的信息的期望价值的程序。这种信息包括用户对计算机系统有关他的目标和需要的提问的回答。信息的净价值(NEVI)为收集信息的净价值,包括收集信息的代价。推理系统76只是在收集信息的信息效益超过代价时才自主地询问问题或收集信息。如果用Ex表示每个先前没有观察而能加以询问的变量,用Ok表示Ex的一个可能的观察值,而A表示在估计Ex时将观察到的值,于是变量Ex的NEVI为NEVI(Ex)=∑Rp(Ex=Ok|E)*[maxA∑ju(Ai,Hj)p(Hj|E,Ex=Ok)]-maxA∑ju(Ai,Hj)p(Hj|E)-C(Ex)其中C(Ex)为估计证据Ex的代价。EVI可以直接用于影响图。有几种众所周知的信息论算法,包括那些基于计算熵的算法,可以用来提供对在诸如贝叶斯网络之类的概率模型中的信息收集进行判决的类似功能。这些算法通常比用影响图计算NEVI更为容易。它们并不直接计算效用,但能与折衷考虑信息代价和信息价值度量的直观试探方法结合使用。
图16为信息价值部件内的信息价值过程的流程图。信息价值部件按作为备选信息的信息价值的次序列出所有未观察到的信息(步骤190),逐项权衡获取信息的效益和为获取信息而打扰用户的代价(步骤192)。如果效益大于用户设定的代价,IUAF就请求用户提供具有最高价值的那项信息(步骤194)。如果用户作出响应,信息价值部件就重复前两个步骤,直至打扰用户的代价大于获取信息的效益或用户不再响应(步骤196)。
IUAF屏幕输出示例图17至23例示了在电子表格应用实施例中的智能用户辅助设备的屏幕输出。该系统根据用户资料、用户规定的门限信息,结合词和用户行动,为用户提供智能化的帮助。系统具有对请求帮助进行响应的能力以及自主提供帮助的能力。图17示出了用户直接请求帮助时所产生的帮助界面200。对向用户提供的有用帮助的一些推测显示在左上角的列表框201内。在左下角的当前系统设置框202指出这个用户是一个熟练的用户。这信息由用户资料系统提供。当前系统设置框202还指出推理机在推理分析周期所用的用户行动和自由文本查询。给定了资料信息和涉及与正文版面交互作用的当前行动,结合就在主动请求帮助前的暂停间歇和用户为了改变行和列的外观而采取的行动,系统认为用户如果得到在处理字体、高级格式化指令和利用改变电子表格文件几何尺寸方面的帮助可能最为有益。在这个屏幕拷贝的右方显示了一个示出推理系统76产生的在一组任备区上的概率分布的推理图203。这个图是为工程需要而建立的,但也可以向用户显示。每个任务区右侧的条的长度表示这个区的概率。概率最大的两个区(具有最长的条)分别是处理字体和高级格式化主题的任务区。
在图18中,资料信息改为初学用户的资料。当前系统设置框202内的经验级别指出这个用户具有初学者的水平。所有其他事件处理情况保持不变,但现在使用的是初学用户的资料。资料信息用来修改贝叶斯网络内的概率关系。显示在相关帮助上的概率分布的推理图203示出了用资料信息修改了的概率分布。如在最佳推测表框201内所可看到的那样,系统现在认为在电子表格行列基本处理、准线改变和图表基本格式化这些方面的帮助可能对用户最为有益。
图19示出了对同样的一组用户行动进行的分析,但现在考虑了在用户查询中出现的词。用户已在查询输入框204内向系统输入了自然语言查询“How do I make this look prettier?”(“我怎样将这个变得更加好看?”)。这些词和行动的分析加以综合后就产生了如推理显示203中所示的新的概率分布和最佳推测表框201内的相应新建议主题表。现在,这表更新为将自动格式化帮助列为最相关的帮助,但仍列有其他格式化主题,包括准线改变、边界处理和字体处理。
图20示出了在与文件内的图表交互作用后暂停在图表命令上一段时间再请求帮助时的情况。推理系统76计算出的概率分布示于推理图203。现在,在最佳推测表框201内的建议主题集中在绘图信息方面的高似然区。图21示出了在查询输入框204内以查询形式递交的附加信息。用户的自然语言查询为“I need to access data from adifferent application”(“我需要从一个不同的应用获取数据”)。现在这些词与事件结合在一起进行考虑。推理系统76在推理图203中给出了经修改的概率分布,而在最佳推测表框201内列出了经修改的建议主题表,集中在从数据库检索数据和改变在图表中显示的数据这些方面。
图22例示了推理系统76自主为用户提供帮助的屏幕输出。在用户与电子表格程序205交互作用的同时,帮助监测代理程序计算用户需要帮助的概率,而在用户是需要帮助时,推理系统76还计算出需给用户的各种帮助的似然性。帮助监测代理程序在帮助监测代理程序窗口206内显示对用户需要帮助的概率的推理结果。与以上推理图203的显示类似,帮助监测代理程序窗口206也是为了工程需要而建立的,但也可向用户显示。与电子表格程序205交互作用的用户现在选择了整张图表后暂停。随着帮助监测代理程序窗口206显示计算出的用户需要帮助的概率从26%增大到89%,达到门限,就有一个小的定时窗口(自主帮助窗口207)自动弹出,显示计算得出的最大似然帮助区。在本情况下,最大似然主题包括格式化小区、检查拼写错误和执行计算这些具有分析或修改整文件含意的主题。自主帮助窗口207有礼貌地提供帮助。它还为用户提供重新设置门限的机会,以增大或减小在显示这个窗口前应达到的用户需要帮助的概率。如果用户没有与窗口207交互作用,窗口207超过定时后就会对打扰用户作出道歉后关闭。
图23示出了根据对用户在利用一个软件进行会话期间具有的问题进行不断背景推理的记录和总结确定的对用户有价值的主题显示208。其中还包括有关用户的背景和能力以及有关用户过去曾接受或检阅的帮助的资料信息。这些主题均已备妥,可打印成一个专为用户修改了的指导,供以后阅读。
带时序推理注释的贝叶斯网络图24示出了根据用户的资料信息以及用户当前所采取的行动计算为用户提供的各备选帮助形式的概率的贝叶斯网络的一个例子。为了表示这种结构可用于许多种类的观察和取决于任务的帮助要求,在一些节点用了变量x、y、z和A。
在这个模型中,我们用一组标为User Competence x 210和UserCompetence y 211的变量分别表示各表示在软件功能的两个不同区域x和y内的用户能力的状态的资料变量。这两个用户资料各受表示(1)具体观察到的用户行动、(2)用户曾检阅过的历来帮助主题、(3)可以是不确定的也可以是通过与用户的对话设定的总用户背景212这些变量的影响。如在这个贝叶斯网络中所示,用户能力直接影响与用户相关的不同帮助的先验概率,如Primary Assistance Needed变量213的这些状态所示。这个变量还受表示诸如在一个应用的当前版本中存在特定数据结构之类情况的有关程序状态的信息的上下文变量214的影响。在这个模型中,问题用具有一些表示各备选帮助形式的状态的单个基本帮助变量表示。模型假设在任何特定时刻只有其中一个基本帮助状态是用户要求的。也可以用多变量表示帮助,以提醒在同一时刻可能有多种帮助都是相关的。
如在这个贝叶斯网络中所示,Primary Assistance Needed节点213影响一组受观察的模型化事件,如选择一个图形目标Z后暂停了超过预定的某段时间(Sel Z Pause 215)或修改一个目标后又执行撤消(Z Cmd Undo 216)。在运行时,这些模型化事件由事件处理器74检测,送至推理系统76。通过更新与模型化事件相应的可观察变量和执行贝叶斯推理,更新系统内所有非观察变量(包括PrimaryAssistance Needed变量213)上的概率。记下事件的时间,随着事件逐渐成为过去,应用时序推理过程167更新网络内的概率关系。
图25示出了带有变量x和z以示与根据来自电子表格(如Microsoft Excel产品)的绘图信息对行动和资料信息的关系进行推理有关的区别的这些节点的例子。存储在一个资料内是持久性的变量在邻近标以P。作为模型化可观察事件加以观察的变量标以M。一个或多个节点可以表示在绘图上的各类能力。单变量User CompetenceCharting 220示为含有用户绘图能力的总体水平信息的变量。在这个变量的各状态上的概率分布受HxHelp Charting 221和HxActivityCharting 222以及User Background 212的影响。HxHelp Charting 221由存储在持久性资料内有关用户成功地完成一个或多个绘图活动的观察和有关用户曾检阅过在联机指南中的绘图帮助信息的信息设定。在软件功能的绘图和其他各方面的能力影响Primary AssistanceNeeded变量213,而这个变量又影响观察用户不同行动的概率。例如,用户在一种具体绘图任务上需要帮助的这种状态就会影响看到用户选择文件中的一个图表而后暂停s秒(Sel Chart Pause 223)的概率。附录1示出了在一个电子表格应用的典型实施例中一个较为完整的贝叶斯网络。
图26示出了时序知识和推理的典型实施例。每个可观察模型化事件都用有关时间流对本事件与贝叶斯网络内其他变量的概率关系的影响的信息注释。在这种情况下,每个节点用有效期和衰减的瞬时动态信息注释,这可以做成一个概率表,或用其他数据结构实现。各变量为瞬时动态的时间量纲用事件发生以来经过的秒来表示。
下面给出一个基于图26所示知识库中各部分的情况作为例子。
考虑具有以下资料信息的情况User_Background 212Consumer_NoviceHX_Help_Charting 221No_Help_ReviewedContextNormal_ViewObjectsSheet(1),Chart(2)在时间t=50秒,注意到以下模型化事件Chart_Cmd_Undo 224AbsentChart_Create_Pause 225AbsentSel_Chart_Pause 223AbsentMove_Chart_Pause 226AbsentChart_Dialog_UnSucc 227AbsentMenu_Surfing 228AbsentClick_Unrelated 229Absent
================================Sel_Chart_Pause 223p(E1,to|Hj,to)=.15p(not(E1)|Hj,to)=.85p(E1,to|not(Hj),to)=.005p(not(E1),to|not(Hj),to)=.995有效期5秒动态p(E1,to|Hj,to)线性收敛于15秒p(E1,to|not(Hj),to)线性收敛于15秒=================================Chart_Dialog_Unsucc 227p(E2,to|Hj,to)=.08p(not(E2)|Hj,to)=.92p(E2,to|not(Hj),to)=.0005p(not(E2),to|not(Hj),to)=.9995有效期20秒动态0=============================分析循环在t=50秒启动。这个循环包括合成来自基本事件本地存储器102的模型化事件,将这些事件送至推理系统,以及用这些新的观察进行推理。我们将研究用户需要的主要帮助是含有绘图信息的帮助的当前概率p(Charting_Assistance|E)。在这样的用户背景、能力和检阅帮助历史的条件下,用户这方面需要帮助的先验概率为0.001。上下文信息使这个概率增大到0.04。还根据历来所看到的证据为有关基本帮助的其他假设指配相应的概率(但在本例中未示出)。
在t=52秒时,用户选择了一个图表。检测到选择图表这个基本事件后,就将它存入基本事件本地存储器102。然后,用户暂停了3秒没有任何动作。检测到暂停3秒后,也将它存入事件本地存储器102。在t=60秒时调用了一个分析循环。事件处理器74合成模型化事件Sel_Chart_Pause 223,加上在t=55秒成真的附标后送至推理系统76。
推理系统访问用瞬时动态信息注释的贝叶斯网络。如在对于Sel_Chart_Pause 230的概率表中所示,有效期为5秒,在15秒时概率线性收敛为该事件不发生时的概率。
在t=63秒时,用户选择了一个图表对话,没有执行而又在t=66秒时取消了这个对话。在t=70秒时调用了一个分析循环,合成模型化事件Chart_Dialog_Unsucc 227,加上一个66秒的时间附标后送至推理系统76。如在对于Chart_Dialog_Unsucc 231的概率表中所示,有效期为20秒,无瞬时动态。
这个用户已将不愿受自动帮助打扰的门限设定为p=0.12。因此,在绘图方面帮助有意义的概率上升到p=0.14时,就为用户提供这个主题的帮助。
在t=50秒时p(Sel_Chart_Pause,to|Hj,tp)=.15p(Sel_Chart_Pause,to|not(Hj),tp)=.005p(not(Sel_Chart_Pause)|Hj,tp)=.85p(not(Sel_Chart_Pause)|not(Hj),tp)=.995p(Chart_Dialog_Unsucc,to|Hj,tp)=.08p(Chart_Dialog_Unsucc,to|not(Hj),tp)=.0005p(not(Chart_Dialog_Unsucc)|not(Hj),tp)=.9995p(not(Chart_Dialog_Unsucc)|Hj,tp)=.92推理结果p(Charting_Assistance|E,tp)=.02----------------------------在t=60秒时p(Sel_Chart_Pause,to|Hj,tp)=.15
p(Sel_Chart_Pause,to|not(Hj),tp)=.005p(not(Sel_Chart_Pause)|Hj,tp)=.85p(not(Sel_Chart_Pause)|not(Hj),tp)=.995p(Chart_Dialog_Unsucc,to|Hj,tp)=.08p(Chart_Dialog_Unsucc,to|not(Hj),tp)=.0005p(not(Chart_Dialog_Unsucc)|not(Hj),tp)=.9995p(not(Chart_Dialog_Unsucc)|Hj,tp)=.92推理结果p(Charting_Assistance|E,tp)=.07-------------------------------------在t=70秒时p(Sel_Chart_Pause,to|Hj,tp)=.15-->.46p(Sel_Chart_Pause,to|not(Hj),tp)=.005-->.66p(not(Sel_Chart_Pause)|not(Hj),tp)=.995p(not(Sel_Chart_Pause)|Hj,tp)=.85p(Chart_Dialog_Unsucc,to|Hj,tp)=.08p(Chart_Dialog_Unsucc,to|not(Hj),tp)=.0005p(not(Chart_Dialog_Unsucc)|not(Hj),tp)=.9995p(not(Chart_Dialog_Unsucc)|Hj,tp)=.92推理结果p(Charting_Assistance|E,tp)=.04----------------------------在t=80秒时p(Sel_Chart_Pause,to|Hj,tp)=.15-->.46-->.85p(Sel_Chart_Pause,to|not(Hj),tp)=.005-->.66-->.995p(not(Sel_Chart_Pause)|not(Hj),tp)=.995p(not(Sel_Chart_Pause)|Hj,tp)=.85
p(Chart_Dialog_Unsucc,to|Hj,tp)=.08p(Chart_Dialog_Unsucc,to|not(Hj),tp)=.0005p(not(Chart_Dialog_Unsucc)|not(Hj),tp)=.9995p(not(Chart_Dialog_Unsucc)|Hj,tp)=.92推理结果p(Charting_Assistance|E,tp)=.13---------------------------------在t=90秒时p(Sel_Chart_Pause,to|Hj,tp)=.85p(Sel_Chart_Pause,to|not(Hj),tp)=.995p(not(Sel_Chart_Pause)|not(Hj),tp)=.995p(not(Sel_Chart_Pause)|Hj,tp)=.85p(Chart_Dialog_Unsucc,to|Hj,tp)=.08p(Chart_Dialog_Unsucc,to|not(Hj),tp)=.0005p(not(Chart_Dialog_Unsucc)|not(Hj),tp)=.9995p(not(Chart_Dialog_Unsucc)|Hj,tp)=.92推理结果p(Charting_Assistance|E,tp)=.04多应用的系统层IUAF以上说明的这些方法不仅可用于各个单独的应用,也可以在操作系统层上用于具有多应用的系统中对提供帮助进行推理。在提供系统帮助的一个典型实施例中,利用贝叶斯网络通过推测在用户完成或即将完成一项任务时帮助用户退出应用。
帮助用户的贝叶斯网络知识库示于图27。其中的资料信息包括是否用户过去检阅过帮助(Reviewed_Help_in_Past 240)、以前退出过(User_Exited_Before 241)和显示过能执行双击操作(Successful_Double_Click 242)。示为贝叶斯网络中观测的模型化事件包括动作后暂停(Dwell After Activity 243)、接连点击一系列不相关的图标(Click on Seq of Unrelated 244)、鼠标器游荡(MouseMeandering 245)、当前打印了一个文件(Print Doc 246)还是发送了一个消息(Send Msg 247)、以及应用已持续的时间(Duration ofTime With App 248)。有一个变量表示在最希望的行动上的概率分布,使我们可以利用概率推理对各备选最佳行动的似然性进行推理。
下面举例说明监测到的事件影响对有关用户进行推理的一些结果。所例示的情况假设用户资料为用户以前没有自己退出过,用户没有显示能成功进行双击操作,用户检阅过有关退出应用的帮助但没有注意研究这信息。系统现在检测到用户停留在电子邮件已几乎10分钟和用户已接连点击一系列不相关的图标。图28示出了各随机变量的状态,并用状态边上的条的长度表示在各随机变量的不同状态上的概率。如条形图所示,推理系统76已计算出用户不知道退出(UserIgnorant about Exit 249)具有高概率,而用户已经或即将完成一个主任务(Major Task completed 250)具有低概率。
在图29中,可以看到考虑了新的模型化事件后的推理结果。在这种情况下,用户已发送了电子邮件(Send Msg 247),在这行动后现已暂定了超过了换算秒(Dwell after Activity 243)。向用户提供详细说明现在被认为是最希望的与退出有关的行动(Most Desired ExitAction 251)。图30示出了同样的情况,但有一个变化用户已在最近的2分钟内接受了帮助(Recent rec Exit Help 252)。现在看来最希望的行动是什么都不做,只是询问用户是否系统应为之退出应用(Most Desired Exit Action 251)。
IUAF控制器通常有必要对智能用户辅助设备的各个部件进行总体控制。为了决定调用事件处理器74和推理系统76的策略和确定什么时候应自主地提供帮助,都需要控制。图31示出了可以单独使用也可以综合使用的智能用户接口控制器的各种总体协调控制模式。所示的第一种协调控制模式是定时模式260。在这种模式,有一个周期性的系统定时器反复启动,通知IUAF控制器开始下一循环的监视和推理分析(步骤261)。于是,IUAF控制器调用推理系统(步骤262)。完成推理分析后,控制器就等待定时器的下次触发(步骤263)。定时模式可以加以扩展,以在允许下一循环开始前考虑其他一些限制。例如,在事件监视和推理期间出现复杂的推理的情况下,可以加上评估计算资源可用性(例如,识别是否有空闲时间)的附加条件。因此,事件处理和推理循环将在定时器触发并满足有计算资源可用的条件的情况下才开始。
所示的第二种模式是请求模式265。这种模式只是在用户请求帮助时才进行推理。在一个带监测的应用接收到一个查询帮助信息的请求时(步骤266),这个带监测的应用就向IUAF控制器发送一个通知(步骤267)。接收到这个通知,IUAF控制器调用推理系统(步骤268)。完成推理分析后,控制器就一直等待接收下个通知(步骤269)。
所示的第三种模式是特定事件触发模式270。在这种模式,列有一个由一些可触发推理分析循环的特定事件构成的表。每当事件处理器检测到发生其中一个特定事件时(步骤271),事件处理器就向IUAF控制器发送一个通知(步骤272)。同样,IUAF控制器接收到这个通知后调用推理系统(步骤273)。完成推理分析后,控制器就一直等待接收下个通知(步骤274)。
任何两种或所有三种模式可以同时有效。在所有三种模式都有效的情况下,如果在定时周期内用户没有请求帮助,也没有作出任何可成为特定事件之一的行动,那么在定时终了时就开始下个推理分析循环。否则,在定时周期内,当用户请求帮助或作出可成为特定事件之一的行动时就会开始下个推理分析循环。
自由文本查询与事件的综合分析如前面所提到的那样,可以将用户对帮助的自由文本查询中的词处理为模型化事件源。集成在Microsoft Office 95产品系列的所有应用内的Microsoft Answer Wizard利用了一个建立自由文本查询中的词与相关帮助主题的概率之间关系的概率模型,这可参见美国专利申请No.08400797,该申请列为本申请的参考。在一个典型的实施例中,词与行动可以统一处理为对词和行动的概率关系进行推理的系统中的模型化事件。
在另一个实施例中,配置了分立的子系统分别处理词和行动。在分别完成概率分析后,再对这些分立子系统的分析进行综合。图32为综合分别概率分析的方法的流程图。首先,对于给定的自由文本查询计算最相关的一些帮助主题的第一贝叶斯分析(步骤280)。这可以遵循在美国专利申请No.08400797中所述的方法进行。下个步骤是输出一个由以相关概率最高为序排列的一些帮助主题组成的第一帮助主题表(步骤281)。然后,对于给定的程序状态、用户资料和一系列用户行动计算最相关的一些帮助主题的第二贝叶斯分析(步骤282)。下个步骤是输出一个由以相关概率最高为序排列的一些帮助主题组成的第二帮助主题表(步骤283)。然后,通过为每个表中的各相关主题指定相应权系数后计算同时出现在这两个表中的每个帮助主题的概率,将这两个帮助主题表合并在一起(步骤284)。最后一个步骤是输出这个由以相关概率最高为序排列的一些帮助主题组成的经合并的帮助主题表(步骤285)。在这个实施例中,系统的性能可以通过改变用来与指定为由词或行动分析提供的所关注假设的概率的似然性(例如帮助主题的相关性)相乘的实参数的值对一组事件的结果进行比其他事件的结果更重一些的加权来调整。
建立分别分析对在自由文本查询中的词和用户行动进行的处理的分立系统使这两个子系统可以根据各自事件类别的特殊性质分别得到最佳化。同样的情况可以适用于其他行动集合,例如在配有视觉和语音事件监视措施的扩展系统中的视觉和语音事件。
分别分析也使在综合、分别或依次考虑分别分析结果上的具体策略实现较为容易。例如,在给定词分析系统和行动分析系统的性能情况下,在一个实施例中可以显示基于根据所监测的行动的推理得出的对帮助的初步推测,但在有词加入时,则只依赖于根据词的分析结果。另一种方法是利用一些控制规则,根据对词和行动分析结果的比较分析综合或分别考虑在不同子系统中的推理。
通知和执行帮助的控制除了协调控制功能外,IUAF控制器还对什么时候自主提供帮助或询问用户目标信息(根据信息价值计算)会打扰用户作出判决。在一个典型的实施例中,驻留在推理系统76内的一个专用贝叶斯网络(或一个网络的部件)计算出用户当时会希望得到帮助的总概率。IUAF控制器利用这个改变的概率来控制什么时候提供自主帮助。IUAF每当计算出的用户当时会希望得到帮助的概率超过一个可由用户改变的门限时提供自主帮助。用户利用一个门限控制器来改变出现自主帮助的门限。这个门限控制器例如可以是能在一个自主帮助窗向用户显示的一个滑动门限控制栏,允许用户根据他在获得帮助与受到打扰中发现的值改变门限。带有门限滑动栏的动态帮助窗的屏幕拷贝示于图22。
图33为在这个实施例中提供自主帮助方法的流程图。在一个推理分析循环期间,推理系统76输一个由一系列以相关概率最高为序排列的相关帮助主题组成的表(步骤290)。这可以如前面在讨论推理系统中所说明的那样实现。下一步骤是确定用户需要帮助的概率是否超过用户设定的提供自主帮助的门限(步骤292)。如果用户需要帮助的概率超过用户设定的门限,推理系统76就提供一个以最高概率为序列有各相关帮助主题的表(步骤294)。这个表可以是截短的,只示出一个或几个最可能的帮助主题,但如果需要,用户可以在一个窗口内卷滚检阅一个较长的表。然后,检验相关主题表,确定是否有已在前一段预定时间内的表中出现过的冗余帮助主题(步骤296)。如果没有冗余帮助主题,就向用户显示这个相关主题表(步骤298)。如果用户对自主提供的帮助作出响应,就重复步骤290至298。如果用户在响应定时器计满响应时间前用户没有响应,就在窗口标题上显示道歉消息(步骤299)后关闭这个窗口。
熟悉本技术领域的人员可以认识到也能采用其他实施方式,例如只是在用户直接请求(如点击与智能辅助设备有关的一个图标)时才提供自主帮助。系统也能利用计算得到的期望效用或它的近似值来确定提供自主帮助。此外,系统可以只在需要提供帮助的这些主题内的各主题的相关概率之和超过某个恒定值时才提供自主帮助。
在一个典型的实施例中,对帮助主题的推测在用户请求帮助时并不提供,除非对于前五个主题计算得到的概率之和超过0.40。在另一个实施例中,自主帮助只有在用户暂定时才提供,这样就可以不打扰正在进行动作的用户,除非相信用这个行动帮助正在进行动作的用户确实重要。
提供友善的传统方式或隐喻也是有益的。例如,推理结果可以用来控制一个友善的图形卡通人物的行动姿态。这种界面的一个例子示于图34。IUAF对用户可能有的问题或可能有价值的帮助也可以用卡通人物头上的“思想云”隐喻显示。自由文本查询可以打入呈现为卡通人物看或听询问的措施的图形文本输入框内。
利用IUAF部件改善语言识别熟悉语音识别技术的人员可以理解,在利用语音语言模型以概率表征各个音素的情况下所能获得的效益动态地受计算得出的有关计算机用户的目标、意图或需要的信息的影响。如图12这个影响图所示,用户的背景和目标影响在一个接口所看到的行动、在自由文本查询中所使用的词和希望与一个软件系统或应用通信的用户产生的语音。理解正在发出语音的用户的目标和意图的似然性可以增强我们进行自动语音识别的能力。这种系统将使我们可以调整各语音的概率,从而调整计算机软件用户说出的词和音素的似然性。
语音识别系统涉及将语音产生的音频信号处理成可能的音素,再将音素处理成可能的词。用于语音识别的概率系统计算出给定音频信号情况下的音素的似然性和各备选词的似然性。语音(Speech)这个术语用来指将发出的语音处理成音频信号或音素的步骤所提供的证据。
贝叶斯语音理解系统按下式计算根据语音得出词或词串(words)的概率p(words|speech)p(words|speech)=p(words)*p(speech|words)p(speech)]]>通过计算在给定如由模型化事件所表示的用户行动(包括基于凝视的那些行动)的情况下用户的要求或目标上的概率,我们能像如下所述那样更精确地得到在给定用户语音情况下的词的概率。
我们可以通过表示词或词串将在具体目标的上下文中使用的似然性更新词或词串将在目标上下文中使用的似然性,从而实时更新包含在一个典型的语言模型内的将使用的词的概率p(words)的数据率。也就是说,不使用静态的p(words)数据库,而将词的概率p(words)更新为p(words)=∑ip(words|user needsi)*p(user needsi)这种计算利用了一个含有形式为p(words)=∑ip(words|user needsi)的信息的上下文特定的语言模型的知识库。
在运行时,各个行动由事件监视系统分析后送至推理系统,由它不断计算出在各用户要求上的概率分布p(user needs|events),如前面所述。一个典型的应用是对帮助主题进行推理,而上下文特定的语言模型含有形式为p(words|relevant help topic)的信息。
在证明上式对语音识别的修改情况的较为普通的讨述中,如果输入一些动态事件events,即有p(words/speech,events)=]]>[Σip(words|user needsi,events)*p(user needsi|events)]p(speech|words)p(speech)]]>从而可得p(words|speech,events)=p(words/events)*p(speech/words)p(speech)]]>图35示出了通过动态地改变名词的似然性因而也就是改变发出的各音素的似然性来改善语音识别的智能用户辅助设备的关键部件和利用这些关键进行分析的流程。如图所示,用户的行动由带监测的程序72监视。基于事件由事件处理器74合成为模型化事件送至推理系统76。推理系统计算出用户要求的概率分布,将经加权的要求表送至动态语言模型产生器300。
动态语言模型产生器300具有一个在备选要求与语音或词的似然性之间的映射。这个部件可以含有来自语言模型数据库301的信息。语言模型数据库301含有一些语言模型,它们含有形式为在给定用户要求的情况下用户说出不同的词或词串的概率p(words|userneed)的概率信息。这些语言模型可以通过以统计方式用大量记录在不同用户要求上下文中的词串进行训练来构成。在运行时,推理系统提供在各用户要求上的概率分布,用来根据来自不同上下文的经加权的语言模型控制建立一个更新的语言模型。更新的语言模型302含有形式为p(words|events)的信息,它是根据概率推理结果利用各备选要求的似然性对各个词集合加权得出的。
总之,利用监听中的上下文可以通过按用户模型化降低音来不大可能的语音的概率而增大较为可能的语音的概率来提高语音识别系统303的准确性。
除了与软件一起用于接受帮助外,这种动态语音理解还可用于各种语音理解任务。作为一个例子,这些方法可用于各种与涉及处理软件的控制和功能的命令和控制的接口。如果我们将用户的目标模型化,我们就能产生一些经适当加权后反映用户以后步骤的语法,从而不易出错。
这些方法可以与产生在给定用户目标的情况下的下一个软件命令的概率的模型结合使用。在这种使用中,我们关注的是一个特殊的用户要求,即行动愿望。用户的行动愿望可以是指用语音实现一个或多个软件控制,包括取得一个或多个帮助主题。我们用在给定事件的情况下所希望的行动的概率p(desired action|events)代替前面各式中的p(user needs|events),利用含有信息p(words|deired action)而不是p(words|user needs)的语言模型。在这个模型中所考虑的事件能包括可含有正有效的窗口的信息的上下文以及在发生有语音发出时向用户显示的正文、按钮和控制。
例如,命令和控制的动态语言模型可用于部分功能是直接产生和显示一些概率结果的系统。作为一个例子,考虑一个利用贝叶斯网络或影响图帮助医生根据一组症状进行诊断的系统。用于医学的贝叶斯推理系统可能有若干组含有一些诊断推理结果的窗口。一个窗口可以按计算得出的似然性列出一些疾病,而另一个窗口可以根据信息的价值列出以后的最可能的症状和需做的检查。通过构建和评估在给定所显示信息的上下文的情况下用户行动的概率的模型(可以包括赋予所显示目标的计算概率和期望效用的函数),我们可以在语音识别中计算和利用动态地重新计算出的p(words events)。
虽然以上对本发明参照典型实施例作了说明,但熟悉本技术领域的人员可以理解,对这些实施例无论在形式上或细节上都可在所附权利要求规定的本发明的范围内加以改变。例如,这种通用的事件合成和推理系统也可以用于操作系统,以提供一个智能用户壳体,在更普遍的意义上来说,使任何计算机系统或软件的功能最佳化。由于能对所例示和说明的本发明施行种种改变,因此,本发明的专利保护范围仅由所附权利要求限定。
权利要求
1.一种在软件程序的智能用户辅助设备系统中使用的推理系统,所述推理系统包括知识库,所述知识库存储与表示关于所述软件程序内的用户启动的行动的可观察的状态的至少一些变量有关,以及与表示用户相对所述软件程序的对帮助的目标和需要的假设的变量有关的信息;以及推理引擎,所述推理引擎标识用户可以在所述软件程序中执行从而使所述软件程序的操作对所述用户变得更容易的面向帮助的行动,所述面向帮助的行动以显示但不由该用户启动面向帮助的行动为成本,优化所述软件程序内的用户期望的工具程序,以及优化存储在知识库中的用户相对所述软件程序的对帮助的目标和需要,这样,由所述智能用户辅助设备系统将至少一个面向帮助的行动显示给所述用户,并且显示给所述用户的一个或多个至少一个面向帮助的行动由该用户在所述软件程序中执行。
2.根据权利要求1所述的推理系统,其中所述知识库是贝叶斯网络。
3.根据权利要求1所述的推理系统,其中所述知识库是一组逻辑规则。
4.根据权利要求1所述的推理系统,其中所述推理引擎是贝叶斯网络。
5.根据权利要求1所述的推理系统,其中所述推理引擎包括信息价值部件,所述信息价值部件根据在不确定性的情况下执行的成本收益分析,判断由用户辅助设备系统从用户获得附加信息的价值大于门限值的概率。
6.具有如权利要求1所述的计算机可执行组件的计算机可读介质。
7.一种与软件程序的智能辅助设备系统相结合在推理系统中使用的推理引擎,所述推理引擎包括贝叶斯网络,包括表示关于用户相对所述软件程序对帮助的目标和需要的假设的节点,所述节点表示关于在所述软件程序内用户启动的行动的所观察的证据;以及与至少一个所观察的证据节点相关联的时序推理近似函数,所述函数随着概率在时间上改变来确定相关性概率,并标识对应于假设节点的面向帮助的行动,对于所述假设节点,用户可以在所述软件程序中执行以使得软件程序的操作对用户变得更容易,这样,由所述智能用户辅助设备系统将至少一个面向帮助的行动显示给所述用户,并且显示给所述用户的一个或多个至少一个面向帮助的行动由该用户在所述软件程序中执行。
8.根据权利要求7的推理引擎,其中所观察的证据是根据事件规范中定义的事件合成规则,从所述软件程序中用户启动的行动所建立模型的高层模型化事件。
9.用于由推理系统独立地从用户获得未观察到的信息以帮助确定所提议的用户帮助的方法,所述方法包括将未观察到的信息的多个项目的列表从最高价值到最低价值排序;通过执行所述列表的给定项目沿列表向下进行处理;确定获得给定项目的收益;确定分散用户注意力而获得给定项目的成本;响应于收益超出成本,向用户发出提供给定项目的请求;直到出现下列情况之一用户未响应该请求,以及成本超出了收益。
10.一种与软件程序的智能辅助设备系统结合使用的用于改进语音识别系统的准确性的方法,所述方法包括检测所述软件程序内用户启动的行动,根据事件规范中定义的事件合成规则,从用户启动的行动合成高层模型化事件,使用概率推理从所述高层模型化事件来确定用户相对所述软件程序的对帮助的目标和需要的概率分布;根据所述概率分布,修改语言识别系统所识别的语言模型数据库中的单词的概率,检测用户的语音,以及根据语言模型数据库中单词的概率,将所述用户的语音识别为语言模型数据库中的一个或多个单词,所述语言模型数据库中单词的概率已经根据用户相对所述软件程序的对帮助的目标和需要的概率分布进行过修改。
11.根据权利要求10的方法,其中所检测的用户的语音与所述软件程序的用户口头指令有关。
12.根据权利要求10的方法,其中所检测的用户的语音与关于软件程序的用户口头帮助查询有关。
13.具有用于执行权利要求10的方法的计算机可执行指令的计算机可读介质。
全文摘要
一种构建智能用户辅助设备的方法。在一台具有处理机和存储器,并且还包括一个输出部件以提供使用户和程序交互的用户接口的计算机中,向用户提供与在该计算机中执行的程序一起使用的用户帮助工具程序的方法,包括步骤在执行该程序期间,进行当前用户和该接口交互的概率评定,以产生多个不同的可使用的帮助主题的数值概率分布,从而为每个所述帮助主题生成独立的概率量测,该交互表明用户意图通过该程序完成某特定任务,从而所定义的多个独立概率量测中的每个量测表示在给定动作下用户为完成该任务是否会需要这些主题中的相关的一个的特定信息的概率,其中该交互既具有语言成分又具有非语言成分;根据多个分布上的概率量测,选择和用户交互最有关的一个特定的帮助主题;并且通过该输出部件向用户提供和一个帮助主题相关的预定帮助消息。
文档编号B82B1/00GK1632749SQ200410074968
公开日2005年6月29日 申请日期1997年7月2日 优先权日1996年7月19日
发明者埃里克·赫维茨, 约翰·S·布里斯, 大卫·E·赫克曼, 萨姆尔·D·赫伯森, 大卫·O·赫沃尔, 阿德里安·C·克莱恩, 亚克布思·A·罗莫尔斯, 格里高里·L·肖 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1