《用于基于上下文的装置动作预测的方法和系统.pdf》由会员分享,可在线阅读,更多相关《用于基于上下文的装置动作预测的方法和系统.pdf(27页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103077224 A(43)申请公布日 2013.05.01CN103077224A*CN103077224A*(21)申请号 201210592889.8(22)申请日 2012.12.3113/340,702 2011.12.30 USG06F 17/30(2006.01)(71)申请人微软公司地址美国华盛顿州(72)发明人大卫楚 刘劼 阿曼肯萨尔颜庭莘(74)专利代理机构北京集佳知识产权代理有限公司 11227代理人陈炜 李德山(54) 发明名称用于基于上下文的装置动作预测的方法和系统(57) 摘要本发明公开了用于基于上下文的装置动作预测的方法和系统。所描述的。
2、实施方式涉及自动地执行装置动作。一种实施方式可以获得上下文情境的上下文值。该实施方式可以使用决策引擎,基于上下文值来决定是否对计算装置执行动作。在决策引擎决定要执行动作的情况下,该实施方式可以对计算装置执行动作。该实施方式还可以使用与动作有关的反馈来更新决策引擎。作为具体示例,动作可以是在用户请求执行应用之前预先启动该应用。预先启动应用可以减少与在启动应用之前等待用户请求执行应用有关的应用延迟。(30)优先权数据(51)Int.Cl.权利要求书1页 说明书18页 附图7页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书18页 附图7页(10)申请公布号 CN 10。
3、3077224 ACN 103077224 A1/1页21.一种方法(500),包括:从一个或多个上下文情境(211,212,213,214,215,216)获得(503)一个或多个上下文值;使用包括一个或多个决策规则(401,402,403)的决策引擎(221,222,223),基于所述一个或多个上下文值和所述一个或多个决策规则来决定(504)是否对计算装置(110,702,714)执行动作(231,232,233);在所述决策引擎决定要执行所述动作的情况下,对所述计算装置执行(505)所述动作;以及使用与所述动作有关的反馈来更新(506)所述决策引擎的所述决策规则。2.根据权利要求1所述的。
4、方法,其中,从所述计算装置上的物理传感器获得单个上下文值。3.根据权利要求1所述的方法,其中,单个上下文值反映所述计算装置的用户的活动或其它计算装置上的其他用户的活动。4.根据权利要求3所述的方法,所述活动包括所述用户在所述计算装置上执行应用。5.根据权利要求3所述的方法,所述活动包括所述用户使用所述计算装置与另一个体通信。6.根据权利要求1所述的方法,其中,单个上下文值反映所述计算装置的当前时间或当前位置。7.一种系统,包括:基于上下文的动作模块(111);以及计算装置(110,702,714),被配置成执行所述基于上下文的动作模块,其中,所述基于上下文的动作模块被配置成:在第一情况下:获得。
5、上下文情境(211,212,213,214,215,216)的上下文值;使用决策引擎(221,222,223)来基于所述上下文值决定不对所述计算装置执行动作(231,232,233);以及不对所述计算装置执行所述动作;将与所述动作有关的反馈提供给所述决策引擎,其中,所述决策引擎被更新,以学习在所述上下文情境具有所述上下文值时执行所述动作;在所述第一情况之后的第二情况下:获得所述上下文情境的与在所述第一情况下获得的相同的上下文值;使用更新后的决策引擎来基于所述相同的上下文值决定对所述计算装置执行所述动作;以及对所述计算装置执行所述动作。8.根据权利要求7所述的系统,其中,所述决策引擎包括决策树。。
6、9.根据权利要求7所述的系统,其中,所述决策引擎包括贝叶斯分类器。10.根据权利要求9所述的系统,其中,所述贝叶斯分类器是朴素贝叶斯分类器。权 利 要 求 书CN 103077224 A1/18页3用于基于上下文的装置动作预测的方法和系统技术领域0001 本申请一般地涉及基于上下文的装置动作预测,并且特别地涉及用于基于上下文的装置动作预测的方法和系统。背景技术0002 应用软件可以取决于各种因素响应于用户输入而变化,这些因素包括应用是否是相对资源密集的,以及运行应用的装置的可用硬件资源是否足以满足应用的资源需求。例如,一些移动装置应用的起动延迟(startup latency)相对长,大约为1。
7、0至15秒。由于与较旧的应用相比,较新的应用趋于需要更多的资源,因此该问题在较旧的硬件被用于执行较新的应用时特别尖锐。0003 一种用于减少应用起动延迟的一般方法是将应用加载到存储器中或者甚至在用户实际调用应用之前开始执行应用。然而,移动装置趋于是相对地资源受限的,并且将存储器或处理器资源分配给当前不使用的应用并不总是可接受的。实际上,在一些情况下,该方法可能通过加载不必要的数据和/或执行不必要的指令而不必要地耗尽电池电量。发明内容0004 所描述的实施方式涉及自动地执行装置动作。一种实施方式被表现为如下一种技术,该技术可以包括从一个或多个上下文情境(contextor)获得一个或多个上下文值。
8、。该技术可以包括使用包括一个或多个决策规则的决策引擎,基于一个或多个上下文值和一个或多个决策规则来决定是否对计算装置执行动作。该技术还可以包括在决策引擎决定要执行动作的情况下对计算装置执行动作。该技术还可以包括使用与动作有关的反馈来更新决策引擎的决策规则。0005 另一实施方式被表现为如下一种技术,该技术可以包括基于一个或多个上下文值来识别要预先启动(prelaunch)的应用。该技术还可以包括预先启动应用以将该应用置于预先启动状态,以及接收与预先启动有关的反馈。0006 另一实施方式被表现为如下一种系统,该系统可以包括基于上下文的动作模块和计算装置。计算装置可以被配置成执行基于上下文的动作模。
9、块。基于上下文的动作模块可以被配置成在第一情况下:获得上下文情境的上下文值,使用决策引擎基于上下文值来决定不对计算装置执行动作,以及不对计算装置执行动作。基于上下文的动作模块还可以被配置成将与动作有关的反馈提供给决策引擎,并且决策引擎可以被更新,以学习在上下文情境具有上下文值时执行动作。基于上下文的动作模块还可以被配置成在第一情况之后的第二情况下:获得上下文情境的与在第一情况下获得的相同的上下文值,使用更新后的决策引擎基于相同的上下文值来决定对计算装置执行动作,以及对计算装置执行动作。0007 以上列出的示例旨在提供辅助读者的快速参考,并且不旨在限定本文中描述的概念的范围。说 明 书CN 10。
10、3077224 A2/18页4附图说明0008 附图示出了本专利中所传达的构思的实施方式。可以通过参考以下与附图相结合的描述而更容易地理解所示出的实施方式的特征。在可行的情况下,各个图中的相似的附图标记用于表示相似的元件。此外,每个附图标记的最左侧的数字表示首次介绍该附图标记的图和相关联的讨论。0009 图1示出了可以采用本构思的一些实施方式的示例性场景。0010 图2示出了根据本构思的一些实施方式的模块的示例性架构。0011 图3A和图3B示出了根据本构思的一些实施方式的示例性图形用户界面。0012 图4A、图4B和图4C示出了根据本构思的一些实施方式的示例性决策规则。0013 图5和图6示。
11、出了根据本构思的一些实施方式的示例性方法的流程图。0014 图7示出了根据本构思的一些实施方式的系统的示例。具体实施方式0015 概况0016 本讨论涉及使得装置基于对装置的决策引擎可用的信息而自动地采取各种动作。例如,在一些实施方式中,在用户实际请求执行特定应用之前启动(launch)该特定应用。在一些情况下,在用户请求执行应用之前启动应用可以减少应用起动延迟并提供更令人满意的用户体验。由于移动装置趋于为相对地资源受限的,并且所公开的实施方式可能特别适合于在资源受限装置上的实施,因此,本文中提供的某些示例是关于移动装置而讨论的。然而,还可以对其它类型的计算装置(诸如膝上电脑、服务器等)执行所。
12、公开的实施方式。0017 通常,用户可通过使用例如鼠标、滚轮、触摸屏或其它输入方法来识别并且选择表示应用的图标、平铺显示(tile)或其它界面元素而请求执行应用。可以从桌面、菜单或其它界面中选择图标。为了本文档的目的,术语“启动”(launching)是通用术语,该通用术语包括通常响应于接收到执行应用的这种用户请求而发生的各种动作。例如,启动可以包括为应用分配存储器以及将应用从存储装置加载到所分配的存储器中。启动还可以包括执行加所载的应用代码,以执行可能与应用初始化有关的功能。例如,可以作为启动的一部分来执行从网络取回诸如网页、图像、视频等的数据的应用代码。诸如线程和/或处理的处理器资源也可以。
13、被分配作为启动应用的一部分。0018 从架构上,所公开的技术可以通过使用决策引擎来实现,该决策引擎将一个或多个“上下文情境”的值映射至不同的动作。一般来说,上下文情境提供可被决策引擎用于确定是否要采取特定动作(诸如启动应用)的状态信息。例如,一些上下文情境具有直接从移动装置上的一个或多个物理传感器(诸如加速计、光传感器、全球定位系统(“GPS”)、麦克风、时钟等)获得的或者从这一个或多个物理传感器以逻辑方式得到的值。其它上下文情境可以反映用户的活动,诸如请求特定应用、呼叫特定家庭成员、发送具有特定词的文本消息等。0019 为了本文档的目的,术语“上下文情境”(co ntextor)一般用于表示。
14、例如来自传感器、操作系统、单个应用等的对装置可用的信息源。术语“上下文值”用于指代单个上下文情境的值,并且可以包括直接值(例如,环境温度)或者以逻辑方式得到的值(例如,通过将温度转换成诸如冷、暖等的术语)。一般地,决策引擎可以学习对于一个或多个上下文情境说 明 书CN 103077224 A3/18页5的当前或历史上下文值(包括序列)要采取哪些动作。可以通过各种动作隐含地或明确地提供反馈,以改进决策引擎并借此学习用于特定上下文情境的特定上下文值,接着这些特定上下文值被用于触发特定动作。注意,决策引擎可以根据决策引擎决定自动地对用户采取特定动作的情况或者根据用户直接采取动作(即,没有决策引擎的参。
15、与)的情况进行学习。0020 一般来说,当前或历史上下文值可以用于训练单个决策引擎以及确定是否采取特定动作。除非特别另行指出,否则本文中所使用的术语“上下文值”可以指代特定上下文情境的当前值或历史值。在一些实施方式中,上下文情境日志用于存储随时间的上下文值的历史。此外,在一些情况下,也可以从上下文情境日志获得上下文值的特定序列并且由单个决策引擎来应用这些序列。上下文值序列的一个示例可以是应用使用模式,例如,用户可在特定序列中始终使用三个不同的应用。0021 动作的一个示例是上述的应用启动。术语“预先启动”在本文中用于指代在用户通过提供某种类型的装置输入而实际请求调用应用之前至少部分地启动该应用。
16、。例如,用户可能常常在结束与特定联系人的电话呼叫之后不久打开社交联网应用,例如以检查该人的社交联网简档以得到状态更新、图片、评论等。决策引擎可以学习在例如电话呼叫期间或在用户结束电话呼叫之后不久在用户实际请求执行社交联网应用之前预先启动该应用。一旦决策引擎学会了在适当情形下进行预先启动,则通过抢先为用户预先启动社交联网应用,用户就可在调用社交联网应用时经历相对少的延迟。在该情况下,电话日志上下文情境可以提供用于表示用户已通过电话与其对话的各个联系人的上下文值。在一些实施方式中,还通过电话日志上下文情境提供与呼叫有关的其它信息,例如,呼叫发生时的时间/天/日期、是Bob呼叫了用户还是用户呼叫了B。
17、ob、Bob和/或用户是用工作号码还是个人号码呼叫等。0022 动作的另一示例是自动地调整装置的铃声的音量。考虑如下用户:该用户常常在麦克风检测到的环境噪声相对高时增大其铃声的音量。决策引擎可以学习在麦克风检测到的环境噪声上下文情境的值在特定阈值以上时采取动作(增大铃声的音量)。决策引擎可以学习该环境噪声阈值,作为触发动作的特定上下文值。换言之,在环境噪声上下文情境提供的上下文值表示增大铃声音量是决策引擎要采取的适当动作的情形下,决策引擎可以抢先使得铃声音量增加而无需用户输入。随着时间,决策引擎可以学习(1)在高环境噪声情形下采取增大铃声音量的动作,(2)改进触发决策引擎采取该动作的环境噪声的。
18、量,以及(3)例如响应于环境噪声的不同水平和/或用户偏好而将特定音量水平调整得更高或更低。0023 如上所述,可以经由表示特定动作是否适当的反馈来训练决策引擎。因此,决策引擎可以在采取给定动作之后接收反馈,然后使用该反馈来改进决策引擎。考虑以上阐述的决策引擎增大铃声音量的示例。如果用户随后忽略呼叫或减小铃声音量,则这可能导致对决策引擎的负反馈。在启动上述社交联网应用的示例中,反馈可以表示在启动应用之后的预定时间量(例如,30秒)内用户是否实际决定提供用于启动社交联网应用的某种装置输入。如果是,则这一般可以被视为对决策引擎的“正”反馈,该“正”反馈增强了在用户呼叫特定家庭成员之后不久采取启动应用。
19、的动作的决策。替选地,如果用户没有在预定时间量内提供用于启动社交联网应用的装置输入,则这可以被视为对决策引擎的“负”反馈,该“负”反馈可以使得决策引擎减小在这些情形下预先启动社交联网应用的几率。0024 注意,在该示例中,应用不一定为决策引擎提供明确的反馈。更确切地说,反馈是说 明 书CN 103077224 A4/18页6隐式的,例如,应用不需要报告用户启动了或者没有启动应用。替代地,该信息可以由移动装置的操作系统来提供,其中决策引擎是操作系统的一部分。在其它情况下,可以由应用提供明确的反馈,例如,通过由应用发送到决策引擎的、用于表示决策引擎所采取的具体动作是否适当的数值或布尔值来提供这种反。
20、馈。作为明确的应用反馈的一个示例,应用可以通知决策引擎该应用花费了多长时间进行预加载。一般地,对于给定应用的相对长预加载时间表示该应用是预加载有益的应用,并且因此用作对应用启动决策引擎的正反馈。相反,相对短的预加载时间表示预加载该应用获得相对少的益处,并且因此用作对应用启动决策引擎的负反馈。0025 注意,甚至在上下文值用作对应用使用模式非常好或几乎完美的指示符时,上述应用反馈也可以是有用的。例如,即使一个或多个上下文情境表示在不久的将来用户将几乎肯定启动特定应用,如果加载应用通常发生得非常快以至于用户感知不到延迟,那么也只能获得非常少的益处。相反,即使一个或多个上下文情境仅提供用户将启动给定。
21、应用的相对不确定的表示,如果应用在未被预先启动的情况下花费很长时间来响应用户,那么预先启动应用仍然可能是值得的。0026 示例场景0027 图1示出了场景100,其中,上下文可以被用于抢先执行装置动作。场景100包括情况1和2,以下讨论每个情况。从情况1开始,示例场景100示出了在用户已请求启动特定应用(例如,上述社交联网应用)之后不久(例如,五秒)的移动装置110。例如,用户可能提供了表示应该启动应用的某种装置输入(经由键盘、口头命令、轨迹球、触摸屏等)。然而,应用可能会由于应用正在进行某种初始化处理(例如,从存储装置被加载到存储器、通过操作系统被切换到活跃应用上下文(处理或线程)中、试图通。
22、过网络取回数据等)而仍无法响应于用户命令。0028 然而,如图1中所示,移动装置110可以包括基于上下文的动作模块111,该基于上下文的动作模块111可以被配置成预先启动应用以减少用户感知到的延迟。一般地,基于上下文的动作模块111可以从移动装置获得上下文,例如,在情况1处表示移动装置被用于呼叫“Bob”的一个或多个上下文值。上下文值还可以表示在接收到启动社交联网应用的用户请求之前不久(例如,两分钟内)发起或接收呼叫。随着时间,基于上下文的动作模块111可以学习到预先启动社交联网应用是在用户呼叫了Bob或者从Bob接收到了呼叫之后要为用户采取的适当动作。因此,在情况2处,基于上下文的动作模块可。
23、以在用户实际请求社交联网应用之前启动该应用。因此,社交联网应用可被初始化,并且准备好在用户下次呼叫Bob时供用户使用。这大致在情况2处示出,其中,作为预先启动的一部分,社交联网应用已将一些图片下载到移动装置。0029 示例架构0030 图2示出了基于上下文的动作模块111的示例性架构。如图2中所示,基于上下文的动作模块111可以包括上下文管理器210、映射管理器220和动作管理器230。一般来说,上下文管理器210可以被配置成管理一个或多个上下文情境,这一个或多个上下文情境包括时间211、位置212、电话日志213、环境噪声214、环境光215、应用使用216等。对于时间211可从本地装置时钟。
24、和/或时间服务器获得上下文值,对于位置212可从GPS和/或蜂窝三角测量获得上下文值,对于电话日志213可从呼叫记录应用获得上下文值,对于说 明 书CN 103077224 A5/18页7环境噪声214可从本地装置麦克风获得上下文值,对于环境光215可从本地装置光传感器获得上下文值,而对于应用使用216可从操作系统获得上下文值。一般地,可以例如从传感器等在移动装置本地获得各个上下文值,并且在一些情况下,这些上下文值被存储在一个或多个本地上下文情境日志中。然而,在一些情况下,可以例如在服务器上远程地维护和存储上下文情境日志,并且由移动装置取回这些上下文情境日志以用于供基于上下文的动作模块使用。0。
25、031 也构思了图2中未示出的上下文情境的其它示例。一般地,可以由移动装置110的各种装置传感器和/或移动装置所保持的其它信息(诸如操作系统日志等)来提供其它上下文情境。如以下更详细地讨论的,上下文情境可以是例如经由图形用户界面(“GUI”)而可供用户选择的,该图形用户界面允许用户选择上下文管理器210使用哪些上下文情境。0032 此外,注意,开发者可以建立可被决策引擎用于执行动作的新上下文情境。例如,考虑将电子罗盘安装在移动装置上的第三方应用。可以在此时安装用于提供电子罗盘的值(例如,方位角或逻辑方向(北、西北等)的相应上下文情境。现有的决策引擎可以学习使用新安装的上下文情境来采取各种动作而。
26、无需进一步修改,例如,新上下文情境“插入”到由上下文管理器提供的现有框架。不管新的上下文情境是由移动装置的制造者、移动装置操作系统的开发者(“第一方”)还是第三方应用开发者提供的,情况都可以是这样的。0033 基于上下文的动作模块111还可以包括映射管理器220,映射管理器220可以被配置成将各个上下文情境提供的上下文值映射至相应动作。映射管理器220可以包括一个或多个被配置成执行映射的决策引擎,例如,应用或“app”启动决策引擎221、铃声音量决策引擎222和/或屏幕亮度决策引擎223。各个决策引擎可以使用不同的决策算法来实现,包括概率/统计/随机模型,经由机器学习技术进行在线或离线学习等。。
27、不管决策引擎的特定实现方式如何,其中实现的决策算法都可以确定是否采取特定动作。一般地,先前的装置动作和上下文值的历史可以用于随着时间训练决策引擎,以使得决策引擎学习以对用户有益的方式来改进各种装置动作的选择。先前的装置动作可以是决策引擎先前采取的装置动作(诸如预先启动应用),或者用户采取类似动作(诸如直接经由用户输入启动应用而无需决策引擎预先启动)的情况。如以上对于上下文情境所述的,第一方或第三方开发者也可以提供新决策引擎,这些新决策引擎直接插入到映射管理器,并且可以使用现有的上下文情境开始进行决策以执行各种动作。例如,装置可能来自制造者并具有朴素贝叶斯决策引擎,并且第三方开发者可以随后提供插。
28、入到映射管理器的、加时间窗的(time-windowed)快速决策树(very fast decision tree)决策引擎。0034 动作管理器230可以被配置成对映射管理器220的决策引擎可采取的各种动作进行管理。例如,动作可以包括预先启动app动作231、调整铃声音量动作232和/或调整屏幕亮度动作233。一般来说,映射管理器所管理的每个决策引擎可以采取动作管理器所管理的动作中的一个或多个动作。在一些实施方式中,动作也可以是例如经由图形用户界面(“GUI”)而可被用户选择的,该图形用户界面允许用户选择动作管理器230所使用的动作。像上下文情境和决策引擎一样,动作也可以由第一方或第三方开。
29、发者独立地提供。例如,上述电子罗盘可以提供使得罗盘点亮的动作。随着时间,决策引擎可学习在特定时间、在低环境光下等为用户照亮罗盘。更一般地,新的动作可以被插入到动作管理器,以使得现有的决策引擎可以学习响应于现有的上下文情境而采取新近可用的动作。说 明 书CN 103077224 A6/18页80035 在以下讨论中,既一般地描述了预先启动应用动作,又关于均可视为预先启动动作的一部分的各个特定子动作(例如,从存储器加载应用代码、执行代码等)描述了预先启动应用动作。另外,注意,术语“预先启动”在本文中一般用于表示在用户请求执行应用之前执行应用的至少部分启动。因此,预先启动执行应用的至少部分启动,以将。
30、应用置于预先启动状态(代码/数据已加载到存储器中、代码已执行等),以使得如果用户随后请求执行应用则可从预先启动状态执行应用。0036 另外,注意,在一些实施方式中,各个决策引擎可以采取多个动作,例如,预先启动的每个应用可以被构想为不同的动作。类似地,调整铃声音量可以被视为单个动作或包括数个动作,例如用于调高或调低音量的分开的动作。这对于调整屏幕亮度同样成立。0037 单个决策引擎是否采取特定动作是用作该决策引擎的输入的上下文情境的值的函数。随着时间,各个动作可以在决策引擎采取这些动作的任何时候来提供正反馈或负反馈。该反馈可以用于更新决策引擎以采取可能对装置的用户有用的动作,例如,通过自动地提高。
31、铃声的音量和/或为用户预先启动应用来进行。在图2中经由连接各个动作和决策引擎的双向箭头大致示出了从动作到决策引擎的反馈。0038 另外,注意,图2中所示的特定上下文情境、决策引擎和动作是示例性的,并且可以想到其它上下文情境、决策引擎和动作。例如,如上所述,上下文情境的值可以来自不同的传感器,诸如加速计、温度传感器、电子罗盘或GPS、光传感器、麦克风、摄像装置、射频识别(RFID)标签读数(使用例如近场通信)等以及网络可用性和链路质量。上下文情境还可以来自各种应用和/或来自移动装置110的操作系统,例如,操作系统可提供用于时间上下文情境的装置时钟。例如,移动装置110可以包括用于跟踪何时启动不同。
32、应用的操作系统,并且特定应用的启动可以用作上下文情境。具体地,一些应用可以是“触发”应用,“触发”应用用于例如在用户具有以特定序列请求应用的倾向时预先启动其它应用。用户行为(诸如登录到给定应用中、击键序列等)也可以用作上下文情境。0039 注意,给定上下文情境提供的上下文值可以是原始数据或者可以被提供到更高层级的决策引擎。例如,原始GPS数据可以由位置上下文情境转换成语义上更丰富的逻辑位置,例如,家、办公室、朋友家等。类似地,原始时钟数据可以由时间上下文情境转换成早晨、下午、晚上、夜间等。0040 决策引擎的适当决策算法的具体示例可以包括贝叶斯(例如,朴素贝叶斯)分类器、决策树(例如,快速决策。
33、树)、支持向量机(SVM)、隐式马尔科夫模型(HMM)、高斯混合模型(GMM)等。考虑将当前时刻和逻辑位置用作朴素贝叶斯决策引擎的上下文情境的简单情形。每当决策引擎观察到应用运行时,决策引擎都可以针对进行观察时的时刻而递增应用计数器c_x。决策引擎还可以递增表示进行观察的逻辑位置的另一计数器c_y。决策引擎还可以递增表示该应用已运行的总次数的、用于该应用的计数器Prior。当决策引擎决定了接下来要运行的应用时,决策引擎可以获得表示当前时刻的值c_x和表示当前逻辑位置的值c_y。然后,决策引擎可以为每个应用分配值c_xc_y*Prior,并且运行具有最高值的应用。0041 反馈如下进行:在进行预。
34、测之后,当用户实际启动应用时,决策引擎可以观察启动了哪个应用。然后,例如使用变量c_x、c_y和Prior来对于以上每个过程记录该信息。因此,如果用户先前已倾向于在同一时刻和/或在同一位置运行特定应用,则这将倾向于增说 明 书CN 103077224 A7/18页9加所分配的值,并且使得决策引擎在下次用户处于该位置和/或处于同一时刻时将更可能运行该应用。0042 在一个具体实施方式中,由于快速决策树具有相对低的运行期间开销(CPU和存储器利用)并且不需要离线训练,因此使用快速决策树。另外,由于这些决策树的加时间窗的实施方式易于适于用户行为的改变,因此,也可以使用这些实施方式。可以在Doming。
35、os等人所著的“Mining High-Speed Data Streams”(KDD 00,Proceedings of the sixth ACM SIGKDD international conference on Knowledge discovery and data mining(pp.71-80),2000,波士顿,MA:ACM Press)中找到关于快速决策树的更多细节。0043 一般来说,上下文情境和动作反馈的先前值可以被用于更新决策引擎。进而,随着决策引擎基于反馈进行学习,这可以使得决策引擎采取更适当的动作。在一些实现方式中,上下文值和动作反馈被“加窗”以使较旧的值被忽视(。
36、discount)。例如,加窗的贝叶斯算法或决策树可以仅使用上下文情境和反馈的相对近的(例如,过去的周、月、45天等)数据来训练决策引擎。这可以帮助决策引擎例如响应于用户行为的突然改变而更快速地学习。0044 在决策树的具体示例中,决策引擎可以迭代地将上下文值分割为映射至特定动作的值或值范围。决策树中的每个叶节点可以表示单个动作,并且上下文值被表示为用于分割的属性。随着时间,叶节点(动作)可以由测试节点取代,然后测试节点可以被分裂,以利用决策树学习新的规则。0045 另外,注意,所公开的架构允许各种动作与上下文情境之间的独立性。在某种意义上,动作和上下文情境“可插入”到图2中所示的架构中。换言。
37、之,可以添加新的上下文情境,因此决策引擎可以使用新的上下文情境来学习是否执行移动装置上已启用的某些动作。0046 例如,可以添加用于监视在移动装置的位置处的环境光的环境光传感器作为上下文情境。如果环境光趋于与某些装置动作相关,则特定决策引擎可以学习可响应于环境光的特定值而发起一个或多个现有动作。换言之,决策引擎可以学习基于新的上下文情境是否执行现有装置动作的新规则。0047 以下示例示出了上下文情境与动作之间的独立性的一个益处,其示出了上下文管理器210启用新上下文情境如何可以提供增强的用户满意度。考虑上面提到的在与其家庭成员Bob交谈之后不久常常打开社交联网应用的用户。该用户也可能习惯于每天。
38、早晨在从通常持续一个小时的晨跑返回时立即打开社交联网应用。如果只有电话呼叫上下文情境被启用而所有其它上下文情境都没有被启用,则应用启动决策引擎可学习在与Bob交谈之后在移动装置上预先启动社交联网app。然而,由于不存在时间敏感的上下文情境(诸如时间上下文情境或环境光上下文情境),因此决策引擎无法访问用于表示用户在早晨打开社交联网应用的倾向的上下文值。0048 由于在该示例中决策引擎没有适当的上下文情境来学习用户的习惯,因此决策引擎可能无法学习在用户从晨跑返回之前为用户预先启动社交联网应用。通过启用新的时间敏感的上下文情境(诸如当前装置时间或环境光传感器(例如,针对携带其装置跑步的用户),现有的。
39、应用启动决策引擎可以学习在早晨的适当时间在移动装置上预先启动社交联网应用。正反馈可以增强该动作,例如,当用户实际在每个早晨请求执行社交联网应用时接收正反馈。说 明 书CN 103077224 A8/18页100049 注意,环境光上下文情境和时间上下文情境不是严格对准的,例如,他们的关系在切换到夏令时或者从夏令时切换之后突然改变,或者在日出随着季节改变时随时间改变。在一些情况下,取决于用户的习惯,决策引擎可以学习使用一个或其它上下文情境。因此,决策引擎可学习使用时间上下文情境来为习惯在同一时间跑步而不管日出时间的用户预先启动社交联网应用。相反,决策引擎可学习使用环境光上下文情境来为习惯在日出时。
40、跑步而不管时钟时间的用户预先启动社交联网应用。0050 作为上下文情境/动作独立性可以如何有益的另一示例,考虑以下启用新动作以与现有决策引擎和现有上下文情境一起工作的示例。假设如下用户:该用户仅启用一个动作(预先启动社交联网应用),并且具有如上所述的用于装置时间和/或环境光的已启用的上下文情境。早晨的时间改变或环境光改变可以用作由决策引擎用于预先启动社交联网应用的上下文值。然而,用户还可能易于在每天晚上调低铃声音量,而在早晨在其醒来时忘记将铃声音量往回调高。通过启用调整铃声音量动作232,铃声音量决策引擎222可以学习在早晨的特定时间或在环境光在早晨增加时提高铃声音量。在该情况下,当(1)用户。
41、接听电话呼叫时或者(2)在调整之后没有减小铃声音量时,来自提高铃声音量的反馈可以被视为正的。另外,注意,铃声音量决策引擎可以学习在晚上的特定时间和/或当环境光减少时调低铃声音量。0051 在先前的示例中,结合环境光上下文情境来使用时间上下文情境可能是有益的。用户可能具有在白天期间将移动装置放在其口袋中的倾向。在该情况下,由于用户的口袋在白天是暗的,因此仅缺乏环境光可能不是减小音量的适当指示。通过还使用时间上下文情境,铃声音量决策引擎可以学习例如在(1)环境光相对低并且(2)当前时间相对晚(例如,8pm)时减小铃声音量的规则。0052 示例GUI0053 图3A和图3B分别示出了示例性图形用户界。
42、面(“GUI”)300和350。GUI 300可以允许用户选择性地启用/禁用一个或多个上下文情境,并且GUI 350可以允许用户选择性地启用/禁用一个或多个动作。例如,GUI300和/或350可以呈现在移动装置上,以允许用户选择在移动装置上启用哪些上下文情境和/或动作。一般来说,通过启用新的上下文情境,用户可以允许决策引擎在决定是否执行现有动作时使用由新的上下文情境提供的上下文值。类似地,通过启用新的动作,用户可以允许决策引擎基于由现有上下文情境提供的上下文值来确定是否执行新的动作。0054 关于图3A,用户可以通过从启用栏301选择相应的块来使用GUI 300启用各个上下文情境。当用户启用给。
43、定上下文情境时,相应块以“x”示出,否则被示出为空。因此,图3A示出了如下配置:用户已启用时间211和位置212,同时禁用电话日志213、环境噪声214、环境光215和应用使用216。0055 关于图3B,用户可以通过从启用栏351选择相应块而使用GUI350启用各个动作。当用户启用给定动作时,相应块以“x”示出,否则被示出为空。图3B示出了附加的复杂情况,由此用户可以单独地激活特定动作的子动作。这里,用户已整体启用了预先启动应用动作231,但是已特别禁用了电子邮件应用的预先启动,在图3B中以与预先启动电子邮件应用352对应的空块示出。因此,图3B示出了用户已启用了应用的预先启动和铃声的调整的配置。然而,用户已特别禁止预先启动应用决策引擎预先启动电子邮件应用,而非启用所有说 明 书CN 103077224 A10。