CN112860358A - 一种应用管理的方法和终端 - Google Patents
一种应用管理的方法和终端 Download PDFInfo
- Publication number
- CN112860358A CN112860358A CN201911183673.4A CN201911183673A CN112860358A CN 112860358 A CN112860358 A CN 112860358A CN 201911183673 A CN201911183673 A CN 201911183673A CN 112860358 A CN112860358 A CN 112860358A
- Authority
- CN
- China
- Prior art keywords
- application
- set time
- time period
- user
- probability
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007726 management method Methods 0.000 title abstract description 106
- 238000000034 method Methods 0.000 claims abstract description 100
- 230000008569 process Effects 0.000 claims description 49
- 238000012163 sequencing technique Methods 0.000 claims description 43
- 238000011112 process operation Methods 0.000 claims description 8
- 238000013473 artificial intelligence Methods 0.000 abstract description 12
- 239000010410 layer Substances 0.000 description 137
- 230000006399 behavior Effects 0.000 description 52
- 230000000875 corresponding effect Effects 0.000 description 48
- 238000010276 construction Methods 0.000 description 27
- 230000008859 change Effects 0.000 description 25
- 230000006870 function Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 22
- 238000001914 filtration Methods 0.000 description 19
- 230000005540 biological transmission Effects 0.000 description 18
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 13
- 230000000694 effects Effects 0.000 description 10
- 230000002354 daily effect Effects 0.000 description 9
- 238000012549 training Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 238000003062 neural network model Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- UGODCLHJOJPPHP-AZGWGOJFSA-J tetralithium;[(2r,3s,4r,5r)-5-(6-aminopurin-9-yl)-4-hydroxy-2-[[oxido(sulfonatooxy)phosphoryl]oxymethyl]oxolan-3-yl] phosphate;hydrate Chemical compound [Li+].[Li+].[Li+].[Li+].O.C1=NC=2C(N)=NC=NC=2N1[C@@H]1O[C@H](COP([O-])(=O)OS([O-])(=O)=O)[C@@H](OP([O-])([O-])=O)[C@H]1O UGODCLHJOJPPHP-AZGWGOJFSA-J 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 238000013480 data collection Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 238000012827 research and development Methods 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000000354 decomposition reaction Methods 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 230000002650 habitual effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 206010063385 Intellectualisation Diseases 0.000 description 1
- 241001632422 Radiola linoides Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000002346 layers by function Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2250/00—Details of telephonic subscriber devices
- H04M2250/22—Details of telephonic subscriber devices including a touch pad, a touch sensor or a touch detector
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Telephone Function (AREA)
Abstract
本发明公开了一种应用管理的方法和终端,涉及人工智能技术领域,用以解决目前还没有一种对终端执行智能应用管理方法的问题,本发明终端包括:处理器以及存储器;其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行下列过程:获取对象的应用习惯信息,其中应用习惯信息为根据对象在统计周期的设定时段内的位置链和应用的使用信息预测得到的对象在下一统计周期的设定时段内的应用的使用概率;根据应用习惯信息对终端执行应用管理操作,由于本发明基于对象的应用习惯信息对终端进行应用管理,该应用习惯信息是基于之前的对象的应用习惯以及位置习惯对应用的使用概率进行预测得到的,实现了智能化的应用管理的操作。
Description
技术领域
本发明涉及人工智能技术领域,特别涉及一种应用管理的方法和终端。
背景技术
随着人工智能的迅速发展,手机等终端设备的功能越来越强大,人们对手机等的使用也越来越广泛。
然而,由于缺乏对具体手机用户的使用习惯的有效获取方法,而无法很好地预测特定手机用户即将对手机进行的操作,尤其是难以预测其下一时刻更感兴趣、更可能启动的应用,因此造成多方面问题,无法实现对应用的智能管理。
综上所述,目前还没有一种对终端执行智能应用管理的方法。
发明内容
本发明提供一种应用管理的方法和终端,用以解决现有技术中存在的目前还没有一种对终端执行智能应用管理方法的问题。
第一方面,本发明实施例提供的一种应用管理的终端包括:处理器以及存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行下列过程:
获取对象的应用习惯信息,其中所述应用习惯信息为根据所述对象在所述统计周期的设定时段内的位置链和应用的使用信息预测得到的所述对象在下一统计周期的设定时段内的应用的使用概率;
根据所述应用习惯信息对所述终端执行应用管理操作。
上述终端,根据对象的应用习惯信息对终端执行应用管理操作,由于对象的应用习惯信息是根据对象在统计周期的设定时段内的位置链和应用的使用信息预测得到的该对象在下一统计周期的设定时段内的应用的使用概率,因而根据该概率,可以执行应用管理操作,实现了基于用户最新的使用习惯对终端执行应用管理的操作。
可选的,所述应用管理操作包括下列的部分或全部:
管理应用图标显示位置的操作;
管理应用消息通知顺序的操作;
管理应用进程的操作。
上述终端,可以实现改变具体用户的主菜单、待机桌面图标、通知栏消息的显示方式,也改善内存管理方法、优化功耗、加快应用启动速度、提升用户体验。
可选的,所述应用管理操作包括管理应用图标显示位置的操作;
所述处理器具体用于:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序,并根据排序结果确定所述应用的应用图标在所述下一统计周期的所述设定时段内的显示位置;
在进入所述下一统计周期的所述设定时段后,响应用户的显示操作,根据确定的显示位置显示所述应用的应用图标。
上述终端,基于对象在统计周期的设定时段的应用习惯信息,可以对该对象在设定时段内所使用的应用预测得到的使用概率进行排序,依据该排序,则确定一种在下一统计周期的设定时段内应用的应用图标的显示位置,因而在进入下一统计周期的设定时段后,根据确定的显示位置显示应用的图标,则可实现在下一统计周期的设定时段,根据用户的使用习惯调整应用图标,便于用户使用。
可选的,所述应用管理操作包括管理应用消息通知顺序的操作;
所述处理器具体用于:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序;
在进入所述下一统计周期的所述设定时段后,若同一时刻接收到多个应用的应用消息,则根据排序结果在消息通知栏中显示接收到的多个应用的应用消息;或
在进入所述下一统计周期的所述设定时段后,若接收到应用的应用消息,则根据所述应用与通知栏中其它应用的使用概率的比较结果确定所述应用的应用消息在通知栏中的显示位置,并根据确定的显示位置在所述通知栏中显示所述应用的应用消息。
上述终端,基于对象在统计周期的设定时段的应用习惯信息,可以对该对象在设定时段内所使用的应用预测得到的使用概率进行排序,依据该排序,则可在进入下一统计周期的设定时段后,根据使用概率的大小,对接收到的应用的消息进行显示,预测对象使用概率越大的应用,应用消息则可优先显示,便于用户查看。
可选的,所述应用管理操作包括管理应用消息通知顺序的操作;
所述处理器具体用于:
在所述统计周期结束后,根据所述应用习惯信息确定所述对象在所述设定时段内所使用的应用的系统优先级,其中所述系统优先级为所述应用的优先级与所述应用的使用概率的乘积或所述应用的使用概率与所述应用所占内存的比值;
进入所述下一统计周期的所述设定时段后,响应结束应用进程操作,根据确定的系统优先级由小到大的顺序结束前M个应用进程,M为正整数。
上述终端,基于对象在统计周期的设定时段的应用习惯信息与应用的优先级或者是应用所占内存,进而可确定应用对应的系统优先级,根据系统优先级对应用进程进行清理,实现了智能化的内存管理,可以优化功耗,加快应用启动速度。
第二方面,本发明实施例提供的一种应用管理的方法,应用于终端,该方法包括:
获取对象的应用习惯信息,其中所述应用习惯信息为根据所述对象在所述统计周期的设定时段内的位置链和应用的使用信息预测得到的所述对象在下一统计周期的设定时段内的应用的使用概率;
根据所述应用习惯信息对所述终端执行应用管理操作。
在一种可能的实现方式中,所述应用管理操作包括下列的部分或全部:
管理应用图标显示位置的操作;
管理应用消息通知顺序的操作;
管理应用进程的操作。
在一种可能的实现方式中,所述应用管理操作包括管理应用图标显示位置的操作;
所述根据应用习惯信息对所述终端执行应用管理操作,包括:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序,并根据排序结果确定所述应用的应用图标在所述下一统计周期的所述设定时段内的显示位置;
在进入所述下一统计周期的所述设定时段后,响应用户的显示操作,根据确定的显示位置显示所述应用的应用图标。
可选的,所述应用管理操作包括管理应用消息通知顺序的操作;
所述根据所述应用习惯信息对所述终端执行应用管理操作,包括:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序;
在进入所述下一统计周期的所述设定时段后,若同一时刻接收到多个应用的应用消息,则根据排序结果在消息通知栏中显示接收到的多个应用的应用消息;或
在进入所述下一统计周期的所述设定时段后,若接收到应用的应用消息,则根据所述应用与通知栏中其它应用的使用概率的比较结果确定所述应用的应用消息在通知栏中的显示位置,并根据确定的显示位置在所述通知栏中显示所述应用的应用消息。
可选的,所述应用管理操作包括管理应用进程的操作;
所述根据所述应用习惯信息对所述终端执行应用管理操作,包括:
在所述统计周期结束后,根据所述应用习惯信息确定所述对象在所述设定时段内所使用的应用的系统优先级,其中所述系统优先级为所述应用的优先级与所述应用的使用概率的乘积或所述应用的使用概率与所述应用所占内存的比值;
在进入所述下一统计周期的所述设定时段后,响应结束应用进程操作,根据确定的系统优先级由小到大的顺序结束前M个应用进程,M为正整数。
第三方面,本发明实施例提供的一种应用管理的装置,该装置包括信息获取模块和执行模块:
信息获取模块,用于获取对象的应用习惯信息,其中所述应用习惯信息为根据所述对象在所述统计周期的设定时段内的位置链和应用的使用信息预测得到的所述对象在下一统计周期的设定时段内的应用的使用概率;
执行模块,用于根据所述应用习惯信息对所述终端执行应用管理操作。
可选的,所述应用管理操作包括下列的部分或全部:
管理应用图标显示位置的操作;
管理应用消息通知顺序的操作;
管理应用进程的操作。
可选的,所述应用管理操作包括管理应用图标显示位置的操作;
所述执行模块:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序,并根据排序结果确定所述应用的应用图标在所述下一统计周期的所述设定时段内的显示位置;
在进入所述下一统计周期的所述设定时段后,响应用户的显示操作,根据确定的显示位置显示所述应用的应用图标。
可选的,所述应用管理操作包括管理应用消息通知顺序的操作;
所述执行模块具体用于:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序;
在进入所述下一统计周期的所述设定时段后,若同一时刻接收到多个应用的应用消息,则根据排序结果在消息通知栏中显示接收到的多个应用的应用消息;或
在进入所述下一统计周期的所述设定时段后,若接收到应用的应用消息,则根据所述应用与通知栏中其它应用的使用概率的比较结果确定所述应用的应用消息在通知栏中的显示位置,并根据确定的显示位置在所述通知栏中显示所述应用的应用消息。
可选的,所述应用管理操作包括管理应用消息通知顺序的操作;
所述执行模块具体用于:
在所述统计周期结束后,根据所述应用习惯信息确定所述对象在所述设定时段内所使用的应用的系统优先级,其中所述系统优先级为所述应用的优先级与所述应用的使用概率的乘积或所述应用的使用概率与所述应用所占内存的比值;
进入所述下一统计周期的所述设定时段后,响应结束应用进程操作,根据确定的系统优先级由小到大的顺序结束前M个应用进程,M为正整数。
第四方面,本申请还提供一种非易失性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第二方面任一所述方法的步骤。
另外,第二方面至第四方面中任一种实现方式所带来的技术效果可参见第一方面中不同实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种终端的硬件配置框图;
图2为本发明实施例提供的一种终端的软件结构框图;
图3为本发明实施例提供的一种终端上的用户界面的示意图;
图4为本发明实施例提供的一种应用管理的方法示意图;
图5为本发明实施例提供的一种智能桌面的示意图;
图6为本发明实施例提供的另一种智能桌面的示意图;
图7为本发明实施例提供的一种应用消息显示的示意图;
图8为本发明实施例提供的另一种应用消息显示的示意图;
图9为本发明实施例提供的一种对象行为习惯预测方法的总框架图;
图10为本发明实施例提供的一种层关系示意图;
图11为本发明实施例提供的一种数据采集层到数据构造传输层逻辑图;
图12为本发明实施例提供的一种应用管理的终端示意图;
图13为本发明实施例提供的一种对象行为习惯预测装置示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面对文中出现的一些词语进行解释:
1、本发明实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
2、本发明实施例中属于“终端设备”为可以安装各类应用程序,并且能够将已安装的应用程序中提供的对象进行显示的设备,该终端设备可以是移动的,也可以是固定的。例如,手机、平板电脑、各类可穿戴设备、车载设备、个人数字助理(personal digitalassistant,PDA)、销售终端(point of sales,POS) 或其它能够实现上述功能的终端设备等。
3、本发明实施例中术语“词向量(Word embedding)”,又叫Word嵌入是自然语言处理(NLP)中的一组语言建模和特征学习技术的统称,其中来自词汇表的单词或短语被映射到实数的向量。从概念上讲,它涉及从每个单词一维的空间到具有更低维度的连续向量空间的数学嵌入。生成这种映射的方法包括神经网络,单词共生矩阵的降维,概率模型,可解释的知识库方法,和术语的显式表示单词出现的背景。当用作底层输入表示时,单词和短语嵌入已经被证明可以提高NLP任务的性能,例如语法分析和情感分析。
4、本发明实施例中术语“有向位置链”指从起点指向终点的一串有序位置序列,两个有向位置链之间至少有一个不同的有向位置对,它可以用下列 Cj表示:
Cj=(x1→x2→...xi...→xN)
其中,Ci是一个唯一的有向位置链,它从起点x1出发,依次顺序经过 x2...→...xk至终点xN,是由这N个有效位置名及其先后顺序组成的一个有向位置对集合,x1→x2则是其中的一个有向位置对。
5、本发明实施例术语“贝叶斯网络”是一种概率网络,它是基于概率推理的图形化网络,而贝叶斯公式则是这个概率网络的基础。贝叶斯网络是基于概率推理的数学模型,所谓概率推理就是通过一些变量的信息来获取其他的概率信息的过程,基于概率推理的贝叶斯网络(Bayesian network)是为了解决不定性和不完整性问题而提出的,它对于解决复杂设备不确定性和关联性引起的故障有很大的优势,在多个领域中获得广泛应用。
6、本发明实施例中术语“Launcher(桌面启动器)”,是安卓系统中的桌面启动器,安卓系统的桌面UI(User Interface,用户界面)统称为Launcher。 Launcher是安卓系统中的主要程序组件之一,安卓系统中如果没有Launcher 就无法启动安卓桌面,Launcher出错的时候,安卓系统会出现“进程 com.android.launcher意外停止”的提示窗口。这时需要重新启动Launcher。
本发明实施例描述的应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
目前因缺乏对具体手机用户的使用习惯的有效获取方法,而无法很好地预测特定手机用户即将对手机进行的操作,尤其是难以预测其下一时刻更感兴趣、更可能启动的应用,因此造成多方面问题。比如:
1、Android原生的主菜单,用户无法根据自己最新的使用习惯自动调整菜单优先顺序。
2、出厂千篇一律的待机界面,即使用户已对待机桌面做了拖动,在其最新使用习惯已变时,手机待机桌面也仍无法按其最新习惯自动调整菜单优先顺序。
3、通知栏消息只按消息到达的先后顺序排列显示,无法按照用户最感兴趣的应用优先显示的方式自动排列。即便有购买的通知栏优化排列的算法库,其现也只能做到把某些近期出现频次低的应用的通知消息缩起,并未实现“将用户更感兴趣、接下来更可能启动的应用”的通知优先显示。
4、内存管理现有机制(Linux的LRU:按进程频数计,更不活跃的先被关闭;Android的LMK:按进程优先级计,优先级低的先被关闭)可能错关闭下一时刻很可能启动的应用,导致用户接下来更可能启动的应用反而状态丢失、不得不重建进程、重读文件,因此带来内存管理不够优化、功耗高、用户应用启动延迟、用户体验不佳等诸多问题。
鉴于此,本发明实施例提出一种应用管理的方法和终端,通过对用户日常习惯这一目标进行分析,找到特定的更便于挖掘用户习惯的若干关键特征点;然后,通过特殊的数学建模设计出更便于节省手机功耗的数据采集、过滤和构造方式。运用采集和构造的特定数据进行用户习惯学习的人工智能算法,学习用户在不同模式+时段下的位置习惯、应用习惯,并预测下一时刻最可能的用户位置排序和更可能启动的应用排序。并根据习得的用户位置习惯、应用习惯,对终端执行智能应用管理操作,进而改变具体用户的主菜单、待机桌面图标、通知栏消息的优先显示方式,也改善内存管理方法、优化功耗、加快应用启动速度、提升用户体验。
图1示出了终端100的结构示意图。
下面以终端100为例对实施例进行具体说明。应该理解的是,图1所示终端100仅是一个范例,并且终端100可以具有比图1中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
图1中示例性示出了根据示例性实施例中终端100的硬件配置框图。如图 1所示,终端100包括:射频(radio frequency,RF)电路110、存储器120、显示单元130、摄像头140、传感器150、音频电路160、无线保真(Wireless Fidelity,Wi-Fi)模块170、处理器180、蓝牙模块181、以及电源190等部件。
RF电路110可用于在收发信息或通话过程中信号的接收和发送,可以接收基站的下行数据后交给处理器180处理;可以将上行数据发送给基站。通常, RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等器件。
存储器120可用于存储软件程序及数据。处理器180通过运行存储在存储器120的软件程序或数据,从而执行终端100的各种功能以及数据处理。存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器120存储有使得终端100能运行的操作系统。本申请中存储器120可以存储操作系统及各种应用程序,还可以存储执行本申请实施例所述方法的代码。
显示单元130可用于接收输入的数字或字符信息,产生与终端100的用户设置以及功能控制有关的信号输入,具体地,显示单元130可以包括设置在终端100正面的触摸屏131,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
显示单元130还可用于显示由用户输入的信息或提供给用户的信息以及终端100的各种菜单的图形用户界面(graphical user interface,GUI)。具体地,显示单元130可以包括设置在终端100正面的显示屏132。其中,显示屏132 可以采用液晶显示器、发光二极管等形式来配置。显示单元130可以用于显示本申请中所述的各种图形用户界面。
其中,触摸屏131可以覆盖在显示屏132之上,也可以将触摸屏131与显示屏132集成而实现终端100的输入和输出功能,集成后可以简称触摸显示屏。本申请中显示单元130可以显示应用程序以及对应的操作步骤。
摄像头140可用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD) 或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS) 光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器180 转换成数字图像信号。
终端100还可以包括至少一种传感器150,比如加速度传感器151、距离传感器152、指纹传感器153、温度传感器154。终端100还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
音频电路160、扬声器161、麦克风162可提供用户与终端100之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器 161,由扬声器161转换为声音信号输出。终端100还可配置音量按钮,用于调节声音信号的音量。另一方面,麦克风162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出至RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。本申请中麦克风162可以获取用户的语音。
Wi-Fi属于短距离无线传输技术,终端100可以通过Wi-Fi模块170帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。
处理器180是终端100的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器120内的软件程序,以及调用存储在存储器120内的数据,执行终端100的各种功能和处理数据。在一些实施例中,处理器180可包括一个或多个处理单元;处理器180还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器180中。本申请中处理器180可以运行操作系统、应用程序、用户界面显示及触控响应,以及本申请实施例所述的处理方法。另外,处理器180与显示单元130耦接。
蓝牙模块181,用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,终端100可以通过蓝牙模块181与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
终端100还包括给各个部件供电的电源190(比如电池)。电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电以及功耗等功能。终端100还可配置有电源按钮,用于终端的开机和关机,以及锁屏等功能。
图2是本发明实施例的终端100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航, WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D 和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR, JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合捕获拍照场景,示例性说明终端100软件以及硬件的工作流程。
当触摸屏131接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像头140捕获静态图像或视频。
本申请实施例中的终端100可以为手机、平板电脑、可穿戴设备、笔记本电脑以及电视等。
图3是用于示出终端(例如图1的终端100)上的用户界面的示意图。在一些具体实施中,用户通过触摸用户界面上的应用图标可以打开相应的应用程序,或者通过触摸用户界面上的文件夹图标可以打开相应的文件夹。针对上述场景,下面结合说明书附图对本发明实施例做进一步详细描述。
如图4所示,本发明实施例的一种应用管理的方法,具体包括以下步骤:
步骤400:获取对象的应用习惯信息,其中应用习惯信息为根据对象在统计周期的设定时段内的位置链和应用的使用信息预测得到的对象在下一统计周期的设定时段内的应用的使用概率;
步骤401:根据应用习惯信息对终端执行应用管理操作。
通过上述方案,根据对象的应用习惯信息对终端执行应用管理操作,由于对象的应用习惯信息是根据对象在统计周期的设定时段内的位置链和应用的使用信息预测得到的该对象在下一统计周期的设定时段内的应用的使用概率,因而根据该概率,可以执行应用管理操作,实现了基于用户最新的使用习惯对终端执行智能化的应用管理的操作。
下面主要以对象为用户为例进行详细介绍。
在本发明实施例中,管理操作包括但不限于下列的部分或全部:
管理应用图标显示位置的操作、管理应用消息通知顺序的操作、管理应用进程的操作。
下面针对上述几种类型的管理操作分别进行详细介绍:
管理操作一、管理应用图标显示位置的操作。
根据应用习惯信息对终端执行管理应用图标显示位置的操作时,具体过程如下:
在统计周期结束后,根据应用习惯信息对对象在设定时段内所使用的应用的使用概率进行排序,并根据排序结果调整应用的应用图标在下一统计周期的设定时段内的显示位置;在进入下一统计周期的设定时段后,响应用户的显示操作,根据确定的显示位置显示应用的应用图标。
例如,根据周三7:00~9:00时段的学习得到用户A的应用习惯信息为:应用1-90%,应用2-10%,应用3-70%,应用4-50%,应用5-60%,应用6-40%,应用7-30%,应用8-80%。终端则可根据这些应用的使用概率进行排序,以使用概率由高到低为例为:应用1、应用8、应用3、应用5、应用4、应用6、应用7、应用2,因而可根据使用概率由高到低的顺序确定周四7:00~9:00时段应用图标的显示位置。
在进入周四7:00~9:00时段后,假设用户A在7点26分打开手机触发显示操作,则手机终端响应用户A的显示操作,则可根据确定的显示位置进行显示,将前一时段最常用应用替换为当前时段新的最常用的应用;例如将使用概率最大的前5个应用:应用1、应用8、应用3、应用5、应用4,这5个应用图标调整到在界面第一页的最前方,如图7所示,之后的应该可继续按概率大小在这5个的后方显示,其中应用9~应用12为周三7:00~9:00时段未采集到的应用,也就是用户在周三7:00~9:00时段内未使用,可根据历史数据统计概率进行排序。
同样的,若将应用的使用概率由低到高排序同理,排序结果为:应用2、应用7、应用6、应用4、应用5、应用3、应用8、应用1,选取使用概率最大的后5个应用:应用4、应用5、应用3、应用8、应用1。
可选的,对launcher桌面,主要是vision项目,根据学习到的用户应用习惯做调整,使用概率越大的应用放置越靠近第一页;对主菜单应用,主要是原生项目,根据学习到的用户应用习惯做调整,使用概率越大的应用,放置越靠近顶部。
其中,原生项目有主菜单;vision桌面没有主菜单,只有桌面,桌面上用户可以自己拖动应用改变其顺序,而原生项目主菜单则用户无法拖动应用。
可选的,根据确定的显示位置显示时,也可根据终端的屏幕进行适配,进而调整到更加合适的位置,也不一定是最前方或者是最上方等,例如手机界面的中间位置等,也可参考用户对应用图标位置的设置习惯进行显示,如图6所示为本发明实施例提供的一种显示位置的方式,将使用概率最大的5个应用的应用图标调整至最方便的位置,以便用户使用。
管理操作二、管理应用消息通知顺序的操作。
根据应用习惯信息对终端执行管理应用消息通知顺序的操作时,可分为吐下两种方式:
方式一、在统计周期结束后,根据应用习惯信息对对象在设定时段内所使用的应用的使用概率进行排序;在进入下一统计周期的设定时段后,若同一时刻接收到多个应用的应用消息,则根据排序结果在消息通知栏中显示接收到的多个应用的应用消息。
仍以管理操作一中的使用概率排序为例,假设在进入周四7:00~9:00时段后,例如在7:26同时接收到应用1、应用2及应用3的3条应用消息,分别为应用消息1、应用消息2、应用消息3,其中使用概率最大的为应用1,最小的为应用2,因而则可将应用1的应用消息1显示在通知栏的最上方,应用3的应用消息3在应用消息1的下方,应用2的应用消息2在应用消息3的下方,如图7所示。
方式二、在统计周期结束后,根据应用习惯信息对对象在设定时段内所使用的应用的使用概率进行排序;在进入下一统计周期的设定时段后,若接收到应用的应用消息,则根据应用与通知栏中其它应用的使用概率的比较结果确定应用的应用消息在通知栏中的显示位置,并根据确定的显示位置在通知栏中显示应用的应用消息。
例如,在进入周四7:00~9:00时段后,在7:28接收到应用4的应用消息4,其中通知栏中还显示有应用1的应用消息1、应用3的应用消息3、应用2的应用消息2,根据使用概率的比较可知,应用4的使用概率大于应用2的使用概率,小于应用3的使用概率,因而可将应用消息4插入应用消息3及应用消息2中间,如图8所示。
管理操作三、管理应用进程的操作。
用于实时监控手机内存使用,并在必要时根据一定策略关闭掉一些应用,以清理内存;调整应用排序,以提速现有应用、加快应用启动速度,实现智能内存管理。
目前针对后台应用管理,Linux系统普遍使用LRU(Least Recently Used) 算法的Task Killing(任务终止)机制管理后台应用。Android系统维护了一定数量(MAX_HIDDEN_APPS)的后台进程,当用户切换到这些后台进程的时候,不需要重新启动进程,省去了大量创建和初始化的开销,可以迅速恢复到之前的使用状态.当后台进程数达MAX_HIDDEN_APPS会触发基于LRU的 Task killing机制,终止最近最少使用的应用程序,将其清理出内存。
目前针对内存管理,android系统内部普遍采用LMK算法做内存管理,根据应用的优先级,关闭掉一些优先级低的进程。这些特定应用现最多只考虑了前一天的应用概率结果,所以没有持续研究来接近用户行为习惯的可能。同时因为算法采用一整天采集模式,数据不够细,所以其应用概率数据不仅难以体现用户行为习惯,更容易带来功耗增大。所以其应用出现概率数据已经基本被修平他们抛弃,而仅用内存管理策略。
上述两种方式,只考虑了最近的应用程序使用情况,并没有考虑用户的应用使用习惯,可能终止了即将启动的应用程序,这样,后台应用程序被错误地终止,当用户切换回该应用程序时,会带来应用启动延迟增加、能耗增加、状态丢失等问题,从而造成较多的应用程序重启动。除此之外,LRU的效果很依赖于MAX_HIDDEN_APPS值的大小,MAX_HIDDEN_APPS的值越大,效果越好。然而在内存中维护大量的后台进程本身也需要一些管理开销。一般较大的MAX_HIDDEN_APP不仅会带来更多的内存管理开销,而且可能带来内存泄露的风险。因此,在MAX_HIDDEN_APPS较小的时候保持较低的应用程序重启率变得尤为重要。
在本发明实施例中,对上述两种方式进行了改进,改进后则在需要终止一个App的时候,调用HabitLearning.apk,从习得结果转化层获取应用即将出现的概率及排序。
之后,针对LMK算法改进,后台应用管理LMK根据各个应用对应进程的优先级,算出每个应用的系统优先级,应用优先级*应用即将出现的概率。所得乘积越大的,说明其优先级越高、接下来将出现概率越大,这种应用越需系统LMK策略保留。反之,乘积越小的,说明其相对优先级越低、接下来将出现的概率越低,系统LMK策略优先关闭这些应用。
具体过程如下:
在统计周期结束后,根据应用习惯信息确定对象在设定时段内所使用的应用的系统优先级;在进入下一统计周期的设定时段后,响应结束应用进程操作,根据确定的系统优先级由小到大的顺序结束前M个应用进程,M为正整数。
其中,系统优先级为应用的优先级与应用的使用概率的乘积。
仍以管理操作一中的使用概率排序为例,假设应用1~应用8的优先级分别为1~8,则应用1的系统优先级0.9,应用2的系统优先级为0.2,应用3为2.1,应用4为2,应用5为3,应用6为2.4,应用7为2.1,应用8为6.4,假设 M=4,则可在响应用户触发的结束应用进程的操作(或者系统周期触发等)后,将应用2、应用1、应用4的应用进程结束,并且随机结束应用3或者应用7 中的一个,或者根据应用3和应用7预测得到的使用概率,结束使用概率较小的一个,例如结束应用3的应用进程,等。
其中,应用优先级可以是用户自定义的。
在本发明实施例中,通过增加用户自定义的应用优先级的用户输入功能,按模式+时间段提供其在不同模式和时段下认为的不同优先级应用,以此增加对用户主观需求的采集。
针对LRU算法改进,内存管理模块根据不同应用所需内存的历史经验值,用应用即将出现的概率/应用所需内存,所得商越大,说明其应用所需内存越小、接下来将出现的概率越大,这种应用需LRU算法优先保留。反之,商越小的,说明其所需内存越高、接下来将出现的概率越低,系统LRU策略可考虑优先关闭这些应用。
具体过程同LMK算法改进类似,只是系统优先级为应用的使用概率与应用所占内存的比值。
同样仍以管理操作一中的使用概率排序为例,假设应用1~应用8所占内存分别为100MB、200MB、300MB、400MB、500MB、600MB、700MB、800MB,则应用1的系统优先级0.09,应用2的系统优先级为0.005,应用3为0.0023,应用4为0.00125,应用5为0.0012,应用6为0.00067,应用7为0.00043,应用8为0.001,假设M=4,则可在响应用户触发的结束应用进程的操作(或者系统周期触发等)后,将应用7、应用6、应用8、应用5的应用进程结束。
需要说明的是,系统优先级由大到小排序也是一样的道理,只是需要根据确定的系统优先级由大到小的顺序结束后M个应用进程。
可选的,根据用户的位置习惯信息,可为用户推荐使用概率最高的通行路线上的周边;或者根据交通是否阻塞等结合概率排序为用户做出行规划等。
例如,在进入周二7:00-9:00这个时段时,则可根据前一天,也就是周一 7:00-9:00的预测结果确定,用户在周二7:00-9:00这个时段最可能出行的路线为:家→公交站→公司;其次是:家→地铁站→公司;再次是:家→公交站→地铁站→公司;结合周二天气可知,预计8:00有雷阵雨,可能会导致公交车通行不便,因而可向用户推荐家→地铁站→公司这一出现路线,并为用户推荐可行驶的地铁线路,例如地铁1号线转2号线,或者地铁1号线转3号线等。
可选的,还可用于应用推荐,将用户使用习惯作为一种资源,传递给运营商,或者仅仅手机厂商自己使用;根据用户使用习惯、偏好的应用种类,给用于推荐一些最新的特色应用和功能,定制日程提醒、特色活动推荐等。比如:定制系统、定制日程、定制风格、定制情景模式等。
在一种可选的实施方式中,通过对象行为习惯预测模型获取对象的应用习惯信息,具体的,确定对象在统计周期的设定时段内的位置链和应用的使用信息,其中位置链表示对象的移动轨迹;将位置链和使用信息输入行为习惯预测模型,获取行为习惯预测模型输出的对象的位置习惯信息以及应用习惯信息,其中位置习惯信息用于表示在下一统计周期的设定时段内位置链的出现概率,应用习惯信息用于表示在下一统计周期的设定时段内应用的使用概率。
其中,对象行为习惯预测模型可以是贝叶斯模型或者神经网络模型等。
需要说明的是,本发明实施例中的上述方法可以基于一种用户行为习惯学习总控应用HabitLearning.apk来实现,该apk专用于采集、过滤、构造用户行为习惯数据,它可以根据层功能划分为6层,分别为:总控层、数据采集层、数据构造传输层、习惯学习层、习得结果转化、应用层。其中应用层则可实现本发明实施例所例举的任意一种对终端执行的应用管理操作。通过习惯学习层则可得到对象的应用习惯信息。
如图9所述对各层的功能进行了简要概率。基于该apk则可实现行为习惯预测模型的学习和使用,进而通过该行为习惯预测模型则可对用户的应用习惯、位置习惯等进行预测。下面参照图9进行详细介绍:
其中,总控层主要用于管理整个用户行为习惯学习模块。包括实现用户可总控用户行为习惯学习的开关;根据当前日期、星期和时间,自动完成基本的模式、时段配置;根据预设的Workday七时段初定基本参数。
数据采集层,用于根据相关策略采集运动状态、地点、App(Application,应用程序)使用记录,也就是采用用户的历史位置信息、应用的历史使用信息等。
数据传输构造层,用于将采集的各类数据分类、序列化、特征化、统计分析、合并等,构造最终智能学习模型的输入数据库,并将构造好的数据传给习惯学习层的AI模型;
习惯学习层,用于根据输入的数据进行学习对用户行为习惯进行预测;
习得结果转化层,用于获取AI(Artificial Intelligence,人工智能)模型习得的用户行为习惯数据输出,并改造为应用可用用户行为习惯学习结果。
应用层,运用HabitLearning.apk输出的用户行为习惯学习结果完成自身智能化。例如智能桌面:主菜单;最常用应用:根据用户行为习惯学习结果调整应用图标;智能内存管理:基于用户行为习惯学习结果做智能优化,提高用户体验和内存管理能力;应用推荐:基于用户行为习惯学习结果为用户推荐应用等;或者,根据用户位置习惯对用户进行路线推荐等,在分层介绍时会进行详细介绍。
在本发明实施例中,行为习惯预测模型是一种人工智能模型。考虑到本发明要解决的目标问题为用户行为习惯学习,结合人工智能模型特点,有多种人工智能算法模型可以借鉴,主要分为两大类。
其中,一类是轻量级的可基于终端自身进行习惯学习、模型训练的,如 Bayes(贝叶斯模型)、Markov(马尔可夫模型)、KNN(k-NearestNeighbor,邻近分类算法)等;另一类是终端CPU(Central Processing Unit/Processor,中央处理器)或GPU(GraphicsProcessing Unit,图形处理器)已跑不动,需要配置专门的服务器才能训练的,比如LR(Logistics Regression,虫口模型)、 RF(Radom Forest,随机森林模型)等。
可选的,经过对目标问题进行基本假设分析,根据其条件概率特点,在本发明实施例中,一种可选的实施方式为选用Bayes模型作为行为习惯预测模型。 Bayes模型专用于解决条件概率问题,跟本发明实施例的目标问题特性非常相近。且该模型简单轻快、内存消耗低,可在手机上完成训练和预测,这样一方面便于快速习得用户行为习惯,满足手机上应用对习得结果的及时性要求;另一方面便于保护用户信息隐私,不会因为将用户数据发到特定服务器而造成用户不习惯或担忧。
可选的,行为习惯预测模型还可以是神经网络模型,此时通过将对象在统计周期的设定时段内的位置链和应用的使用信息作为神经网络模型的输入特征,将对象的位置习惯信息以及应用习惯信息作为神经网络模型的输出特征,对神经网络模型进行训练调参,则可训练得到用于对对象的行为习惯进行预测的行为习惯预测模型。
参阅图10所示为本发明实施例提供的一种层关系示意图,下面基于图6,对上述各层分别进行详细介绍:
一、总控层。
用于实现HabitLearning.apk这个专门为用户行为习惯学习功能开发的应用;可管控用户行为习惯学习整套功能,也就是六个层的开关;根据当前日期时间完成模式+时段配置,并据此启动本时段数据采集层的数据采集,包括运动状态变化采集、运动状态变化时的定位经纬度采集、根据经纬度查询位置地名、前后台应用变化采集等。
HabitLearning.apk内,从数据采集层至应用层的所有操作,都根据该模式 +时段分别进行该时段内的数据采集、构造、学习、转化、使用。可选的,该模式+时段每两轮之间的周期,可以是一个自然日(一天)、一周、一个月、一年等,本发明实施例主要以一天为例进行详细介绍,第二个同一模式+时段到达时,将启动新一轮的采集、构造、学习、转化、使用。
例如,Workday(Mode1,或简称为M1)的7:00—9:00(Period1,时段1,或简称为P1),从第一个Workday的Day1的7:00开始采集该时段的第一次数据,至9:00结束本时段的Day1数据采集。然后数据采集层数据将被输入到数据构造传输层构造该Day17:00—9:00时段的数据,形成Day1的构造数据集M1P2Set1,之后将Day1构造数据M1P2Set1传输给习惯学习层进行该时段P1的数据学习和预测,预测结果为Day17:00—9:00的位置习惯信息和应用习惯信息(M1P2Prediction1,或简称为M1P2Pre1),将其传输给习得结果转化层转化为应用可用的本时段应用概率排序,最后传递给应用层。应用层将在 Workday的Day2的7:00—9:00按Day1传输给应用层的应用概率排序结果显示,比如主菜单此时应用图标按Day1预测的M1P2Pre1中应用概率排序。
同时,Workday的Day27:00—9:00还会同时启动Day2的新一轮数据采集、构造、学习、转化、应用。其中,从数据采集层至数据构造传输层新采集、构造出的的Day27:00—9:00数据M1P2Set2,将被用来检测和校准M1P2Pre1 的准确性,然后将M1P2Set2输入到习惯学习层,跟M1P2Set1一起被重新学习、预测出M1P2Pre2,并输出给习得结果转化层转化为应用可用的本时段应用概率排序,供Day3的应用层使用。
可选的,在HabitLearning.apk中,用户不仅可以开关整个用户习惯学习功能模块(功能层),还可以通过总控层开启或关闭基于用户习惯学习的各种智能应用。
下面对总控层的开关功能进行详细介绍,参阅图6所示的习惯学习管理:
(1)用户习惯学习总开关。
参阅图10所示的习惯管理,该开关可以用来开启或关闭整个用户习惯学习功能,关闭后数据采集层至应用层全都将关闭,不再进行数据采集、构造、学习、使用等。一旦用户习惯学习总开关被用户手动关闭,所有跟用户习惯学习相关的智能应用管理功能关也都将自动关闭。在用户已经关闭该开关后,当用户打开智能应用管理的任何一个功能时,此处的用户习惯学习总开关也应将被自动变为打开,以保证智能应用管理功能有新的习得结果可用。
当用户习惯学习总开关处于开启时,但所有智能应用管理开关都被关闭的话,用户习惯学习模块仍可保留为开启。此时,用户习惯学习的总控层、数据采集层、数据构造传输层、习惯学习层、习得结果转化层都将继续在后台工作,只有应用层不对这些习得结果进行使用。
(2)智能应用管理开关。
参阅图10所示的习惯应用管理,针对智能桌面:根据开关,确定是否要根据学习到的用户习惯变为智能桌面;智能内存管理:根据开关,确定是否要根据学习到的用户习惯变为智能内存管理;功耗管理:根据开关,确定是否要根据学习到的用户习惯变为智能功耗管理;应用推荐:根据开关,确定是否要根据学习到的用户习惯变为智能应用推荐。
下面针对本发明实施例中的模式+时段进行举例说明:
在本发明实施例中,模式主要可分为三种:
模式一、Workday(工作日),该模式适用于周一至周五的用户行为习惯学习、预测等;
该模式下的默认时段划分为7个,分别为:0:00—7:00,7:00—9:00, 9:00—12:00,12:00—13:30,13:30—18:00,18:00—21:00,21: 00—24:00。
模式二、Weekend(休息日),该模式适用于周六日的用户行为习惯学习、预测等;
该模式下的默认时段划分为4个,分别为:0:00—8:00,8:00—12: 00,12:00—18:00,18:00—24:00;
模式三、Vacation(假期),该模式下用户可自设定该模式对应日期段。
该模式下的默认时段划分为3个,分别为:0:00—8:00,8:00—17: 00,17:00—24:00。
可选的,用户可通过总控层手动更改模式。
例如,用户可从Workday(周一至周五)、Weekend(周六日)、Vacation(假期) 中任选一个。
比如,尽管当前实际日期是周六,但用户还是可将其设定为“Workday”模式,以便其周六去公司加班时能继续使用Workday模式增强该模式的习惯学习。当然,就算当前是周六,用户也可以将其设定为Vacation模式,这样方便用户在度假期间采用对应更宽松的作息时间表,对应的时段划分也相应可以变为用户指定的时段划分表,类似日作息时间表。
其中,若用户不对模式做手动修改时,则系统进入默认模式,默认模式不会进入Vacation模式,只会根据当前日期进入Workday、Weekend两个模式。用户将模式手动改为Vacation模式后,除非其之后再手动改为Workday、 Weekend中的一种,否则会一直保持为Vacation模式,Vacation模式需用户自己在休假结束后将其调离改为Workday或Weekend,修改需根据当前最新日期属于Workday或Weekend中的哪种来确定。
可选的,用户可通过总控层手动更改时段。
也就是说在本发明实施例中,每个模式支持的“时段划分表”可采用上述默认时段,也可以由用户在应用界面上自己手动设定的时段,而不仅限于采用系统预设的默认时段。也就是说,用户可手动更改时段,更改每个模式下的时段定义。
比如,用户可以根据自己日作息时间表,将“Workday”的时段改为“5 个时段”:0:00—6:00,6:00—11:30,11:30—14:00,14:00—18: 00,18:00—24:00。这种情况下,从数据采集层至习得结果转化层的所有操作都将按此用户设定的5个时段来进行,而非系统默认的“Workday”7个时段。
其中,用户对时段不修改时,采用上述实施例中的系统默认值。最新的每个模式下的时段定义,如果刚被改为新分段方式,虽然会立即更新到时段显示中,但模式+时段内的位置习惯、应用习惯数据,一般至少会过一天之后才会学习到最新模式+时段下的数据,进而显示。在学习到新的用户行为习惯数据之前,对应位置可能显示为空白。
在本发明实施例中,根据当前的模式+时段,在本时段结束时,启动本时段数据统计工作,即启动数据构造传输层对本时段的数据构造,构造出习惯学习层能用的统计后数据;同时,启动模式+下一时段的数据采集层工作。将构造出的本模式+时段的构造数据库数据,在特定时刻1提供给习惯学习层。
其中,特定时刻1可以是本时段结束后,数据采集构造层构造完毕时,也可以是其他时刻。比如:每天的晚上23:30—24:00之间的某个时刻,或者为凌晨的某个用户未关机时刻,这些时刻手机比较空闲,不容易影响手机用户的体验。
之后,在特定时刻2启动习得结果转化层从习惯学习层获取其习得结果,学得的位置习惯信息、应用习惯信息,并对获取到的数据进行分析、处理,转化为应用层可用的数据。
其中,特定时刻2可以是习惯学习层学习完毕之后,也可以是其他时刻,例如上述特定时刻1中所举的例子。
二、数据采集层。
在本发明实施例中,数据采集层主要用于根据策略收集用户的各种行为习惯数据,包括但不限于下列的部分或全部:
(1)模式Day of Week(1mode):Workday(Monday--Friday);
(2)时段Time of day:(Workday模式下暂划分7时段)0:00—7:00,7: 00—9:00,9:00—12:00,12:00—13:30,13:30—18:00,18:00—21: 00,21:00—24:00;
(3)位置Location:Office(办公室),Home(家),Bus Station(公交站), MetroStation(地铁站),Park(公园),Others(其他);
(4)应用App Chain:Liaotian(聊天),Weather(天气),Gongjiao(公交出行),Dache(打车),DianPing(点评),others(其他);
(5)运动状态Movement Status:Static(静止),Walk(走),Run(跑),或者是Others(其他状态),例如:in the Metro(乘地铁)、in the Car(乘小汽车)、in the Bus(乘公交车)、in the Bike(骑自行车)、in the Motorcycle (骑摩托车)、in the Plane(坐飞机)等。
上述信息的采集可以采用运动传感器,或是其他可行方式,此处不做具体限定。
上述信息(1)(2)是在HabitLearning.apk专门开发的日期时间处理模块处理、配置的,完成基本的采集参数初始化。上述信息(3)(4)(5)则是根据(1)(2)配置出的模式+时段开始进行本时段的采集。
其中,(3)(4)(5)这三方面关键因素的采集逻辑概图如图11所示。
需要说明的是,数据采集层应采集的信息种类和子类,包括却不限于上述所举实施例的日期(模式)、时间(时段)、位置(经纬度)、地名(根据经纬度解析)、应用(前台应用和后台应用)、运动状态等,仍可嵌套增加其他信息来加强本发明的准确性和精确度。
在本发明实施例中,运动状态的采集可以通过运动状态采集模块实现,该模型隶属于HabitLearning.apk应用,可采用周期性定位的方式;或者通过平台注册开机监听运动传感器的方式,当监听到运动状态发生变化时则上报给 HabitLearning.apk应用;HabitLearning.apk应用接到状态变化的通知后,记录运动状态的变化,在运动状态变化的同时启动地点识别模块,这样可以减小功耗。
上述监听运动状态变化的方式不需要周期性定位,只需在用户运动状态 (静止,走,跑,其他)发生变化时,从状态A到状态B,用细箭头简记为A→B,如:静止→走;静止→跑;静止→其他;走→跑;走→其他;跑→其他等,在运动状态发生改变的那个时刻才定位一次,该方式可以减少在“位置采集模块”可能产生的功耗。
在本发明实施例中,采集至少一个统计周期的至少一个设定时段内用户的历史位置信息后,可根据有效条件对采集到的历史位置信息进行过滤,确定一个统计周期的设定时段内的有效位置点,并根据有效位置点确定用户在统计周期的设定时段内的历史位置链。
其中,有效位置点包括目标位置点以及满足有效条件的其他位置点,目标位置点是设定时段内采集的第一个历史位置信息确定的,其他位置点是根据设定时段内采集的其他历史位置信息确定的。
有效条件包括但不限于下列的部分或全部:
相邻有效位置点之间的距离大于距离阈值;
相邻有效位置点的地名不同;
相邻有效位置点的地名相同,且相邻有效位置点对应的历史位置信息的采集间隔大于时间阈值。
例如,位置采集和地名解析可以通过位置采集模块和地名查询模块实现,同样隶属于HabitLearning.apk应用,由运动状态采集模块在用户运动状态发生变化时激活;启动定位,反馈位置经纬度、精度给HabitLearning.apk应用; HabitLearning.apk应用获取经纬度后,通过经纬度过滤策略(策略一)判断是否确定要用新采集点的经纬度和精度、是否要启动地名查询模块、是否将产生一条新位置记录。当需要启动地名查询模块时,HabitLearning.apk应用启动底层接口识别经纬度对应的地名。根据经纬度去后台(如:某地图服务,或如图库中用到的地名)查询该经纬度对应的地名。根据新查出的地名,通过策略二地名过滤策略,对新采集点加强过滤,结合策略一一起判断其是否要产生一条新的位置记录。
若采用策略一结合策略二进行过滤挑选后,仍确定要产生一条新的位置记录,则产生数据类1,放入构造数据库。
在本发明实施例中,获取历史位置信息时,具体过程如下:
首先获取经纬度信息,同时发起network类及gps类申请。network和gps 的都有定位精度反馈回来。其中,network类一般比gps类定位先得到返回; gps类<20s,若gps数据到就用gps这种精度更高的替代;超过限时仍未收到 gps数据,则以network数据为准。
针对新采集点的经纬度和精度,将用策略一-经纬度过滤策略进行过滤,确定其是否有效、是否用来启动地名识别模块。
上述方法,可以减少无用定位数据占用存储空间、也提高采得定位数据的有效利用率、减少对地名识别模块的无用调用。
之后启动底层接口识别地名,此时需使用底层接口+上层封装;在获取到地名后,要根据策略二地名过滤策略确定地名是否有效,进而结合策略一可确定这条新采集点数据是否要作为一条新记录放入构造数据库。
上述方法,可节省空间,提高数据采集有效性,提高模型准确性。
下面针对经纬度过滤策略以及地名过滤策略进行详细介绍:
策略一、经纬度过滤策略。
设未开启采集前的X1初始值(经度,纬度,地名,采集时刻)为(0,0,NULL, 0:00)。针对前一有效位置点X1、新采集点X2’,定位数据的“经纬度过滤(策略一)”总原则如下:
若新采集的X2’跟前一有效位置点X1相距太近,也就是新采集的X2’与前一有效位置点X1的距离小于距离阈值,则不产生新位置记录X2。
可选的,可进一步查看新采集点X2’是否还有可用价值。比如:可根据 X2’的定位精度看,也可根据其他扩展特征点来做判断条件。这里只以定位精度为例进行详细介绍:
若X2’的定位精度比前一有效位置点X1更高,则用X2’的经纬度数据代替X1的经纬度,同时启动新采集点X2’的地名查询,用X2’的对应地名代替X1的地名。其中,在采集点相距太近时,充分利用新位置信息:若其比之前老位置精度更准,则直接用其代替老位置数据,这样提高定位数据精度,并减少经纬度数据采集量。
若X2’的精度比X1的精度低,则直接废弃X2’的经纬度数据,保持X1 的经纬度及查得的地名。
上述方法,可实现采集点合并,减少近距离经纬度数据仅有细微差异却也被视为不同位置、产生不同位置名,减少后台查询位置名称的工作消耗,也减少不同有向位置对数量,减少不必要的位置习惯训练工作量。
若新采集的X2’跟前一有效位置点X1距离够远,也就是新采集的X2’与X1的距离大于距离阈值,则直接保存新采集点X2’的经纬度为一个新位置 X2,也就是新的有效位置点,记录X2的经纬度,并启动底层接口识别该新位置点X2经纬度对应的地名,将查得的地名保存到X2的地名成员。
在本发明实施例中,定位数据的过滤条件,包括却不限于上述所举实施例的采集点距离间隔、定位精度等,仍可嵌套增加其他判断条件。
一种可选的策略一算法如下,其中C1为不同位置记录的经纬度最小距离间隔,是系统可根据实际效果调整的常量,如可令C1=100(米):
if((|前一位置点X1的经度-新采集点X2’经度|<=C1米)&&
(|前一位置点X1的纬度-新采集点X2’纬度|<=C1米))
{
if(新采集点X2’的定位精度>前一位置X1的定位精度)
{
1.用X2’的经纬度和精度替换X1的。
X1的经纬度=X2’的经纬度;
X1的定位精度=X2’的定位精度;
2.启动底层接口识别X2’经纬度对应的地名;
3.用策略二进行鉴定过滤,确定该新查得的X2’地名是否有效;
4.if(新查得的X2’地名有效)
{
X1的地名=X2’的地名;
}
else
{
X1的地名还保持原值;
}
}
else//新采集点X2’的定位精度<=前一位置X1的定位精度,则直接废弃X2’
{
//do nothing
}
}
else
//如果新采集点跟前一位置点相距不近
{
1.启动底层接口识别X2’经纬度对应的地名;
2.用策略二进行鉴定过滤,确定该新查得的X2’地名是否有效;
3.if(新查得的X2’地名有效)
{
//产生新的位置点X2
X2的经纬度=X2’的经纬度;
X2的定位精度=X2’的定位精度;
X2的地名=X2’的地名;
}
else//不产生新的位置点,废弃X2’
{
//do nothing
}
}
可选的,若要产生一条新的位置记录,格式实施例可为X2(模式,时段,经度,纬度,地名,采集时刻)。
在本发明实施例中,对查到的地名,需使用“地名过滤策略”(策略二) 进行过滤。对前一有效位置点X1、新采集点X2’,“地名过滤策略”总原则如下:
若新采集的X2’地名与前一有效位置点X1地名不同,则认为该地名有效;一般地名不同,表明用户的位置发生了明显可辨的变化,结合策略一中已有对采集点最小距离间隔的要求,保证了两采集点太近会被过滤掉,不会发生地名不同却距离过近而产生新记录;若即便仅因精度更高而重查询,在此地名不同时也应返回给策略一进行X1的地名更新。所以地名不同时,则可被认为是有效地名。
若新采集的X2’地名与前一有效位置点X1地名相同,则进一步判断X2’的采集时刻跟X1的采集时刻之间时间间隔是否超过最短间隔阈值,这里最短间隔阈值即时间间隔。若超过,则认为X2’地名有效,这期间的行为习惯值得研究;否则,X2’地名被视为无效。一般如果地名相同,则认为用户这段时间一直大概在相同位置。如果在大概同一位置且停留时间过短,此时尽管已因状态发生变化而采集了定位数据,却不能认为该定位数据能提供什么新的习惯信息,其无法作为“影响用户行为习惯”的位置分割点,可以将其对用户行为习惯学习的贡献暂忽略。
在本发明实施例中,地名有效性的判断条件,包括却不限于上述所举实施例的地名同异、采集时间间隔等,仍可嵌套增加其他判断条件。
一种可选的策略二算法如下,其中C2为不同位置采集最短时间间隔,是系统可根据实际效果调整的常量,如可令C2=60分钟。也就是说在同一地名位置需要至少需呆60分钟才能当做一个新的有效位置记入构造数据库。即,认为在同一位置至少呆60分钟的时长,这期间的用户行为习惯才值得作为一段分割去专门学习,它才对用户行为习惯学习有一定份量的影响:
if(X2’的地名!=X1的地名)
{
X2’的地名视为有效;
}
else if(|X2’的采集时刻-X1的采集时刻|>C2分钟)
{
X2’的地名视为有效;
}
else
{
X2’的地名视为无效;//位置名称相同且时间间隔太短的,不予采集。
}
在本发明实施例中,位置采集和地名解析后形成可输向数据构造传输层的位置信息矩阵,具体过程如下:
在特定模式+时段下,经过上述策略一、策略二的过滤、挑选,形成新记录:
xi(模式,时段,经度,纬度,地名,采集时刻)。
采集N条位置记录(x1,x2,…xi…,xN),形成位置记录矩阵,如下所示矩阵XLocation:
这样,形成数据类1,输入给构造数据库。
这时的位置数据,还是完全原始的采集记录,未进行分类、合并、构造----- 而这些都将在数据构造传输层完成。
在本申请实施例中,用户应用的使用信息可通过App使用记录采集模块采集,该模块同样隶属于HabitLearning.apk,默认向平台注册开机监听前台应用的专门事件(FrontAppMonitor)和后台应用从最近任务退出事件 (BackAppMonitor)。
当前台应用发生变化时,HabitLearning.apk通过FrontAppMonitor监听到前台应用的切换,即新应用的启动时刻。当后台应用发生变化时, HabitLearning.apk通过BackAppMonitor监听到后台应用的切换,即已启动过的应用的退出时刻。通过检测同一应用启动和对应退出的时刻,形成应用记录:
yi(模式,时段,应用名,启动时刻,使用时长)。
根据当前正在采集数据的模式+时段,提取本时段的M条应用记录(y1, y2,…yi…,yM),形成应用记录矩阵,如下所示矩阵YApp:
这样,形成数据类2,输入给构造数据库。
需要说明的是,这时的应用数据,还是完全原始的采集记录,未进行分类、合并、构造,而这些过程都将在数据构造传输层完成。
此外,考虑到位置名称是根据定位到的经纬度去网络或地图数据上匹配查询的。因此,所得的位置名称,可能有的精度不高、准度不高,如A公司研发附近的经纬度,一大片位置都将显示为“A公司新研发附近”,无法详细显示如“川菜馆”、“B园公交站”、“A公司新研发停车场”等更小范围内、更准确的名称。
也就是说采集到的位置名称可能不够精准。因此,虽然可能用户状态已经发生变化,对应的位置也预期发生变化,比如,从B园公交站变为新A公司研发,采集到的位置名称可能是A公司新研发附近→A公司新研发附近,这种数据,可能因为位置没有发生变化,却也会被视为位置未变而不当做一条新记录重新记取。
因而在本发明实施例中,HabitLearning.apk还可提供用户修改已采集的位置数据。通过单独页面专门动态更新显示当前最新的三条位置经纬度和获取的名称,供用户可以手动编辑位置名称。如果用户不认可当前经纬度的名称,可以手动修改,以后再遇到该经纬度,优先使用用户手动更改过的位置名。该模块本地得保存一下用户修改过的经纬度对应位置名。
三、数据构造传输层。
在本发明实施例中数据构造传输层同样隶属于HabitLearning.apk,主要通过数据采集层输入的位置和应用采集数据,在构造数据库内进行分类、合并、重构,实现数据构造传输层任务,为习惯学习层做准备。
其中采集到的位置数据、应用数据是本发明实施例中需要采集的数据,其他的状态习惯或其他方面的特征学习可根据实际情况进行考虑。
具体的,数据构造传输层是针对上述Xlocation、Yapp输入的多条数据的,假设采用系统默认模式+时段下,采集到的数据分类后可示范为如下样例:
Mode:Workday(M1)
Day1:
P1:0:00—7:00
X1(M1,P1,120.5,130.5,Home,0:00)
X2(M1,P1,121.5,133,Home,5:55)
X3(M1,P1,123,137.5,Home,7:00)
Y1(M1,P1,Alarm,5:45,3m)
Y2(M1,P1,News,6:30,10m)
Y3(M1,P1,Alarm,6:45,2m)
其中,X1、X2、X3需合并,Y1和Y3需合并,根据X1—X3的有向位置对统计,需将Y1—Y3的应用统计按时间分别统计到Xi上。统计后数据见下方的示例【M1P1Set1】。
需要说明的是,Y1和Y3合并后,在将应用统计按时间统计到Xi上时,按合并前Y1的时间进行统计,也就是按5:45进行统计。
P2:7:00—9:00
X1(M1,P2,120.5,130.5,Home,7:00)
X2(M1,P2,130.5,155,Metro Station,7:10)
X3(M1,P2,250.5,280,Bus Station,7:55)
X4(M1,P2,1350.5,1280.5,CompanyR&D,8:45)
Y1(M1,P2,News,7:10,10m)
Y2(M1,P2,Weather,7:20,5m)
Y3(M1,P2,News,7:25,10m)
Y4(M1,P2,Gongjiao,7:40,5m)
Y5(M1,P2,Music,7:42,10m)
Y6(M1,P2,Gongjiao,7:47,5m)
Y7(M1,P2,Words,7:59,10m)
……
其中,Y1跟Y3需合并,合并后按7:10进行统计;Y4跟Y6需合并,合并后按7:40进行统计。根据X1—X4的三个有向位置对统计,需将Y1—Y7的应用分别按时间统计到各自有向位置对上。统计后数据参见下方的示例【M1P2Set1】。
可选的,数据构造传输层构造后的构造数据可以用下表简述:
表1数据构造传输层构造后数据实施例
下面例举一些上述三种模式下,各自构造数据库的简化样例,如下所示:
Mode:Workday(M1)
Day1:
P1:0:00—7:00
【M1P1Set1】
Home→Home:News(10m,1),Alarm(5m,2);
P2:7:00—9:00
【M1P2Set1】
Home→Metro Station:News(20m,2),Weather(5m,1);
Metro Station→Bus Station:Gongjiao(10m,2),Music(10m,1);
Bus Station→CompanyR&D:Words(15m,2),Dictionary(5m,3),Liaotian(20m,3);
P3:9:00—12:00
【M1P3Set1】
CompanyR&D→CompanyR&D:Liaotian(30m,5),Call(5m,1);
P4:12:00—13:30
【M1P4Set1】
CompanyR&D→Restaurant:Liaotian(10m,2),Video(5m,1);
Restaurant→CompanyR&D:Music(10m,1),Alarm(2m,1);
P5:13:30—18:00
【M1P5Set1】
CompanyR&D→CompanyR&D:Liaotian(40m,6),Camera(8m,5);
P6:18:00—21:00
【M1P6Set1】
CompanyR&D→Home:Liaotian(30m,3),Video(10m,2);
P7:21:00—24:00
【M1P7Set1】
Home→Home:Liaotian(20m,2);
Day2:
P1:0:00—7:00
【M1P1Set2】
Home→Home:Words(5m,1),Alarm(10m,2);
P2:7:00—9:00
【M1P2Set2】
Home→Metro Station:News(15m,2),Music(20m,1);
Metro Station→Bus Station:Gongjiao(10m,2),Call(5m,1);
Bus Station→CompanyR&D:Liaotian(10m,2),Weather(5m,1),News(10m,2);
P3:9:00—12:00
【M1P3Set2】
CompanyR&D→CompanyR&D:Liaotian(5m,1),Music(30m,3);
P4:12:00—13:30
【M1P4Set2】
CompanyR&D→Restaurant:Video(15m,1);
Restaurant→CompanyR&D:Music(15m,2),Alarm(3m,1);
P5:13:30—18:00
【M1P5Set2】
CompanyR&D→CompanyR&D:Liaotian(20m,3),Call(15m,3)
P6:18:00—21:00
【M1P6Set2】
CompanyR&D→Home:Dache(30m,1),Music(15m,1),Liaotian(20m,2);
P7:21:00—24:00
【M1P7Set2】
Home→Home:News(10m,1);
Mode:Weekend(M2)
Day1:
P1:0:00—8:00
【M2P1Set1】
Home→Home:News(10m,1);
P2:8:00—12:00
【M2P2Set1】
Home→Park:News(20m,2),Weather(3m,1);
Park→Park:Camera(30m,2);
Park→Restaurant:News(3,1);DianPing(5m,1);
P3:12:00—18:00
【M2P3Set1】
Restaurant→Beach:Liaotian(20m,3),Camera(30m,5);
Beach→Bus Station:Gongjiao(10m,2);
Bus Station→Home:Liaotian(20m,3);
P4:18:00—24:00
【M2P4Set1】
Home→Home:Liaotian(30m,2);
Mode:Vacation(M3)
Day1:
P1:0:00—8:00
【M3P1Set1】
Home→Home:News(5m,1),Alarm(2m,1),Weather(10m,1);
P2:8:00—17:00
【M3P2Set1】
Home→AirportA:News(10m,2),Liaotian(10m,1);
AirportA→AirportB:Lvxing(10m,1);
AirportB→Hotel:Liaotian(10m,2),Camera(15m,3);
P3:17:00—24:00
【M3P3Set1】
Hotel→Restaurant:DianPing(10m,2);
Restaurant→Hotel:Dache(5m,1),Liaotian(5m,1).
四、习惯学习层。
在本发明实施例中,习惯学习层主要用于对数据构造传输层构造的数据进行学习,预测用户的位置习惯和应用习惯,该层由HabitLearning.apk模块触发,开启或关闭由HabitLearning的开关决定。具体通过从HabitLearning.apk的数据构造传输层获取学习数据源,展开学习、训练和预测。学习后的结果传递习得结果转化层。
其中,习惯学习层中所用到的行为习惯预测模型可以放在手机本地进行学习、训练、预测,也可以放在单独的电脑服务器上进行。在前一情况下,该层隶属于HabitLearning.apk应用的一部分;在后一情况下,该层独立于 HabitLearning.apk应用之外,跟HabitLearning.apk是交互合作关系。
在本发明实施例中,习惯学习层的输入数据分两类:
第一类:模式+时段下的有向位置链;
第二类:模式+时段下的每个有向位置对对应的前台应用变化记录。
习惯学习层的输出数据是对输入数据对应的模式+时段下的用户位置习惯、曾出现过的有向位置对习惯以及应用习惯,具体表现为以下三类:
第一类:下一个同一模式+时段下,有向位置链即将出现的概率;
第二类:下一个同一模式+时段下,每个有向位置对即将出现的概率;
第三类:下一个同一模式+时段下,每个应用即将出现(使用)的概率。
需要说明的是,本发明实施例中所提到的概率可以是条件概率。
以行为习惯预测模型为贝叶斯模型为例,针对该模型对应的目标问题,可得出如下用户行为习惯学习的建模基本假设:
假设1:不同模式下,用户有不同的“日作息时间表”;对应不同模式下的该“日作息时间表”,会有不同的有向位置链。
假设2:相同模式下,“日作息时间表”会基本类似;同种作息时间表下,每天在相同时间段内会有类似的有向位置对,进而有相似的有向位置链、“有向状态链”。
在本发明实施例中A决定B,用粗箭头简记为A→B,则由假设1+假设2 可知,模式→日作息时间表(该模式下具体的时间分段方式)→该模式下的该时间段→位置list(列表)及状态list。
例如,上述三种模式下,各自构造数据库的简化样例中显示,不同模式下,用户的时段数量和起止时间均不同。M1中7时段,M2中4时段,M3中可以是3时段。同时,各Mode下的日作息时间表不同带来的时段不同,也很可能大概率产生该Mode下特有的活动内容和方式,对应产生不同的位置名及顺序,也就是有向位置链。比如,Workday下某用户通常上班,其作息时间、上下班路线和方式、上班期间的活动地点和方式、沟通交流所涉及的对应应用等,这些内容在Workday的每一天里都大概率相似,对应产生专属于Workday下每天对应时段时都大致类似的位置习惯和应用习惯。但当Mode不同时,比如变为 Weekend,作息时间表不同,对应也很可能大概率产生不同的活动内容和方式。例如,上述Workday模式的该用户,7:00—9:00通常在去公司的路上,更可能产生:家→地铁站A→地铁站B→公交站C→公司,这样的有向位置链;但在 Weekend的7:00---9:00,更多会宅在家休息或出去吃饭、休闲玩乐,更可能产生的有向位置链可能是:家→地铁站A→地铁站D→公园→海滩→饭店→公交站E→家。
相应的,Weekend期间更常用的应用也会跟Workday模式下的有很大差异,对应产生专属于Weekend的位置习惯、应用习惯,因此,该模式下的各时段及时段下的该进行学习的位置习惯、应用习惯都跟Workday下的不同。
例如,Workday下张三通常去公司上班,7:00—9:00上班途中,家→公司之间可能的路线受上班方式的限制可能只有有限的几条:
(1)打车或公司班车或自驾车上班:家→公司停车场→公司;
(2)公共交通上班:家→地铁站A→地铁站B→公交站C→公司停车场→公司。
基于上述分析,本发明实施例假设,Workday模式下,张三的有向位置链大概率为两种可能:(1)家→公司停车场→公司;(2)家→地铁站A→地铁站B→公交站C→公司停车场→公司。虽然并不排除该M1模式下张三仍可能选择其他交通方式、产生其他位置习惯及其有向位置链,但研究用户行为习惯并非要完全掌控用户所有未来突发行为,而是习得用户大概率可能发生的行为,能从其已有行为中分析出接下来大概率可能有的有向位置链,所以上述假设是成立的。
可选的,若有一天该用户临时产生了第(3)种去公司的上班方式,该方式下对应的新有向位置链也自然会被采集到,并在之后的该模式+时段位置学习中被学习和调整。如果该方式只是极少出现,其位置链上出现的新位置,在被后续学习到的位置概率排序中,对应概率也不会很高,其对后续位置预测的影响程度,相对那些更常用的上班方式中的位置的概率,临时方式的位置概率也会相对低一些。
可选的,在本发明实施例中默认为:
假设3:每种有向位置对(从位置A到位置B,用细箭头简记为A→B)下,对应可能出现的应用list大概率相似。即,
A→B有向位置对→A→B应用list(A B过程中出现的应用列表)
例如,模式+时段确定的情况下,当用户从A→B地点时,认为其会有大概相似的目的。比如,Workday的7:00—9:00,用户一般在去上班路上,本假设认为,此模式+时段下,当其从Metro station走向Bus station时,会认为其大概都将去坐公交赴公司。在此习惯下,用户一般会有类似的应用使用习惯,比如会用Gongjiao(公交出行)查一下接下来要做的公交还有多久到Bus station,或者会有习惯在路上用Music手机软件听会儿音乐。因此,模式+时段明确的情况下,会认为该用户在A→B这一有向位置对过程中,会有大致类似的应用使用习惯,而该习惯值得学习和被利用来预测其在该时段、该有向位置对期间的未来行为。
由假设1+假设2+假设3可得:
模式→日作息时间表(该模式下具体的时间分段方式)→该模式下的该时段 (简称模式+时段)→位置list+状态list→A→B的有向位置链(A→B的所有有向位置对也大致可定)→A→B的应用list(A→B过程中出现的所有应用及其概率大致可定)。
所以,模式+时段,基本上可以决定对应的位置list、应用list。对该位置list、应用list分别进行人工智能学习后,就可以基本掌握该模式+时段最可能的位置习惯排序、应用习惯排序,也就可以获得该用户在该模式下、该时段内的一般使用习惯。
在一种可选的实施方式中,基于上述目标问题分析和基本假设,需要寻找一个机器学习模型来辅助建模完成本层习惯学习层的任务。
鉴于贝叶斯模型的条件概率特性以及本发明实施例中的目标问题模式+ 时段→用户的位置习惯(有向位置链)→用户的应用使用习惯”高度相似,因此可选用贝叶斯模型。
在本发明实施例中,贝叶斯法则公式可表示为:
其中,C代表类别(函数应变量,即被X决定的变量),X代表影响类别的条件集(即函数自变量,或决定因素;也可理解为,N个会在C类中出现的因素,经多次采集不同类的会形成统计数据,从而可从统计后的预测的出现概率)。 P(C|X)就是函数目标表达式,代表“当X出现时,最终判定结果属于分类C的概率”。显然,P(C|X)是一种条件概率。
若将贝叶斯模型转换理解为一种求解条件概率的方法,则X是C中会出现的决定因素/条件的集合,C是难以通过统计直接获知、但X的出现会表征其某些特征和出现概率的待求目标变量。
显然,贝叶斯法则公式中,X是C中会出现的可统计元素,而C是难以通过统计直接获得的待求应变量,通过贝叶斯模型准则P(C|X)和统计元素X能求得。
在本发明实施例中,通过上述基本假设可知,本目标问题中,模式+时段一定时,对应的有向位置链可能有有限的几种可能,相当于上述难以直接统计得到的类别C,每种有向位置链可能包含部分相同或完全不同的有向位置对,相当于上述C包含的xi。
假设4:假设模式+时段确定时,其每个采集日里,该时段下只能出现一种有向位置链。
由于位置采集数据传入的是零散的有向位置对,这是可通过分析采集数据统计得到的。同时,每种有向位置链跟有向位置对之间都有不同的包含关系。因此,可将有向位置对当做可统计变量X,不同类的有向位置链为C。通过有向位置对跟不同有向位置链之间的包含关系、多条有向位置链对应的累计有向位置对统计数据,可推测到接下来这一个采集日里,不同有向位置链可能出现的概率,进而得到用户的位置习惯。进一步地,得到不同有向位置链的概率后,就可获得每一种有向位置对在接下来的时间里可能出现的概率,再结合每一个有向位置对用户对应可能的应用习惯,就能得到指定模式+时段下每种应用的概率,从而给出应用排序。考虑到每一种有向位置对会对应多个可能随机出现的应用,所以,有向位置对转变为应用习惯学习中的C,可统计变量X为应用。
根据上述描述。本发明实施例中,本发明实施例目标问题在贝叶斯模型中的分解对应关系如下表所示:
表2目标问题在贝叶斯模型中的分解对应关系
在本发明实施例中,有向位置链是指:从起点指向终点的一串有序位置序列。
它可以用下列Ci表示:
Cj=(x1→x2→...xi...→xN)
其中,Ci是一个唯一的有向位置链,它从起点x1出发,依次顺序经过 x2...→...xk至终点xN,是由这N个有效位置名及其先后顺序组成的一个有向位置对集合,本发明实施例中每个xi都需是经过采集策略一、二确认有效的地名,且经过构造数据库构造简化处理过。
其中,Cj的唯一性是由下方假设5和假设6来保证的:
假设5:只从起点径直行往终点,不考虑用户在中间过程某些地点之间反复往返。
比如C1路线中,用户从x5多次反复往返于x1→x5的情况,本发明实施例中其概率极小、不予考虑。在本发明实施例中,路线就是直接先后依次顺序经过x1→x5→x6,中间不存在类似x5→x1→x5、x5→x6→x5→x6、x6→x1→x5→x6这样的反复折回往返,而是单纯只先后顺次从起点经过唯一一个有效位置点x5抵达终点x6,此路线行程就结束。
假设6:Cj中前后两个相邻的xi和xi+1中间,不允许掺杂其他新地点,若一旦掺杂其他新地点,就将认为是另外一个新路线,而不再当做路线。
在发明实施例中,C1:x1→x5→x6这条路线,先后顺次经过且仅经过三个地点x1、x5、x6,其中,序列最左边的地点x1视为起点、序列最右边的地点x6视为终点。若这三个地点之间再多出一个有效地点,都将构成另外一个路线,而不再是C1。
所以,下面的Ck虽然只比Cj多了一个xN+1,也即,只多出一个有效位置点xN+1,二者却是不同的两个有向位置链。,
Cj=(x1→x2→...xi...→xN);
Ck=(x1→x2→...xi...→xN→xN+1)。
在本发明实施例中,有向位置链Ck、Cj之所以被称为不同、各自唯一,它们之间一定有至少一个有向位置对是不同的。比如,没有Ck、Cj仅有的有向位置对(xN→xN+1),也能将Ck、Cj区别开,在xN+1与xN为相隔时间超过最短时间间隔C2分钟的同名地名时也是如此。
下面例举一些有向位置链实例:
例如,上班者的模式“Workday”、时段“7:00-9:00”时,其对应的有向位置链受上班路线/方式影响可能是有限的几种。比如,采集三天得到下列数据:
Day1:路线:x1家→x2公司→x3停车场→x4公司;
Day2&Day3:路线:x1家→x2地铁站A→x3地铁站B→x4公交站C→x5公司停车场→x6公司。
上述每种路线(有向位置链)Cj路线确定时,对应的有向位置对集合和顺序都一一确定。即,路线跟有向位置对之间的包含对应关系明确。
上述实施例中,Day1采集到的C1和Day2、Day3采集到的C2共两种路线,尽管总共出现了(Day1-Day3所有历史数据合并后的汇总数据) 共6个地点,理论上应可能出现种可能的有向位置对 (地点数目N确定情况下,任选两个地点形成的先后地点有向位置对个数都将是种)。
然而,实际采集后,Day1、Day2、Day3的三天采集数据决定了C1、C2两种路线实际产生的有向位置对只有6种(X1:x1→x2),(X2:x1→x5),(X3:x2→x3), (X4:x3→x4),(X5:x4→x5),(X6:x5→x6)。其中:
C1路线决定了只有x1→x5,x5→x6这2个有向位置对会出现;
C2路线决定了只有x1→x2,x2→x3,x3→x4,x4→x5这5个有向位置对会出现;
而类似x1→x6、x2→x4这样的可能组合,则在实际采集数据中出现概率为 0。
在本发明实施例中,将贝叶斯模型运用到位置习惯学习,可以有向位置链的条件概率预测方法。
例如上述实施例中,通过统计三天的数据,可以获得每个有向位置对的统计概率,其中该统计概率是指历史数据中的出现概率,而非应用习惯学习中想要预测的有向位置对概率。
在本发明实施例中,统计概率是可从历史数据统计得的非条件概率,而要预测的有向位置对概率是未知的,需通过条件概率计算得到。
比如,有向位置对X6:x5→x6,因为在C1、C2两种路线中都会出现,三天共有2+5*2=12个有向位置对中,X6出现了3次,所以其统计概率∑p(X6) =3/12=0.25;X2出现了1次,∑p(X2)=1/12;X1、X3、X4、X5分别出现了2次,所以∑p(X1)=∑p(X3)=∑p(X4)=∑p(X5)=2/12=1/6。
但是,X6这个有向位置对在接下来的同一模式+时段出现概率并不一定是0.25,0.25是统计概率。通过分析目标问题可知,根据采集数据和构造数据层的统计,这个有向位置对通常不是孤立出现的,它一般会伴随一些“跟用户应用使用习惯密切相关”的应用数据,这些应用表面上与(X6:x5→x6)这个有向位置对毫无关系(或称之为随机关系),但实际上有一定的内在关联。比如,用户 Workday的7:00—9:00,在Metro Station→Bus Station这个有向位置对时,通常会有看一下Gongjiao这个应用使用习惯,于是本发明实施例的数据采集层就会统计到该模式+时段经常看到Gongjiao应用被打开,Gongjiao跟MetroStation→Bus Station这个有向位置对相互关联。因为这是用户的习惯,这个时段用户通常想用Gongjiao看看他将到的Bus Station的公交状态。因此,Gongjiao 应用的出现与否,实则可以表征和帮助预测Metro Station→Bus Station在接下来时刻里是否出现以及出现概率。
在本发明实施例中,若仅分析Metro Station→Bus Station这个有向位置对的历史位置数据,光看其位置出现的统计概率,肯定是无法充分利用这种用户行为习惯决定着的二者之间深层次内在关系来帮助预测有向位置对出现概率的,也无法反映当实际最新采集数据真有Gongjiao出现时,Metro Station→Bus Station出现的概率但,若分析该时段的用户应用使用习惯,就可充分挖掘和利用这种二者内在关联,从而做出比单纯统计概率更准确的预测结果,而实现方法就是通过研究用户应用使用习惯用条件概率去预测,而不是单纯统计概率。
在本发明实施例中,有向位置链的条件概率预测方法具体如下:
根据上述有向位置链的定义,两个有向位置链C1、C2之间至少有一个不同的有向位置对。因此,在统计得到的数据中,可以利用每个有向位置链Cj独有的那个有向位置对来独立预测其出现概率,来准确将X6这种每个Cj中带有的有向位置对的混合影响剖分开,这种就可算出,每一个有向位置对出现时,每个有向位置链的出现概率。当下一个同一模式+时段出现时,只要已知的任一有向位置对出现,就可以预测出每种有向位置链出现的条件概率。
下面通过具体实例介绍上述有向位置链条件概率的预测方法:
已知C、X之间的包含关系如下:
C1:(X2:x1→x2),(X6:x1→x2);(2对)
C2:(X1:x1→x2),(X3:x2→x3),(X4:x3→x4),(X5:x4→x5),(X6:x5→x6);(5对)
等式右侧都是可通过已知的统计数据算的统计概率,P(C1|X2)可得。
同理的,也都可算出P(C1|X6)、P(C2|X1)、P(C2|X3)、P(C2|X4)、 P(C2|X5)、P(C2|X6)。
这样,当下一个同一模式+时段出现时,一旦出现X1至X6中的“任意一个,都可立即得知两个有向位置链C1、C2的出现概率,也即获得Day1—Day3 用户的位置习惯信息。
需要说明的是,计算上述统计概率时,位置习惯学习仅用朴素贝叶斯模型中的贝努利模型实现。
例如,C1跟Xi之间的对应关系量化为:C1:(0,1,0,0,0,1),该向量中的6 个数字分别表示:在三天累计统计数据中共出现的6种Xi(i=0,..6):X1,X2, X3,X4,X5,X6,它们跟C1的量化关系是(0,1,0,0,0,1),其中,1表示Xi在C1中出现,0表示Xi在C1中不出现。
在本发明实施例中,计算下述应用习惯学习的统计概率时,因为涉及到系数,可选的,采用朴素贝叶斯模型中的多项式模型实现。
下面对有向位置对的条件概率预测方法进行详细介绍:
有向位置对的条件概率的预测与有向位置链的条件概率的预测方法类似。
结合表2,本发明实施例中用户应用使用习惯的学习,C是有向位置对, X是对应于该有向位置对的应用list。
例如,表1中的构造数据实施例:
Workday(M1)的7:00—9:00(P2)这一时段,Day1出现三种有向位置对:
【M1P2Set1】
C’1:Home→Metro Station:X’1News(20m,2),X’2Weather(5m,1);
C’2:Metro Station→Bus Station:X’3Gongjiao(10m,2),X’4Music(10m,1);
C’3:Bus Station→CompanyR&D:X’5Words(15m,2),X’6Dictionary(5m,3),
X’7Liaotian(20m,3);
Day2这三种有向位置对各自对应的应用发生了变化:
【M1P2Set2】
C’1:Home→Metro Station:X’1News(20m,2),X’4Music(20m,1);
C’2:Metro Station→Bus Station:X’3Gongjiao(10m,2),X’8Call(5m,1);
C’3:Bus Station→CompanyR&D:X’7Liaotian(10m,2),X’2Weather(5m,1),
X’1News(10m,2);
由上述【M1P2Set1】与【M1P2Set2】可知,C’1、C’2、C’3三个有向位置对各自对应不同的应用,有向位置对跟应用之间存在一种对应关系,或称为包含关系;且这三个有向位置对中的每一个C’j,在Day1、Day2两天的采集数据里对应的应用可能不同。因此,Day2数据构造完毕后,在习惯学习层还需要先调取历史数据,并进行数据分类合并。
合并Day1、Day2的数据后得到新的有向位置对跟应用之间的对应关系:
【M1P2Set1&2】
C’1:Home→Metro Station:X’1News(40m,4),X’2Weather(5m,1),
X’4Music(20m,1);
C’2:Metro Station→Bus Station:X’3Gongjiao(20m,4),X’4Music(10m,1),
X’8Call(5m,1);
C’3:Bus Station→CompanyR&D:X’1News(10m,2),X’2Weather(5m,1),
X’5Words(15m,2),X’6Dictionary(5m,3),X’7Liaotian(30m,5);
由于应用的使用时长越长、打开频次越多,说明用户在该模式+时段下使用该应用的需求和惯性越大,在下一个同一模式+时段打开该应用的概率越大,所以,在这里需要将应用的使用时长、打开频次当做的出现概率系数。
例如,尽管C’1跟X’1的对应关系是:C’1:X’1(40m,4),X’2(5m,1),X’4(20m,1);在用贝叶斯准则公式计算统计概率时,需要将出现的次数不是像“位置习惯学习”那样当做1来算,因此,而是当成1*40*4=160来算。
具体来讲就是,在上例的3种中,对应出现了8种,对应量化后的统计关系就是:
C’1:(160,5,0,20,0,0,0,0);
C’2:(0,0,80,10,0,0,0,5);
C’3:(20,5,0,0,30,15,150,0);
需要说明的是,此处跟位置习惯学习中的贝努利模型不同,对应计算统计概率时也会略有不同。
接下来再参照上述计算有向位置链条件概率的方式,可算得每一种出现时,每一种在下一个同一模式+时段出现的概率。
需要说明的是,在位置习惯学习时,可在下一个同一模式+时段开始后至少采集一个有向位置对,应用习惯学习同理,可在下一个同一模式+时段开始后至少采集一个应用,这样就可获得每个C’j将出现的条件概率,提高预测的准确性。
在本发明实施例中,所有有向位置对的出现概率预测出来后,就可算出每个应用接下来的出现概率。
对应条件概率公式为:
例如,若C’1、C’2、C’3接下来的出现概率分别是:0.2,0.3,0.5,那么X’1News 接下来可能出现的概率就是P(X’1)=0.2*(160/185)+0.3*0+0.5*(20/220)。
至此,模式+时段确定后,该时段的“应用习惯学习”基本完成。
在本发明实施例中,习惯学习层的总体流程为:
Step1:对数据构造传输层传递到本层的数据,需要按当前模式+时段取得对应数据段;
Step2:将新采数据跟过往同一模式+时段下的历史采集数据合并起来,进行重新构造,至少包括分类、合并、重排等步骤;
Step3:将原始数据分别按不同模型进行统计量化,形成学习前数据;
Step4:训练算法,根据词向量计算条件概率。
五、习得结果转化层。
在本发明实施例中,习得结果转化层主要用于根据接习惯学习层输出的三类数据:下一个同一模式+时段下的用户位置习惯、应用习惯、各有向位置对习惯,根据“策略三”对应用做打分、排序或分类,包括对用户没用过的应用也加入考虑。
其中,策略三的具体原则如下:
Step1:在最新模式+时段刚开始时,从数据采集层获取至少一个有向位置对和一个应用统计数据。若在有限时间C3内取得的第一个有向位置对、第一个应用,作为接下来采用概率的的决策条件。
Step2:若在有限时间C3分钟内,仍未采集到Step1所需数据,则可用之前历史统计数据的最大统计概率有向位置对、最大统计概率应用作为默认决策条件;其中,习惯学习层输出时也输出此结果。
Step3:根据决策条件,从习惯学习层输出结果中,截取应该输出的对应概率。
其中的决策条件,就是条件概率P(C|X)中的X,考虑到算出的是每种有向位置对下对应的所有有向位置链概率、每种应用下对应的所有向位置对概率,所以,需要先确定条件概率中的那个条件,才能用对概率。
Step4:根据Step3得到的有向位置对概率,计算所有有向位置对下不同应用各自的总概率。
Step5:从系统获取其他已安装应用,将Step4未考虑的应用出现概率默认设为0,将其出现的概率按Step4的计算结果赋值。获得手机所有应用出现概率。
Step6:按Step5的概率结果对所有应用进行排序。
之后,对无需打分、只需按概率高低排序结果的应用,只输出应用排序结果;对需打分的应用,输出按概率从高到低排序的应用排序及打分结果;对需分类的应用,根据应用的需要进行分类。
其中,用户习惯学习系统是周期有效采集的,比如只采集最近30天的数据,然后进行学习。近期使用过的应用,则能被学习到并输出到习得结果中,比如最近几天就常用8个应用。但是手机里的应用一般有很多,例如当前已经有50个应用,那么,常用的8个在习得结果中可以找到并可对概率排序,但其余42个没有进行习惯学习,因而可根据历史数据对这些应用打分。最近30 天最常用的8个应用打分则在所有50个应用中排在最前面。所以,这8个应用无需打分,直接是最高优先级排在最高概率梯队,而剩下那42个应用则需要根据历史概率数据打分。
在本发明实施例中,应用的分类就是把应用分成不同类的方式供应用使用。比如按照应用的类型分成:游戏类、学习类、影音类等,再针对不同类型的应用进行概率排序等;或者按照概率排序分成最高概率类的应用、次高概率类、最不常用应用类等。
对于部分应用,比如最常用应用这个apk,不需要打分,只需要所有应用按概率从高到低的应用包名排序,从中取出最常用的5个应用及其应用顺序即可;对于部分应用,比如launcher,需要所有应用按概率排序后的应用包名排序;对于部分应用,如内存管理,则需要应用包名排序及其概率,因为还需结合每个应用的内存需求量结合出现概率进行新的评判标准计算,之后才会将出现概率低、且内存消耗大的应用优先删掉。对于另一类应用,则只需要应用分类结果,然后对一类应用统一处理,比如,将所有应用分为最高概率应用、次高概率应用和不常用应用,内存管理也可以直接将不常用应用里的所有应用都关闭掉,保留次高概率、最高概率两类应用。
下面针对用户行为习惯学习的结果的使用进行详细介绍:
六、应用层,用于应用管理。主要可以实现上述实施例中介绍的任意一种对终端执行应用管理操作的方法,这里不再赘述。
可选的,在本发明实施例中,HabitLearning.apk界面还可以用于进行数据展示。
(1)用户数据可展示在HabitLearning.apk界面中,用来展示数据构造传输层的最新采集数据,展示方式可如上述各自构造数据库的简化样例所示形式。
可选的,对上述最新采集数据展示页面,用户也可对其中出现的地名进行手动修改,后续再采集数据通过地名地图逆地理查出的地名是原地名时,该地名都将被替换成用户改后的名称。对应已保存的习惯学习层历史数据中,也都将按用户改后名称调整。
(2)HabitLearning.apk界面还可用来展示习得数据转化层最新预测的结果。
例如,可以展示用户近期所有有向位置链,按概率从大到小排序显示;可以展示用户近期所有有向位置对,按概率从大到小排序显示;可以展示用户近期所有应用,按概率从大到小排序显示等。
可选的,当采集和学习到的用户应用习惯,跟其设定的有差异时,提醒用户其实际行动跟其主观意识之间的差异对比,进而提出用户行为管理的改变建议,也以此增加跟用户针对提升用户体验方面的交流。手机应用管理还是以用户实际使用习惯为准做调整,或是将用户应用排序意见设置一定权重,部分纳入应用优先级评分系统等。
基于相同的发明构思,本发明实施例中还提供了一种应用管理的终端,由于该设备即是本发明实施例中的方法中的设备,并且该设备解决问题的原理与该方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
如图12所示,本发明实施例还提供一种应用管理的终端1200,该终端包括:处理器1201以及存储器1202,其中,所述存储器1202存储有程序代码,当所述程序代码被所述处理器1201执行时,使得所述处理器执行下列过程:
获取对象的应用习惯信息,其中所述应用习惯信息为根据所述对象在所述统计周期的设定时段内的位置链和应用的使用信息预测得到的所述对象在下一统计周期的设定时段内的应用的使用概率;
根据所述应用习惯信息对所述终端执行应用管理操作。
可选的,所述应用管理操作包括下列的部分或全部:
管理应用图标显示位置的操作;
管理应用消息通知顺序的操作;
管理应用进程的操作。
可选的,所述应用管理操作包括管理应用图标显示位置的操作;
所述处理器1201具体用于:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序,并根据排序结果确定所述应用的应用图标在所述下一统计周期的所述设定时段内的显示位置;
在进入所述下一统计周期的所述设定时段后,响应用户的显示操作,根据确定的显示位置显示所述应用的应用图标。
可选的,所述应用管理操作包括管理应用消息通知顺序的操作;
所述处理器1201具体用于:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序;
在进入所述下一统计周期的所述设定时段后,若同一时刻接收到多个应用的应用消息,则根据排序结果在消息通知栏中显示接收到的多个应用的应用消息;或
在进入所述下一统计周期的所述设定时段后,若接收到应用的应用消息,则根据所述应用与通知栏中其它应用的使用概率的比较结果确定所述应用的应用消息在通知栏中的显示位置,并根据确定的显示位置在所述通知栏中显示所述应用的应用消息。
可选的,所述应用管理操作包括管理应用消息通知顺序的操作;
所述处理器1201具体用于:
在所述统计周期结束后,根据所述应用习惯信息确定所述对象在所述设定时段内所使用的应用的系统优先级,其中所述系统优先级为所述应用的优先级与所述应用的使用概率的乘积或所述应用的使用概率与所述应用所占内存的比值;
进入所述下一统计周期的所述设定时段后,响应结束应用进程操作,根据确定的系统优先级由小到大的顺序结束前M个应用进程,M为正整数。
基于相同的发明构思,本发明实施例中还提供了一种应用管理的终端,由于该设备即是本发明实施例中的方法中的设备,并且该设备解决问题的原理与该方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
如图13所示,本发明实施例还提供一种应用管理装置1300,该装置包括:信息获取模块1301和执行模块1302:
信息获取模块1301:用于获取对象的应用习惯信息,其中所述应用习惯信息为根据所述对象在所述统计周期的设定时段内的位置链和应用的使用信息预测得到的所述对象在下一统计周期的设定时段内的应用的使用概率;
执行模块1302:用于根据所述应用习惯信息对所述终端执行应用管理操作。
可选的,所述应用管理操作包括下列的部分或全部:
管理应用图标显示位置的操作;
管理应用消息通知顺序的操作;
管理应用进程的操作。
可选的,所述应用管理操作包括管理应用图标显示位置的操作;
所述执行模块1302:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序,并根据排序结果确定所述应用的应用图标在所述下一统计周期的所述设定时段内的显示位置;
在进入所述下一统计周期的所述设定时段后,响应用户的显示操作,根据确定的显示位置显示所述应用的应用图标。
可选的,所述应用管理操作包括管理应用消息通知顺序的操作;
所述执行模块1302具体用于:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序;
在进入所述下一统计周期的所述设定时段后,若同一时刻接收到多个应用的应用消息,则根据排序结果在消息通知栏中显示接收到的多个应用的应用消息;或
在进入所述下一统计周期的所述设定时段后,若接收到应用的应用消息,则根据所述应用与通知栏中其它应用的使用概率的比较结果确定所述应用的应用消息在通知栏中的显示位置,并根据确定的显示位置在所述通知栏中显示所述应用的应用消息。
可选的,所述应用管理操作包括管理应用消息通知顺序的操作;
所述执行模块1302具体用于:
在所述统计周期结束后,根据所述应用习惯信息确定所述对象在所述设定时段内所使用的应用的系统优先级,其中所述系统优先级为所述应用的优先级与所述应用的使用概率的乘积或所述应用的使用概率与所述应用所占内存的比值;
进入所述下一统计周期的所述设定时段后,响应结束应用进程操作,根据确定的系统优先级由小到大的顺序结束前M个应用进程,M为正整数。
本发明实施例还提供一种计算机可读非易失性存储介质,包括程序代码,当所述程序代码在计算终端上运行时,所述程序代码用于使所述计算终端执行上述本发明实施例对象行为习惯预测的方法的步骤。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种应用管理的终端,其特征在于,该终端包括:处理器以及存储器;
其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行下列过程:
获取对象的应用习惯信息,其中所述应用习惯信息为根据所述对象在所述统计周期的设定时段内的位置链和应用的使用信息预测得到的所述对象在下一统计周期的设定时段内的应用的使用概率;
根据所述应用习惯信息对所述终端执行应用管理操作。
2.如权利要求1所述的终端,其特征在于,所述应用管理操作包括下列的部分或全部:
管理应用图标显示位置的操作;
管理应用消息通知顺序的操作;
管理应用进程的操作。
3.如权利要求2所述的终端,其特征在于,所述应用管理操作包括管理应用图标显示位置的操作;
所述处理器具体用于:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序,并根据排序结果确定所述应用的应用图标在所述下一统计周期的所述设定时段内的显示位置;
在进入所述下一统计周期的所述设定时段后,响应用户的显示操作,根据确定的显示位置显示所述应用的应用图标。
4.如权利要求2所述的终端,其特征在于,所述应用管理操作包括管理应用消息通知顺序的操作;
所述处理器具体用于:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序;
在进入所述下一统计周期的所述设定时段后,若同一时刻接收到多个应用的应用消息,则根据排序结果在消息通知栏中显示接收到的多个应用的应用消息;或
在进入所述下一统计周期的所述设定时段后,若接收到应用的应用消息,则根据所述应用与通知栏中其它应用的使用概率的比较结果确定所述应用的应用消息在通知栏中的显示位置,并根据确定的显示位置在所述通知栏中显示所述应用的应用消息。
5.如权利要求2所述的终端,其特征在于,所述应用管理操作包括管理应用消息通知顺序的操作;
所述处理器具体用于:
在所述统计周期结束后,根据所述应用习惯信息确定所述对象在所述设定时段内所使用的应用的系统优先级,其中所述系统优先级为所述应用的优先级与所述应用的使用概率的乘积或所述应用的使用概率与所述应用所占内存的比值;
进入所述下一统计周期的所述设定时段后,响应结束应用进程操作,根据确定的系统优先级由小到大的顺序结束前M个应用进程,M为正整数。
6.一种应用管理的方法,其特征在于,应用于终端,该方法包括:
获取对象的应用习惯信息,其中所述应用习惯信息为根据所述对象在所述统计周期的设定时段内的位置链和应用的使用信息预测得到的所述对象在下一统计周期的设定时段内的应用的使用概率;
根据所述应用习惯信息对所述终端执行应用管理操作。
7.如权利要求6所述的方法,其特征在于,所述应用管理操作包括下列的部分或全部:
管理应用图标显示位置的操作;
管理应用消息通知顺序的操作;
管理应用进程的操作。
8.如权利要求7所述的方法,其特征在于,所述应用管理操作包括管理应用图标显示位置的操作;
所述根据应用习惯信息对所述终端执行应用管理操作,包括:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序,并根据排序结果确定所述应用的应用图标在所述下一统计周期的所述设定时段内的显示位置;
在进入所述下一统计周期的所述设定时段后,响应用户的显示操作,根据确定的显示位置显示所述应用的应用图标。
9.如权利要求7所述的方法,其特征在于,所述应用管理操作包括管理应用消息通知顺序的操作;
所述根据所述应用习惯信息对所述终端执行应用管理操作,包括:
在所述统计周期结束后,根据所述应用习惯信息对所述对象在所述设定时段内所使用的应用的使用概率进行排序;
在进入所述下一统计周期的所述设定时段后,若同一时刻接收到多个应用的应用消息,则根据排序结果在消息通知栏中显示接收到的多个应用的应用消息;或
在进入所述下一统计周期的所述设定时段后,若接收到应用的应用消息,则根据所述应用与通知栏中其它应用的使用概率的比较结果确定所述应用的应用消息在通知栏中的显示位置,并根据确定的显示位置在所述通知栏中显示所述应用的应用消息。
10.如权利要求7所述的方法,其特征在于,所述应用管理操作包括管理应用进程的操作;
所述根据所述应用习惯信息对所述终端执行应用管理操作,包括:
在所述统计周期结束后,根据所述应用习惯信息确定所述对象在所述设定时段内所使用的应用的系统优先级,其中所述系统优先级为所述应用的优先级与所述应用的使用概率的乘积或所述应用的使用概率与所述应用所占内存的比值;
在进入所述下一统计周期的所述设定时段后,响应结束应用进程操作,根据确定的系统优先级由小到大的顺序结束前M个应用进程,M为正整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911183673.4A CN112860358A (zh) | 2019-11-27 | 2019-11-27 | 一种应用管理的方法和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911183673.4A CN112860358A (zh) | 2019-11-27 | 2019-11-27 | 一种应用管理的方法和终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112860358A true CN112860358A (zh) | 2021-05-28 |
Family
ID=75984941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911183673.4A Pending CN112860358A (zh) | 2019-11-27 | 2019-11-27 | 一种应用管理的方法和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860358A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115116266A (zh) * | 2022-07-08 | 2022-09-27 | 田萍 | 一种汽车智能导航方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102509170A (zh) * | 2011-10-10 | 2012-06-20 | 浙江鸿程计算机系统有限公司 | 一种基于历史轨迹数据挖掘的位置预测系统及方法 |
CN106155699A (zh) * | 2016-07-29 | 2016-11-23 | 维沃移动通信有限公司 | 一种后台进程的管理方法及移动终端 |
CN107133094A (zh) * | 2017-06-05 | 2017-09-05 | 努比亚技术有限公司 | 应用管理方法、移动终端及计算机可读存储介质 |
CN107273011A (zh) * | 2017-06-26 | 2017-10-20 | 努比亚技术有限公司 | 应用程序快速切换方法及移动终端 |
CN107346494A (zh) * | 2016-05-05 | 2017-11-14 | 滴滴(中国)科技有限公司 | 一种用于出行规律挖掘的方法和系统 |
CN107832109A (zh) * | 2017-10-13 | 2018-03-23 | 华勤通讯技术有限公司 | 一种应用图标排序方法和装置 |
CN109788136A (zh) * | 2019-01-29 | 2019-05-21 | 维沃移动通信有限公司 | 信息显示方法及移动终端 |
CN109828844A (zh) * | 2019-02-26 | 2019-05-31 | 努比亚技术有限公司 | 应用程序的处理方法、移动终端及存储介质 |
-
2019
- 2019-11-27 CN CN201911183673.4A patent/CN112860358A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102509170A (zh) * | 2011-10-10 | 2012-06-20 | 浙江鸿程计算机系统有限公司 | 一种基于历史轨迹数据挖掘的位置预测系统及方法 |
CN107346494A (zh) * | 2016-05-05 | 2017-11-14 | 滴滴(中国)科技有限公司 | 一种用于出行规律挖掘的方法和系统 |
CN106155699A (zh) * | 2016-07-29 | 2016-11-23 | 维沃移动通信有限公司 | 一种后台进程的管理方法及移动终端 |
CN107133094A (zh) * | 2017-06-05 | 2017-09-05 | 努比亚技术有限公司 | 应用管理方法、移动终端及计算机可读存储介质 |
CN107273011A (zh) * | 2017-06-26 | 2017-10-20 | 努比亚技术有限公司 | 应用程序快速切换方法及移动终端 |
CN107832109A (zh) * | 2017-10-13 | 2018-03-23 | 华勤通讯技术有限公司 | 一种应用图标排序方法和装置 |
CN109788136A (zh) * | 2019-01-29 | 2019-05-21 | 维沃移动通信有限公司 | 信息显示方法及移动终端 |
CN109828844A (zh) * | 2019-02-26 | 2019-05-31 | 努比亚技术有限公司 | 应用程序的处理方法、移动终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
喻雪松 等: "基于社交媒体签到数据的空间网络及其社区的无标度与热点分析" * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115116266A (zh) * | 2022-07-08 | 2022-09-27 | 田萍 | 一种汽车智能导航方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104838673B (zh) | 提供路线推荐 | |
KR102242267B1 (ko) | 터치 감응형 디바이스 상의 관련 콘텐츠를 사전행동적으로 식별 및 표면화하기 위한 시스템 및 방법 | |
US9405838B2 (en) | Determining an active persona of a user device | |
US20190129749A1 (en) | Automated extraction and application of conditional tasks | |
WO2018120813A1 (zh) | 一种智能推荐方法和终端 | |
KR102067278B1 (ko) | 친구 추천 방법 및 이를 위한 서버 및 단말 | |
US9414222B1 (en) | Predictive caching devices, systems and methods | |
KR20200060421A (ko) | 리소스 관리 방법 및 단말 장치 | |
US9754016B1 (en) | Dynamic content discoverability | |
JP5859611B2 (ja) | 意味的地域に基づいて検索語を推薦する方法およびシステム | |
US9811585B2 (en) | Adaptive system | |
US9690264B2 (en) | System, and a method for providing a prediction for controlling a system | |
US10324916B2 (en) | Predictive service access | |
CN107748697B (zh) | 应用关闭方法、装置、存储介质及电子设备 | |
CN112860358A (zh) | 一种应用管理的方法和终端 | |
CN112866482B (zh) | 一种对象行为习惯预测的方法和终端 | |
CN116627534B (zh) | 应用程序处理方法及装置 | |
US10783130B2 (en) | System, a data structure for controlling the system, and a method for updating the data structure | |
US10713312B2 (en) | System and method for context-launching of applications | |
US20240304075A1 (en) | Contextual item discovery and pattern inculcated reminder mechanism | |
CN108701133A (zh) | 提供推荐内容 | |
CN118656007A (zh) | 内容推荐方法、电子设备及存储介质 | |
WO2020106499A1 (en) | Saving battery life using an inferred location | |
CN117807123A (zh) | 一种服务卡片推荐的方法和电子设备 | |
CN117235336A (zh) | 基于位置的搜索处理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210528 |