一种基于注意力机制的移动应用行为识别方法

文档序号:25095059发布日期:2021-05-18 21:32阅读:134来源:国知局
一种基于注意力机制的移动应用行为识别方法

1.本发明涉及一种基于注意力机制的移动应用行为识别方法,属于深度学习技术领域。


背景技术:

2.随着移动设备越来越智能,我们将越来越多的功能从电脑移到了手机上实现。与此同时,5g已经开始渐渐进入我们的生活,网络性能的大幅提升将能够对更多的业务提供支持,我们可以预料到5g将对移动端应用市场蓬勃发展起到极大的促进作用。
3.我们在使用每个移动端的应用时会产生各种各样的网络流量,而通过分析这些流量可以给我们带来很多信息,比如我们通过分析这些流量的应用时别,那么我们可以对用户的行为作出分析,或者是对某个地区某个年龄的用户的行为作出分析,从而实现更好的推荐,此外通过对移动端流量的分析,我们还可以利用这个分类模型,对一些有恶性行为的应用尽早发现并进行区分,从而及时避免出现安全问题,例如个人信息泄漏或者恶意监听等情况,尽早采取措施,保障网络的安全。
4.目前大部分的流量识别还是依赖于手动提取特征,但是这样的分类方法的可扩展性和自动化能力还是不够。随着深度学习这几年的蓬勃发展,深度学习也渐渐被应用于移动端的应用分类。用深度学习来进行分类,可以在特征的选择方面更加灵活,同时,在面对新的分类任务时可以更快的适应和调整。网络流量识别作为网络安全的基础工作,在网络资源管理和异常流量检测中起着重要的作用,而一些异常的网络行为都是偶发的,对于不同环境异常行为的定义也不一样,面对类似的小样本问题,且这些对于网络的安全或者是管理又是至关重要的,那么将深度学习中用于处理小样本问题的元学习与流量分类相结合的研究方向是具有实际意义的。


技术实现要素:

5.发明目的:为了克服现有技术中存在的不足,本发明提供一种基于注意力机制的移动应用行为识别方法,本方法采用深度可分离卷积结合注意力机制,并提出了一种新型融合了通道注意力和空间注意力的机制,实现了高效且准确的移动应用识别方法。
6.技术方案:为实现上述目的,本发明采用的技术方案为:
7.一种基于注意力机制的移动应用行为识别方法,设计自动化测试脚本;使用appium作为自动化测试平台,在真机上运行自动化脚本;使用抓包软件进行流量获取;将流量进行清洗、切割后,生成灰度图;用深度可分离卷积神经网络对灰度图进行初步的特征提取,并扩展图片通道数;将特征图经由注意力机制进一步进行特征提取;重复深度可分离卷积和注意力机制的步骤,最后输出流量的所属的应用行为分类。具体有以下步骤:
8.步骤1:数据集采集阶段:采集移动应用种类及移动应用行为得到数据流量;
9.步骤2:数据流量预处理阶段
10.步骤2

1:首先进行数据流量的清洗和筛选,这一步是为了清除掉一些无关的流量
数据包,其中包括了超时重传的数据包、用于建立接连的三次确认和断开连接的四次确认数据包,和无关的arp、dhcp等数据包;
11.步骤2

2:进行数据流量切分得到单个行为的流量数据;
12.步骤2

3:为了解决在使用机器学习时存在的,如何选择特征的问题,对单个行为的流量数据采用直接生成灰度图的方式,同时采用图片的方式扩大对行为数据整体的感受和对空间信息的掌握。
13.步骤3:行为识别阶段
14.步骤3

1:首先采用32个3*3的卷积核,对流量灰度图进行初步的特征提取得到初步特征图,扩大图片的通道数量,输出多通道的feature map;
15.步骤3

2:采用深度可分离卷积网络对初步特征图进行进一步的特征提取得到进一步特征图;步骤3

2中在深度可分离卷积网络,首先是逐通道进行卷积,而后逐点卷积,在保持识别效果的情况下,减少了计算量;
16.步骤3

3:对3

2中得到的特征图进一步提取该特征图通道方向的注意力,提取通道注意力的方式是先计算dct频域参数作为预处理,再经由全连接层、sigmoid激活函数,输出各通道的权重,即各通道对于分类任务的贡献程度,将该权重同3

2输出的特征图进行相乘;
17.步骤3

3中通道注意力要先进行dct的频域分析计算,计算公式为:
[0018][0019]
其中,表示二维dct的频谱,h和w分别表示输入分量的高度和宽度,2d表示二维输入,表示(i,j)位置的二维输入,i和j表示二维数据中的行和列;
[0020]
相应地,我们可以写出它的逆变换:
[0021][0022]
其中,表示二维dct的频谱,h和w分别表示输入分量的高度和宽度,2d表示二维输入,表示(i,j)位置的二维输入,i和j表示二维数据中的行和列;从该公式可以看出通道注意力最常使用的全局最大池化做特征图的预处理会丢失很多重要信息,因可以将全局最大池化视作当i=0,j=0时的最简单的频谱,而使用dct作为预处理,避免了丢失重要信息的问题。
[0023]
将输入3

2输出特征图按照通道进行切分,x
i
表示第i个通道的特征图,n表示总通道数,则该特征图的频域注意力的预处理结果freq
i
可以表示为:
[0024]
freq
i
=2ddct(x
i
)i∈{0,1,

,n

1}
[0025]
其中,2d表示计算的是二维频域,dct表示将x
i
作为输入使用本步骤的第二个公式进行计算,则n个通道的注意力预处理结果进行拼接后可以表示为:
[0026]
freq=cat([freq0,freq1,

,freq
n
‑1])
[0027]
通道注意力的计算公式为:
[0028]
map
c
(f)=σ(w0(freq))
[0029]
其中,map
c
(f)表示待生成的通道注意力,freq表示输入的待生成注意力的feature map的预处理结果,σ表示sigmoid激活函数,w0表示通道注意力中神经网络的参数,w0是需要进行学习的;
[0030]
步骤3

4:对3

3输出的特征图进一步提取空间方向的注意力,取空间方向的注意力的方式是将特征图进行最大池化和平均池化后进行拼接,再使用二维卷积核卷积得到空间域注意力,再将该attention map与特征图相乘;
[0031]
步骤3

4空间方向的注意力的计算公式为:
[0032]
map
s
(f)=σ(f
7*7
([avgpool(f);maxpool(f)]))
[0033]
其中,map
s
(f)表示待生成的空间注意力,f表示3

3输出的特征图,σ表示sigmoid激活函数,avgpool(f)表示对特征图f做平均池化,maxpool(f)表示对特征图f做最大池化,f
7*7
表示大小为7*7的卷积核,“;”表示将avgpool(f)与maxpool(f)进行concat。
[0034]
步骤3

5;重复步骤3

2至步骤3

4,最后经由最大池化和激活函数后进行行为识别结果的输出。
[0035]
优选的:步骤1中采集的移动应用种类包括微信、qq和微博,移动应用行为种类包括点赞、发文字消息、发图片消息、发红包、转账、评论。
[0036]
优选的:步骤1:数据集采集阶段包括以下步骤:
[0037]
步骤1

1:设计自动化脚本,用于执行既定移动应用的行为;
[0038]
步骤1

2:利用appium自动化测试平台,与手机连接,在手机上运行设计好的自动化脚本;
[0039]
步骤1

3:手机自动执行自动化脚本的命令,完成既定移动应用的相关行为,如发文字,发图片等;
[0040]
步骤1

4:用wireshark采集手机在执行自动化脚本时产生的网络数据流,保存为pcap文件。
[0041]
优选的:步骤1

2中采用的appium自动化测试脚本在ios和/或安卓平台使用,提高了代码的复用性。
[0042]
优选的:步骤1

3中在手机执行既定移动应用的相关行为时,对行为的开始时间和结束时间进行输出,方便对于后续的流量切割。
[0043]
优选的:步骤2

2:进行数据流量切分的方法:原始的pcap文件是很大的,不方便进行后续的处理,因此采用wireshark自带的editcap工具,对步骤1得到数据流量按时间进行切割,切割后为单个行为的流量数据。
[0044]
优选的:步骤2

3中生成灰度图的方法,采用截取每个行为流量数据的前1024字符生成32*32的灰度图,一个字符对应一个灰度值。
[0045]
优选的:步骤3

5中重复步骤3

2至步骤3

4三次。
[0046]
本发明相比现有技术,具有以下有益效果:
[0047]
1、采用了深度可分离卷积取代常规的卷积神经网络,极大的减少了计算量。
[0048]
2、采用了通道注意力和空间注意力相结合的方式,以一个嵌入式模块的形式,在
特征提取的过程过抑制了无效信息,强化了对识别结果贡献大的信息。
[0049]
3、设计了数据集采集的方法,并且可以跨平台使用,增强了代码复用性、移植性。
[0050]
4、提高了对于移动应用行为识别的准确率,具有实用性
附图说明
[0051]
图1是本发明中为了便于流量切分的脚本设计方式。
[0052]
图2是本发明中的深度可分离卷积的逐通道卷积部分示意图。
[0053]
图3是本发明中深度可分离卷积的逐点卷积部分示意图。
[0054]
图4是本文注意力机制的示意图。
[0055]
图5是通道注意力的示意图。
[0056]
图6是本发明的流程图。
具体实施方式
[0057]
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
[0058]
一种基于注意力机制的移动应用行为识别方法,如图1是数据采集中为了便于流量切分的脚本设计方式,如图图2是本发明中的深度可分离卷积的逐通道卷积部分示意图,图3是本发明中深度可分离卷积的逐点卷积部分示意图,图4是本文注意力机制的示意图,图5是通道注意力的示意图,图6是本发明的流程图。
[0059]
整个行为识别的过程主要由三个部分组成:数据集采集部分,流量预处理部分和基于注意力机制的识别部分。
[0060]
一、数据集采集阶段
[0061]
步骤1

1:设计自动化脚本,用于执行既定移动应用的行为,在编写脚本的逻辑方面,本文研究的对象是移动应用在使用时产生的网络数据,重点在于应用行为,在参考了很多文献资料后,发现一般情况下都是在采集连续的流量后对行为流量进行切分,本文的自动化测试脚本是自行编写的,因此可以完成将单个行为进行分离,操作的步骤示意图如1。
[0062]
步骤1

2:利用appium自动化测试平台,与手机连接,在手机上运行设好的自动化脚本,本文选取appium作为最大的好处是可以它可以实现跨平台,即在ios和安卓系统的真机操作脚本中使用同一套api来编写,大大增加了代码的复用性。与其他自动化测试平台一样,能够通过代码实现对手机的点击、滑动、输入等真实操作。
[0063]
步骤1

3:手机自动执行脚本的命令,完成既定移动应用的相关行为,如发文字,发图片等;
[0064]
步骤1

4:用wireshark采集手机在执行脚本时产生的网络数据流。ireshark可以将当前系统所有网卡列出,所以我们直接选择特定网卡就能监听流经该网卡的所有网络数据流,但是由于不能直接识别到手机的网卡,因此在连接到电脑后,依据手机udid使用wireshark连接设备,就可以查找到对应的虚拟网络接口,名字一般是rvi0开始,选择后就可以获取到手机的网络数据包。同样的行为重复大约5000次左右,保存为pcap文件。
[0065]
二、流量预处理阶段
[0066]
步骤2

1:首先进行流量的清洗和筛选,这一步是为了清除掉一些无关的流量数据包,其中包括了超时重传的数据包、用于建立接连的三次确认和断开连接的四次确认数据包,和无关的arp、dhcp等数据包,当然,考虑到同一无线网下会存在其他设备访问网络产生流量,因此还需要依据ip地址对无关设备产生的流量进行过滤。
[0067]
步骤2

2:进行流量切分,原始的pcap文件是很大的,不方便进行后续的处理,因此采用wireshark自带的editcap工具,对原始流量按时间进行切割,使用语句为editcap

a

b<原始pcap文件名><目的文件名>,其中a和b分别表示行为开始时间和结束时间,切割后为单个行为的流量数据。
[0068]
步骤2

3:为了解决在使用机器学习时存在的,如何选择特征的问题,采用直接生成灰度图的方式,同时采用图片的方式可以扩大对行为数据整体的感受和对空间信息的掌握。
[0069]
三、行为识别阶段
[0070]
步骤3

1:首先采用32个3*3的卷积核,对流量灰度图进行初步的特征提取,扩大图片的通道数量,输出多通道的feature map;
[0071]
步骤3

2:采用深度可分离卷积网络进行进一步的特征提取,在深度可分离卷积部分,首先是逐通道进行卷积,而后逐点卷积,在保持识别效果的情况下,减少了计算量;深度可分离卷积主要由深度卷积和逐点卷积两个部分组成。深度卷积(depthwise convolution)是作用于通道层面,例如对于shape为h*w*c的输入,那么在深度卷积这一部分,卷积核对应就是h*w*1,有c个对应每一个通道。逐点卷积(pointwise convolution)与常规的卷积类似,如图5所示展示的是以三个通道数举例的模型.但是在这里它的尺寸是1*1*c,c为通道数并假设个数为n,其实就是将上一步得到的特征图在深度上进行加权组合,那么相比于标准的卷积操作,深度可分离卷积需要计算到的参数数量是要少很多的,如下公式计算:
[0072][0073]
步骤3

3:对特征图提取通道方向的注意力,提取通道注意力的方式是先计算dct频域参数作为预处理,再经由全连接层,sigmoid激活函数,输出各通道的权重,即各通道对于分类任务的贡献程度,将该权重同原始特征图进行相乘。在通道注意力机制方面是可以引入其它频域信息的,再结合下述公式,可以发现当x作为完整的输入时,如果选择使用全局最大池化作为预处理,就会丢失掉很多很多其它频域的信息,因此,对通道注意力的一个改动就是将预处理部分的gap改为频域成份的组合的形式,具体的操作流程如图4所示。
[0074]
步骤3

3中通道注意力要先进行dct的频域分析计算,计算公式为:
[0075][0076]
其中,表示二维dct的频谱,h和w分别表示输入分量的高度和宽度,2d表示二维输入,表示(i,j)位置的二维输入,i和j表示二维数据中的行和列;
[0077]
相应地,我们可以写出它的逆变换:
[0078][0079]
其中,表示二维dct的频谱,h和w分别表示输入分量的高度和宽度,2d表示二维输入,表示(i,j)位置的二维输入,i和j表示二维数据中的行和列;从该公式可以看出通道注意力最常使用的全局最大池化做特征图的预处理会丢失很多重要信息,因可以将全局最大池化视作当i=0,j=0时的最简单的频谱,而使用dct作为预处理,避免了丢失重要信息的问题。
[0080]
将输入3

2输出特征图按照通道进行切分,x
i
表示第i个通道的特征图,n表示总通道数,则该特征图的频域注意力的预处理结果freq
i
可以表示为:
[0081]
freq
i
=2ddct(x
i
)i∈{0,1,

,n

1}
[0082]
其中,2d表示计算的是二维频域,dct表示将x
i
作为输入使用本步骤的第二个公式进行计算,则n个通道的注意力预处理结果进行拼接后可以表示为:
[0083]
freq=cat([freq0,freq1,

,freq
n
‑1])
[0084]
通道注意力的计算公式为:
[0085]
map
c
(f)=σ(w0(freq))
[0086]
其中,map
c
(f)表示待生成的通道注意力,freq表示输入的待生成注意力的feature map的预处理结果,σ表示sigmoid激活函数,w0表示通道注意力中神经网络的参数,w0是需要进行学习的;
[0087]
步骤3

4:对特征图提取空间方向的注意力,那么在这一部分中首先将输入的特征图在基于通道的基础上进行global max pooling和global average pooling,再将这两个得到的结果进行拼接,经过一个卷积操作后降维到一个通道宽度的特征图,在sigmoid后生成空间注意力特征图,再与输入的特征图相乘,得到最后生成的特征图。计算公式如下所示:
[0088]
map
s
(f)=σ(f
7*7
([avgpool(f);maxpool(f)]))
[0089]
其中,map
s
(f)表示待生成的空间注意力,f表示3

3输出的特征图,σ表示sigmoid激活函数,avgpool(f)表示对特征图f做平均池化,maxpool(f)表示对特征图f做最大池化,f
7*7
表示大小为7*7的卷积核,“;”操作表示将avgpool(f)与maxpool(f)进行concat。
[0090]
步骤3

5;重复3

2至3

4的步骤三次,最后经由最大池化和激活函数后进行行为识别结果的输出。整个流程如图6.
[0091]
本发明在自行采集的微信、qq和微博的数据集上,按照8∶2的比例划分训练集和测试集。经过神经网络的超参数调优,最终得到的分类结果中发文字行为和点赞行为的检测率最高,分别为99.66%和99.34%,在微信的行为识别中,转账和发红包的准确率相对较低,分别为96.3%和94.6%,总体精度达到98%,总体检测率92%。以上分析可知,本发明基于注意力机制的移动应用行为识别方法取得了良好的分类效果。
[0092]
以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1