CN115018081B - 特征选择方法、应用程序预测方法及装置 - Google Patents
特征选择方法、应用程序预测方法及装置 Download PDFInfo
- Publication number
- CN115018081B CN115018081B CN202111399979.0A CN202111399979A CN115018081B CN 115018081 B CN115018081 B CN 115018081B CN 202111399979 A CN202111399979 A CN 202111399979A CN 115018081 B CN115018081 B CN 115018081B
- Authority
- CN
- China
- Prior art keywords
- app
- initial
- feature
- query
- prediction
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 238000010187 selection method Methods 0.000 title claims abstract description 23
- 238000012549 training Methods 0.000 claims abstract description 25
- 238000007667 floating Methods 0.000 claims description 32
- 238000004422 calculation algorithm Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 33
- 238000010586 diagram Methods 0.000 description 18
- 230000001960 triggered effect Effects 0.000 description 13
- 238000012216 screening Methods 0.000 description 9
- 238000012163 sequencing technique Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 9
- 230000008901 benefit Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 7
- 238000010276 construction Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 5
- 230000036316 preload Effects 0.000 description 5
- 230000026676 system process Effects 0.000 description 5
- 101150053844 APP1 gene Proteins 0.000 description 4
- 101100055496 Arabidopsis thaliana APP2 gene Proteins 0.000 description 4
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 4
- 101100189105 Homo sapiens PABPC4 gene Proteins 0.000 description 4
- 102100039424 Polyadenylate-binding protein 4 Human genes 0.000 description 4
- 101100016250 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GYL1 gene Proteins 0.000 description 4
- 101710081949 Xaa-Pro aminopeptidase 3 Proteins 0.000 description 4
- 102100038359 Xaa-Pro aminopeptidase 3 Human genes 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 206010044565 Tremor Diseases 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了特征选择方法、应用程序预测方法及装置,该特征选择方法获取每个初始特征与原始标签之间的MIC值,以及,对原始标签进行随机打乱得到错误标签,并获取每个初始特征与各个错误标签之间的MIC"值。获得同一初始特征对应的MIC值及各个MIC"值之间的偏离度,并基于各个初始特征的偏离度选取目标特征。该方案减少了特征数量,加快了模型训练速度,进而降低了模型训练过程的功耗。而且,与通过树模型获得特征重要性的方案相比,该方案直接基于特征与类别标签之间的MIC值来衡量特征的重要性,无需针对每次随机打乱操作训练相应的树模型,缩短了特征选择过程的耗时,因此提高了效率。进而减少了APP预测模型的复杂度,以及减少APP预测模型占用的系统内存。
Description
技术领域
本申请涉及机器学习技术领域,尤其涉及特征选择方法、应用程序预测方法及装置。
背景技术
特征工程是机器学习中的一个重要过程,其目的是最大限度地从原始数据中提取特征以供算法和模型使用。特征选择是特征工程中的一个重要环节,其目标是寻找最优特征子集。通过特征选择剔除不相关或冗余的特征,从而减少特征数量、提高模型精确度、减少模型运行时间。
例如,基于机器学习的应用程序(Application,APP)预测模型中,特征工程生成的特征数量多,而且包括冗余或不相关的特征,导致APP预测模型运行时间长,占用电子设备的内存空间大,且运行功耗大。而且,包括不相关或冗余的特征,导致模型精确度低。
发明内容
有鉴于此,本申请提供了特征选择方法、应用程序预测方法及装置,以解决上述的问题,其公开的技术方案如下:
第一方面,本申请提供了一种特征选择方法,应用于电子设备,该方法包括:提取样本集的初始特征;获取每个初始特征与样本集的初始标签之间的第一最大信息系数,第一最大信息系数表征初始特征在初始标签下的重要程度;对初始标签分别进行N次随机打乱,得到N个打乱后的错误标签,其中,N为大于1的正整数;获取每个初始特征与任一个错误标签之间的第二最大信息系数,第二最大信息系数表征初始特征在错误标签下的重要程度;获得同一初始特征对应的第一最大信息系数与各个第二最大信息系数之间的偏离度,偏离度表征每个初始特征分别在初始标签下与各个错误标签下的重要程度的差异;基于每个初始特征对应的偏离度,确定出目标特征。可见,与通过树模型获得特征重要性的方案相比,该方案直接基于特征与标签之间的最大信息系数来衡量特征的重要性,无需针对每次随机打乱操作训练相匹配的树模型,因此缩短了特征选择过程的耗时,提高了效率。而且,利用该方案减少模型的复杂度,进而减少模型占用的系统内存。
在一种可能的实现方式中,对初始标签分别进行N次随机打乱,得到N个打乱后的错误标签,包括:分别对同一类别的不同样本对应的标签,进行N次随机打乱,得到N个打乱后的错误标签。可见,该方案只对同一类别的不同样本的标签进行随机打乱,从而避免随机打乱后的标签与初始标签(即正确标签)相差太远而无法确定出无用特征的情况发生,因此,该方案能够有效减少特征的数量,降低了模型的复杂度,同时提高了选出的特征的准确率,从而提高了模型的准确率。
在另一种可能的实现方式中,获得同一个初始特征对应的第一最大信息系数与各个第二最大信息系数之间的偏离度,包括:对于任一初始特征,获取任一初始特征对应的各个第二最大信息系数的中位数;获得任一初始特征对应的第一最大信息系数与第二最大信息系数的中位数之间的偏离度。该方案选取的各个第二最大信息系数的中位数更能代表各个第二最大信息系数的数据中心,而且,能够避免受异常值的影响,因此,提高了计算得到的偏离度的准确率,从而提高了筛选出的目标特征的准确率。
在又一种可能的实现方式中,所述获得所述任一初始特征对应的所述第一最大信息系数与所述第二最大信息系数的中位数之间的偏离度,包括:基于如下公式计算得到所述任一初始特征对应的偏离度:
其中,scorei表示第i个初始特征对应的偏离度,MICi表示第i个初始特征与原始标签之间的第一最大信息系数,MICij"表示第i个初始特征与第j个错误标签之间的第二最大信息系数,j为正整数,且1≤j≤N,N为所述错误标签的总数量,γ是一个极小值。可见,该方案直接利用第一最大信息系数和第二最大信息系数的中位数,计算得到偏离度,提高了偏离度的准确率,从而提高了筛选出的目标特征的准确率。
在另一种可能的实现方式中,获得任一初始特征对应的第一最大信息系数与第二最大信息系数的中位数之间的偏离度,还包括:利用正则化算法将任一初始特征对应的偏离度对应的值域调整至预设范围内。可见,该方案计算得到每个初始特征对应的偏离度后,利用正则化将偏离度的值域调整至预设范围内,如[0,1],从而避免不同特征对应的偏离度的值域不同,导致的无法准确确定偏离度阈值的情况发生,因此提高了选取的目标特征的准确率。
在又一种可能的实现方式中,所述基于每个所述初始特征对应的所述偏离度,确定出目标特征,包括:选取所述偏离度大于预设阈值的所述初始特征确定为所述目标特征。
在另一种可能的实现方式中,应用于基于排序算法模型的应用程序预测模型,每个样本包括一个查询APP和一个候选APP,且每一条查询APP使用记录对应一个包括M个样本的样本子集,所述M个样本中的查询APP相同、候选APP互不相同;所述对所述初始标签分别进行N次随机打乱,得到N个打乱后的错误标签,包括:针对属于同一类别的至少两个不同的所述查询APP,将各个所述查询APP对应的样本子集的标签之间进行N次随机打乱,得到所述样本集对应的N个打乱后的错误标签。
在又一种可能的实现方式中,包括:从所述样本集中的所述查询APP对应的信息中提取得到第一类初始特征,以及,从所述样本集中的所述候选APP对应的信息中提取得到第二类初始特征;获得每个第一类初始特征与所述样本集的初始标签之间的第一最大信息系数;获得每个第二类初始特征与所述样本集的初始标签之间的第一最大信息系数;对所述初始标签分别进行N次随机打乱,得到N个打乱后的错误标签;获取所述每个第一类初始特征与任一所述错误标签之间的第二最大信息系数;获得同一个所述第一类初始特征对应的所述第一最大信息系数与各个所述第二最大信息系数之间的偏离度;基于每个所述第一类初始特征对应的所述偏离度,确定出第一类目标特征;获取所述每个第二类初始特征与任一个所述错误标签之间的第二最大信息系数;获得同一个所述第二类初始特征对应的所述第一最大信息系数与各个所述第二最大信息系数之间的偏离度;基于每个所述第二类初始特征对应的所述偏离度,确定出第二类目标特征。
第二方面,本申请还提供了一种应用程序预测方法,应用于电子设备,该方法包括:获取历史APP序列,所述历史APP序列包括所述电子设备在历史时间段内的APP使用记录信息;基于所述历史APP序列构造样本集;提取所述样本集的初始特征;获取每个所述初始特征与所述样本集的初始标签之间的第一最大信息系数,所述第一最大信息系数表征所述初始特征在所述初始标签下的重要程度;对所述初始标签分别进行N次随机打乱,得到N个打乱后的错误标签,其中,N为大于1的正整数;获取每个所述初始特征与任一个所述错误标签之间的第二最大信息系数,所述第二最大信息系数表征所述初始特征在所述错误标签下的重要程度;获得同一所述初始特征对应的所述第一最大信息系数与各个所述第二最大信息系数之间的偏离度,所述偏离度表征每个所述初始特征分别在所述初始标签下与各个所述错误标签下的重要程度的差异;基于每个所述初始特征对应的所述偏离度,确定出目标特征;基于所述目标特征训练预设模型得到APP预测模型;检测到APP预测事件后,基于所述APP预测模型预测得到所述APP预测事件对应的预测APP序列。可见,该方案减少了特征数量,降低了APP预测模型的复杂度,进而减少APP预测模型占用的系统内存,降低了模型训练过程的功耗,同时,加快了模型训练速度。
在一种可能的实现方式中,所述检测到APP预测事件后,基于所述APP预测模型预测得到所述APP预测事件对应的预测APP序列,包括:解析所述APP预测事件获得查询对象;获取所述查询对象的信息,并从所述查询对象的信息中提取目标特征,其中,所述查询对象的信息包括在所述查询对象及对应的历史APP,所述历史APP包括在所述查询对象被打开之前的预设时间段内被打开的APP;将所述目标特征输入所述APP预测模型进行预测,得到所述查询对象对应的所述预测APP序列。
在另一种可能的实现方式中,所述解析所述APP预测事件获得查询对象,包括:解析所述APP预测事件为打开所述电子设备中安装的APP的事件;确定所述APP预测事件中被打开APP为所述查询对象;或者,解析所述APP预测事件为解锁事件,确定所述解锁事件为所述查询对象;或者,解析所述APP预测事件为返回系统桌面APP的事件,确定所述系统桌面APP为所述查询对象。可见,该方案能够在不同触发时机触发APP预测事件,如打开某个APP的操作,或解锁操作,或返回系统桌面时,提高了应用程序预测的灵活性。
在又一种可能的实现方式中,所述方法还包括:从所述预测APP序列中选取至少一个APP,预加载所述至少一个APP的启动资源。可见,利用该方案可以智能预加载用户在未来一段时间内可能打开的APP的启动资源,将用户等待APP启动的时间降至零,提高了用户体验。
在另一种可能的实现方式中,所述APP的启动资源包括所述APP内的页面资源,所述页面资源包括所述APP的主页面的页面资源或所述APP中的微服务对应的页面资源。可见,利用该方案可以直接预加载用户可能打开的某个特定页面的页面资源,这样用户启动预加载APP时,可以直接跳转至该特定页面,进一步提高了用户体验。
在又一种可能的实现方式中,所述方法还包括:检测到启动预加载APP的操作后,直接显示所述预加载APP的预加载的页面资源对应的界面。可见,利用该方案用户启动预加载APP时,可以直接跳转至该特定页面,进一步提高了用户体验。
在另一种可能的实现方式中,所述电子设备具有悬浮窗口显示功能,所述方法还包括:调用悬浮窗口显示预加载APP的信息,所述悬浮窗口悬浮于所述电子设备的当前显示界面之上。可见,该方案能够直接在悬浮窗口显示预加载APP的信息,而且悬浮窗口悬浮在电子设备的当前显示界面之上,用户可以直接点击该悬浮窗口内显示的APP信息来启动该APP,简化了用户启动预加载APP的操作,进一步提高了用户体验。
在又一种可能的实现方式中,所述调用悬浮窗口显示完成预加载的APP的信息,包括:在所述悬浮窗口内显示预加载APP对应的图标;或者,在所述悬浮窗口内显示预加载APP中的微服务的信息。
在另一种可能的实现方式中,所述检测启动预加载APP的操作包括:若检测到对所述悬浮窗口内显示的预加载APP的图标的点击操作,确定检测到启动预加载APP的操作。
第三方面,本申请还提供了一种电子设备,包括存储器和处理器,所述存储器用于存储所述处理器可执行的指令,所述处理器执行所述指令使得所述电子设备执行如第一方面或第一方面的任一种可能的实现方式所述的特征选择方法;或者,所述处理器执行所述指令使得所述电子设备执行如第二方面或第二方面的任一种可能的实现方式所述的应用程序预测方法。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被电子设备的处理器运行时,使得所述电子设备执行如第一方面或第一方面的任一种可能的实现方式所述的特征选择方法;或者,所述计算机程序被电子设备的处理器运行时,使得所述电子设备执行如第二方面或第二方面的任一种可能的实现方式所述的应用程序预测方法。
第五方面,本申请还提供了一种计算机程序产品,当该计算机程序产品在电子设备上运行,使得该电子设备执行如第一方面或第一方面的任一种可能的实现方式所述的特征选择方法;或者,使得该电子设备执行如第二方面或第二方面的任一种可能的实现方式所述的应用程序预测方法。
应当理解的是,本申请中对技术特征、技术方案、有益效果或类似语言的描述并不是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种电子设备的结构示意图;
图2是本申请实施例提供的一种电子设备的软件架构示意图;
图3是本申请实施例提供的一种在打开应用时触发预测的场景下UI界面跳转示意图;
图4是图3对应的没有预测和预加载的场景下的UI界面跳转示意图;
图5是本申请实施例提供的一种在返回系统桌面时触发预测的场景下UI界面跳转示意图;
图6是图5对应的没有预测和预加载的场景下的UI界面跳转示意图;
图7是本申请实施例提供的一种在解锁屏幕时触发预测的场景下UI界面跳转示意图;
图8是图7对应的没有预测和预加载的场景下的UI界面跳转示意图;
图9是本申请实施例提供的一种特征选择方法的流程图;
图10是本申请实施例提供的一种应用程序预测方法的时序图;
图11是本申请实施例提供的初始特征与标签之间的关系的示意图;
图12是本申请实施例提供的设置悬浮窗的UI界面示意图;
图13是本申请实施例提供的一种触发时机下悬浮球展示预测APP的图标的UI示意图;
图14是本申请实施例提供的另一种触发时机下悬浮球展示预测APP的图标的UI示意图;
图15是本申请实施例提供的在悬浮球内展示预测的服务的图标的UI示意图。
具体实施方式
本申请说明书和权利要求书及附图说明中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于限定特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
发明人经研究发现:目前已有的特征选择方法,其中一类是基于特征排序的特征选择方法,先计算特征与类别之间的相关新,然后,根据相关性对特征进行排序,并保留与类别具有强相关性的特征。例如,通过树模型得到特征对应正确类别的“特征重要性”指标,然后,对类别标签进行多次随机shuffle,按照每次得到的新的标签训练树模型,从而得到每个特征对应的错误类别的“特征重要性”指标,对于每个特征,计算该特征对应“正确”类别的“特征重要性”,以及,该特征对应“错误”类别的特征重要性,如果特征对应正确类别的“特征重要性”并没有明显超过该特征对应错误类别的“特征重要性”,则证明这个特征是一个无用特征,可以删除此特征。但是,该方法对类别标签进行一次随机shuffle,都要重新训练树模型,若进行N次随机shuffle,则训练树模型的次数达到N次,再加上获得特征与正确类别之间的特征重要性所使用的树模型训练过程,树模型的训练过程达到N+1次,导致特征选择过程耗时长、效率低。
为了解决上述问题,本申请提供了一种特征选择方法,提取APP样本的原始特征,并计算每个初始特征与APP样本对应的类别标签之间的最大信息系数值,即MIC值,该MIC值表征初始特征在正确的标签下表现的重要程度。针对同一类别的不同查询APP对应的APP样本集的类别标签进行随机shuffle,得到shuffle标签。计算每个初始特征分别与各个shuffle标签之间的MIC"值,该MIC"值表征初始特征在不正确的标签下表现的重要程度。进一步,基于每个初始特征对应的MIC值及各个MIC"值,得到该初始特征分别对应正确类别标签与shuffle标签时的偏离度,偏离度表明同一特征分别在正确的标签下及不正确的标签下的重要程度差异,偏离度越大表明该特征是稳定且重要的特征,反之,偏离度越小表明该特征是无用的特征。最终,选取偏离度大于预设阈值的初始特征。由上述内容可知,该方案减少了特征数量,加快了模型训练速度,进而降低了模型训练过程的功耗。而且,与通过树模型获得特征重要性的方案相比,该方案直接基于特征与类别标签之间的MIC值来衡量特征的重要性,无需针对每次随机shuffle训练树模型,缩短了特征选择过程的耗时,因此提高了效率。而且,利用该方案减少APP预测模型的复杂度,进而减少APP预测模型占用的系统内存。
进一步,该方案只对属于同一类别的查询APP对应的不同样本集之间进行随机shuffle,避免随机shuffle后的标签类别与正确标签相差太远而无法筛选出稳定且重要特征的情况,因此,该方案提高了最终选择的特征的准确率,从而提高了模型的准确率,进而提高了模型输出结果的准确率。进一步地,提高预测APP序列的准确率后,预加载预测APP序列中的至少两个APP,当用户打开预加载的APP时,可以直接进入该APP的UI界面,实现用户零等待,从而提高了用户体验。
请参见图1,示出了本申请实施例提供的一种电子设备的结构示意图,该电子设备用于运行本申请提供的特征选择方法和应用程序预测方法。
在一些实施例中,该电子设备可以是手机、平板电脑、、桌面型、膝上型、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、手持计算机、上网本、个人数字助理(Personal Digital Assistant,PDA)、可穿戴电子设备、智能手表等设备。本申请对电子设备的具体形式不做特殊限定。
可以理解的是,本实施例示意的结构并不构成对电子设备的具体限定。在另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器是电子设备的神经中枢和指挥中心,控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
显示屏用于显示图像,视频、一系列图形用户界面(graphical user interface,GUI)等。
存储器可以用于存储计算机可执行程序代码,该可执行程序代码可以包括操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。该可执行程序代码包括指令,处理器通过运行存储在存储器的指令,从而使电子设备执行各种功能应用以及数据处理。例如,在本申请中,处理器通过运行存储器中存储的指令,使得电子设备执行本申请提供的特征选择方法和应用程序预测方法。
电子设备的操作系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明电子设备的软件结构。其中,本申请提供的特征选择方法和应用程序预测方法还可以应用于基于其他类型的操作系统的电子设备中,此处不再一一赘述。
图2是本申请实施例的电子设备的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。以Android系统为例,在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层(Application,APP),应用程序框架层(Framework),系统库,以及系统内核层(Kernel)。
其中,图2仅示出了与本申请的特征选择方法和应用程序预测方法相关的软件层所包含的模块。
应用程序层可以包括一系列应用程序包。
应用程序框架层(Framework)为应用程序层的应用程序提供应用编程接口(Application programming interface,API)和编程框架,也可以称为Service层。应用程序框架层包括一些预先定义的函数。
在本申请中,如图2所示,应用程序框架层可以包括数据采集模块、数据保存模块、样本构造模块、特征筛选模块、模型训练模块、预测模块和系统进程管理模块。
数据采集模块和数据保存模块作为感知模块。数据采集模块用于感知应用程序的运行状态,如应用打开/退出、前后台切换、安装/卸载等事件。
数据保存模块,用于保存用户开启、关闭APP的时间,即APP启动时刻、APP关闭时刻。
样本构造模块,用于基于历史APP序列构造每个APP对应的样本,并为每个样本按照预设标签方案构造标签。
特征筛选模块,用于提取样本构造模块构造的每个样本的特征,并筛选出稳定且重要的特征提供给模型训练模块。
模型训练模块,用于基于构造的全部样本对应的筛选出的特征,对排序算法模型进行训练得到APP预测模型。
预测模块,用于检测到APP预测事件后,利用APP预测模型进行预测得到预测APP的序列,并向系统进程管理模块传输该预测结果。
其中,APP预测事件的触发时机可以包括如下几种:
(1)当某个APP被打开时,触发APP预测事件;
(2)当从某个APP的界面返回系统桌面时,触发APP预测事件;
(3)当检测到屏幕解锁操作时,触发APP预测事件。
APP预测事件的触发时机可以根据实际需求设置,除上述三种触发时机外,还包括其他触发时机,例如,按照预设时间间隔触发APP预测事件等,此处不再一一详述。
在一种场景下,当用户打开该应用程序时,电子设备可以直接展示该应用程序的UI界面。
在另一种场景下,电子设备可以在悬浮球内展示预加载的应用程序的图标。进一步,用户点击悬浮球内展示的图标,可以直接展示该应用程序的UI界面。
系统进程管理模块,用于将预测APP序列中的至少一个APP的启动资源加载至系统内存,这样,当用户打开该APP时,因为在打开该APP之前已经提前完成该APP的资源加载过程,所以用户打开该APP时,能够直接展示该APP的UI界面,实现用户零等待。
实施例一
本实施例将详细介绍,在电子设备无法直观展示智能预加载的应用程序的场景下,应用程序的预测过程以及预加载过程。
首先,结合图3~图8说明在APP预测事件对应的不同触发时机下,UI界面的变化过程。
(1)APP被打开时触发APP预测事件
例如,如图3所示,用户点击微信APP的图标后,展示微信APP的UI界面,与此同时,点击微信APP图标的操作触发APP预测事件。如预测出用户接下来可能会打开视频APP,电子设备的后台智能加载视频APP对应的启动资源,这样,当用户打开视频APP时,即如图3中的(3)所示的点击视频APP的图标的操作,显示屏直接展示视频APP的UI界面,如图3中的(4)所示,从而实现智能预加载应用程序,在用户打开该应用程序之前就完成该应用程序的启动资源预加载过程,将用户等待该应用程序启动的时间降至零,提高了用户体验。
此外,在用户点击微信APP的图标之前,电子设备的后台无运行的应用程序,可见,视频APP是在打开微信APP之后后台智能预加载的应用程序。
如图4所示,在没有APP预测及APP预加载的方案中,用户点击视频APP的图标,显示屏显示等待视频APP启动的界面,视频APP的启动资源加载完成后,显示视频APP的UI界面。
与图4所示的方案相比,图3所示的打开视频APP的过程,节省了等待视频APP加载的时间,即,用户等待APP启动时间降至零,提高了用户体验。
此外,在一些实施例中,系统后台可以直接预加载用户上一次退出视频APP时对应的页面资源,此种情况下,如图3中的(4)所示,可以直接展示用户上一次观看的视频对应的播放界面。
在其他实施例中,系统后台预加载某一APP对应的首页的页面资源。预加载APP的页面资源可以根据用户的需求设置,本申请对此不做限定。
(2)返回系统桌面时,触发APP预测事件
如图5中的(1)所示,当用户关闭正在使用的应用程序返回系统桌面时,触发APP预测事件,预测出用户接下来会打开视频APP,并在系统后台加载视频APP对应的启动资源。如图5中的(2)所示,当用户点击视频APP图标时,显示屏直接显示该视频APP的UI界面。
与图6所示的不具备APP预测和预加载的情况相比,图5所示的过程,在用户打开视频APP之前,已经预加载了视频APP的启动资源,因此,用户打开视频APP时,能够直接展示该视频APP的UI界面,用户无需等待视频APP加载启动资源。
(3)检测到屏幕解锁操作时,触发APP预测事件
当用户解锁屏幕时(如图7中的(1)所示的解锁操作),预测出用户接下来会打开视频APP,并在系统后台智能预加载视频APP的启动资源。如图7中的(2)所示,当用户点击视频APP的图标时,直接展示视频APP的UI界面,如图7中的(3)所示。
与图8所示的不具备APP预测和预加载的情况相比,图7所示过程,节省了用户等待视频APP加载启动资源的时间,将用户等待APP启动的时间降至零,提高了用户体验。
由上述内容可知,减少特征数量并提高特征的准确率,提高APP预测模型的准确率,进而提高预测结果的准确率,准确预测出用户在未来一段时间内可能会打开的APP或服务,并提前将开启该APP或服务所需的资源加载至系统内存中,使用户开启应用程序时实现零等待。
下面先结合图9简单介绍特征选择方法,如图9所示,该方法可以包括以下步骤:
S110,提取样本集的初始特征。
针对样本集中的每个样本,提取初始特征,提取的初始特征数量可能较多,而且,可能存在与类别不相关的特征后冗余特征。
S120,计算每个初始特征与类别标签之间的最大信息系数,记为MIC值。
在一些实施例中,可以利用特征与类别标签之间的MIC值来表征特征在原始类别标签(即,正确的标签)下的重要程度,其中,MIC值越大表明该特征在正确的标签下越重要,MIC值越小表明该特征在正确的标签下越不重要。
利用最大信息系数计算公式(如下文的公式(1))计算出每个初始特征与类别标签之间的MIC值,每个初始特征对应一个MIC值。
S130,对类别标签对应的向量进行多次随机shuffle,得到多个shuffle标签。
随机shuffle算法,即随机洗牌算法,在本申请实施例中用来将标签向量随机打乱,从而使特征对应的类别标签不匹配,即产生错误的类别标签。对于一个初始特征而言,对标签向量进行一次随机shuffle可以获得一个错误的类别标签,若获得多个错误的类别标签,则进行多次随机shuffle。
S140,分别计算每个初始特征与各个shuffle标签之间的最大信息系数,记为MIC"值。
若对标签进行n次随机shuffle,得到n个shuffle标签。针对每个shuffle标签,利用最大信息系数计算公式计算每个初始特征与该shuffle标签之间的MIC值,即MIC"值,即每个初始特征对应n个MIC"值。
S150,获取每个初始特征对应的MIC值及各个MIC"值之间的偏离度。
一个稳定且重要的特征一定在正确的类别标签下的很重要,而打乱标签后,该特征的重要性会变差;反之,如果某个特征在正确的类别标签下的重要性表现一般,但打乱标签后,该特征的重要性反而上升或未变,则表明该特征可能是不相关特征或冗余特征。
偏离度表征一个特征在正确的类别标签下的重要性与其在打乱后的类别标签下的重要性之间的偏离程度,偏离度越大表明该特征是稳定且重要的特征,反之,偏离度越小表明该特征是无用的特征。
在一些实施例中,针对每个初始特征,从该初始特征对应的各个MIC"值中选取中位数,计算该初始特征的MIC值与MIC"值的中位数之间的偏离度,若提取出M个初始特征,则获得M个偏离度。
S160,选取偏离度大于预设阈值的特征。
预设阈值可以根据实际情况确定。基于每个初始特征对应的偏离度,从中选取偏离度大于预设阈值的特征作为最终使用的特征。
由上述内容可知,利用本实施例提供的特征选择方法,减少了特征数量,加快了模型运行速度,进而降低了模型训练过程的功耗。而且,与通过树模型获得特征重要性的方案相比,该方案直接基于特征与类别标签之间的MIC值来衡量特征的重要性,无需针对每次随机shuffle训练树模型,缩短了特征选择过程的耗时,因此提高了效率。而且,利用该方案减少APP预测模型的复杂度,进而减少APP预测模型占用的系统内存。
进一步,该方案只对属于同一类别的查询APP对应的不同样本集之间进行随机shuffle,避免随机shuffle后的标签类别与正确标签相差太远而无法筛选出稳定且重要特征的情况,因此,该方案提高了最终选择的特征的准确率,从而提高了模型的准确率,进而提高了模型输出结果的准确率。进一步地,提高预测APP序列的准确率后,预加载预测APP序列中的至少两个APP,当用户打开预加载的APP时,可以直接进入该APP的UI界面,实现用户零等待,从而提高了用户体验。
下面以APP预测模型为例详细介绍特征选择过程,如图10所示,为本申请实施例提供的一种APP预测方法的时序图,该方法应用于图1所示的电子设备中,该方法可以包括以下步骤:
S210,数据采集模块感知APP的运行状态,并将APP的时间信息发送至数据保存模块。
当用户打开、退出(即关闭)、前/后台切换、安装、卸载APP时,产生相应的事件,如APP开启事件、APP退出事件、APP切后台事件等,数据采集模块通过感知此类事件感知APP的运行状态。
例如,当感知到某一APP被打开或退出的事件后,记录该APP的开启时间、关闭时间并传递至数据保存模块进行保存。数据保存模块按照时间顺序记录用户使用每个APP的时间信息。
例如,历史APP序列为{APP1、APP2、APP3、……、APPN},其中,1~N表示APP序列中的APP在时间轴上的排序,即按用户的使用时间先后顺序记录的APP序列。
用户可能在一天内多次使用同一款APP,则该APP在序列中出现多次,即该序列中不同排序位置的APP可能表示同一款APP。例如,用户在一天内的3个不同时间点都打开了微信APP,则微信APP会在这一天的APP序列中出现3次。
S220,样本构造模块从数据保存模块中,获取历史时间段内的APP序列,即历史APP序列。
历史时间段可以根据实际需求选取,例如,最近一个月,或最近20天,或最近两周内。
历史APP序列包括用户在该历史时间段内使用过的所有APP,以及每个APP对应的时间信息,如,历史时间段是最近一个月,则历史APP序列中包括用户在最近一个月内每一天使用的所有APP,以及对应的时间信息。而且,历史APP序列中的APP按开启时间先后顺序排列。
例如,用户某一天上午使用了5个APP,具体的,7:00打开了APP1,7:30打开了APP2,9:00打开了APP3,11:00打开了APP4,11:30打开了APP5,则按照这5个APP的开启时间由早至晚的顺序排列得到的APP序列为{APP1,APP2,APP3,APP4,APP5}。为了方便描述,该APP序列示例仅示出了APP名称,该APP序列还包括每个APP的开启时间和关闭时间,其中,开启时间是指用户打开该APP的时刻,关闭时间是指用户关闭该APP(如退出或切换至后台)的时刻。
S230,样本构造模块对历史APP序列中的每个APP构造相应的样本及对应的标签。
为了预测出一个APP打开之后的预设时长内可能打开的TopN个APP,使用排序算法模型能够预测得到具有一定顺序关系的APP序列。
使用排序算法模型时,样本采用query-doc对形式,即每条样本包括一个queryAPP和一个doc APP,其中,query APP是指查询APP,即APP预测触发事件对应的APP,doc APP是候选APP,即在查询APP启动后的预设时长内可能打开的APP。
因为一个query APP需要预测出包含多个APP的预测APP序列,所以在构造样本时,针对一个query APP构造多个样本。而且,同一query APP对应的样本集包括正样本和负样本,正样本是打开该query APP之后的预设时长内使用过的APP,负样本是打开该query APP之后的预设时长内未使用的APP。
机器学习算法可以学习大量样本中的特征,如果APP的样本特别少可能无法学习到此类样本的特征,因此,选取电子设备中经常使用的APP作为候选APP。例如,在一些实施例中,可以从当前电子设备中选取使用频率高于预设频率值的APP作为候选APP。仅利用候选APP的使用数据构造样本,预测出的预测APP序列是候选APP的子集。
针对原始历史APP序列,剔除APP序列中非候选APP(即,不属于候选APP范畴的APP)的APP使用数据,得到历史APP序列。
对于历史APP序列中的任一APP,从该序列中选取在该任一APP打开后额定预设时长内打开的所有APP,构造该任一APP的正样本,剩余的候选APP用来构造该任一APP的负样本。例如,共选取L个候选APP,且历史APP序列包括N个APP使用记录数据,基于这N个APP中的每个APP分别构造L条样本,总共L*N条样本。
根据不同的需求场景设置每个样本的标签,例如,某些场景下希望未来预设时长内越先打开的APP排序越靠前,而有些场景则希望未来预设时长内打开次数越多的APP排序越靠前等等,为了满足不同场景的需求,可以根据实际场景需求设计不同的标签设置规则。
S240,特征筛选模块提取样本集的初始特征。
在APP预测模型采用排序算法模型的场景下,样本采用query-doc对形式,即一条样本包括一个query APP和一个doc APP,从query APP的信息中提取的特征,记为query初始特征,从doc APP的信息中提取的特征,记为doc初始特征。
其中,query APP的信息包括该query APP及其历史APP对应的信息(包括APP的信息及打开/关闭时间信息)。doc APP的信息包括该doc APP及其历史APP的信息。历史APP是指在某一APP被打开之前的预设时间段内被打开的APP。
进一步,针对提取的所有query初始特征选取稳定且重要的特征保留下来,剔除无用的特征;以及,针对提取的所有doc初始特征,剔除无用的特征,选取稳定且重要的特征保留下来。
S250,特征筛选模块分别计算每个初始特征与原始类别标签之间MIC值。
MIC(maximal information coefficient),即最大信息系数,用于衡量两个变量(特征与标签)之间的关联程度,能够探索特征与标签之间线性或非线性的关联,而且,能够同时用于类别型和数值型的变量。
在一些实施例中,将提取得到的初始特征记为X向量,其中,X可以是多维的矩阵,第i个初始特征可以用xi表示。类别标签记为Y向量,Y可以是1*n维的矩阵。
MIC基本原理是针对两个变量xi和Y之间的关系离散在二维空间中,并且使用散点图来表示,将当前二维空间在x,Y方向分别划分为一定的区间数,然后查看当前的散点在各个方格中落入的情况,即计算联合概率。其中,MIC值的计算公式如下:
公式(1)中的I(xi;Y)表示xi和Y这两个变量之间的互信息,其计算公式如(2)所示。a,b是x,Y方向上的划分格子的个数,本质上就是网格分布,B是变量,根据数据量的大小设置,如可以设置为数据量的0.6次方左右。
利用公式(1)和(2)分别计算每个query初始特征与原始标签之间的MIC值,以及,每个doc初始特征与原始标签之间的MIC值。
如图11所示,分别计算标签与query初始特征、doc初始特征之间的MIC值。
例如,若提取O个query初始特征,则针对每个query初始特征,利用上述的MIC计算公式计算该query初始特征与原始类别标签之间的MICqi值,其中,i表示第i个query初始特征,1≤i≤O。
同理,若取得到P个doc初始特征,则针对第i个doc初始特征,利用上述的MIC计算公式计算该doc初始特征与原始类别标签之间的MICdi值,1≤i≤P。
例如,以历史APP序列包括N个APP使用记录,构造包括L*N条样本的样本集为例,若特征矩阵为m*n的矩阵,则一个初始特征可以是m*n的特征矩阵中的列向量,其中,一个初始特征可以包括一个或多个列向量,本文对此不做限制。
S260,特征筛选模块对同一类别的不同APP所对应的样本集的标签向量进行随机shuffle,得到shuffle标签。
随机shuffle算法用于将标签向量随机打算,从而获得不正确的标签。进而获取每个初始特征在不正确标签下的特征重要性,如该特征重要性可以利用初始特征与不正确标签之间的MIC值表征。
在进行随机shuffle时,将同一query APP对应的所有样本对应的标签作为一个整体,与其它query APP对应样本的标签进行shuffle。
在一些实施例中,考虑到同一类别的不同query APP对应的预测APP序列之间的关联度,大于不同类别的不同query APP的预测APP序列,因此,在对标签进行随机shuffle时,只对同一类别的不同query APP对应的标签进行随机shuffle,从而避免随机shuffle后的标签类别与正确标签相差太远而无法筛选出稳定且重要特征的情况。
例如,query app1、query app2和query app3属于同一类别,如即时通讯类APP,则这三个APP对应的原始标签进行随机shuffle。如表1所示,为原始标签及进行随机shuffle后得到的shuffle标签。
如表1所示,样本集1是query app1对应的样本,样本集2是query app2对应的样本,样本集3是query app3对应的样本。
原始label表示各样本集对应的原始标签,shuffle label1表示进行第一次随机shuffle后得到的shuffle标签,shuffle label2表示第二次随机shuffle后得到的shuffle标签。
如表1所示,query app1对应的shuffle label1是query app2对应的原始label,shuffle label2是query app3对应的原始label。
query app2对应的shuffle label1是query app3对应的原始label,shufflelabel2是query app1对应的原始label。
query app3对应的shuffle label1是query app1对应的原始label,shufflelabel2是query app2对应的原始label。
表1
S270,特征筛选模块分别计算每个初始特征与各个shuffle标签之间的MIC"值。
同理,可以利用MIC值表征特征在不正确的标签下的重要程度,MIC值越大表明该特征在不正确标签下越重要,反之,MIC值越小,表明该特征在不正确标签下越不重要。
利用上述的MIC计算公式计算每个query初始特征与一个shuffle标签之间的MIC值,记为MICqij"值,其中,下标中的i表示第i个shuffle标签,j表示第j个query初始特征。
同理,计算每个doc初始特征与一个shuffle标签之间的MIC值,记为MICdij"值。
S280,特征筛选模块分别计算同一初始特征对应的MIC值与各个MIC"值之间的偏离度。
如果某个特征在正确的标签下表现的很重要,而在打乱标签后,重要性变差,则表明该特征是稳定且重要的特征;而如果某个特征在正确标签下表现一般,但打乱标签后重要性反而上升或未变,则表明该特征是无用特征。
在一些实施例中,可以利用同一特征对应的MIC值与MIC"值之间的偏离度,表征一个特征分别在正确标签下及不正确标签下表现的重要程度之间的差异。
任一初始特征对应的MIC值与MIC"值之间的偏离度的计算公式如下:
公式(3)中,scorei表示第i个初始特征对应的偏离度,MICi表示第i个初始特征与原始标签之间的MIC值,MICij"表示第i个初始特征与第j个shuffle标签之间的MIC值,其中,i、j均为正整数,且1≤j≤N,其中,N为shuffle标签的总数量。
γ是一个极小值,防止分母为0。median()是取中位数,采用中位数更能够代表各个MIC"值的数据中心,避免受异常值的影响。
针对每个query初始特征,计算得到一个scorei,同理,对于每个doc初始特征,计算得到一个scorei。
在一些实施例中,计算得到每个初始特征对应的偏离度后,可以利用正则化将偏离度的值域调整至预设范围内,如[0,1],从而避免不同特征对应的偏离度的值域不同,导致的无法准确确定偏离度阈值。
S290,特征筛选模块选取偏离度大于预设阈值的初始特征。
预设阈值可以根据实际需求自行设定,如0.5,若某个特征对应的偏离度大于或等于0.5,确定该特征是稳定且重要的特征,保留该特征。若某个特征对应的偏离度小于0.5,确定该特征是无用的特征,剔除该特征。
可以根据实际需求,分别设定query初始特征、doc初始特征对应的偏离度的预设阈值。并基于偏离度的预设阈值,选取稳定且重要的特征。进一步,还可以验证选取的特征准确性。
S2100,模型训练模块基于选取的特征,对排序算法模型进行训练,得到APP预测模型。
在一些实施例中,可以将样本集划分为训练集和验证集,训练集用于训练模型,验证集用于验证模型的准确性。例如,样本集中的90%为训练集,10%为验证集。
从样本集中各样本的信息中提取上述过程所选取的特征,其中,样本的信息包括样本中query app及doc app的APP信息及时间信息。进一步,将选取的特征输入至初始排序算法模型预测得到各样本中query app对应的预测APP序列,即得到各个样本对应的预测结果。
利用损失函数计算每个样本中query app对应的预测结果与该样本中的doc app之间的损失值。如果该损失值大于预设损失阈值,则调整排序算法模型中的模型参数,继续利用调整后的模型对训练集中的样本进行预测,并计算本次预测结果对应的损失值,如果损失值仍大于预设损失阈值,则继续重复上述过程,直到损失值小于或等于预设损失阈值,确定该排序算法模型在训练集的拟合效果良好。
进一步,验证该排序算法模型在验证集的预测结果是否满足预设收敛条件,如果满足预设收敛条件,则训练过程结束;如果不满足预设收敛条件,则继续调整模型参数,直到满足预设收敛指标,训练过程结束。
S2110,数据采集模块检测到APP预测事件被触发后,向预测模块发送该APP预测事件。
APP预测事件的触发条件可以根据实际需求设定,本申请不做特殊限制。
例如,当检测到用户的解锁操作后,触发APP预测事件,或者,当检测到某个APP被打开时,触发APP预测事件,或者,当检测到电子设备从某个APP的界面返回系统桌面时,触发APP预测事件,或者,还可以按预设时间间隔触发APP预测事件,此处不再一一详述。
S2120,预测模块响应该APP预测事件,利用训练得到的APP预测模型预测得到该APP预测事件对应的预测APP序列。
其中,预测APP序列是指在该APP预测事件之后的预设时长内可能打开的前预设数量个APP,如前5个APP,即Top5的APP序列。
预设时长可以根据实际需求设定,例如,10min,30min。不同预测时长对应的样本也不同,因此分别针对不同预测时长训练相应的机器学习算法。
在一些实施例中,预测模块解析APP预测事件获得本次预测事件对应的queryapp,如,query app可以是当前被打开的APP,或解锁事件等。
进一步,从该query app的信息中提取查询特征,并输入至APP预测模型预测得到与该query app相匹配的预测APP序列并输出。
其中,该query app的信息包括query APP及其历史APP对应的APP信息及时间信息。其中,历史APP包括在该query APP被打开之前的预设时间段内被打开的APP。即,输入至APP预测模型的特征包括当前的query APP及其历史APP的特征。
S2130,系统进程管理模块接收预测模块发送的预测APP序列,并预加载该预测APP序列中至少一个APP对应的资源。
得到预测APP序列后,可以预加载其中的一个或多个APP启动所需的资源。例如,可以只预加载下一个打开的APP的资源;又如,可以预加载多个APP的资源,如预测APP序列中的前N个APP的资源,如N可以实际需求确定,如3或5等。
本申请实施例对预加载的具体过程以及所加载的资源不做限定,例如,为APP分配相应的硬件资源,并基于该硬件资源加载启动该APP所需的相关数据,如,可以包括进程启动、服务启动、内存分配、文件内容读取、网络数据获取、UI界面渲染等。
下面结合一个示例进行说明,当检测到用户点击微信APP的图标时,触发APP预测事件,基于APP预测模型预测得到在点击微信APP后的预设时长内(如30min),可能打开的APP序列,如:知乎、百度、淘宝、支付宝、抖音。进一步,预加载知乎APP的启动资源,如果用户在未来30min内打开知乎APP,则显示屏直接展示知乎APP的UI界面,用户打开应用时实现零等待,提高了用户体验。
又如,系统进程管理模块预加载序列中前三个APP,即知乎、百度和淘宝的启动资源。这样,如果用户在未来30min内打开知乎、百度和淘宝中的任一个APP时,都无需等待启动资源加载,直接展示该APP的UI界面。
本实施例提供的应用程序预测方法,在特征选取阶段筛选出稳定且重要的特征,减少了特征数量,从而加快了模型运行速度,进而降低了模型占用的系统内存,以及模型训练过程的功耗。而且,提高了选取的特征的准确率,从而提高了模型的准确率,进而提高了模型输出结果(即预测APP序列)的准确率。进一步地,在预测得到可能启动的TopN个APP之后,对其中的前I个APP进行预加载,其中,1≤I≤N,即,在用户打开预加载的APP之前就已经将该APP启动所需的资源提前加载至内存,当用户启动该APP时,可以直接进入该APP的UI界面,实现用户零等待。
实施例二
本实施例将分别介绍在不同的触发时机下,电子设备可以通过悬浮球展示预加载的应用程序的UI变化过程,其中,应用程序的预测及预加载过程与实施例一的过程相同,此处不再赘述。
电子设备具有悬浮球显示功能,如图12所示,用户在设置页面将悬浮球设置为开启模式后,悬浮球程序将常驻内存,即悬浮球程序一直保留在内存中。
此种场景下,可以在悬浮球内显示接下来可能会打开且已完成预加载的应用程序的图标。
如图13所示,为用户打开一应用程序时触发APP预测事件这一触发时机对应的UI界面示意图。
悬浮球设置为开启模式后,悬浮球一直悬浮在当前显示的界面之上,如图13中的(1)所示,悬浮球在系统桌面之上显示。当用户点击应用程序的图标(如微信APP的图标)后,如图13中的(2)所示,UI面会跳转至微信APP的主界面。
与此同时,用户打开微信APP的操作会触发APP预测事件,预测出用户接下来最可能打开视频APP,并在系统后台预加载视频APP的启动资源,如图13中的(2)所示,在悬浮球内显示视频APP的图标,用户点击悬浮球内的视频APP的图标后,如图13中的(3)所示,UI界面从微信APP界面跳转至视频APP的预加载页面。同时,用户打开视频APP的操作同样会触发下一次的APP预测事件,并在悬浮球内展示预测并预加载的APP的图标,如音乐APP。
如图14所示,示出了返回系统桌面时触发APP预测事件这一触发时机下,电子设备的UI示意图,如图14中的(1)所示,当从某一应用返回系统桌面时,触发APP预测事件,悬浮球在系统桌面之上显示,因为此时未预测出下一个APP或者未完成预加载过程,所以悬浮球内未显示任何应用的图标。如图14中的(2)所示,预测出视频APP且完成预加载过程后,在悬浮球内显示视频APP的图标。用户点击悬浮球内的视频APP的图标后,如图14中的(3)所示,UI界面跳转至视频APP的界面。
此外,在用户解锁时触发APP预测事件的场景下,悬浮球的显示与图13和图14所示的场景相似,此处不再赘述。
在另一种场景下,预测和预加载的对象还可以是应用程序中的某个服务。例如,如图15所示,在用户使用某个应用程序并返回系统桌面后,触发APP预测事件,预测出通行APP中的“乘车码”服务是接下来打开的服务,如图15中的(2)所示,在悬浮球内展示“乘车码”服务,此时,如果用户点击悬浮球内的“乘车码”服务,UI界面从系统界面跳转至“乘车码”服务的页面,如图15中的(3)所示。
本实施例提供的应用程序预测方法,可以在悬浮球中显示已完成预加载的APP的信息,悬浮球悬浮于当前UI界面之前,因此,用户可以直接操作悬浮球显示的下一个APP的图标来启动下一个APP,无需从当前使用APP的UI界面退回到系统桌面,再点击下一个APP图标来启动下一个APP。因此,简化了用户打开下一个APP的操作,进一步提高了用户体验。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本实施例所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种应用于应用程序预测模型的特征选择方法,其特征在于,应用于电子设备,所述方法包括:
提取样本集的初始特征,所述样本集中的每个样本包括一个查询APP和一个候选APP,所述样本集的初始特征包括每个所述查询APP的初始特征,以及与所述查询APP对应的各个候选APP的初始特征;
获取每个所述初始特征与所述样本集的初始标签之间的第一最大信息系数,所述第一最大信息系数表征所述初始特征在所述初始标签下的重要程度;
对所述初始标签分别进行N次随机打乱,得到N个打乱后的错误标签,其中,N为大于1的正整数;
获取每个所述初始特征与任一个所述错误标签之间的第二最大信息系数,所述第二最大信息系数表征所述初始特征在所述错误标签下的重要程度;
获得同一所述初始特征对应的所述第一最大信息系数与各个所述第二最大信息系数之间的偏离度,所述偏离度表征每个所述初始特征分别在所述初始标签下与各个所述错误标签下的重要程度的差异;
基于所述查询APP的每个所述初始特征对应的所述偏离度,确定出所述查询APP对应的目标特征;
基于所述候选APP的每个所述初始特征对应的所述偏离度,确定出所述候选APP对应的目标特征;
其中,所述查询APP是APP预测触发事件对应的APP,所述候选APP是在所述查询APP启动后的预设时长内可能启动的APP。
2.根据权利要求1所述的方法,其特征在于,所述获得同一个所述初始特征对应的所述第一最大信息系数与各个所述第二最大信息系数之间的偏离度,包括:
对于任一初始特征,获取所述任一初始特征对应的各个所述第二最大信息系数的中位数;
获得所述任一初始特征对应的所述第一最大信息系数与所述第二最大信息系数的中位数之间的偏离度。
4.根据权利要求3所述的方法,其特征在于,所述获得所述任一初始特征对应的所述第一最大信息系数与所述第二最大信息系数的中位数之间的偏离度,还包括:
利用正则化算法将所述任一初始特征对应的所述偏离度对应的值域调整至预设范围内。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述基于所述查询APP的每个所述初始特征对应的所述偏离度,确定出所述查询APP对应的目标特征,包括:
从所述查询APP对应的各个初始特征中,选取所述偏离度大于所述查询APP对应的预设阈值的所述初始特征确定为所述查询APP的目标特征;
所述基于所述候选APP的每个所述初始特征对应的所述偏离度,确定出所述候选APP对应的目标特征,包括:
从所述候选APP对应的各个初始特征中,选取偏离度大于所述候选APP对应的预设阈值的初始特征确定为所述候选APP的目标特征。
6.根据权利要求1所述的方法,其特征在于,每一条查询APP使用记录对应一个包括M个样本的样本子集,所述M个样本中的查询APP相同、候选APP互不相同;
所述对所述初始标签分别进行N次随机打乱,得到N个打乱后的错误标签,包括:
针对属于同一类别的至少两个不同的所述查询APP,将各个所述查询APP对应的样本子集的标签之间进行N次随机打乱,得到所述样本集对应的N个打乱后的错误标签。
7.根据权利要求6所述的方法,其特征在于,包括:
从所述样本集中的所述查询APP对应的信息中提取得到第一类初始特征,以及,从所述样本集中的所述候选APP对应的信息中提取得到第二类初始特征;
获得每个第一类初始特征与所述样本集的初始标签之间的第一最大信息系数;
获得每个第二类初始特征与所述样本集的初始标签之间的第一最大信息系数;
对所述初始标签分别进行N次随机打乱,得到N个打乱后的错误标签;
获取所述每个第一类初始特征与任一所述错误标签之间的第二最大信息系数;
获得同一个所述第一类初始特征对应的所述第一最大信息系数与各个所述第二最大信息系数之间的偏离度;
基于每个所述第一类初始特征对应的所述偏离度,确定出第一类目标特征;
获取所述每个第二类初始特征与任一个所述错误标签之间的第二最大信息系数;
获得同一个所述第二类初始特征对应的所述第一最大信息系数与各个所述第二最大信息系数之间的偏离度;
基于每个所述第二类初始特征对应的所述偏离度,确定出第二类目标特征。
8.一种应用程序预测方法,其特征在于,应用于电子设备,所述方法包括:
获取历史APP序列,所述历史APP序列包括所述电子设备在历史时间段内的APP使用记录信息;
基于所述历史APP序列构造样本集;
提取所述样本集的初始特征;
获取每个所述初始特征与所述样本集的初始标签之间的第一最大信息系数,所述第一最大信息系数表征所述初始特征在所述初始标签下的重要程度;
对所述初始标签分别进行N次随机打乱,得到N个打乱后的错误标签,其中,N为大于1的正整数;
获取每个所述初始特征与任一个所述错误标签之间的第二最大信息系数,所述第二最大信息系数表征所述初始特征在所述错误标签下的重要程度;
获得同一所述初始特征对应的所述第一最大信息系数与各个所述第二最大信息系数之间的偏离度,所述偏离度表征每个所述初始特征分别在所述初始标签下与各个所述错误标签下的重要程度的差异;
基于每个所述初始特征对应的所述偏离度,确定出目标特征;
基于所述目标特征训练预设模型得到APP预测模型;
检测到APP预测事件后,基于所述APP预测模型预测得到所述APP预测事件对应的预测APP序列。
9.根据权利要求8所述的方法,其特征在于,所述检测到APP预测事件后,基于所述APP预测模型预测得到所述APP预测事件对应的预测APP序列,包括:
解析所述APP预测事件获得查询对象;
获取所述查询对象的信息,并从所述查询对象的信息中提取目标特征,其中,所述查询对象的信息包括在所述查询对象及对应的历史APP,所述历史APP包括在所述查询对象被打开之前的预设时间段内被打开的APP;
将所述目标特征输入所述APP预测模型进行预测,得到所述查询对象对应的所述预测APP序列。
10.根据权利要求9所述的方法,其特征在于,所述解析所述APP预测事件获得查询对象,包括:
解析所述APP预测事件为打开所述电子设备中安装的APP的事件;确定所述APP预测事件中被打开APP为所述查询对象;
或者,
解析所述APP预测事件为解锁事件,确定所述解锁事件为所述查询对象;
或者,
解析所述APP预测事件为返回系统桌面APP的事件,确定所述系统桌面APP为所述查询对象。
11.根据权利要求8至10任一项所述的方法,其特征在于,所述方法还包括:
从所述预测APP序列中选取至少一个APP,预加载所述至少一个APP的启动资源。
12.根据权利要求11所述的方法,其特征在于,所述APP的启动资源包括所述APP内的页面资源,所述页面资源包括所述APP的主页面的页面资源或所述APP中的微服务对应的页面资源。
13.根据权利要求11所述的方法,其特征在于,所述方法还包括:
检测到启动预加载APP的操作后,直接显示所述预加载APP的预加载的页面资源对应的界面。
14.根据权利要求11所述的方法,其特征在于,所述电子设备具有悬浮窗口显示功能,所述方法还包括:
调用悬浮窗口显示预加载APP的信息,所述悬浮窗口悬浮于所述电子设备的当前显示界面之上。
15.根据权利要求14所述的方法,其特征在于,所述调用悬浮窗口显示完成预加载的APP的信息,包括:
在所述悬浮窗口内显示预加载APP对应的图标;
或者,
在所述悬浮窗口内显示预加载APP中的微服务的信息。
16.根据权利要求13所述的方法,其特征在于,所述检测到启动预加载APP的操作包括:
若检测到对悬浮窗口内显示的预加载APP的图标的点击操作,确定检测到启动预加载APP的操作。
17.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储所述处理器可执行的指令,所述处理器执行所述指令使得所述电子设备执行如权利要求1-7任一项所述的特征选择方法;
或者,
所述处理器执行所述指令使得所述电子设备执行如权利要求8-16任一项所述的应用程序预测方法。
18.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被电子设备的处理器运行时,使得所述电子设备执行如权利要求1-7任一项所述的特征选择方法;
或者,
所述计算机程序被电子设备的处理器运行时,使得所述电子设备执行如权利要求8-16任一项所述的应用程序预测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111399979.0A CN115018081B (zh) | 2021-11-19 | 2021-11-19 | 特征选择方法、应用程序预测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111399979.0A CN115018081B (zh) | 2021-11-19 | 2021-11-19 | 特征选择方法、应用程序预测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115018081A CN115018081A (zh) | 2022-09-06 |
CN115018081B true CN115018081B (zh) | 2023-04-18 |
Family
ID=83064980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111399979.0A Active CN115018081B (zh) | 2021-11-19 | 2021-11-19 | 特征选择方法、应用程序预测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115018081B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116012849A (zh) * | 2023-01-19 | 2023-04-25 | 北京百度网讯科技有限公司 | 特征筛选方法、装置及电子设备 |
CN116596576B (zh) * | 2023-07-17 | 2024-04-16 | 深圳须弥云图空间科技有限公司 | 目标推荐方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078046A (zh) * | 2019-12-05 | 2020-04-28 | 北京集创北方科技股份有限公司 | 检测方法、装置及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595228B (zh) * | 2018-05-10 | 2021-03-12 | Oppo广东移动通信有限公司 | 应用程序预测模型建立方法、装置、存储介质及移动终端 |
CN111340121B (zh) * | 2020-02-28 | 2022-04-12 | 支付宝(杭州)信息技术有限公司 | 目标特征的确定方法及装置 |
CN113568368B (zh) * | 2021-07-30 | 2022-12-23 | 北京石油化工学院 | 一种工控数据特征重排序算法的自适应确定方法 |
-
2021
- 2021-11-19 CN CN202111399979.0A patent/CN115018081B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111078046A (zh) * | 2019-12-05 | 2020-04-28 | 北京集创北方科技股份有限公司 | 检测方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN115018081A (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10607137B2 (en) | Branch predictor selection management | |
CN115018081B (zh) | 特征选择方法、应用程序预测方法及装置 | |
Yadwadkar et al. | Wrangler: Predictable and faster jobs using fewer resources | |
US20240185130A1 (en) | Normalizing text attributes for machine learning models | |
TWI433035B (zh) | 按比例調整指令間隔以識別用於代表性指令追蹤的收集點 | |
CN107613022A (zh) | 内容推送方法、装置及计算机设备 | |
CN107678800B (zh) | 后台应用清理方法、装置、存储介质及电子设备 | |
US20180285108A1 (en) | Branch prediction using a perceptron-based branch prediction technique | |
CN111538852B (zh) | 多媒体资源处理方法、装置、存储介质及设备 | |
CN115016854B (zh) | 应用程序预测方法、电子设备及存储介质 | |
CN111589157B (zh) | Ai模型使用方法、设备及存储介质 | |
CN113568836B (zh) | 多时间序列的样本特征提取方法以应用其的软件检测方法 | |
JP2021033544A (ja) | 学習データの精練方法及び計算機システム | |
CN113055984B (zh) | 终端控制方法、装置、移动终端及存储介质 | |
CN116089477B (zh) | 分布式训练方法及系统 | |
CN113064660A (zh) | 设备控制方法、装置、电子设备及存储介质 | |
CN113010785A (zh) | 用户推荐方法及设备 | |
CN117475160A (zh) | 目标对象跟随方法、系统以及相关装置 | |
CN109658082B (zh) | 一种计费异常的识别方法及设备 | |
CN115238837A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
KR102413588B1 (ko) | 학습 데이터에 따른 객체 인식 모델 추천 방법, 시스템 및 컴퓨터 프로그램 | |
CN113743448B (zh) | 模型训练数据获取方法、模型训练方法和装置 | |
CN114021733A (zh) | 模型训练优化方法、装置、计算机设备及存储介质 | |
CN113127159B (zh) | 应用程序处理方法、装置、电子设备以及存储介质 | |
US20230088429A1 (en) | Processing device, processing method, and program |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |