CN112817604A - 安卓***控件意图识别方法、装置、电子设备及存储介质 - Google Patents
安卓***控件意图识别方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112817604A CN112817604A CN202110190126.XA CN202110190126A CN112817604A CN 112817604 A CN112817604 A CN 112817604A CN 202110190126 A CN202110190126 A CN 202110190126A CN 112817604 A CN112817604 A CN 112817604A
- Authority
- CN
- China
- Prior art keywords
- features
- text
- image
- neural network
- information
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本公开提供了一种安卓***控件意图识别方法,包括:从安卓应用程序(APK)包中提取控件对应的图像信息和文本信息;基于第一轻量级神经网络,提取所述图像信息中的图像特征;基于第二轻量级神经网络,提取所述文本信息中的文本特征;将所述图像特征和所述文本特征整合为联合特征;根据所述联合特征预测所述控件所属的至少一个意图类别;以及输出所述至少一个意图类别。对应上述方法,本公开还提供了安卓***控件意图识别装置、电子设备以及计算机可读存储介质。
Description
技术领域
本公开的一个或多个实施例涉及信息安全技术领域,尤其涉及一种安卓***控件意图识别方法、装置、电子设备及计算机可读存储介质。
背景技术
在移动终端中,安卓(Android)***是使用用户群体最为庞大的移动终端操作***。在对Android***敏感信息的保护中,分析应用的使用意图是提供精准保护的前提。此外,考虑到安卓***控件是界面组成的主要元素,也是应用组成的主要元素,因此,在实际的应用中,可以首先对应用中包含的控件的意图进行识别,并将控件的意图识别结果作为对应用使用意图的分析基础,从而实现应用使用意图的精确分析。
发明内容
有鉴于此,本公开一个或多个实施例提出一种安卓***控件意图识别方法。该方法可以包括:从安卓应用程序(APK)包中提取控件对应的图像信息和文本信息;基于第一轻量级神经网络,提取所述图像信息中的图像特征;基于第二轻量级神经网络,提取所述文本信息中的文本特征;将所述图像特征和所述文本特征整合为联合特征;根据所述联合特征预测所述控件所属的至少一个意图类别;以及输出所述至少一个意图类别。
其中,所述从APK包中提取控件对应的图像信息和文本信息包括:对所述APK包进行反编译,得到应用的源文件;对所述源文件进行解析,得到所述应用中所包含图片控件的映射关系;根据所述映射关系从所述源文件中提取图像信息和文本信息。
其中,所述对所述源文件进行解析,得到所述应用中所包含图片控件的映射关系包括:对所述源文件进行解析,得到所述应用中控件所包含的图片映射;对所述源文件中不同分辨率的可绘制对象文件夹下的用户接口控件相关可扩展标记语言xml文件进行解析,获得这些以xml形式保存的控件所包含的图片映射;对所述源文件进行分析,得到页面维度信息中的手柄Handler;确定控件、图片、布局文件和Handler之间的关联关系;使用静态调用图进行辅助分析,获得应用中Handler、敏感函数和敏感权限三者之间的映射关系;根据所述源文件产生静态调用图,生成包含敏感操作的Handler的调用图,并保存其中的调用关系;以及对所述关联关系、映射关系以及调用关系进行处理,得到所述应用中所包含图片控件的映射关系。
其中,所述第一轻量级神经网络包括基于移动端神经网络(MobileNetV3)模型;以及所述第二轻量级神经网络包括双向长短期记忆(BiLSTM)网络。
其中,所述将所述图像特征和所述文本特征整合为联合特征包括:依据共同注意机制,将所述图像特征和文本特征整合为所述联合特征。
其中,所述依据共同注意机制,将所述图像特征和文本特征整合为所述联合特征包括:根据图像特征和文本特征之间的相关性建立图像特征和文本特征的相关矩阵;根据所述相关矩阵双向更新图像特征和文本特征;以及将更新后的图像特征和文本特征相加,得到所述联合特征。
其中,所述第一轻量级神经网络和所述第二轻量级神经网络通过下述方法进行联合训练:获取数据集,并对所述数据集进行数据分级,得到其中的图像信息和文本信息机器对应的意图种类;对所述图像信息进行预处理,并将预处理后的图像信息作为所述第一轻量级神经网络的输入;对所述文本信息进行预处理,并将预处理后的文本信息作为所述第二轻量级神经网络的输入;基于第一轻量级神经网络,提取所述图像信息中的图像特征;基于第二轻量级神经网络,提取所述文本信息中的文本特征;将所述图像特征和所述文本特征整合为联合特征;根据所述联合特征预测所述控件所属的至少一个意图类别,得到至少一个预测意图类别;将所述至少一个预测意图类别与所述意图种类进行比较,确定预测误差,并根据所述预测误差调整所述第一轻量级神经网络和所述第二轻量级神经网络的参数,直至收敛。
对应上述方法,本公开的一个或多个实施例还公开了一种安卓***控件意图识别装置,包括:
信息分集模块,用于从APK包中提取控件对应的图像信息和文本信息;
第一轻量级神经网络,用于提取上述图像信息中的图像特征;
第二轻量级神经网络,用于提取上述文本信息中的文本特征;
特征联合模块,用于将上述图像特征和上述文本特征整合为联合特征;以及
分类模块,用于根据上述联合特征预测上述控件所属的至少一个意图类别,并输出上述至少一个意图类别。
本公开的一个或多个实施例还提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述安卓***控件意图识别方法。
本公开的一个或多个实施例还提供了一种非暂态计算机可读存储介质,其中,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述安卓***控件意图识别方法。
可以看出,上述方法和相关设备可以从控件的文本信息和图像信息两个维度提取图像特征和文本特征,并将提取的两个维度的特征联合起来进行控件的意图分析,从而可以大大提高控件意图分析的准确率。
进一步,在提取上述图像特征和文本特征采用的是轻量级的神经网络,可以在确保分类效果相当的同时,大幅降低模型训练时间成本,从而可以满足大规模数据训练与预测的需求。
附图说明
为了更清楚地说明本公开一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本公开一个或多个实施例所述的安卓***控件意图识别方法的实现流程示意图;
图2为本公开一个或多个实施例所述的从APK中提取控件对应的图像信息和文本信息的方法流程示意图;
图3为本公开一个或多个实施例所述的长短期记忆(LSTM)模型内部结构示意图;
图4为本公开一个或多个实施例所述的对上述第一轻量级神经网络和第二轻量级神经网络进行联合训练的方法流程示意图;
图5为本公开一个或多个实施例所述的装置的内部结构示意图;以及
图6为本公开一个或多个实施例所述的电子设备的内部结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本公开一个或多个实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了完成安卓***控件的意图进行精确识别,本公开的一个或多个实施例提供了一种安卓***控件意图识别方法。该方法首先使用轻量级神经网络分别提取安卓应用程序包中控件的图像和文本特征,然后将提取的图像特征和文本特征联合,得到联合特征,最后再根据联合特征进行意图分类,从而实现安卓***控件意图的精确识别。控件经由上述过程的意图分析后会得到一个多分类的分析结果,如:调用此控件时,应用意图使用相机和麦克风。一个更为具体的例子是,当用户调用“扫描条形码控件”时,意图是使用相机。借助安卓权限***分类的帮助,目前对控件用户使用意图进行了8大分类,分别是使用网络(NETWORK)、使用位置(LOCATION)、使用麦克风(MICROPHONE)、使用短信(SMS)、使用相机(CAMERA)、调用电话(CALL)、使用存储(STORAGE)和使用通讯录(CONTACTS)。
具体地,图1显示了本公开的一个或多个实施例所述的安卓***控件意图识别方法的实现流程。如图1所示,该方法可以包括:
在步骤102,从APK包中提取控件对应的图像信息和文本信息。
在步骤104,基于第一轻量级神经网络,提取上述图像信息中的图像特征。
在步骤106,基于第二轻量级神经网络,提取上述文本信息中的文本特征。
需要说明的是,上述步骤104和106并不限制其执行顺序,在应用中,上述步骤可以以任意顺序串行执行或者也可以并行执行。在图1中以并行执行为例进行展示。
在步骤108,将上述图像特征和上述文本特征整合为联合特征。
在步骤110,根据上述联合特征预测上述控件所属的至少一个意图类别,并输出上述至少一个意图类别。
如前所述,在本公开的实施例中,可以根据Android权限***分类,将控件使用意图分类为以下8种意图类别:使用网络、使用位置、使用麦克风、使用短信、使用相机、调用电话、使用存储和使用通讯录。那么,针对APK包中的每个控件经由上述方法后会输出上述一个或多个意图类别。
可以看出,上述方法可以从控件的文本信息和图像信息两个维度提取图像特征和文本特征,并将提取的两个维度的特征联合起来进行控件的意图分析,从而可以大大提高控件意图分析的准确率。并且,在提取上述图像特征和文本特征采用的是轻量级的神经网络,可以在确保分类效果相当的同时,实现模型训练时间成本的大幅降低,从而可以满足大规模数据的训练与预测。
下面将结合附图以及具体示例详细说明上述安卓***控件意图识别方法各个步骤的具体实现方式。
具体地,在本公开的一个或多个实施例中,上述步骤102所述的,从APK中提取控件对应的图像信息和文本信息的实现流程可如图2所示,主要包括:
在步骤202,对上述APK包进行反编译,得到应用的源文件。
在本公开的实施例中,上述APK可以是一个应用的APK文件。在该步骤中,可以对该APK使用APK工具(Apktool)进行逆向解析,从而进行反编译,得到应用的布局文件。
在步骤204,对上述源文件进行解析,得到应用中所包含图片控件的映射关系。
具体地,上述步骤204可以包括如下步骤:
A,对源文件进行解析,得到应用中控件所包含的图片映射。
在本公开的实施例中,针对控件声明和保存方式的多元化复杂问题,首先可以对源文件中布局文件文件夹下的可扩展标记语言(xml)文件进行解析,提取xml文件内的图片相关信息。上述图片相关信息可以包括:布局文件内包含的图片的信息,具体可以为图片的标识(ID)、存放地址、使用图片的类的名称和图片名称等信息。
B,对源文件中不同分辨率可绘制对象(Drawable)文件夹下的用户接口控件相关xml进行解析。获得这些以xml形式保存的控件所包含的图片映射。
C,对源文件进行分析,得到页面维度信息中的手柄(Handler)。
在本公开的实施例中,上述页面可能是继承了Activity且存在xml页面布局文件的页面,也可能是alertDialog这样通过java代码创建的页面。其中,页面维度信息获取通常存在两个层级。
在第一层级,对于每个页面,保存页面的入口信息以及页面包含的视图(View)的信息。
在第二层级,对于每个视图,保存视图的基础信息(此处的视图可能是控件)和视图包含的Handler和图片的信息。
D,确定控件、图片、布局文件和Handler之间的关联关系。
具体地,可以将布局文件的分析结果以及页面维度信息联合匹配,得到控件、图片、布局文件和Handler之间的关联关系。
E,使用静态调用图进行辅助分析,获得应用中Handler、敏感函数和敏感权限三者之间的映射关系。
F,根据所述源文件产生静态调用图,生成包含敏感操作的Handler的调用图,并保存其中的调用关系。
在上述步骤中,可以对调用关系进行处理,与分析获得的Handler信息匹配,作为运行时敏感信息保护的辅助信息,分析应用程序编程接口(API)与Handler的关联关系。然后依据Handler与控件和页面的关系,获得API与控件和页面的关联关系。
G,对所述关联关系、映射关系以及调用关系进行处理,得到所述应用中所包含图片控件的映射关系。
具体地,上述处理可以包括:删除其中冗余项,得到一个映射文件。
在本公开的实施例中,映射文件中每一条数据包含内容为<APK名称,图片名称,控件ID,控件名称,布局文件,Handler,敏感方法,敏感方法相关敏感权限>,且数据以一个敏感方法为一个单元记录。
在步骤206,根据上述映射关系从源文件中提取图像信息和文本信息。
具体地,在本公开的实施例中,在提取图像信息时,首先根据上述映射文件,在应用反编译后的源文件中查找对应的drawable图像。
在此期间,考虑到图像可能由xml文件描述,还将解析xml文件并递归地寻找图像。并且由于安卓开发特性,一个图像名称可能对应不同分辨率大小的图像文件,在这种情况出现时,选择最大的图像作为返回值。再返回图像时,还会额外的将图像信息压缩,以节约空间。
在提取文字信息时,可以分三部分提取。具体包括:上下文文本,图标嵌入式文字和控件文本的提取。具体地,对于上下文文本的提取,在对应的xml文件中搜索并保存同一个父布局下的文本。需要说明的是,此过程中还会在键值文件strings.xml中找到对应的键值对。对于图标的嵌入式文本的提取,使用预训练好的计算机视觉模型从图片中提取文字。对于控件文本,保存控件的名称等信息。
需要说明的是,由于在特征提取部分使用的信息均为英文信息,因此,在本公开的实施例中,在提取了图像信息和文本信息之后,还可以进一步应用现有的翻译包将文本信息译成英文。
此外,由于第一轻量级神经网络和第二轻量级神经网络对于输入信息的大小有要求,因此,在本公开的实施例中,还需要在输入第一轻量级神经网络和第二轻量级神经网络之前对提取的图像信息和文本信息进行预处理,以适应模型输入的需要。例如,上述第一轻量级神经网络设定使用128×128×4的图像信息作为输入,则需要通过预处理将图像信息转换成上述128×128×4的大小。又例如,上述第二轻量级神经网络设定使用预设维度的文本信息作为输入,例如20维,则需要通过补充或截取等预处理将文本信息统一成上述预设维度。
具体地,上述预处理可以包括:对图像信息做分析,去除过大或过小的图像信息,并将图像大小调整到统一格式。对权限名称做映射,检测是否存在敏感权限,并将具体的权限名称映射到一个权限组编号。对于文本信息,进行分词和拼写检查,生成字典操作。最后,在输入模型前,根据模型的具体需求,按照具体参数进行输入数据格式修改,数据集分集等操作。
在本公开的一个或多个实施例中,上述步骤104所述的,基于第一轻量级神经网络提取上述图像信息中的图像特征可以基于移动端神经网络(MobileNet)实现。具体地,上述MobileNet神经网络可以是MobileNetV3模型。
MobileNetV3模型是神经架构搜索得到的模型,主要由以下三大部分组成:初始部分、中间部分以及结尾部分。
其中,初始部分的卷积单元可以包括3个部分,即卷积层、批归一化(BatchNormalization,BN)层和激活层。
具体地,上述卷积层可以通过3×3的卷积核,提取特征,然后,进入BN层。BN层使用12年Google提出的Batch Normalization思想,BN层在全连接层和激活层前,通过正态分布和线性变化对权重进行处理,使权重能够在可控范围内震荡,此时的权重既不发散也不收敛。上述激活层可以使用h-swish激活函数进行激活。h-swish激活函数是通过swish函数数值近似得到的。swish函数能有效改进网络精度,但计算量过大。通过使用h-swish激活函数即可以保证网络精度还可以降低计算量。swish函数和h-swish激活函数的表达式可以参考下示两个表达式:
swish x=x·σ(x) (1)
上述MobileNetV3模型的中间部分是多个卷积层。根据MobileNetV3大版本(Large)和MobileNetV3小版本(Small)的不同,卷积层的数量和参数也不同。在本公开的方法中,优选采用MobileNetV3 Small的设计。
具体地,在本公开的实施例中,MobileNetV3的卷积层可以采用Bneck结构。Bneck结构结合了MobileNetV1的深度可分离卷积(Depthwise Separable Convolutions)结构、MobileNetV2的具有线性瓶颈的逆残差结构(Inverted Residual with LinearBottleneck)、MnasNet的轻量级注意力模型(基于Squeeze and Excitation结构)和h-swish激活函数。
上述MobileNetV3模型的结尾部分,首先通过一个类似初始部分使用的卷积单元。上述卷积单元同样包含卷积层、BN层和激活层三部分。与初始单元不同的是,结尾部分的卷积单元使用1×1的卷积核而非3×3的卷积核。在通过卷积单元后,MobileNetV3使用全局平均池化(Global Average Pooling),然后再次经过一个1×1的卷积层。最后,通过一个使用h-swish激活函数的激活层。
需要说明的是,在本公开实施例所述的方法中,由于需要图像特征与文字特征做联合特征,再使用联合特征分类,因此,上述方法所使用的MobileNetV3模型未加入传统MobileNetV3模型的分类层。
在本公开的一些实施例中,上述步骤104中,在通过上述MobileNetV3模型从图像信息中提取出图像特征之后,上述图像特征还可以进一步经过一个重构层(Reshape)和一个全连接层(Dense)。在本公开的实施例中加入重构层和全连接层的目的均是用于转换图像维度,使得图像特征能够与文本特征一起进入共同注意机制。
在本公开的一个或多个实施例中,上述步骤106所述的,基于第二轻量级神经网络提取上述文本信息中的文本特征可以基于双向长短期记忆网络(BiLSTM)实现。
LSTM模型由一个细胞状态和3个门(遗忘门、输入门和输出门)组成。其中,遗忘门针对上一时刻的细胞状态,遗忘无用信息,保留有用信息。输入门针对当前时刻的输入,对输入选择性保留。输出门针对细胞的当前状态,作选择性输出。LSTM内部结构可如图3所示。其中,Ct-1是t-1时刻的细胞状态;ht-1是t-1时刻的隐层状态;Xt是t时刻的输入值;Ct是t时刻的细胞状态;ht是t时刻的隐层状态。
BiLSTM模型是由一个前向LSTM和一个后向LSTM整合而成,可以大致分为4层,输入层、正向传输层、反向传输层和输出层。BiLSTM使用输入层对输入数据进行序列编码,使输入数据符合网络的输入要求。使用正向传输层获得输入序列的前向特征,反向传输层提取反向特征。最后由输出层对正向传输层和反向传输层输出的数据进行整合。如此,通过BiLSTM模型可以从输入的文本信息中提取文本特征。
具体地,在本公开的一个或多个实施例中,上述步骤108所述的,将上述图像特征和上述文本特征整合为联合特征具体可以包括:依据共同注意机制将所述图像特征和文本特征整合为所述联合特征。
具体地,在本公开的一个或多个实施例中,首先,可以根据图像特征和文本特征之间的相关性建立图像特征和文本特征的相关矩阵;其次,根据上述相关矩阵双向更新图像特征和文本特征;最后,将更新后的图像特征和文本特征相加,得到上述联合特征。
也就是说,在上述方法中,依据共同注意机制在相互引导下双向更新图像特征和文本特征,获得联合特征。以图像特征到文本特征的方向为例,注意力通过突出显示与图像相关的单词来改进文本特征向量。类似地,从到文本特征到图像特征的方向,注意力通过突出显示与文本相关的图像区域来改进图像特征向量。
具体地,当一个控件的图标有M个图像特征向量而文本有N个文本特征向量时。C矩阵包含M×N对特征向量之间的相关性。C矩阵可以通过如下的表达式(3)实现。其中,fu为图像特征,fv为文本特征,WC为需要训练得参数。
基于上述相关矩阵,图像特征和文本特征可以通过相互转换的方式连接起来,以进行特征更新。
以图像特征为例,更新公式如下示表达式(4)、(5)和(6)实现。其中,Wu、Wv、Wh均为参数,Hu为通过相关矩阵C将文本特征fv转化为图像特征fu得到的特征矩阵,au为每个区域特征向量的权重。
Hu=tanh(Wufu+(Wvfv)C) (4)
au=softmax(WhHu) (5)
类似地,可以使用下示表达式(7)、(8)和(9)更新文本特征。其中,Wu、Wv、Wh均为参数,Hv为通过相关矩阵C将图像特征fu转化为文本特征fv得到的特征矩阵,av为每个单词特征向量的权重。
Hv=tanh(Wvfv+(Wufu)C) (7)
av=softmax(WhHv) (8)
在本公开的一个或多个实施例中,在上述步骤110,可以将上述联合特征依次通过全连接(Dense)层和激活层,以得到对上述联合特征进行分类的预测分类结果。其中,上述激活层所可以使用Sigmoid激活函数实现。
此外,在本公开的另一些实施例中,在将上述联合特征通过全连接层之前还可以先经过退出(Dropout)层。在本公开的示例中使用Dropout层的目的是,为了在训练样本较少的情况下防止模型过拟合。
可以看出,上述方法可以兼顾控件的图像特征和文本特征,运用两种特征共同构建联合特征,并结合深度学习技术,进行学习与分类,从而提出一种高效的Android控件意图分析方法,能够提高检测精度。
进一步,在进行特征提取的时候,采用的是轻量级的神经网络,因此可以在确保分类效果相当的同时,大幅降低模型训练时间成本,从而可以满足大规模数据的训练与预测的需求。
更进一步,在本公开一些实施例的方法中,运用MobileNetV3提取图像信息,运用BiLSTM提取文本信息,然后共同构建联合特征,运用深度学习技术,实现对控件的意图分析。相对于现有方法,本方法在准确率、回调率和精确度均取得更优结果。
此外,在深度学习中,许多模型都需要大量的时间来训练提取到的特征信息,这无形中降低了模型的效率。本方法使用上述轻量级的神经网络来提取图像特征,在训练时间上实现了大幅提效,仅需35到80秒即可进行一轮训练。
下面再结合附图详细说明本公开所述方法中所使用的第一轻量级神经网络和第二轻量级神经网络的联合训练方法。图4显示了本公开实施例所述的对上述第一轻量级神经网络和第二轻量级神经网络进行联合训练的方法流程。如图4所示,该方法包括:
在步骤402,获取数据集,并对数据集进行数据分级,得到其中的图像信息和文本信息机器对应的意图种类。
在本公开的一个或多个实施例中,在对上述第一轻量级神经网络和第二轻量级神经网络进行联合训练时,可以采用DeepIntent团队公布的数据集进行学习与测试。该数据集中包含11156组数据。每组数据是一个控件的信息,以[[图像信息],[文字信息],[意图种类]]三元组的形式保存。
并且,根据数据的特性,每次训练随机将数据集的70%用作训练集,10%用作验证集,20%用作测试集。
在步骤404,对图像信息进行预处理,并将预处理后的图像信息作为第一轻量级神经网络的输入。
在本公开的实施例中,上述对图像信息的预处理包含:图像解压、大小变换、格式变换和归一化4个步骤。
由于数据集中的图像信息是以2进制压缩后的格式进行存储的,因此,在预处理shi2,首先需要解压图像信息,还原原始的图像信息。
此外,由于控件图标图像大小不一,在预处理时,将所有图像大小统一变换为预先设定的大小,例如,统一变换为128×128像素的图像大小。
在本公开一个或多个实施例给出的方法中,上述第一轻量级神经网络可以使用128×128×4的图像信息作为输入,因此,在图像预处理时,对图像信息做格式变换,输出RGBA格式图像信息。
最后,对图像信息每个像素的数值做归一化处理,将其数值范围由0-255归一化为0-1。
在步骤406,对文本信息进行预处理,并将预处理后的文本信息作为第二轻量级神经网络的输入。
在本公开的实施例中,对于文本信息,由于控件文本信息的特殊性,控件上下文文字一般根据种类不同而区别较大,固定种类中词汇数量较少,出现词汇相对一般文本而言非常少。根据大量APK提取出来的文本信息,发现词汇种类不超过2000个。基于上述文本信息的特殊性,在文本预处理时,DeepIntent团队在发布的数据集中使用一种编号的方式实现词向量化。在此基础上,在进行文本预处理时,将统一每个控件上下文包含的词汇数量,实现相同的输出维度,然后将统一维度后的文本信息作为第二轻量级神经网络的输入。例如,在一些实施例中,在进行文本信息预处理时,可以将每个控件上下文包含的词汇数量统一为预设维度,例如20维。其中,对于超过预设维度的输入做截取操作,而对于少于预设维度的输入,做补充处理,以0作为填充,从而实现相同的输出维度。
在步骤408,基于第一轻量级神经网络,提取上述图像信息中的图像特征。
在步骤410,基于第二轻量级神经网络,提取上述文本信息中的文本特征。
在步骤412,将上述图像特征和上述文本特征整合为联合特征。
在步骤414,根据上述联合特征预测上述控件所属的至少一个意图类别,得到至少一个预测意图类别。
上述步骤408至414的实现方法可以参考前述步骤104至110。在此不再重复说明。
在步骤416,将上述至少一个预测意图类别与上述从数据集中得到的意图种类进行比较,确定预测误差,并根据预测误差调整上述第一轻量级神经网络和第二轻量级神经网络的参数。
然后返回上述步骤402,重复进行训练,直至模型收敛。
在上述步骤中,可以通过反向传播的方式调整上述第一轻量级神经网络和第二轻量级神经网络的参数。
如前所述,在上述训练过程中,在进行特征提取的时候,采用的是轻量级的神经网络,因此可以在确保分类效果相当的同时,大幅降低模型训练时间成本,从而可以满足大规模数据的训练与预测的需求。
基于上述方法,本公开的一个或多个实施例还提供了一个安卓***控件意图识别装置,其内部结构如图5所示,主要包括:
信息分集模块502,用于从APK包中提取控件对应的图像信息和文本信息;
第一轻量级神经网络504,用于提取上述图像信息中的图像特征;
第二轻量级神经网络506,用于提取上述文本信息中的文本特征;
特征联合模块508,用于将上述图像特征和上述文本特征整合为联合特征;以及
分类模块510,用于根据上述联合特征预测上述控件所属的至少一个意图类别,并输出上述至少一个意图类别。
其中,上述各个模块的具体实现方式可以参考前述实施例的方法,在此不再重复说明。
需要说明的是,本公开一个或多个实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本公开一个或多个实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成上述的方法。
上述对本公开特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
图6为本公开实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器610、存储器620、输入/输出接口630、通信接口640和总线650。其中,处理器610、存储器620、输入/输出接口630和通信接口640通过总线650实现彼此之间在设备内部的通信连接。
处理器610可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本公开实施例所提供的安卓***控件意图识别方法。
存储器620可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器620可以存储操作***和其他应用程序,在通过软件或者固件来实现本公开实施例所提供的安卓***控件意图识别时,相关的程序代码保存在存储器620中,并由处理器610来调用执行。
输入/输出接口630用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口640用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线650包括一通路,在设备的各个组件(例如处理器610、存储器620、输入/输出接口630和通信接口640)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器610、存储器620、输入/输出接口630、通信接口640以及总线650,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本公开实施例方案所必需的组件,而不必包含图中所示的全部组件。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行整合,步骤可以以任意顺序实现,并存在如上所述的本公开一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开一个或多个实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开一个或多个实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开一个或多个实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开一个或多个实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种安卓***控件意图识别方法,包括:
从安卓应用程序APK包中提取控件对应的图像信息和文本信息;
基于第一轻量级神经网络,提取所述图像信息中的图像特征;
基于第二轻量级神经网络,提取所述文本信息中的文本特征;
将所述图像特征和所述文本特征整合为联合特征;
根据所述联合特征预测所述控件所属的至少一个意图类别;以及
输出所述至少一个意图类别。
2.根据权利要求1所述的方法,其中,所述从APK包中提取控件对应的图像信息和文本信息包括:
对所述APK包进行反编译,得到应用的源文件;
对所述源文件进行解析,得到所述应用中所包含图片控件的映射关系;
根据所述映射关系从所述源文件中提取图像信息和文本信息。
3.根据权利要求2所述的方法,其中,所述对所述源文件进行解析,得到所述应用中所包含图片控件的映射关系包括:
对所述源文件进行解析,得到所述应用中控件所包含的图片映射;
对所述源文件中不同分辨率的可绘制对象文件夹下的用户接口控件相关可扩展标记语言xml文件进行解析,获得这些以xml形式保存的控件所包含的图片映射;
对所述源文件进行分析,得到页面维度信息中的手柄Handler;
确定控件、图片、布局文件和Handler之间的关联关系;
使用静态调用图进行辅助分析,获得应用中Handler、敏感函数和敏感权限三者之间的映射关系;
根据所述源文件产生静态调用图,生成包含敏感操作的Handler的调用图,并保存其中的调用关系;以及
对所述关联关系、映射关系以及调用关系进行处理,得到所述应用中所包含图片控件的映射关系。
4.根据权利要求1所述的方法,其中,所述第一轻量级神经网络包括基于移动端神经网络MobileNetV3模型;以及所述第二轻量级神经网络包括双向长短期记忆BiLSTM网络。
5.根据权利要求1所述的方法,其中,所述将所述图像特征和所述文本特征整合为联合特征包括:依据共同注意机制,将所述图像特征和文本特征整合为所述联合特征。
6.根据权利要求5所述的方法,其中,所述依据共同注意机制,将所述图像特征和文本特征整合为所述联合特征包括:
根据图像特征和文本特征之间的相关性建立图像特征和文本特征的相关矩阵;
根据所述相关矩阵双向更新图像特征和文本特征;以及
将更新后的图像特征和文本特征相加,得到所述联合特征。
7.根据权利要求1所述的方法,其中,所述第一轻量级神经网络和所述第二轻量级神经网络通过下述方法进行联合训练:
获取数据集,并对所述数据集进行数据分级,得到其中的图像信息和文本信息机器对应的意图种类;
对所述图像信息进行预处理,并将预处理后的图像信息作为所述第一轻量级神经网络的输入;
对所述文本信息进行预处理,并将预处理后的文本信息作为所述第二轻量级神经网络的输入;
基于第一轻量级神经网络,提取所述图像信息中的图像特征;
基于第二轻量级神经网络,提取所述文本信息中的文本特征;
将所述图像特征和所述文本特征整合为联合特征;
根据所述联合特征预测所述控件所属的至少一个意图类别,得到至少一个预测意图类别;
将所述至少一个预测意图类别与所述意图种类进行比较,确定预测误差,并根据所述预测误差调整所述第一轻量级神经网络和所述第二轻量级神经网络的参数,直至收敛。
8.一种安卓***控件意图识别装置,包括:
信息分集模块,用于从安卓应用程序APK包中提取控件对应的图像信息和文本信息;
第一轻量级神经网络,用于提取上述图像信息中的图像特征;
第二轻量级神经网络,用于提取上述文本信息中的文本特征;
特征联合模块,用于将上述图像特征和上述文本特征整合为联合特征;以及
分类模块,用于根据上述联合特征预测上述控件所属的至少一个意图类别,并输出上述至少一个意图类别。
9.一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至7中任意一项所述的安卓***控件意图识别方法。
10.一种非暂态计算机可读存储介质,其中,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任意一项所述的安卓***控件意图识别方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110190126.XA CN112817604B (zh) | 2021-02-18 | 2021-02-18 | 安卓***控件意图识别方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110190126.XA CN112817604B (zh) | 2021-02-18 | 2021-02-18 | 安卓***控件意图识别方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112817604A true CN112817604A (zh) | 2021-05-18 |
CN112817604B CN112817604B (zh) | 2022-08-05 |
Family
ID=75864207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110190126.XA Active CN112817604B (zh) | 2021-02-18 | 2021-02-18 | 安卓***控件意图识别方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112817604B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335655A (zh) * | 2015-09-22 | 2016-02-17 | 南京大学 | 一种基于敏感行为识别的安卓应用安全性分析方法 |
CN109299216A (zh) * | 2018-10-29 | 2019-02-01 | 山东师范大学 | 一种融合监督信息的跨模态哈希检索方法和*** |
CN110717514A (zh) * | 2019-09-06 | 2020-01-21 | 平安国际智慧城市科技股份有限公司 | 会话意图识别方法、装置、计算机设备和存储介质 |
CN110909673A (zh) * | 2019-11-21 | 2020-03-24 | 河北工业大学 | 一种基于自然语言描述的行人再识别方法 |
CN111190813A (zh) * | 2019-12-17 | 2020-05-22 | 南京理工大学 | 基于自动化测试的安卓应用网络行为信息提取***及方法 |
CN111737458A (zh) * | 2020-05-21 | 2020-10-02 | 平安国际智慧城市科技股份有限公司 | 基于注意力机制的意图识别方法、装置、设备及存储介质 |
CN111898338A (zh) * | 2020-07-15 | 2020-11-06 | 北京字节跳动网络技术有限公司 | 文本生成方法、装置和电子设备 |
CN111985369A (zh) * | 2020-08-07 | 2020-11-24 | 西北工业大学 | 基于跨模态注意力卷积神经网络的课程领域多模态文档分类方法 |
CN112070069A (zh) * | 2020-11-10 | 2020-12-11 | 支付宝(杭州)信息技术有限公司 | 遥感图像的识别方法和装置 |
-
2021
- 2021-02-18 CN CN202110190126.XA patent/CN112817604B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335655A (zh) * | 2015-09-22 | 2016-02-17 | 南京大学 | 一种基于敏感行为识别的安卓应用安全性分析方法 |
CN109299216A (zh) * | 2018-10-29 | 2019-02-01 | 山东师范大学 | 一种融合监督信息的跨模态哈希检索方法和*** |
CN110717514A (zh) * | 2019-09-06 | 2020-01-21 | 平安国际智慧城市科技股份有限公司 | 会话意图识别方法、装置、计算机设备和存储介质 |
CN110909673A (zh) * | 2019-11-21 | 2020-03-24 | 河北工业大学 | 一种基于自然语言描述的行人再识别方法 |
CN111190813A (zh) * | 2019-12-17 | 2020-05-22 | 南京理工大学 | 基于自动化测试的安卓应用网络行为信息提取***及方法 |
CN111737458A (zh) * | 2020-05-21 | 2020-10-02 | 平安国际智慧城市科技股份有限公司 | 基于注意力机制的意图识别方法、装置、设备及存储介质 |
CN111898338A (zh) * | 2020-07-15 | 2020-11-06 | 北京字节跳动网络技术有限公司 | 文本生成方法、装置和电子设备 |
CN111985369A (zh) * | 2020-08-07 | 2020-11-24 | 西北工业大学 | 基于跨模态注意力卷积神经网络的课程领域多模态文档分类方法 |
CN112070069A (zh) * | 2020-11-10 | 2020-12-11 | 支付宝(杭州)信息技术有限公司 | 遥感图像的识别方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112817604B (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113011186B (zh) | 命名实体识别方法、装置、设备及计算机可读存储介质 | |
CN113435594B (zh) | 安防检测模型训练方法、装置、设备及存储介质 | |
CN111104516A (zh) | 一种文本分类方法、装置及电子设备 | |
CN111950279A (zh) | 实体关系的处理方法、装置、设备及计算机可读存储介质 | |
CN113255328A (zh) | 语言模型的训练方法及应用方法 | |
CN113255821A (zh) | 基于注意力的图像识别方法、***、电子设备及存储介质 | |
CN115994317A (zh) | 基于深度对比学习的不完备多视图多标签分类方法和*** | |
CN116541492A (zh) | 一种数据处理方法及相关设备 | |
CN116611449A (zh) | 异常日志解析方法、装置、设备及介质 | |
CN112799658B (zh) | 模型训练方法、模型训练平台、电子设备和存储介质 | |
CN113435531A (zh) | 零样本图像分类方法、***、电子设备及存储介质 | |
CN112749557A (zh) | 文本处理模型的构建方法和文本处理方法 | |
CN112817604B (zh) | 安卓***控件意图识别方法、装置、电子设备及存储介质 | |
CN116645956A (zh) | 语音合成方法、语音合成***、电子设备及存储介质 | |
CN116844573A (zh) | 基于人工智能的语音情感识别方法、装置、设备及介质 | |
CN115757786A (zh) | 文本分类方法、装置、设备及存储介质 | |
CN111340182B (zh) | 一种输入特征逼近的低复杂度cnn训练方法与装置 | |
CN115168575A (zh) | 应用于审计领域的主语补全方法及相关设备 | |
CN110929767B (zh) | 一种字形处理方法、***、设备和介质 | |
CN115081461A (zh) | 基于卷积神经网络和翻译模型的轻量化机器翻译方法 | |
US20200372368A1 (en) | Apparatus and method for semi-supervised learning | |
CN112765330A (zh) | 文本数据处理方法、装置、电子设备和存储介质 | |
CN117909505B (zh) | 事件论元的抽取方法及相关设备 | |
CN113553058B (zh) | 前端页面访问方法、***和电子设备 | |
CN112001566B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |