一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种并行APP软件用户操作补全方法、系统

2022-12-07 12:13:04 来源:中国专利 TAG:

一种并行app软件用户操作补全方法、系统
技术领域
1.本发明涉及一种并行app软件用户操作补全方法、系统,属于app软件用户操作分析领域。


背景技术:

2.在以用户为中心的app软件演化研究过程中,app软件用户操作分析逐渐成为研究人员关注的重点。一些商业框架如flurryanalytics被用于评估移动设备的可用性。这些分析工具可以采集移动软件的使用情况,例如使用频次、占用内存大小等统计信息。然而,为了使用这些框架,开发人员需要为不同的应用手动添加源代码,并且这些工具采集的信息侧重于移动软件使用的统计数据,难以为分析app软件用户操作提供有效支持。
3.lettner等人提出了一种自动收集和分析日志的方法,通过对目标app源代码的程序嵌入来对app软件用户操作进行日志采集。hilbert等人从android系统用户界面中提取app软件用户操作的可用性信息。ma等人依据android系统用户界面设计定义了一部分用户操作事件,并开发了一个可以嵌入到应用内部的工具包,该工具包只需要对目标源程序进行最少的修改即可采集到定义的app用户操作信息。然而,mcmillan指出大多数的日志仅限于记录粗粒度的用户操作。这些基于日志分析的方法能够回答用户在何时打开或关闭了哪个应用程序,但难以捕捉用户在应用程序内部的操作的具体细节。
4.近年来,krieter等人借助屏幕录制工具对用户使用app的过程进行记录,并利用python脚本程序将高质量的录制视频转换为图片,然后通过图像处理技术将这些图片与人工定义的事件图片模板进行匹配来分析用户在app中的操作。由于高质量的视频文件会占用大量内存空间,xin简化了对视频文件的分析。
5.在用户实际使用app软件过程中,我们发现目前对于app软件用户操作分析方法仍然存在以下问题。(1)由于不同app用户界面设计的差异很大,依赖人工定义用户操作的方式意味着方法只能够采集到有限的、粗粒度的用户操作,并且方法的有效性会随着android系统以及app软件的更新而降低。(2)实验表明,现有的方法往往只针对单个app软件用户操作进行分析,忽略了用户更加真实的使用场景,即用户在一段时间内与多个并行运行的app软件发生交互行为。(3)由于andorid系统用户界面框架的特殊性,在多个app并行运行或经常切换的场景下,现有方法记录的app软件用户操作不可避免地会有数据缺失和错误。
6.基于以上问题,现有研究不能有效获取并行app软件用户操作,这也导致针对app软件用户操作的应用是有限的。例如,在预测app用户操作行为来进行相关内容推荐的研究中,liu等人也只能依赖截图和人工定义app用户操作的方式来对单个app(snapchat)软件的用户操作进行分析。因此,如何补全并行app软件用户操作是亟待解决的问题。


技术实现要素:

7.本发明提供了一种并行app软件用户操作补全方法、系统,以解决并行app软件用户操作的补全问题。
8.本发明的技术方案是:一种并行app软件用户操作补全方法,包括:step1、实时捕获并行app软件用户操作事件内容数据以及并行app软件响应数据;step2、抽取并行app软件用户操作内容特征;step3、建立并行app软件用户操作内容特征的上下文语义关系;step4、提取并行app软件用户操作序列的时序上下文;其中,时序上下文包括全局时序上下文、并行app时序上下文;step5、补全并行app软件用户操作。
9.进一步地,所述step2具体包括:基于android用户界面框架,初始化并行app软件用户操作内容特征,并建立并行app软件用户操作事件响应树;基于并行app软件用户操作内容特征,从并行app软件用户操作事件内容数据以及并行app软件响应数据中获取并行app软件用户操作内容;基于并行app软件用户操作事件响应树初始化节点列表;基于并行app软件用户操作内容从节点列表抽取并行app软件响应节点信息;依据并行app软件响应节点信息确定并行app软件用户操作内容特征。
10.进一步地,所述依据并行app软件响应节点信息确定并行app软件用户操作内容特征,包括:如果并行app软件响应节点信息为空,且不存在父节点,则依据并行app软件用户操作内容获取并行app软件用户操作内容特征;否则交叉验证并行app软件用户操作内容和app软件用户操作交互组件信息来获取并行app软件用户操作内容特征;其中,抽取并行app软件响应节点信息中用于补充并行app软件用户操作内容的app软件用户操作交互组件信息。
11.进一步地,所述step3具体包括:依据并行app软件用户操作内容特征,获取结构化数据集d;将结构化数据集d按照时间排序后获得并行app用户操作序列;将并行app用户操作序列中的每条并行app软件用户操作分词,获取并行app用户操作分词序列;将并行app用户操作分词序列依据设置的序列长度构建神经网络训练集;使用神经网络训练集训练神经网络,建立并行app软件用户操作内容特征的上下文语义关系。
12.进一步地,所述step4具体包括:获取全局时序序列和并行app时序序列;将全局时序序列输入至第一基于lstm的神经网络模型,并抽取模型lstm层输出作为全局时序上下文;将并行app时序序列输入至第二基于lstm的神经网络模型,并抽取模型lstm层输出作为并行app时序上下文。
13.进一步地,所述获取全局时序序列和并行app时序序列,包括:将并行app用户操作分词序列中的元素按照时间顺序存入全局时序序列;抽取并行app用户操作分词序列中每个并行app软件的用户操作序列并存入并行app时序序列。
14.进一步地,所述第一基于lstm的神经网络模型、第二基于lstm的神经网络模型均包括输入层、lstm层、全连接层、输出层。
15.进一步地,所述step5具体包括:将全局时序上下文、并行app时序上下文进行拼接作为时序上下文;将时序上下文输入至基于textcnn的神经网络模型,直至网络收敛,获得优化的基于textcnn的神经网络模型;通过优化的基于textcnn的神经网络模型补全并行app软件用户操作,获取每个时间点完整的app软件用户操作序列。
16.进一步地,所述基于textcnn的神经网络包括输入层、拼接层、textcnn层、池化层、全连接层、输出层。
17.根据本发明的另一方面,还提供了一种并行app软件用户操作补全系统,包括:捕获模块,用于实时捕获并行app软件用户操作事件内容数据以及并行app软件响应数据;抽
取模块,用于抽取并行app软件用户操作内容特征;建立模块,用于建立并行app软件用户操作内容特征的上下文语义关系;提取模块,用于提取并行app软件用户操作序列的时序上下文;其中,时序上下文包括全局时序上下文、并行app时序上下文;补全模块,用于补全并行app软件用户操作。
18.本发明的有益效果是:
19.本发明首先基于监控服务程序实时获取并行app软件用户操作,并基于用户界面框架解析并行app软件用户操作获取细粒度的app软件用户操作内容,有助于大规模地获取并分析并行运行的app软件用户操作数据;其次,本发明通过语义上下文提取器提取app软件用户操作内容之间的上下文特征,并通过时序上下文检测器提取全局时序维度和app时序维度的时序特征,将时序特征通过全连接神经网络得到补全的并行app软件用户操作序列。
20.综上,本发明有助于从大规模并行app软件用户操作序列中挖掘语义上下文和时序上下文特征,支持对多app软件并行运行情况下的用户操作补全,从而高效、准确地获取完整的并行app软件用户操作序列。
附图说明
21.图1是本发明总流程图;
22.图2是本发明可选实施例步骤step2的流程图;
23.图3是本发明可选实施例步骤step3的流程图;
24.图4是基于并行app软件操作内容特征对并行app软件用户操作补全的过程。
具体实施方式
25.下面结合附图和实施例,对发明做进一步的说明,但本发明的内容并不限于所述范围。
26.实施例1:如图1-4所示,一种并行app软件用户操作补全方法,包括:
27.step1、实时捕获并行app软件用户操作事件内容数据以及并行app软件响应数据;
28.step2、抽取并行app软件用户操作内容特征;
29.step3、建立并行app软件用户操作内容特征的上下文语义关系;
30.step4、提取并行app软件用户操作序列的时序上下文;其中,时序上下文包括全局时序上下文、并行app时序上下文;
31.step5、补全并行app软件用户操作。
32.进一步地,所述step2具体包括:基于android用户界面框架,初始化并行app软件用户操作内容特征,并建立并行app软件用户操作事件响应树;基于并行app软件用户操作内容特征,从并行app软件用户操作事件内容数据以及并行app软件响应数据中获取并行app软件用户操作内容;基于并行app软件用户操作事件响应树初始化节点列表;基于并行app软件用户操作内容从节点列表抽取并行app软件响应节点信息;依据并行app软件响应节点信息确定并行app软件用户操作内容特征。
33.进一步地,所述依据并行app软件响应节点信息确定并行app软件用户操作内容特征,包括:如果并行app软件响应节点信息为空,且不存在父节点,则依据并行app软件用户
操作内容获取并行app软件用户操作内容特征;否则交叉验证并行app软件用户操作内容和app软件用户操作交互组件信息来获取并行app软件用户操作内容特征;其中,抽取并行app软件响应节点信息中用于补充并行app软件用户操作内容的app软件用户操作交互组件信息。
34.进一步地,所述step3具体包括:依据并行app软件用户操作内容特征,获取结构化数据集d;将结构化数据集d按照时间排序后获得并行app用户操作序列;将并行app用户操作序列中的每条并行app软件用户操作分词,获取并行app用户操作分词序列;将并行app用户操作分词序列依据设置的序列长度构建神经网络训练集;使用神经网络训练集训练神经网络,建立并行app软件用户操作内容特征的上下文语义关系。
35.进一步地,所述step4具体包括:获取全局时序序列和并行app时序序列;将全局时序序列输入至第一基于lstm的神经网络模型,并抽取模型lstm层输出作为全局时序上下文;将并行app时序序列输入至第二基于lstm的神经网络模型,并抽取模型lstm层输出作为并行app时序上下文。
36.进一步地,所述获取全局时序序列和并行app时序序列,包括:将并行app用户操作分词序列中的元素按照时间顺序存入全局时序序列;抽取并行app用户操作分词序列中每个并行app软件的用户操作序列并存入并行app时序序列。
37.进一步地,所述第一基于lstm的神经网络模型、第二基于lstm的神经网络模型均包括输入层、lstm层、全连接层、输出层。
38.进一步地,所述step5具体包括:将全局时序上下文、并行app时序上下文进行拼接作为时序上下文;将时序上下文输入至基于textcnn的神经网络模型,直至网络收敛,获得优化的基于textcnn的神经网络模型;通过优化的基于textcnn的神经网络模型补全并行app软件用户操作,获取每个时间点完整的app软件用户操作序列。
39.进一步地,所述基于textcnn的神经网络包括输入层、拼接层、textcnn层、池化层、全连接层、输出层。
40.进一步地,上述可选实施例的方法具体步骤如下:
41.step1、实时捕获并行app软件用户操作数据以及并行app软件响应数据;
42.step1.1、在android平台下监控服务程序,实时捕获原始并行app软件用户操作数据,执行step1.2;需要说明的是,鸿蒙平台等也可以使用本发明方法实现并行app软件用户操作补全。
43.step1.2、原始并行app软件用户操作数据中包含大量的用户操作事件信息和android用户界面框架的节点信息;基于无障碍服务接口,从原始并行app软件用户操作数据中筛选并行app软件用户操作相关的用户操作事件信息如表1所示。
44.表1并行app软件用户操作事件
[0045][0046]
表1所示的用户操作事件信息中包含有一部分并行app软件用户操作内容,将其再次筛选过后得到初步的并行app软件用户操作事件内容数据,存入operation_data如表2所示。
[0047]
表2初步筛选的并行app软件用户操作内容operation_data
[0048]
app软件用户操作内容名称含义packageapp软件名componentapp软件界面组件名timeapp软件用户操作发生的时间eventtypeapp软件用户操作类型
[0049]
表2中component表示app软件用户界面组件的名称;在android系统中,用户界面框架被保存在一个树形结构中;基于android系统用户界面框架建立app软件用户操作事件响应树并筛选获取并行app软件响应数据,存入resp_data,如表3所示。
[0050]
表3并行app软件响应数据resp_data
[0051]
app软件响应数据名称含义component响应用户操作的app软件界面组件名称text用户操作的响应文本boundsinscreen响应用户操作的屏幕范围childnode响应用户操作节点的子节点parentnode响应用户操作节点的父节点
[0052]
基于表3,之后可以过滤掉与用户操作无关的并行app软件响应数据信息(用户操作无关即非典型用户操作事件);其中,component表示响应用户操作的app软件界面组件名称,这一值与表2中的component值是对应的,为之后获取并行app软件用户操作内容特征提供了基础。
[0053]
step2、抽取并行app软件用户操作内容特征;
[0054]
step2.1、基于android用户界面框架初始化并行app软件用户操作内容特征,记为featureui_operation。其中,featureui_operation是基于android平台的app软件中通用的用户界面特征,表4所示。
[0055]
表4 featureui_operation
[0056]
app软件用户操作内容特征含义packageapp软件名eventtypeapp软件用户操作类型activityapp软件活动界面classapp软件组件名timeapp软件用户操作发生时间objectapp软件用户操作对象contentapp软件用户操作对象内容
[0057]
如表4所示,根据android系统上app软件用户界面设计的通用规则和开发标准,我们初始化了7个并行app软件用户操作相关的内容特征,执行step2.2;
[0058]
step2.2、基于featureui_operation,从operation_data和resp_data中获取并行app软件用户操作内容,存入raw_operation_content,raw_operation_content中同时包含了一部分operation_data和resp_data的内容,执行step2.3;
[0059]
step2.3、基于android用户界面框架建立并行app软件用户操作事件响应树resp_tree,依据resp_tree初始化节点列表node_list。app软件对于用户操作事件的响应是类似树形的结构,通过树形结构可以有效分析事件响应的过程,执行step2.4;
[0060]
node_list=[node1,node2,

,noden];
[0061]
step2.4、基于raw_operation_content从node_list中抽取app软件响应节点,并将节点信息存入node_info。节点信息包含一些app软件用户界面中可交互组件的信息,如表5所示。
[0062]
表5 node_info信息
[0063]
节点信息含义componentapp软件组件名textapp软件组件文本内容boundsscreenapp软件组件可交互坐标区域childnodeapp软件组件的子节点parentnodeapp软件组件的父节点
[0064]
如表5所示,节点信息包含但不限于表中的5个元素,从中筛选出与app软件用户操作相关的信息用于补充和验证raw_operation_content,执行step2.5;
[0065]
step2.5、对于并行app软件用户操作事件响应树resp_tree每一层进行node_info是否为空的判断,若node_info为空,执行step2.6,否则执行step2.8;
[0066]
step2.6、基于resp_tree,判断是否存在父节点,若存在,执行step2.7,否则执行step2.10;
[0067]
step2.7、将该父节点信息存入parent_node_info,并使用parent_node_info覆盖node_info,执行step2.5;
[0068]
node_info=parent_node_info;
[0069]
step2.8、抽取node_info中用于补充并行app软件用户操作内容的app软件用户操作交互组件信息,记为class_info,如表6所示。
[0070]
表6补充的app软件用户操作交互组件信息
[0071]
补充的交互组件信息含义activityapp软件功能界面名classapp软件组件名textapp软件组件文本内容
[0072]
如表6所示,从node_info中筛选出的补充信息包含3个内容,分别为app软件功能界面名,app软件组件名和app软件组件文本内容,这些补充信息将用于下一步的交叉验证以获取最终的并行app软件用户操作内容特征,执行step2.9;
[0073]
step2.9、交叉验证raw_operation_content和class_info获取并行app软件用户操作内容特征,记为operation_content。
[0074]
operation_content=cross_validate(class_info,raw_operation_content,key=class)as[package,eventtype,activity,class,time,object,content]
[0075]
step2.10、若node_info为空,且node_info不存在父节点,则不进行交叉验证,仅使用raw_operation_content作为并行app软件用户操作内容特征,抽取raw_operation_content中的信息存入operation_content,结束step2。
[0076]
step3、建立并行app软件用户操作内容特征的上下文语义关系;
[0077]
step3.1、基于operation_content结构化并行app软件用户操作内容,记为结构化数据集d,表7显示了一条并行app软件用户操作数据的信息。
[0078]
表7结构化数据集d中的示例数据
[0079]
名称数据packagecom.tencent.mmactivityandroid.softinputwindowclassandroid.widget.edittexttypetextselectioncontent

goodmorning’objectquerytime2021-12-1710:13:27
[0080]
表7中的数据意味用户在2021年12月17日上午10:13:27使用腾讯app软件,并操作了app软件中输入功能界面的文本组件,进行了文本类型的操作,操作内容为’good morning’,执行step3.2;
[0081]
step3.2、将结构化数据集d中的用户操作对象存入object,执行step3.3;
[0082]
object=d[

object’]
[0083]
step3.3、将结构化数据集d中的用户操作组件内容存入component,执行step3.4;
[0084]
component=d[

content’]
[0085]
step3.4、判断object是否为空,若为空,则执行step3.5,否则执行step3.6;
[0086]
step3.5、使用component作为用户操作对象,执行step3.6;
[0087]
object=component
[0088]
step3.6、将结构化数据集d按照时间排序后获得并行app软件用户操作序列,存入operation_sequence;
[0089]
operation_sequence=sorted(d),执行step3.7;
[0090]
step3.7、对operation_sequence中词进行去重,将去重后的词存入词典矩阵word_matrix,执行step3.8;
[0091]
word_matrix=dict(operation_sequence)
[0092]
得到词典矩阵其中nv表示去重后词的个数,执行step3.9;
[0093]
step3.8、以word_matrix作为词典,将operation_sequence中的每条并行app软件用户操作分词,并以空格分隔,并将数据存入sequence_list,部分sequence_list结果如表8所示(其中,分词后的数据中不涉及time,object与content合并展示);
[0094]
表8 sequence_list部分数据示例
[0095][0096]
如表8所示,经过分词后的数据长度不一定相等;以数组形式进行展示,数组结构中,数组下标位置为1的数字表示的是app软件用户操作事件的类型,数字的编号对应的相关事件图下表9所示,执行step3.8;
[0097]
表9 app软件用户操作事件类型
[0098]
编号app软件用户操作事件类型1type_view_clicked2type_view_text_selection_changed3type_windows_changed4type_view_long_clicked5type_view_text_changed
[0099]
step3.9、基于sequence_list,初始化并行app软件用户操作序列的长度为6,不足则使用0补齐,超过则截断并将结果存入app用户操作标准化序列sequences,执行step3.9;需要说明的是,本技术设置长度为6,可以避免长度过长导致需要补齐过多,也可以避免长度过少而无法有效保留语义信息的不足;
[0100]
sequences=padding(operation_sequence,length=6,fill=0)
[0101]
step3.10、初始化窗口windows=6,训练样本集合vec_train=[];
[0102]
其中,初始化的vec_train维度为r
nv
×
nf
,nv、nf分别表示词典的长度和词嵌入的输出维度,我们将词嵌入的输出维度设置为128,执行3.11;
[0103]
step3.11、将sequences中的元素存入神经网络训练集vec_train,执行step3.12;
[0104]
vec_train=sequences;
[0105]
step3.12、初始化神经网络,使用vec_train训练神经网络,建立并行app软件用户操作内容特征的上下文语义关系,结果存入word_embedding矩阵中;其中,神经网络模型选
择word2vec;
[0106]
vec_train=model(vec_train,nd);
[0107]
word_embedding=model.wv
[0108]
其中,model.wv中保存有训练好的词嵌入向量表示,例如,表10显示了对一个词的词嵌入向量表示;
[0109]
表10词嵌入表示
[0110][0111]
结束step3。
[0112]
step4、提取并行app软件用户操作序列的时序上下文;
[0113]
step4.1、初始化全局时序序列global_sequence和并行app时序序列app_sequence,执行step4.2;
[0114]
step4.2、将并行app用户操作分词序列sequence_list中的元素按照时间顺序存入global_sequence,标注g_label为其相隔一个并行app软件用户操作序列的类型,执行step4.3;举例来说,第一条数据的g_label为第二条数据的app软件用户操作序列的类型,以此类推;
[0115]
step4.3、抽取并行app用户操作分词序列sequence_list中每个并行app软件的用
户操作序列并存入app_sequence,标注a_label为其相隔一个app_sequence的类型;为更好地描述step4.4及以下内容,假设获取的global_sequence部分数据为表11和表12所示:
[0116]
表11 global_sequence部分数据
[0117][0118]
表12 app_sequence部分数据
[0119][0120]
表11,12中是同一批来自于sequence_list的数据,其中表11的数据按照全局时序角度排序生成global_sequence,表12的数据按照每个并行app软件用户操作的时序生成app_sequence,执行step4.4;
[0121]
step4.4、初始化步长input_length=6,初始状态h
t0
=0的基于lstm的全局时序上下文提取器:
[0122][0123]
其中,g表示全局时序;h
t0
表示全局时序维度初始时刻的时序上下文,表示全局时序维度初始时刻的时序上下文,分别表示全局时序维度上一时刻时序上下文提取器、全局时序维度上一时刻时序上下文提取器偏置参数、全局时序维度当前时刻上下文提取器、全局时序维度当前时刻上下文提取器偏置参数、全局时序维度当前时刻时序上下文提取器、全局时序维度当前时刻时序上下文提取器偏置参数、全局
时序上下文提取器、全局时序上下文提取器偏置参数,执行step4.5;
[0124]
step4.5、输入global_sequence,使用全局时序维度上一时刻时序上下文提取器提取上一时刻的时序上下文,输出g_memory为:
[0125][0126]
其中,h
t-1
为全局时序维度上一时刻的时序上下文,表示维度为nf,nf为word_embedding词向量的维度;x
gt
为global_sequence中当前时刻的并行app软件用户操作内容特征的上下文语义关系,表示维度为nf;的维度为nf;σ表示激活函数;执行step4.6;
[0127]
step4.6、使用全局时序维度当前时刻上下文提取器提取当前时刻上下文,输出gin_context为:
[0128][0129]
其中,gin_context和表示维度为nf,执行step4.7;
[0130]
step4.7、使用全局时序维度当前时刻时序上下文提取器提取当前时刻时序上下文,输出gcell_context为:
[0131][0132]
其中,gcell_context和维度为nf;表示全局时序维度上一时刻的时序上下文,表示维度为nf,执行step4.8;
[0133]
step4.8、使用全局时序上下文提取器提取全局时序上下文,输出global_context为:
[0134][0135]
其中,global_context、的维度为nf,执行step4.9;
[0136]
step4.9、将global_context输入到固定大小的全连接神经网络层,然后将其反馈到输出层,使用全连接神经网络输出的对于下一个并行全局时序的app软件用户操作序列的类型预测与训练批次batch对应的g_label计算偏差,根据反向传播过程,得到第一基于lstm的神经网络每层参数的误差,完成网络模型的优化,执行step4.10;基于lstm的神经网络包括输入层、lstm层、全连接层、输出层;
[0137]
step4.10、不断迭代step4.9,直至模型收敛,抽取模型lstm层输出global_context作为全局时序上下文存入global_temporal_context中,执行step4.11。
[0138]
step4.11、初始化步长input_length=6,初始状态h
t0
=0的基于lstm的并行app时序上下文提取器:
[0139][0140]
其中,a表示并行app时序;分别表示并行app时序维度上一时刻时序上下文提取器、并行app时序维度上一时刻时序上下文提取器偏置参数、并行app时序维度当前时刻上下文提取器、并行app时序维度当前时刻上下文提取器偏置参数、app时序维度当前时刻时序上下文提取器、并行app时序维度当
前时刻时序上下文提取器偏置参数、并行app时序上下文提取器、并行app时序上下文提取器偏置参数,执行step4.12;
[0141]
step4.12、输入app_sequence,使用并行app时序维度上一时刻时序上下文提取器提取上一时刻的时序上下文,输出a_memory为:
[0142][0143]
其中,h
t-1
为并行app时序维度上一时刻的时序上下文,表示维度为nf,nf为word_embedding词向量的维度;x
at
为app_sequence中当前时刻的并行app软件用户操作内容特征的上下文语义关系,表示维度为nf;的表示维度为nf;执行step4.13;
[0144]
step4.13、使用并行app时序维度当前时刻上下文提取器提取当前时刻上下文,输出ain_context为:
[0145][0146]
其中,ain_context和表示维度为nf,执行step4.14;
[0147]
step4.14、使用并行app时序维度当前时刻时序上下文提取器提取当前时刻时序上下文,输出acell_context为:
[0148][0149]
其中,acell_context和其中,acell_context和表示维度为nf;表示并行app时序维度上一时刻的时序上下文,表示维度为nf,执行step4.15;
[0150]
step4.15、使用并行app时序上下文提取器提取并行app时序上下文,输出app_contex t为;
[0151][0152]
其中,app_context、的表示维度为nf,执行step4.16;
[0153]
step4.16、将app_context输入到固定大小的全连接神经网络层,然后将其反馈到输出层,使用全连接神经网络输出的对于下一个并行app时序的app软件用户操作序列的类型预测与训练批次batch对应的a_label计算偏差,根据反向传播过程,得到第二基于lstm的神经网络每层参数的误差,完成网络模型的优化,执行step4.17;
[0154]
step4.17、不断迭代step4.16,直至模型收敛,抽取模型lstm层输出app_context作为并行app时序上下文存入app_temporal_context中,结束step4。
[0155]
step5、通过全连接神经网络补全并行app软件用户操作;
[0156]
step5.1、拼接由step4中第一基于lstm的神经网络中抽取的全局时序上下文global_temporal_context和第二基于lstm的神经网络中抽取的并行app时序上下文app_temporal_context,结果存入时序上下文nd为并行app软件用户操作序列中用户操作的数量,nf为word_embedding中词向量的维度;
[0157]
为更好地描述step5.3及以后步骤,假设由step5.1得到的global_temporal_context和app_temporal_context如表13,14所示:
[0158]
表13 global temporal context
[0159][0160]
表14app_temporal_context
[0161][0162]
如表13,14所示,获取到的global_temporal_context和app_temporal_context表示维度均为nf,拼接后得到每一条执行step5.2;
[0163]
step5.2、基于step3.12的词嵌入向量表示,将并行app用户操作分词序列sequence_list中的并行app软件用户操作加权平均,获取app软件用户操作的标签,存入
label;每一条app软件用户操作的标签为下一条并行app软件用户操作的加权平均表示;label维度为nd×
nf,执行step5.3;
[0164]
step5.3、初始化一个基于textcnn的时序特征检测器:
[0165]
kernel_size,stride,w
convt
,b
convt
[0166]
其中,kernel_size表示卷积核的大小,stride表示卷积的步长,w
convt
,b
convt
分别表示时序特征检测器,时序特征检测器偏置参数,执行step5.4;
[0167]
step5.4、使用时序特征检测器在temporal_context表示的并行app软件用户操作序列全局上下文和并行app时序上下文中滑动,输出y_context为:
[0168]
y_context=relu(w
convt
·
temporal_contextxi b
convt
)
[0169]
其中,y_context和temporal_contextxi表示并行app软件用户操作序列时序上下文的第i组时序上下文,执行step5.5;
[0170]
step5.5、对y_context进行最大池化,对两个时序维度的特征取最大值,从而将提取到的特征规约到一个固定的大小,最大池化后将y_context连接为y,执行step5.6;
[0171]
step5.6、将y输入到一个固定大小的全连接神经网络层,然后将其反馈到输出层,使用全连接神经网络输出的并行app软件用户操作序列的时序上下文特征与训练批次batch对应的label计算偏差,根据反向传播过程,得到基于textcnn的神经网络每层参数的误差,完成网络模型的优化,执行step5.7;其中,基于textcnn的神经网络包括输入层、拼接层、textcnn层、池化层、全连接层、输出层;
[0172]
step5.7、不断迭代步骤step5.6,直至网络收敛,将模型保存为model,step5.8;
[0173]
step5.8、通过model补全并行app软件用户操作,补全每个时间点完整的并行app软件用户操作序列,为了更直观地阐述补全效果,假设表15为1分钟内不同时间过程下并行的app软件列表:
[0174]
表15并行app软件列表
[0175][0176]
如表15所示,假设在1分钟内有4个并行app软件并行运行,用户可能在不同时间点与不同app软件进行交互行为,那么需要补全的app软件操作如表16所示:
[0177]
表16需要补全的app软件用户操作
[0178]
时间点发生用户操作的app软件需要补全的app软件用户操作1哔哩哔哩,腾讯qq搜狗拼音,有道词典2哔哩哔哩腾讯qq,有道词典,搜狗拼音3腾讯qq,搜狗拼音有道词典,哔哩哔哩4有道词典,搜狗拼音腾讯qq,哔哩哔哩
[0179]
最终的补全效果如表17所示:
[0180]
表17补全后的每个并行app软件用户操作序列
[0181][0182]
根据表16中的需要补全的并行app软件用户操作我们通过训练好的神经网络模型对其补全,如表17所示的补全后的每个并行app软件用户操作序列(表17中的编号表示的是操作序号)。
[0183]
实施例2:根据本发明的另一方面,还提供了一种并行app软件用户操作补全系统,包括:捕获模块,用于实时捕获并行app软件用户操作事件内容数据以及并行app软件响应数据;抽取模块,用于抽取并行app软件用户操作内容特征;建立模块,用于建立并行app软件用户操作内容特征的上下文语义关系;提取模块,用于提取并行app软件用户操作序列的时序上下文;其中,时序上下文包括全局时序上下文、并行app时序上下文;补全模块,用于补全并行app软件用户操作。
[0184]
此处需要说明的是,上述捕获模块、抽取模块、建立模块、提取模块和补全模块对应于实施例1中的步骤step1至step5,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
[0185]
根据本发明实施例的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述中任意一项所述的并行app软件用户操作补全方法。
[0186]
根据本发明实施例的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行上述中任意一项所述的并行app软件用户操作补全方法。
[0187]
上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献