当前位置: 首页 > 专利查询>中南大学专利>正文

基于带属性异构网络嵌入的APP启动加速方法技术

技术编号:24798936 阅读:101 留言:0更新日期:2020-07-07 20:57
本发明专利技术公开了一种基于带属性异构网络嵌入的APP启动加速方法,目的是对APP启动进行预测,根据预测得到的应用实现启动加速。技术方案是构建基于带属性的异构网络嵌入的应用启动加速系统,该系统由运行于移动终端上的数据处理模块、运行于云端的模型训练系统组成;数据处理模块由数据收集模块、数据预处理模块、数据上传模块、应用启动预测模块、应用启动加速模块、终端数据库组成;模型训练系统由应用记录存储模块、模型训练模块、模型交互模块以及云端数据库组成。应用启动加速系统使用带属性的异构网络嵌入的APP启动预测方法精确地预测下一个可能启动的应用,实现了提前创建应用进程并提前载入应用资源,减少用户等待应用启动的时间。

【技术实现步骤摘要】
基于带属性异构网络嵌入的APP启动加速方法
本专利技术涉及安卓(Android)系统中APP(即应用)启动加速领域,尤其涉及一种基于带属性异构网络嵌入的方法对APP启动进行预测以加速APP启动的方法。
技术介绍
在安卓系统中,一般的应用是由Activity(活动)、Service(服务)、ContentProvider(内容提供者)、Broadcast(广播)四大组件组成的,而在安卓系统中负责四大组件的启动、切换、调度及应用进程的管理和调度的是ActivityManagerService(AMS,活动管理服务进程)。AMS是安卓系统中最核心的服务之一,其职责与操作系统中的进程管理和调度模块相类似,应用的启动流程与它息息相关。图1为目前安卓系统应用启动逻辑关系图。应用层桌面应用显示各个APP的图标,在用户点击图标的触发下,获取相关应用的上下文以及构建的Intent(意图,安卓系统中的一种请求方式)向中间层ActivityManager(活动管理进程)发送应用启动请求。ActivityManager以Binder(安卓系统进程间通信方式之一)机制将启动请求提交给服务层的AMS处理,AMS执行权限检查、任务栈分配等工作后,使用Socket(套接字)内部进程通讯的方式调用系统进程Zygote(安卓系统上所有应用进程的父进程),孵化一个新的子进程并注册到SystemServer(安卓系统的核心进程之一)。最后AMS新建并初始化应用相关View(视图),显示活动进程。目前安卓系统应用应用启动流程是通过点击桌面上的图标实现的,具体包括以下步骤:第一步,应用接收用户点击APP图标的启动操作,通过Binder调用向AMS发送请求,为了安全认证和管理,请求包括Context和Intent,Context表明身份,Intent表明意图。第二步,AMS通过PackageManagerService(安装服务进程,负责管理应用安装、删除、启动等)解析Intent,使用容器类ResolveInfo(安卓系统中的一个类,是通过解析一个与IntentFilter相对应的intent得到的信息)保存解析出来的信息,包含四大组件Activity、Service、ContentProvider、Broadcast的信息。第三步,AMS进一步进行权限检查,新建一个保存Activity信息的数据结构ActivityRecord类,包括ProcessRecord类(表示Activity所属进程相关信息)、TaskRecord类(表示Activity所属task相关信息)、ActivityInfo类(表示Activity相关信息)、整型变量mActivityType(Activity类型,有普通应用类型、桌面类型、最近任务类型三种)、ActivityState类(表示Activity状态,有初始化、已恢复、正在暂停、已暂停、正在停止、已停止、结束、正在销毁、已销毁九种状态)、ApplicationInfo类(表示Activity所属应用相关信息)、ComponentName类(组件名)、字符串变量packageName(Activity所在包名)、字符串变量processName(Activity所属进程名称)、整型变量launchMode(启动模式)、整型变量userId(Activity所属用户ID)十一个变量,并通过它管理活动。第四步,AMS服务进程为活动分配任务栈。在安卓系统中使用任务栈的方式管理Activity,当一个Activity启动时,系统根据其配置或调用的方式,将Activity压入一个特定的栈中,系统处于运行状态。一个任务栈包含多个任务,而一个任务包含多个Activity。首先综合计算活动的启动模式;调用安卓系统中ActivityStarter类中的getReusableIntentActivity()函数查找是否有可以重用的ActivityRecord类(类表示的Activity不再执行),如果有可重用的ActivityRecord类,把原来类表示的Activity信息替换成当前启动的Activity的信息,如果没有可重用的ActivityRecord,寻找可以重用的TaskRecord类,如果没有可以重用的TaskRecord,新建一个TaskRecord类来存储任务栈的描述信息。TaskRecord类包括ActivityStack(当前所属的任务栈信息)、数组列表mActivities(当前所属任务栈中的所有Activity列表、整型变量taskId(当前所属任务栈的ID)、字符串affinity(任务栈中第一个Activity信息)、整型变量mCallingUid、字符串mCallingPackage(调用者的包名)六个变量。第五步,变更当前正在运行的Activity的状态,服务进程AMS调用安卓系统中ActivityStack类的startPausingLocked()方法通知APP进行暂停操作。然后通过ActivityStack类的activityPaused()方法通知AMS,AMS执行活动进程的恢复。第六步,AMS创建进程对应的实体ProcessRecord以记录活动进程,包括描述身份的数据、描述进程中组件的数据、描述进程状态的数据、和实际使用的物理内存相关的数据、和时间相关的数据、和进程崩溃相关的数据、和instrumentation组件相关的数据、电源信息和调试信息、31个状态值九类数据。然后AMS委托ZygoteProcess进程将所有启动参数都通过socket的写入流发送给服务进程Zygote(是安卓系统的第一个进程)。第七步,Zygote接收请求,孵化一个子进程。在安卓系统中,所有的应用程序进程及SystemServer进程都是由Zygote进程孵化出来的。第八步,初始化安卓系统中应用的运行环境Runtime,包括未捕捉异常、Java虚拟机的堆内存利用率等的设置,调用安卓应用进程的初始类ActivityThread,通知AMS进程启动完毕,并初始化主线程。第九步,服务进程AMS通过回调的方式将进程注册到SystemServer。这是为了保证身份的安全,防止非法进程注册到AMS。第十步,AMS验证进程启动成功后,通知APP创建Application(安卓框架的一个系统组件,存储应用的系统信息),初始化APP的上下文以及各种资源。第十一步,AMS遍历所有的任务栈,找出所有正在运行的、可见的应用进程,调用安卓系统中ActivityStackSupervisor类中realStartActivityLocked()方法开始一个活动的执行。第十二步,AMS调用ActivityThread类初始化窗口管理器WindowManagerGlobal类(安卓系统一个管理界面控件的类)以及相关显示资源,调用类加载器ClassCloader去加载对应的Activity对应的类并在内存中对Activity进行实例化。第十三步,初始化活动的窗口,新建相关的视图,向本文档来自技高网...

【技术保护点】
1.一种基于带属性异构网络嵌入的APP启动加速方法,其特征在于使用一种带属性异构网络嵌入的APP启动预测方法预测下一个可能启动的应用,利用安卓系统提供的各种服务进程实现应用的提前载入,具体包含如下步骤:/n第一步,构建基于带属性异构网络嵌入的应用启动加速系统,该系统由两层构成:第一层是运行于移动终端上的数据处理模块,第二层是运行于云端的模型训练系统;/n数据处理模块安装在移动终端,与移动终端中安卓系统的服务层进行交互,收集、存储应用使用相关记录,并对记录进行预处理操作后生成训练相关数据存储在移动终端,然后与云端模型训练系统交互,将训练相关数据发送给云端,从云端获取根据训练相关数据生成的应用启动预测模型实现应用启动预测及应用加速;数据处理模块由数据收集模块、数据预处理模块、数据上传模块、应用启动预测模块、应用启动加速模块、终端数据库组成;服务层是数据处理模块需要从安卓系统得到的相关服务,包括ActiveManager、ActiveManagerService、TelephonyManager、WiFiManager、BatteryService五个服务进程;/n终端数据库存储应用使用相关记录以及预处理之后的应用使用相关记录,包含三类表,一类存储应用使用相关记录,一类存储经过预处理之后的应用使用相关记录,最后一类存储应用启动预测模型相关信息;/n应用使用相关记录包括应用使用记录表、基站信息表、WiFi信息表、移动终端配置信息表四个表;应用使用记录表包含四个数据域,分别为应用使用记录标识ID、应用名称、应用启动时间戳、应用使用时长,其中:应用使用记录标识ID是表明应用使用记录的唯一标识;应用名称使用应用对应的安装包名称标识;应用启动时间戳记录应用启动的时间;应用使用时长是应用从启动到结束的时长;基站信息表包含两个数据域,分别为基站标识ID、基站信息获取时间戳,其中:基站标识ID是加密之后的基站ID;基站信息获取时间戳记录从移动终端获取基站信息时的时间;WiFi信息表包含四个域,分别为WiFi信息获取时间戳、服务集标识SSID、MAC地址BSSID、WiFi速率,其中:WiFi信息获取时间戳是从移动终端获取WiFi信息时的时间;服务集标识SSID以及MAC地址BSSID都是用来标记WiFi的标识;WiFi速率记录当前时间的网络速率;移动终端配置信息表包含五个域,分别为移动终端配置记录标识ID、移动终端电量、移动终端是否处于充电状态、移动终端是否已经充满电、配置信息获取时间戳,其中:移动终端配置记录标识ID是移动终端配置信息记录的唯一标识;移动终端电量表明当前移动终端电量的多少;移动终端是否处于充电状态说明移动终端是否正在充电;移动终端是否已经充满电表明移动终端是否电已充满;配置信息获取时间戳记录获取配置信息的时间;/n预处理之后的应用使用相关记录包含终端节点属性表、终端训练数据表两个表;终端节点属性表存储带属性的异构网络的节点的相关信息,带属性的异构网络包含时间、位置、应用三种节点,还包含时间与应用、位置与应用、前序应用与应用三种边关系;终端节点属性表包含四个域,分别为节点标识ID、节点名称、节点属性、节点类型;节点标识ID是节点在异构网络中的唯一标识,根据每一个节点名称生成;应用节点名称是应用使用记录表中的应用名称,节点类型使用数值1标记,节点属性使用应用类别对应的独热编码表示;时间节点名称使用hour of day标识,形式为YYYYMMDDHH,表示某年某月某日的某个小时,节点类型使用数值2标记,节点属性使用时间节点所在的星期几表示,表示为数值1到7;位置节点名称使用基站标识ID表示,同一个基站表示同一个位置,节点类型使用数值3标记,节点属性使用基站对应的独热编码表示;终端训练数据表中存储训练数据,即预处理之后的应用使用记录,包含四个域,分别为应用节点标识ID、时间节点标识ID、位置节点标识ID、前序应用节点标识ID,其中:应用节点标识ID、时间结点标识ID、位置节点标ID、前序应用节点标识ID均从终端节点属性表获得,前序应用节点表示使用当前应用之前的应用;/n终端数据库第三类表存储应用启动预测模型相关信息,从云端获取的应用启动预测模型以文件的形式存储在移动终端,使用终端模型索引表存储模型文件在移动终端的位置信息;终端模型索引表记录应用启动预测模型相关信息,包含三个域,分别为模型存储时间戳、模型文件名称、模型文件位置,其中:模型存储时间戳是移动终端存储从云端获取启动预测模型的时间;模型文件名称以“模型名称_时间戳”形式表示,模型名称指启动预测模型的命名;模型文件位置记录存储启动预测模型的文件在移动终端上的位置;/n云服务器上安装有模型训练系统,模型训练系统负责训练数据的接收与存储、启动预测模型的训练以及训练后的启动预测模型的下发...

【技术特征摘要】
1.一种基于带属性异构网络嵌入的APP启动加速方法,其特征在于使用一种带属性异构网络嵌入的APP启动预测方法预测下一个可能启动的应用,利用安卓系统提供的各种服务进程实现应用的提前载入,具体包含如下步骤:
第一步,构建基于带属性异构网络嵌入的应用启动加速系统,该系统由两层构成:第一层是运行于移动终端上的数据处理模块,第二层是运行于云端的模型训练系统;
数据处理模块安装在移动终端,与移动终端中安卓系统的服务层进行交互,收集、存储应用使用相关记录,并对记录进行预处理操作后生成训练相关数据存储在移动终端,然后与云端模型训练系统交互,将训练相关数据发送给云端,从云端获取根据训练相关数据生成的应用启动预测模型实现应用启动预测及应用加速;数据处理模块由数据收集模块、数据预处理模块、数据上传模块、应用启动预测模块、应用启动加速模块、终端数据库组成;服务层是数据处理模块需要从安卓系统得到的相关服务,包括ActiveManager、ActiveManagerService、TelephonyManager、WiFiManager、BatteryService五个服务进程;
终端数据库存储应用使用相关记录以及预处理之后的应用使用相关记录,包含三类表,一类存储应用使用相关记录,一类存储经过预处理之后的应用使用相关记录,最后一类存储应用启动预测模型相关信息;
应用使用相关记录包括应用使用记录表、基站信息表、WiFi信息表、移动终端配置信息表四个表;应用使用记录表包含四个数据域,分别为应用使用记录标识ID、应用名称、应用启动时间戳、应用使用时长,其中:应用使用记录标识ID是表明应用使用记录的唯一标识;应用名称使用应用对应的安装包名称标识;应用启动时间戳记录应用启动的时间;应用使用时长是应用从启动到结束的时长;基站信息表包含两个数据域,分别为基站标识ID、基站信息获取时间戳,其中:基站标识ID是加密之后的基站ID;基站信息获取时间戳记录从移动终端获取基站信息时的时间;WiFi信息表包含四个域,分别为WiFi信息获取时间戳、服务集标识SSID、MAC地址BSSID、WiFi速率,其中:WiFi信息获取时间戳是从移动终端获取WiFi信息时的时间;服务集标识SSID以及MAC地址BSSID都是用来标记WiFi的标识;WiFi速率记录当前时间的网络速率;移动终端配置信息表包含五个域,分别为移动终端配置记录标识ID、移动终端电量、移动终端是否处于充电状态、移动终端是否已经充满电、配置信息获取时间戳,其中:移动终端配置记录标识ID是移动终端配置信息记录的唯一标识;移动终端电量表明当前移动终端电量的多少;移动终端是否处于充电状态说明移动终端是否正在充电;移动终端是否已经充满电表明移动终端是否电已充满;配置信息获取时间戳记录获取配置信息的时间;
预处理之后的应用使用相关记录包含终端节点属性表、终端训练数据表两个表;终端节点属性表存储带属性的异构网络的节点的相关信息,带属性的异构网络包含时间、位置、应用三种节点,还包含时间与应用、位置与应用、前序应用与应用三种边关系;终端节点属性表包含四个域,分别为节点标识ID、节点名称、节点属性、节点类型;节点标识ID是节点在异构网络中的唯一标识,根据每一个节点名称生成;应用节点名称是应用使用记录表中的应用名称,节点类型使用数值1标记,节点属性使用应用类别对应的独热编码表示;时间节点名称使用hourofday标识,形式为YYYYMMDDHH,表示某年某月某日的某个小时,节点类型使用数值2标记,节点属性使用时间节点所在的星期几表示,表示为数值1到7;位置节点名称使用基站标识ID表示,同一个基站表示同一个位置,节点类型使用数值3标记,节点属性使用基站对应的独热编码表示;终端训练数据表中存储训练数据,即预处理之后的应用使用记录,包含四个域,分别为应用节点标识ID、时间节点标识ID、位置节点标识ID、前序应用节点标识ID,其中:应用节点标识ID、时间结点标识ID、位置节点标ID、前序应用节点标识ID均从终端节点属性表获得,前序应用节点表示使用当前应用之前的应用;
终端数据库第三类表存储应用启动预测模型相关信息,从云端获取的应用启动预测模型以文件的形式存储在移动终端,使用终端模型索引表存储模型文件在移动终端的位置信息;终端模型索引表记录应用启动预测模型相关信息,包含三个域,分别为模型存储时间戳、模型文件名称、模型文件位置,其中:模型存储时间戳是移动终端存储从云端获取启动预测模型的时间;模型文件名称以“模型名称_时间戳”形式表示,模型名称指启动预测模型的命名;模型文件位置记录存储启动预测模型的文件在移动终端上的位置;
云服务器上安装有模型训练系统,模型训练系统负责训练数据的接收与存储、启动预测模型的训练以及训练后的启动预测模型的下发,由应用记录存储模块、模型训练模块、模型交互模块以及云端数据库组成;
云端数据库包含云端训练数据表、云端节点属性表、云端模型索引表三个表;云端训练数据表与终端数据库中的终端训练数据表对应,存储终端用户上传到云端的训练数据,包含五个域,分别为用户标识ID、应用节点标识ID、时间节点标识ID、位置节点标识ID、前序应用节点标识ID,其中:用户标识ID是移动终端对应用户的唯一标识;应用节点标识ID、时间结点标识ID、位置节点标ID、前序应用标识ID与终端节点属性表中的相同;云端节点属性表包含五个域,分别为用户标识ID、节点标识ID、节点名称、节点属性、节点类型,其中用户标识ID与云端训练数据表中的相同,节点标识ID、节点名称、节点属性、节点类型与终端节点属性表中的相同;云端模型索引表记录云端生成的启动预测模型对应的索引信息,包含四个域,分别为用户标识ID、模型创建时间戳、模型存储文件名称、模型存储文件位置,其中:用户标识ID与云端训练数据表中的相同;模型创建时间戳是云端生成启动预测模型的时间;模型存储文件名称以“用户标识ID_模型名称_时间戳”形式表示,其中的“模型名称_时间戳”与终端模型索引表中的相同;模型文件位置记录存储启动预测模型的文件在云端的位置;
数据收集模块与终端数据库、服务进程ActivityManager、服务进程TelephonyManager、服务进程WiFiManager、服务进程BatteryService相连;数据收集模块利用这4个服务进程从移动终端收集用户的应用使用记录,包括应用启动时间戳、应用使用时长、当前使用的基站信息、当前连接的WiFi信息、设备配置信息,并将收集的信息分别存储到终端数据库的应用使用记录表、基站信息表、WiFi信息表、移动设备配置信息表;
数据预处理模块与数据上传模块、终端数据库相连,数据预处理模块对从终端数据库中获取的应用使用记录表、基站信息表读取的数据进行预处理,生成与启动预测模型匹配的终端节点属性表、终端训练数据表,向数据上传模块发送第一数据上传请求,第一数据上传请求中包含终端训练数据表中的N条记录、终端节点属性表中的M条记录,N和M均为正整数;
数据上传模块与数据预处理模块、云端的应用记录存储模块相连,用于向云端上传与启动预测模型匹配的训练数据以及节点属性信息;数据上传模块从数据预处理模块接收数据上传请求,从中提取训练数据以及节点属性信息,获取用户标识ID,向云端的应用记录存储模块发送第二数据上传请求,第二数据上传请求中包含用户标识ID、终端训练数据表中的N条记录、终端节点属性表中的M条记录;
应用记录存储模块与数据上传模块、云端数据库相连,用于接收移动终端上传的训练数据、节点属性并存储到云端数据库中;应用记录存储模块接收数据上传模块的第二数据上传请求,从第二数据上传请求中提取用户标识ID、训练数据、节点属性,将训练数据存入云端数据库的云端训练数据表,将节点属性存入云端节点属性表;
模型训练模块与云端数据库相连,从云端数据库的云端训练数据表获取训练数据,从云端节点属性表获取节点属性,训练并存储应用启动预测模型,应用启动预测模型由带属性异构网络嵌入模型以及神经网络模型构成;云端预设有一个“云端模型文件夹”来存储模型文件;模型训练模块从云端训练数据表获取用户对应的训练数据,将云端训练数据表中每一条记录拆分成三个节点对,根据节点对表示的信息构建带属性的异构网络,并计算节点对出现的频率作为异构网络中边的权重;拆解异构网络生成训练样本对,从云端节点属性表中根据节点标识ID获取训练样本对对应的节点属性信息;构建一个带属性异构网络嵌入模型,并采用拆解得到的每一个训练样本对对带属性异构网络嵌入模型进行训练;将带属性异构网络嵌入模型以文件的形式存储在“云端模型文件夹”中,将带属性异构网络嵌入模型的索引信息存储到云端模型索引表;构建一个单隐层的神经网络模型,根据带属性异构网络嵌入方法得到云端训练数据表中的每一条记录对应的时间、位置、前序应用节点对应的嵌入表示向量,融合三个嵌入表示向量作为输入训练神经网络模型,将神经网络模型以文件的形式存储在“云端模型文件夹”中,将神经网络模型的索引信息存储到云端模型索引表;
模型交互模块与云端数据库、应用启动预测模块相连,模型交互模块从应用启动预测模块接收参数为用户标识ID的应用启动预测模型请求,根据用户标识ID从云端数据库的云端模型索引表中获取应用启动预测模型即带属性异构网络嵌入模型以及神经网络模型的索引信息,提取两个模型存储文件位置信息,并将两个模型文件发送给应用启动预测模块;
应用启动预测模块与模型交互模块、终端数据库、应用启动加速模块、服务层相连;应用启动预测模块在移动终端预设有“终端模型文件夹”来存储模型文件;应用启动预测模块向模型交互模块发送应用启动预测模型请求,接收来自模型交互模块的应用启动预测模型文件,构建当前时间、位置、前序应用节点及对应属性信息,采用带属性异构网络嵌入模型得到三个节点对应的嵌入表示向量,采用神经网络模型对串联三个节点对应的嵌入表示向量进行处理得到概率向量,概率向量中的每一个值代表对应应用可能是下一个启动应用的概率,应用启动预测模块将预测结果即根据概率向量提取最大概率值对应的应用名称传递给应用启动加速模块;
应用启动加速模块与应用启动预测模块、服务进程ActiveManagerService相连,应用启动加速模块接收应用启动预测模块的预测结果,向服务进程ActiveManagerService发送Intent请求,请求提前载入应用;
第二步,基于带属性异构网络嵌入的应用启动加速系统为每个用户构建应用启动预测模型,即构建带属性异构网络嵌入模型以及神经网络模型,方法为:
2.1数据收集模块利用安卓系统提供的服务进程从移动终端收集用户的应用使用记录,包括应用启动时间戳、应用使用时长、当前使用的基站信息、当前连接的WiFi信息、设备配置信息,并将收集的信息分别存储到终端数据库的应用使用记录表、基站信息表、WiFi信息表、移动设备配置信息表;
2.2数据预处理模块从终端数据库的应用使用记录表读取用户的应用名称、应用启动时间戳、应用使用时长,从基站信息表读取基站标识ID、基站信息获取时间戳,从移动终端配置信息表中读取移动设备电量、移动终端是否处于充电状态、移动终端是否已经充满电、配置信息获取时间戳,对读取的信息进行预处理,提取出应用、时间、位置三类上下文信息,将这三类信息作为异构网络中的三类节点,构建三类节点对应的节点属性信息,生成终端节点属性表;继续解析从终端数据库中读取出来的数据,提取出应用节点、时间节点、位置节点、前序应用节点组成一条训练数据;根据所有训练数据、终端节点属性表生成终端训练数据表,并将包含终端训练数据表中所有记录、终端节点属性表中所有记录的第一数据上传请求发送给数据上传模块;
2.3数据上传模块接收来自数据预处理模块的第一数据上传请求,获取终端对应用户的用户标识ID,将用户标识ID和第一数据上传请求拼成第二数据上传请求,将第二数据上传请求发送给云端应用记录存储模块。
2.4云端应用记录存储模块接收来自终端数据上传模块的第二数据上传请求,从第二数据上传请求中提取出用户标识ID、训练数据、节点属性,将训练数据存入云端训练数据表中,将节点属性存入云端节点属性表中;
2.5令云端训练数据表中不同用户的数量为U;
2.6初始化变量u=1;
2.7模型训练模块将训练数据转换成为一个带属性的异构网络,根据三类边关系将带属性的异构网络划分为三个子网络,利用节点对及其对应的属性信息分别训练这三个子网络,通过这三个子网络得到时间节点、位置节点、前序应用节点的有效嵌入表示向量,构建一个带属性异构网络嵌入模型,方法为:
2.7.1根据第u个用户标识ID从云端节点属性表提取出所有节点标识ID,每个节点标识ID分为应用节点、时间节点、位置节点三类,将这三类节点作为异构网络中的节点;根据第u个用户标识ID从云端训练数据表获取相应用户的训练数据,将每条训练数据拆分成三个节点对,分别为(应用节点标识ID,时间节点标识ID,1)、(应用节点标识ID,位置节点标识ID,2)、(应用节点标识ID,前序应用节点标识ID,3),其中数值1、2、3表示的是节点对类型,也是边类型;其中:节点对(应用节点标识ID,时间节点标识ID,1)表示在时间节点标识ID表示的时间使用过应用节点标识ID表示的应用,在异构网络中连接该应用节点与时间节点;节点对(应用节点标识ID,位置节点标识ID,2)表示在位置节点标识ID表示的位置使用过应用节点标识ID表示的应用,在异构网络中连接该应用节点与位置节点;节点对(应用节点标识ID,前序应用节点标识ID,3)表示在使用应用节点标识ID表示的应用之前使用的前序应用节点标识ID表示的应用,在异构网络中连接该应用节点与前序应用节点;同时记录相同节点对的出现频次作为边的权重;根据上述操作将训练数据转化成了一个异构网络,包括应用节点、时间节点、位置节点三类节点,以及应用节点与时间节点、应用节点与位置节点、应用节点与前序应用节点三类边连接关系,根据三种边连接关系将异构网络划分为三个子网络;在数据转换成异构网络的过程中,分别记录异构网络中三个子网络的节点,将子网络中所有节点标识ID分别存储在集合NS1、NS2、NS3中,分别记录集合中节点个数为M1、M2、M3,下标1、2、3分别对应边类型;
2.7.2采用随机游走算法生成链路:根据2.7.1步生成的异构网络,依据三种边连接关系划分为三个子网络,分别以异构网络中三个子网络中的每一个节点为开始节点,生成第一链路列表LIST1、第二链路列表LIST2、第三链路列表LIST3,LISTr存放边类型为r的子网络中NSr个节点生成的NSr×20条长度为10的链路,1≤r≤3;
2.7.3采用skip-gram方法生成训练样本对,将训练样本对存入临时文件data_train.txt中;
2.7.4采用带属性的网络嵌入方法即GATNE方法利用训练样本对和根据节点标识ID从云端节点属性表获取的对应节点属性值构建一个带属性异构网络嵌入模型,为网络中每一个节点都生成嵌入表示向量;如公式一所示,在边类型为r的子网络中,节点i的嵌入表示为向量υi,r:



其中:xi是节点i的属性值;hz(xi)是一个变换函数,其作用是计算xi在节点的嵌入表示中的影响;根据自注意力机制,ai,r是作为在边类型为r的子网络中的节点i的边嵌入向量的权重,根据公式计算得到,实际上是一个简单前馈神经网络,Wr是转化矩阵,需要模型训练优化得到,Ui在自注意力机制中表示隐藏层状态,tanh()是WrUi的激活函数,softmax()是一个归一化函数,将在负无穷到正无穷上的结果转换为0-1概率;Ui是节点i在三个子网络中的边嵌入向量拼接成的一个向量,表示节点i与其邻居节点的关系,每个节点在每一个子网络中都聚合固定数量邻居节点的属性均值作为该节点在该子网络中的边嵌入向量,Ui由节点i在三个子网络中得到的边嵌入向量串联而成;Mr是边嵌入向量的转换矩阵,表示Mr的转置,Mr中的第i个一维向量表示节点i在边类型为r的子网络中的边嵌入向量对节点i的嵌入表示的影响;αr表示在边类型为r的子网络中每个节点的边嵌入向量对于节点的嵌入表示的影响系数;Dz是节点i对应节点类型z的属性转换矩阵,其目的是为了计算新节点的嵌入表示向量,新节点与网络中的所有节点都是隔离的,Dz从节点属性相似性的角度表示节点i与网络中所有节点的相似关系,是Dz的转置;βr表示在边类型为r的子网络中,子网络中的节点属性之间的相似关系对于节点嵌入的影响系数;
2.7.5采用训练样本对以及节点的嵌入表示向量vi,r,使用NCE损失函数对带属性异构网络嵌入模型进行训练,优化公式一中的转换矩阵以及ai,r,得到异构网络中每个节点的有效嵌入表示向量;时间节点的有效嵌入表示向量使用vi,t表示,位置节点的有效嵌入表示向量使用vi,l表示,前序应用节点的有效嵌入表示向量使用vi,p表示;
2.7.6以文件的形式将带属性异构网络嵌入模型存储在“云端模型文件夹”中,命名为“用户标识ID_GATNE_时间戳”,其中“用户标识ID”使用实际的mac地址标识,“时间戳”使用实际的时间戳标识;
2.7.7构建带属性异构网络嵌入模型索引信息,使用移动终端实际的mac地址作为用户标识ID,使用当前时间作为模型创建时间戳,“用户标识ID_GATNE_时间戳”是模型存储文件名称,“云端模型文件夹”在云端的位置/用户标识ID_GATNE_时间戳”作为模型存储文件位置,分别将上述信息存储到云端模型索引表中对应的用户标识ID、模型创建时间戳、模型存储文件名称、模型存储文件位置域中;
2.8模型训练模块构建神经网络模型,融合时间、位置、前序应用三类上下文信息进行应用启动预测,方法是:
2.8.1以节点类型域值为1检索云端节点属性表,提取出节点类型域值为1的所有的应用节点标识ID,对提取的节点标识ID进行独热编码,得到每个节点标识ID对应的独热编码值,根据应用节点标识ID-应用独热编码值的关系存入字典D中;
2.8.2根据第u个用户标识ID从云端训练数据表获取相应用户的训练记录;
2.8.3初始化输入向量列表INPUT_LIST、实际输出向量列表OUTPUT_LIST为空,OUTPUT_LIST中的实际输出向量是指在当前时间、位置、前序应用的情景下使用的应用对应的独热编码值向量;
2.8.4获取参数变量n=1;
2.8.5提取第n条记录中的时间节点标识ID、位置节点标识ID、前序应用标识ID,根据节点标识ID从云端节点属性表中获取对应的节点属性,将三个节点标识ID以及对应的节点属性作为带属性异构网络嵌入模型的输入,按照公式一计算三个节点对应的嵌入表示向量,分别表示为vn,t、vn,l、vn,p,其中vn,t表示在第n条记录中时间节点对应的有效嵌入表示向量,vn,l表示在第n条记录中位置节点对应的有效嵌入表示向量,vn,p表示在第n条记录中前序应用节点对应的有效嵌入表示向量;融合vn,t、vn,l、vn,p,串联组成存入输入列表INPUT_LIST;
2.8.6提取第n条记录中的应用节点标识ID,根据应用节点标识ID从字典D中获取对应的独热编码值,记为pn,存入实际输出列表OUTPUT_LIST;
2.8.7若n≤N,令n=n+1,转到2.8.5;若n>N,转到2.8.8;
2.8.8结合应用启动预测场景,构建单隐层的神经网络模型,即如公式二所述的数学模型,通过神经网络模型计算第n个概率向量qn:
qn=W(2)·sigmoid(vn·W(1)+b1)+b2公式二,
其中:W(1)、W(2)分别是神经网络模型中隐藏层和输出层的转换矩阵;vn表示INPUT_LIST中的第n个向量,融合了第n条记录中时间节点、位置节点、前序应用节点的嵌入表示向量;b1、b2分别是神经网络模型中隐藏层和输出层的偏置向量;sigmoid函数是隐藏层的激活函数;概率向量qn表示根据第n条记录得到的预测结果,qn中的第i个概率值表示独热编码值向量中第i个位置值为1对应的应用的启动概率;
2.8.9采用输入列表INPUT_LIST以及实际输出列表OUTPUT_LIST训练神经网络模型,INPUT_LIST中的每一条输入向量按照公式二计算,得到输入对应的概率向量,然后根据公式三的交叉熵损失函数H计算神经网络模型的输出即概率向量与OUTPUT_LIST中实际输出的差异,根据随机梯度下降算法优化公式二中的W(1)、W(2)、b1、b2四个变量:



在公式三中:A表示第u个用户已安装的应用数量;表示第n条记录中的实际应用对应的独热编码值向量的第j个元素;表示第n条记...

【专利技术属性】
技术研发人员:周逸菲李少勇刘亚萍
申请(专利权)人:中南大学
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1