应用的预测预启动的制作方法_3

文档序号:9672518阅读:来源:国知局
个或任何所期望的数量)影响。将领会的是,还可能使用其它分组(诸如当前 应用切换、先前应用切换和在应用切换之后落入预测窗口内的任何周期)创建情况。
[0053] 为了确定"应用X"被切换到下一预测窗口的概率,预测器可以对所有情况迭代并 且基于它们的特性分类它们的每一个。一旦情况被分类,本系统就可以调整该情况匹配的 每个类别的计数。每个类别可以具有积极(positive)情况的计数和总情况的计数。如果 应用X被切换到该情况内,则该情况为"积极的"。
[0054] -旦已经对这样的情况进行了分类并且对计数进行了更新,本系统可以确定当前 情形匹配哪些类别并且将权重指派给类别。这些权重可以是静态的或可能取决于诸如类别 中的总情况的数量和当前情形是否匹配该类别之类的因素,例如,指派权重(例如,〇.4、0. 4 和0.2)。一旦已经指派了权重,可能通过针对每个类别取加权和(积极的情况)/(总情况) 计算最终概率。
[0055] 图5给出了按照本申请的原理作出的"自适应"预测引擎模块的一个实施例。预 测引擎模块可以接收给定应用的生命周期的活动数据(例如,应用由用户激活的次数、激活 的一天的时间、激活的时间长度等等)。应用的这些使用可以形成应用使用的"情况"集合。 每个情况可以被评估未来和/或潜在的激活的计算的、预测的和/或估计的概率。
[0056] 在502,自适应预测可以开始,并且如果正在由预测引擎考虑的应用之前从来没有 看到过(在504),则需要被预启动的应用的概率可以被给予初始值,例如,0(在506),并且 在508,该进程结束。
[0057] 否则,之前已经看到和/或考虑应用。该发生可以被设定为该应用的最近情况(在 510)。自适应预测可以分类该当前情况(在512),并且更新针对该情况的计数(在514)。引 擎可以考虑是否存在任何进一步的附加的情况以在此时考虑(在516),并且如果是,引擎可 以适当递增当前情况(在518)。在已经考虑了所有当前情况时,然后引擎可以分类当前情形 (在522)。
[0058] 在一些实施例中,"当前情形"可以包括当前应用、先前应用和系统已经在当前应 用中存在多久。可能将该概念从最后2-3个应用扩展到最后N个应用。当计算概率时,自 适应预测器可以考虑类似于当前情形的先前情况并且在那些情况之后,查看已经使用了哪 些应用。在一个实施例中,"适应性"可以来自这样的事实:在过去,算法关于找到精确相同 情形不是严格的,例如,如果在过去不存在类似于当前情形的足够数量的示例,则该算法可 以放松"当前情形"的定义,并且通过考虑N-1个最近应用和/或通过归纳在当前应用中花 费多长时间来使其不那么特定。
[0059] 当已经如此分类和/或处理数据时,引擎然后可以基于所期望的规则和启发式计 算潜在激活概率(在524)。这样的规则和/或启发式可能包括:应用正在运行的时间量的 时间加权平均、在其中应用被激活和/或正在运行的一天中的时间等等。
[0060] 图6描绘了可以由图5所描绘的自适应预测模块所维护的一个示例性数据/元数 据集合。在适当时,该数据/元数据可以被存储在计算机系统内或计算机系统外部。如可 以看出,本示例在所期望的时间段的过程内考虑了四个应用(即,A,B,C和D)的数据。将领 会的是,时间段(例如,一天、一周等)可以根据本系统的期望而变化。
[0061] 在该示例中,从时间=00:00直至14:20(示例中的当前时间),存在由本系统考虑的 许多情况(情况1、…、情况9)。这些情况可以表示重叠时间段(例如,情况1和情况2等), 或者它们根据需要可以不重叠。根据一些信号(例如,激活和/或使用应用(例如,将从应用 暂停移动到正在运行)),每个情况可以开始。在该示例中,可以看出,最后的情况是当前情 形(并且如影线所示),并且情况1-9表示历史条目。
[0062] 当这些情况被处理时,每个情况可以分类为任何数量的类别。每个类别可以被预 先定义为用户的使用情况和/或模型(例如,其可以取决于用户是否在工作、用户所进行的 什么活动等等而变化)。自适应预测引擎可以继续处理这些情况,例如,以提供用于预测窗 口的预测(其被示为经过当前时间的所期望的时间段)。
[0063] 该分类数据可以被用于执行可能权重的概率计算。如可以看出,最终概率可以被 计算和/或估计为可能与所期望的预测窗口相关。
[0064] 一旦这些概率已经被设定,它们就可以作为规则和/或启发式的一部分由本系统 的其它模块(例如,预启动策略)而利用,以确定是否预启动给定的应用。
[0065] (5)切换速率预测器 在该实施例中,可能基于单独和/或社区数据提供使用应用中的可能通用属性(比如 切换频率和时间)以做出其预测的模型。
[0066] 参照图7和图8,一个速率预测器可以对应用切换进行操作。这样的速率预测器可 以迭代和/或考虑在历史中的所有应用切换,并且维护多种信息,例如,速率计数和持续时 间。速率计数和持续时间可以被划分成类别,例如,可能针对一天的不同时间保持分开的计 数和持续时间。
[0067] 在一个实施例中,对于每个应用切换,预测器可以首先衰减所有计数和持续时间。 这可以基于自从上次应用切换的时间通过应用指数衰减进行;然而,其它可能衰减函数确 实存在。
[0068] 一旦已经应用了衰减,本系统就可以分类该应用切换并且递增对应的速率计数。 然后,本系统可以分类导致该应用切换的时间,可能在不同类别之间拆分时间段,并且将时 间添加到对应的持续时间。例如,如果类别是中午之前(BeforeNoon)和下午(Afternoon), 则当前时间为12:30,最后的应用切换是11 :00,本系统可以将1小时添加到中午之前并且 将30分钟添加到下午。
[0069] 一旦本系统已经处理了应用切换,本系统就可以分类当前情形。然后,本系统可以 将权重指派给每个类别并且计算加权和,例如,用于每个类别的(速率计数)/(持续时间)的 加权和。这给予本系统然后可以转换成概率的最终速率。
[0070] 附加的速率预测器实施例 在一个实施例中,速率预测器尝试估计感兴趣的事件(比如例如,用户切换到浏览 器应用)将在当前时间(currenttime)t的某个间隔δ内发生的概率。也就是说,为 了回答这个问题"事件将在时间t和t+δ之间发生的概率是什么?"。如果预测器知 道,平均来说,该事件以每单位时间λ个事件的速率出现,则这个概率可以被计算为 身一#因此,预测器可以集中于估计事件在每个时间的速率λ。
[0071] 实施例1:总体速率预测器 如果预测器已经观察到用户持续时间d和事件发生η次,则自然估计是使用? = _。如 α 果t。为预测器开始观察用户的时间,则ti是目标事件的观察到的次数,并且t是当前时间, 则预测器可以采用: 给出
实施例2 :每个上下文(Per-Context)的速率预测器 假设预测器知道速率可以具有不同上下文。例如,假设速率在一周的不同天而不同。然 后,如果t= "13:21. 02、星期五、2013年5月31日",则可能使用:
如果感兴趣的事件的速率在登录的第一分钟内不同,则可能使用:
一般而言,如果在时间t的上下文(例如,一周中的一天、一天中的时段、或者是否在 登录的某个时间之内或之后)为c(t),则可能计算在每个上下文c(例如,在星期日、星期 一、…、星期六)中观察到感兴趣事件的次数,其可以由n。(t)表示并且可能计算在每个上 下文c中观察到用户的总持续时间,其可以由djt)表示,并且使用:
如果1。(0是当上下文是1时,等于1,否则为0的函数,则可能使用:
实施例3 :衰减的速率预测器 随着t的增加,计数n。(t)和持续时间djt)增加地越来越大,并且变得受越来越过时 的用户行为支配。为了克服这个问题,可能引入新近加权(recency-weighting),使得更近 行为在计数和持续时间上被更重地加权。一个选项可以是指数加权,其中,当估算稍后时间 ... Λ的计数和持续时间时,在时间的行为是给定的权重^胃。在这种情况下,可能使用:
如果事件(在这种情况下,应用切换(appswitch))在上下文中改变(change)(例如, 在一天中的改变)并且查询(query)(即,PLM查询预测器)在时间上向前(forward)发生, 则这些计数(count)、速率和持续时间(duration)可以被计算,其在图7中以流程图的形式 示出并且在此重复如下: 1. 对于每个应用(app)和上下文(context):设定duration[app,context]=0,设定 count[app,context]=0 (702) 2. 设定last_time=now,context=current_context(704) 3. 等待下一应用切换,上下文改变或查询(706) 4. 设定delay(延时)=now_last-time(708) 5. 设定decay(衰减)=exp(- (delay)/delta) (710) 6. 对 于每个app' 和context' :设定duration[appJ? contextJ ] =decay>!<duration[appJ?contextJJ+delay5^ (1--decay),设定count[appJ, context']氺=decay(712) 7. 如果(appswitch)count[app,context]++ (714) 8. 如果(appchange)设定context=current-context(716) 9. 如果(query)返回count[queried-app,context]/duration[queried-app, context] (718) 10. 设定last-time=now(720) 11. 转到 3 (722)。
[0072] 图8描绘了示出随时间在各种应用之间的切换的关于4个应用(A,B,C和D)的一 个示例性数据集合。例如,考虑在图8中被标记为"APPA"的速率曲线。当应用A被激活 并且在该时间正在运行时
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1