CN109144837B - 一种支持精准服务推送的用户行为模式识别方法 - Google Patents
一种支持精准服务推送的用户行为模式识别方法 Download PDFInfo
- Publication number
- CN109144837B CN109144837B CN201811024517.9A CN201811024517A CN109144837B CN 109144837 B CN109144837 B CN 109144837B CN 201811024517 A CN201811024517 A CN 201811024517A CN 109144837 B CN109144837 B CN 109144837B
- Authority
- CN
- China
- Prior art keywords
- data
- time
- user
- cpu
- nice
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- 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)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Development Economics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Computer Hardware Design (AREA)
- Telephonic Communication Services (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Probability & Statistics with Applications (AREA)
- Evolutionary Biology (AREA)
- Game Theory and Decision Science (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Life Sciences & Earth Sciences (AREA)
Abstract
本发明公开了一种支持精准服务推送的用户行为模式识别方法,包括:步骤1,从安卓移动设备中收集应用运行过程中的设备能耗、CPU使用情况、内存使用情况和通信数据包信息;步骤2,运用数据清洗技术对收集到的数据进行数据处理,去除噪音数据,并填补其中存在的空缺数据,然后使用滑动窗口技术对数据进行分组;步骤3,使用轻型机器学习技术随机森林算法进行分类器训练;步骤4,利用步骤3训练的分类器对应用的使用情况进行推测;步骤5,根据应用的使用情况构建用户行为模型;步骤6,根据用户行为模型预测用户行为从而提供精准服务推送。
Description
技术领域
本发明涉及安卓设备中用户行为分析领域,尤其涉及一种支持精准服务推送的用户行为模式识别方法。
背景技术
移动互联网的快速发展导致了全球移动设备的普及。谷歌和苹果这两家移动应用巨头研发的操作系统Android和iOS几乎垄断了全球智能手机市场。Gartner的研究表明,截至2016年第三季度,全球87.8%的智能手机搭载了Android系统。由于开源的优势,Android系统已经吸引了大量软件开发人员的关注,并被应用于移动设备,平板终端,电视,数码相机,游戏机等智能设备。大量应用程序不断涌现,功能几乎涵盖了用户可以想到的所有服务。到2015年,基于Android系统的Google Play应用商店中的应用数量达到了143万从而超越了iOS。
移动设备极大地改变了人们的生活。人们越来越热衷于使用移动应用程序来完成各种任务。实际上,运行应用程序的用户通常具有一定的规律性,可用于分析用户行为。例如,当用户闲暇时,他习惯于使用移动应用程序来购物,观看视频,浏览网页,聊天或玩游戏;当用户工作时,他习惯于使用移动应用程序查看文本,查看电子邮件,使用Office编辑文档和查询相关知识;当用户旅行时,他习惯于使用移动应用程序完成支付任务,使用地图获取线路和其他服务。因此,通过分析用户对移动应用程序的使用,可以获知用户行为模式。
用户行为模式的识别对于为用户提供更及时和准确的服务推送以及引导开发人员改进服务功能具有积极作用。分析应用程序使用情况可以为构建用户行为模型提供依据。那么如何推测应用的使用情况呢?目前,主要方法是通过流量分析推断某个时刻的应用程序使用情况,如H.F.Alan等人在“Can android applications be identified usingonly tcp/ip headers of their launch time traffic?(In:ACM Conference onSecurity&Privacy in Wireless and Mobile Networks.,2016,pp.61–66.)”中通过分析数据包信息来推测应用使用情况;还有一些方法可以通过分析公共资源来推断应用程序的使用情况,如Y.Chen等人在“Powerful:Mobile app fingerprinting via poweranalysis.(In IEEE INFOCOM,2017,pp.1–9.)”中通过分析功耗来推测应用使用情况;X.Liu等人在“Understanding diverse usage patterns from large-scale appstore-service profiles.(In:IEEE Transactions on Software Engineering,2018,pp.384–411.)”中通过分析用户状态来推测应用使用情况。然而,当前的方法通常仅考虑一项数据(例如流量,功率),这对于结果是次优的。
发明内容
发明目的:本发明所要解决的技术问题是针对现有技术的对用户行为模式的识别不够精确的不足,提供一种支持精准服务推送的用户行为模式识别方法。
为了解决上述问题,本发明公开了一种支持精准服务推送的用户行为模式识别方法,包括以下步骤:
步骤1,从安卓移动设备中收集应用使用过程中设备能耗、CPU使用情况、内存使用情况和应用使用网络发送的通信数据包信息;
步骤2,对步骤1收集到的数据进行数据处理,去除噪音数据,并填补其中存在的空缺数据,然后使用滑动窗口技术对数据进行分组;
步骤3,进行分类器训练;
步骤4,利用步骤3训练的分类器对实际应用的使用情况进行推测;
步骤5,根据应用的使用情况构建用户行为模型;
步骤6,根据用户行为模型预测用户行为从而提供精准服务推送。
步骤1包括如下步骤:
步骤1-1,通过安卓设备中的公共资源收集设备各个时刻的CPU使用情况,通过访问安卓公共文件查看当前的CPU利用率信息,得到一个元组(user,nice,system,idle,iowait,irq,softirq,stealstolen,guest,guest_nice),其中,user表示在用户模式消耗的时间,nice表示在低优先级的用户模式消耗的时间,system表示在系统模式消耗的时间,idle表示在闲置任务消耗的时间,iowait表示等待输入输出完成的时间,irq表示服务中断时间,softirq表示服务软中断时间,stealstolen表示在虚拟化环境中运行时在其他操作系统上花费的时间,guest表示在Linux内核的控制下为客户操作系统运行虚拟CPU所花费的时间,guest_nice表示运行niced guest虚拟机所花费的时间;元组中的参数都是从系统启动开始累积到当前时刻的;
步骤1-2,通过安卓设备中的公共资源收集设备各个时刻的内存使用情况:能够使用的内存为availableMemory=free+buffers+cached,其中free表示剩余未使用内存,buffers表示已使用的内存,cached表示用于缓存的内存,则通过如下公式获得内存利用率memoryUsage:
其中,totalMemorySize表示安卓设备总内存,availableMemory表示安卓设备空闲内存;获取内存使用情况后,安卓设备上收集到的的内存数据集应为多个元组(timestamp1,memoryUsage),其中timestamp1为时间戳用于标记收集内存利用率数据的时间;
步骤1-3,通过查询安卓公共资源文件获得安卓设备的电压voltage和瞬时电流current测量值,并根据如下公式计算功率Power:
Power=voltage*current,
此时设备上收集的功耗数据为多个元组(timestamp2,Power),其中timestamp2为时间戳用于标记收集功率数据的时间;
步骤1-4,使用VPNservice插件来创建VPN连接,使得所有数据包都要经过这个连接,从而收集到需要的移动应用的通信数据包。
步骤1-1中,采用如下方法计算CPU利用率:
步骤1-1-1,采样时间间隔足够短的t1,t2两个时刻的CPU数据(一般设置t1,t2间隔1秒),得到t1时刻的元组(user1,nice1,system1,idle1,iowait1,irq1,softirq1,stealstolen1,guest1,guest_nice1)和t2时刻的元组(user2,nice2,system2,idle2,iowait2,irq2,softirq2,stealstolen2,guest2,guest_nice2),
user1表示从系统启动开始累积到t1时刻在用户模式消耗的时间,nice1表示从系统启动开始累积到t1时刻在低优先级的用户模式消耗的时间,system1表示从系统启动开始累积到t1时刻在系统模式消耗的时间,idle1表示从系统启动开始累积到t1时刻在闲置任务消耗的时间,iowait1表示从系统启动开始累积到t1时刻等待输入输出完成的时间,irq1表示从系统启动开始累积到t1时刻服务中断时间,softirq1表示从系统启动开始累积到t1时刻服务软中断时间,stealstolen1表示从系统启动开始累积到t1时刻在虚拟化环境中运行时在其他操作系统上花费的时间,guest1表示从系统启动开始累积到t1时刻在Linux内核的控制下为客户操作系统运行虚拟CPU所花费的时间,guest_nice1表示从系统启动开始累积到t1时刻运行niced guest虚拟机所花费的时间;
步骤1-1-2,利用如下公式计算t1时刻CPU时间CPUTime1和t2时刻CPU时间CPUTime2:
CPUTime1=user1+nice1+system1+idle1+iowait1+irq1+softirq1+stealstolen1+guest1+guest_nice1,
CPUTime2=user2+nice2+system2+idle2+iowait2+irq2+softirq2+stealstolen2+guest2+guest_nice2;
步骤1-1-3,使用如下公式计算CPU利用率cpuUsage:
获得cpuUsage后,设备上关于CPU的数据集应为多个元组(timestamp3,cpuUsage),其中timestamp3为时间戳用于标记收集CPU利用率使用的时间。
步骤1-4包括如下步骤:
步骤1-4-1,应用程序使用套接字将相应的数据包发送到真实网络设备上;
步骤1-4-2,Android系统通过IP表使用网络地址转换方法NAT将所有数据包转发到虚拟网络设备上;
步骤1-4-3,VPN程序通过读取安卓设备上的数据来获取保存到虚拟网络的所有数据包;
步骤1-4-4,VPN程序对数据包进行收集,获取数据包中的时间戳,目的IP地址协议类型和目的主机值,然后将收集的数据包通过真实网络设备发送到远程服务器,服务器解析该数据包,最终获得多个元组(timestamp,IP,protocol,host),其中timestamp表示http包头的时间戳,IP表示目的IP地址,protocol表示协议类型,host表示主机属性值。
步骤2包括如下步骤:
步骤2-1,对于步骤1中收集的一段时间的CPU利用率,内存利用率和功率的数据集,分别用DCPU,Dmemory和Dpower表示,三种数据集的处理方法相同,使用D代表三种数据集进行数据处理,首先采用数据清洗技术处理噪音数据;
步骤2-2,采用邻近数据平均值法填充空缺值:设其中第i个空缺数据为ai,则ai的计算公式为:
步骤2-3,对于数据集D=(d1,…di,…,dn),其中di(i∈[1,n])是指第i个数据,n是数据集中数据总数,在D上应用长度为W,偏移距离为r的滑动窗口以生成等长的序列样本S1,...,Sk,Sk表示第k个序列样本,其中,
Si=(D(i-1)rW+1,…,D(i-1)rW+W),
对于所有i=1,…,k且则D(i-1)rW+1表示从数据集D中采样的样本Si的第一个测量值,D(i-1)rW+W表示从数据集D中采样的样本Si的第W个测量值;将r设置为0.1并选择W使得rW∈Z,从序列样本中提取特征,特征包括序列样本的平均值Savg、第20百分位数S20pctl、第50百分位数S50pctl、第80百分位数S80pctl、标准差SSD、序列样本的最大值Smax和序列样本的最小值Smin;
步骤2-4,对于随时间推移应用进行通信的数据包数据,处理http包头的目标IP地址,协议类型和主机属性值。
步骤2-1包括如下步骤:
步骤2-1-1,计算出数据集元组中各属性值的总体均值μ和方差σ;
步骤2-1-3,根据置信区间判断该数据是否为噪音数据,若不在置信区间内,则为噪音数据,将该数据删除;否则保留。
步骤3中,将从不同样本中提取的所有特征向量聚合到训练集中,特征向量包括通信数据包的数据元组(timestamp,IP,protocol,host)和CPU利用率、内存利用率以及瞬时功率的数据元组(Savg,S20pctl,S50pctl,S80pctl,SSD,Smax,Smin),通过轻量级机器学习技术随机森林训练分类器,并进行10倍交叉验证。
步骤4中,利用步骤3训练的分类器对一个时间段内(一般为一周)应用的使用情况进行推测。
步骤5包括:根据应用的使用情况构建用户行为模型Appuser,Appuser是一个包含一周7天一天24小时的矩阵模型:
其中ai,j(1≤i≤24,1≤j≤7)表示用户user在每周的第j天的第i个小时最可能使用的应用名称。
步骤6中,根据步骤5中得到的每个用户的行为模型,预测出每个用户在一周的每一天的每个小时内最有可能使用的应用,在该时刻该应用将会被设置为消息可推送模式从而为用户提供精准的服务推送。
与现有技术相比,本发明具有的有益效果是:
(1)充分考虑数据包信息、CPU使用情况、内存使用情况和电量消耗,对于每一个应用使用情况的推测的准确性得到极大的提高,为精准服务推送提供基础;
(2)通过应用的使用情况探索用户行为模式,极好的将用户和应用的关系结合起来。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。
图1是本发明用户行为模式识别方法流程图。
图2是本发明方法中用户行为模型构建的基本框架图。
图3为某用户使用APP行为统计图。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
本发明公开了一种支持精准服务推送的用户行为模式识别方法,该方法流程图和框架图分别如图1和图2所示,包括以下步骤:
步骤1,从安卓移动设备中收集应用使用过程中设备能耗、CPU使用情况、内存使用情况和应用使用网络发送的通信数据包信息;
步骤2,运用数据清洗技术对收集到的数据进行数据处理,去除噪音数据,并填补其中存在的空缺数据,然后使用滑动窗口技术对数据进行分组;
步骤3,使用轻型机器学习技术随机森林算法进行分类器训练;
步骤4,利用步骤3训练的分类器对实际应用的使用情况进行推测;
步骤5,根据应用的使用情况构建用户行为模型;
步骤6,根据用户行为模型预测用户行为从而提供精准服务推送。
步骤1包括如下步骤:
步骤1-1,通过安卓设备中的公共资源收集设备各个时刻的CPU使用情况。通过访问安卓公共文件/proc/stat查看当前的CPU利用率信息。可以得到一个元组(user,nice,system,idle,iowait,irq,softirq,stealstolen,guest,guest_nice),参数的具体含义在表1中。这些参数都是从系统启动开始累积到当前时刻的。
表1查询CPU利用率参数及含义
计算CPU利用率的方法如下:
(1)采样时间间隔足够短的t1,t2两个时刻的CPU数据;
(2)利用下面公式计算t1,t2时刻CPU时间,分别为CPUTime1,CPUTime2;
CPUtime=user+nice+system+idle+iowait+irq+softirq+stealstolen+guest+guest_nice
(3)使用公式计算CPU利用率,记为cpuUsage,
获得cpuUsage后,设备上关于CPU的数据集应为多个元组(timestamp,cpuUsage)。
步骤1-2,通过安卓设备中的公共资源收集设备各个时刻的内存使用情况。由于在每个应用程序执行期间使用的内存都有自己的功能,将分析内存使用情况以推断在某个时刻使用的应用程序。通过访问安卓公共资源文件/proc/meminfo中的数据,可以获得设备的总内存和当前可用内存,然后可以获得设备的当前内存使用情况。Linux中关于内存的思想是“物尽其用”,因此它会尽可能多地缓存数据以方便下次使用。但是当其他应用需要使用内存时,这些缓存可以被立即使用。所以可用的内存为availableMemory=free+buffers+cached。因此,可以通过下面公式获得内存利用率。
获取内存使用情况后,设备上收集到的的内存数据集应为多个元组(timestamp,memoryusage)。
步骤1-3,由于每个应用程序在运行过程中的功耗都有其独特的曲线,将分析功耗以推断在某个时刻使用的应用程序。可以通过查询安卓公共资源文件/sys/class/power_supply/battery获得电压和瞬时电流测量值,并根据公式Power=voltage*current计算功率。在获得瞬时功率后,设备上收集的功耗数据应为多个元组(timestamp,Power)。
步骤1-4,使用VPNservice插件来创建VPN连接从而使得所有数据包都要经过这个连接,这可以收集到需要的移动应用的通信数据包。具体实施过程如下:
(1)应用程序使用Socket将相应的数据包发送到真实网络设备上。
(2)Android系统通过IP表使用NAT将所有数据包转发到TUN虚拟网络设备上。
(3)VPN程序通过打开/dev/tun设备并读取设备上的数据来获取保存到TUN虚拟网络的所有数据包。
(4)VPN程序对数据包进行一些处理,然后将处理后的数据包通过真实网络设备发送出去。
根据各种资料,移动应用程序使用的大多数通信协议包括IP协议,TCP协议,UDP协议和HTTP协议,因此主要使用这四种协议从当前设备收集数据包到远程服务器,不会更改或窃取数据包数据,用户不必担心隐私数据泄露。当然,前提是获得用户授权。收集的流量包将立即发送,不会影响用户的上网体验。收集数据包后,将在当前设备上提取http包头的时间戳,目的IP地址,协议类型和主机属性值,并将其发送到服务器进行分析。服务器收集的流量数据应该是多个元组(timestamp,IP,protocol,host)。
步骤1收集数据的工作将会集成到一个简单小型的应用程序中。收集到的数据将会通过网络方式传送到服务器端进行数据处理和数据挖掘等后续工作。
步骤2将收集到的数据进行处理用于后续工作。收集到的数据包括随时间变化而产生变化曲线的CPU利用率,内存利用率和功耗以及随时间推移应用进行通信的数据包。对于前面可得到变化曲线的三个数据的处理包括步骤2-1,2-2和2-3;对于随时间推移应用进行通信的数据包的处理为步骤2-4。
步骤2-1,采用数据清洗技术处理噪音数据。切比雪夫(Chebyshev)定理用于将噪音数据与正常数据识别开来。识别操作分为三步:
(1)计算出各属性值的总体均值μ和方差σ;
(3)根据置信区间判断该数据是否为噪音数据。若是,则将该数据删除;反之保留。
步骤2-2,采用邻近数据平均值法填充空缺值。邻近数据平均值法使用与空缺值近似的数据来进行估计。根据步骤1中对电力数据的建模,设第i个属性值的空缺数据为ai,则ai的预测公式为
步骤2-3,对于数据集D=(d1,…di,…,dn),其中di(i∈[1,n])是指第i个测量值,n是测量值的总数。在D上应用长度为W,偏移距离为r的滑动窗口以生成等长的序列样本S1,...,Sk,其中
Si=(D(i-1)rW+1,…,D(i-1)rW+W),
对于所有i=1,…,k且根据经验将r设置为0.1并选择W使得rW∈Z。接下来,从样本中提取特征包括平均值,第20,第50和第80百分位数,标准差,最大值和样本的最小值,分别由Savg,S20pctl,S50pctl,S80pctl,SSD,Smax和Smin表示。
步骤2-4,对于随时间推移应用进行通信的数据包数据,处理http包头的目标IP地址,协议类型和主机值。由于许多大公司(如阿里巴巴和腾讯)拥有大量服务器,并且有多个IP地址间隔与一家公司相关联,因此尽可能地收集了已知服务器的IP地址区段。将收集的IP地址与IP地址区段进行比较。当IP地址匹配时,使用相应的服务器ID取代IP地址。为了处理主机值,提取可以代表服务器或公司的关键字作为主机值。例如,使用QQ时可以收集http数据包,主机值是www.tencent.com。需要提取腾讯作为主机值,因为它可以代表属于腾讯的应用程序正在运行。这有助于将范围缩小到QQ,微信或QQ邮箱等应用。
步骤3中,将从不同样本中提取的所有特征向量聚合到训练集中。特征向量包括通信数据包的数据元组(timestamp,IP,protocol,host)和CPU利用率、内存利用率以及瞬时功率的数据元组(Savg,S20pctl,S50pctl,S80pctl,SSD,Smax,Smin)。通过轻量级机器学习技术随机森林训练分类器,并进行10倍交叉验证。随机森林就是通过集成学习的思想将多棵树集成的一种算法,它是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。
步骤4中,利用步骤3训练的分类器对用户某一时间段内应用的使用情况进行推测。
步骤5中,根据应用的使用情况构建用户行为模型,可以清晰地展示用户在一天的每一个时间段最可能使用的应用。用户行为模型Appuser的构建实际上就是构建一个包含一周7天一天24小时的矩阵模型,
其中ai,j(1≤i≤24,1≤j≤7)表示用户user在每周的第j天的第i个小时最可能使用的应用名称
步骤6中,根据用户行为模型预测用户行为从而提供精准服务推送。根据步骤5中得到的每个用户的行为模型,可以预测出每个用户在一周的每一天的每个小时内最有可能使用的应用。因此,在该时刻该应用将会设置为消息可推送模式从而为用户提供精准的服务推送。
实施例
本实施例使用了A城市某学校的50位学生志愿者作为实验对象。50位学生包括35位男生和15位女生。年龄分布在18-28岁之间。本实施例中开发了一款Android应用,主要功能是获取瞬时电流,电压,当前网络状态,内存使用情况,CPU使用率,抓取网络流量包,然后将数据传输到服务器进行分析。在志愿者的安卓手机上安装了开发的应用程序。志愿者需要在60分钟内使用6个不同的热门应用程序,并且在一个应用程序运行过程中不能在后台运行其他应用程序。
将志愿者的安卓手机中收集到的数据通过数据线传送到服务器端进行分析处理。先将数据进行处理,运用数据清洗技术将收集到的数据去除掉噪音数据,并填补其中存在的空缺数据,然后使用滑动窗口技术对数据进行分组;
根据时间戳将时间相同的数据进行合并。然后得到特征向量包括通信数据包的数据元组(timestamp,IP,protocol,host)和CPU利用率、内存利用率以及瞬时功率的数据元组(Savg,S20pctl,S50pctl,S80pctl,SSD,Smax,Smin)。将处理后的的数据集进行随机抽取80%作为训练集,20%作为测试集进行准确性测试。使用轻型机器学习技术随机森林算法进行分类器训练,并进行10倍交叉验证。最后将训练的分类器对实际应用的使用情况进行推测。
然后,收集了50名学生志愿者持续一个月使用应用程序的数据。将这些数据作为测试集并使用训练的分类器来推断各个时间段使用的应用程序。可以为每位志愿者提供使用的应用程序和时间的映射关系,如下图3所示为一位志愿者在一周时间使用应用的情况统计。
图3中随着条形图的颜色不断加深,应用程序的使用频率也在增加。微信是一周内最常用的应用程序,几乎每天大部分时间都在使用;QQ有类似的使用频率。用户在10:00-12:00和16:00-18:00通常会使用饿了么点餐。在12:00-14:00和18:00-24:00更集中于进行通信,玩游戏和阅读新闻。这两个时间段都是下班时间。这些行为与学生的行为比较一致也证明了本发明方法的准确性。
根据构建该用户的行为模型,可以预测用户在10:00-12:00和16:00-18:00最可能使用的应用为微信,网易云音乐以及饿了么,因此这三个应用在该时刻会允许发送服务推送用于满足用户需求。在12:00-14:00和18:00-24:00最可能使用的应用为刺激战场,微信和爱奇艺,因此这三个应用在该时刻会允许发送服务推送用于满足用户需求。
本发明提供了一种支持精准服务推送的用户行为模式识别方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (1)
1.一种支持精准服务推送的用户行为模式识别方法,其特征在于,包括以下步骤:
步骤1,从安卓移动设备中收集应用使用过程中设备能耗、CPU使用情况、内存使用情况和应用使用网络发送的通信数据包信息;
步骤2,对步骤1收集到的数据进行数据处理,去除噪音数据,并填补其中存在的空缺数据,然后使用滑动窗口技术对数据进行分组;
步骤3,进行分类器训练;
步骤4,利用步骤3训练的分类器对实际应用的使用情况进行推测;
步骤5,根据应用的使用情况构建用户行为模型;
步骤6,根据用户行为模型预测用户行为从而提供精准服务推送;
步骤1包括如下步骤:
步骤1-1,通过安卓设备中的公共资源收集设备各个时刻的CPU使用情况,通过访问安卓公共资源文件查看当前的CPU利用率信息,得到一个元组(user,nice,system,idle,iowait,irq,softirq,stealstolen,guest,guest_nice),其中,user表示在用户模式消耗的时间,nice表示在低优先级的用户模式消耗的时间,system表示在系统模式消耗的时间,idle表示在闲置任务消耗的时间,iowait表示等待输入输出完成的时间,irq表示服务中断时间,softirq表示服务软中断时间,stealstolen表示在虚拟化环境中运行时在其他操作系统上花费的时间,guest表示在Linux内核的控制下为客户操作系统运行虚拟CPU所花费的时间,guest_nice表示运行niced guest虚拟机所花费的时间;元组中的参数都是从系统启动开始累积到当前时刻的;
步骤1-2,通过安卓设备中的公共资源收集设备各个时刻的内存使用情况:能够使用的内存为availableMemory=free+buffers+cached,其中free表示剩余未使用内存,buffers表示已使用的内存,cached表示用于缓存的内存,则通过如下公式获得内存利用率memoryUsage:
其中,totalMemorySize表示安卓设备总内存,availableMemory表示安卓设备空闲内存;获取内存使用情况后,安卓设备上收集到的内存数据集应为多个元组(timestamp1,memoryUsage),其中timestamp1为时间戳用于标记收集内存利用率数据的时间;
步骤1-3,通过查询安卓公共资源文件获得安卓设备的电压voltage和瞬时电流current测量值,并根据如下公式计算功率Power:
Power=voltage*current,
此时设备上收集的功耗数据为多个元组(timestamp2,Power),其中timestamp2为时间戳用于标记收集功率数据的时间;
步骤1-4,使用VPNservice插件来创建VPN连接,使得所有数据包都要经过这个连接,从而收集到需要的移动应用的通信数据包;
步骤1-1中,采用如下方法计算CPU利用率:
步骤1-1-1,采样时间间隔足够短的t1,t2两个时刻的CPU数据,得到t1时刻的元组(user1,nice1,system1,idle1,iowait1,irq1,softirq1,stealstolen1,guest1,guest_nice1)和t2时刻的元组(user2,nice2,system2,idle2,iowait2,irq2,softirq2,stealstolen2,guest2,guest_nice2),
user1表示从系统启动开始累积到t1时刻在用户模式消耗的时间,nice1表示从系统启动开始累积到t1时刻在低优先级的用户模式消耗的时间,system1表示从系统启动开始累积到t1时刻在系统模式消耗的时间,idle1表示从系统启动开始累积到t1时刻在闲置任务消耗的时间,iowait1表示从系统启动开始累积到t1时刻等待输入输出完成的时间,irq1表示从系统启动开始累积到t1时刻服务中断时间,softirq1表示从系统启动开始累积到t1时刻服务软中断时间,stealstolen1表示从系统启动开始累积到t1时刻在虚拟化环境中运行时在其他操作系统上花费的时间,guest1表示从系统启动开始累积到t1时刻在Linux内核的控制下为客户操作系统运行虚拟CPU所花费的时间,guest_nice1表示从系统启动开始累积到t1时刻运行niced guest虚拟机所花费的时间;
步骤1-1-2,利用如下公式计算t1时刻CPU时间CPUTime1和t2时刻CPU时间CPUTime2:
CPUTime1=user1+nice1+system1+idle1+iowait1+irq1+softirq1+stealstolen1+guest1+guest_nice1,
CPUTime2=user2+nice2+system2+idle2+iowait2+irq2+softirq2+stealstolen2+guest2+guest_nice2;
步骤1-1-3,使用如下公式计算CPU利用率cpuUsage:
获得cpuUsage后,设备上关于CPU的数据集应为多个元组(timestamp3,cpuUsage),其中timestamp3为时间戳用于标记收集CPU利用率使用的时间;
步骤1-4包括如下步骤:
步骤1-4-1,应用程序使用套接字将相应的数据包发送到真实网络设备上;
步骤1-4-2,Android系统通过IP表使用网络地址转换方法NAT将所有数据包转发到虚拟网络设备上;
步骤1-4-3,VPN程序通过读取安卓设备上的数据来获取保存到虚拟网络的所有数据包;
步骤1-4-4,VPN程序对数据包进行收集,获取数据包中的时间戳,目的IP地址协议类型和目的主机值,然后将收集的数据包通过真实网络设备发送到远程服务器,服务器解析该数据包,最终获得多个元组(timestamp,IP,protocol,host),其中timestamp表示http包头的时间戳,IP表示目的IP地址,protocol表示协议类型,host表示主机属性值;
步骤2包括如下步骤:
步骤2-1,对于步骤1中收集的一段时间的CPU利用率,内存利用率和功率的数据集,分别用DCPU,Dmemorv和Dpower表示,三种数据集的处理方法相同,使用D代表三种数据集进行数据处理,首先采用数据清洗技术处理噪音数据;
步骤2-2,采用邻近数据平均值法填充空缺值:设其中第i个空缺数据为ai,则ai的计算公式为:
步骤2-3,对于数据集D=(d1,...di,...,dn),其中di(i∈[1,n])是指第i个数据,n是数据集中数据总数,在D上应用长度为W,偏移距离为r的滑动窗口以生成等长的序列样本S1,...Si,...,Sk,Sk表示第k个序列样本,其中,
Si=(D(i-1)rW+1,...,D(i-1)rW+W),
对于所有i=1,...,k且则D(i-1)rW+1表示从数据集D中采样的样本Si的第一个测量值,D(i-1)rw+W表示从数据集D中采样的样本Si的第W个测量值;将r设置为0.1并选择W使得rW∈Z,从序列样本中提取特征,特征包括序列样本的平均值Savg、第20百分位数S20pct1、第50百分位数S50pctl、第80百分位数S80pctl、标准差SSD、序列样本的最大值Smax和序列样本的最小值Smin;
步骤2-4,对于随时间推移应用进行通信的数据包数据,处理http包头的目标IP地址,协议类型和主机属性值;
步骤2-1包括如下步骤:
步骤2-1-1,计算出数据集元组中各属性值的总体均值μ和方差σ;
步骤2-1-3,根据置信区间判断该数据是否为噪音数据,若不在置信区间内,则为噪音数据,将该数据删除;否则保留;
步骤3中,将从不同样本中提取的所有特征向量聚合到训练集中,特征向量包括通信数据包的数据元组(timestamp,IP,protocol,host)和CPU利用率、内存利用率以及瞬时功率的数据元组(Savg,S20pctl,S50pctl,S80pctl,SSD,Smax,Smin),通过轻量级机器学习技术随机森林训练分类器,并进行10倍交叉验证;
步骤4中,利用步骤3训练的分类器对一个时间段内应用的使用情况进行推测;
步骤5包括:根据应用的使用情况构建用户行为模型Appuser,Appuser是一个包含一周7天一天24小时的矩阵模型:
其中ai,j(1≤i≤24,1≤j≤7)表示用户user在每周的第j天的第i个小时最可能使用的应用名称;
步骤6中,根据步骤5中得到的每个用户的行为模型,预测出每个用户在一周的每一天的每个小时内最有可能使用的应用,在该时刻该应用将会被设置为消息可推送模式从而为用户提供精准的服务推送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811024517.9A CN109144837B (zh) | 2018-09-04 | 2018-09-04 | 一种支持精准服务推送的用户行为模式识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811024517.9A CN109144837B (zh) | 2018-09-04 | 2018-09-04 | 一种支持精准服务推送的用户行为模式识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109144837A CN109144837A (zh) | 2019-01-04 |
CN109144837B true CN109144837B (zh) | 2021-04-27 |
Family
ID=64826640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811024517.9A Active CN109144837B (zh) | 2018-09-04 | 2018-09-04 | 一种支持精准服务推送的用户行为模式识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144837B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109982295B (zh) * | 2019-03-21 | 2021-10-15 | 中国联合网络通信集团有限公司 | 业务模板的推送方法及业务模板的推送器 |
CN110460502B (zh) * | 2019-09-10 | 2022-03-04 | 西安电子科技大学 | 基于分布特征随机森林的vpn下应用程序流量识别方法 |
CN111597947A (zh) * | 2020-05-11 | 2020-08-28 | 浙江大学 | 一种基于电源功率因数矫正噪声的应用程序推断方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014055939A1 (en) * | 2012-10-04 | 2014-04-10 | Huawei Technologies Co., Ltd. | User behavior modeling for intelligent mobile companions |
CN104063467B (zh) * | 2014-06-26 | 2017-04-26 | 北京工商大学 | 基于改进的相似性搜索技术的域内交通流量模式发现方法 |
CN107302566A (zh) * | 2017-05-27 | 2017-10-27 | 冯小平 | 推送信息的方法和装置 |
CN108446176B (zh) * | 2018-02-07 | 2020-07-03 | 平安普惠企业管理有限公司 | 一种任务分配方法、计算机可读存储介质及终端设备 |
-
2018
- 2018-09-04 CN CN201811024517.9A patent/CN109144837B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109144837A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | A smart home gateway platform for data collection and awareness | |
CN109144837B (zh) | 一种支持精准服务推送的用户行为模式识别方法 | |
US20180278498A1 (en) | Process representation for process-level network segmentation | |
US20140321290A1 (en) | Management of classification frameworks to identify applications | |
CN107683586A (zh) | 用于异常检测中的计算基于小区密度的稀有度的方法和装置 | |
CN111953669B (zh) | 适用于SDN的Tor流量溯源与应用类型识别方法和系统 | |
CN109327356B (zh) | 一种用户画像的生成方法和装置 | |
CN110719194B (zh) | 一种网络数据的分析方法及装置 | |
Qiao et al. | Characterizing flow, application, and user behavior in mobile networks: A framework for mobile big data | |
EP2905931A1 (en) | Method and apparatus for determining data flow rate of service access port | |
WO2020228527A1 (zh) | 数据流的分类方法和报文转发设备 | |
CN111224893A (zh) | 一种基于vpn的安卓手机流量采集与标注系统及方法 | |
Fernandes | Performance evaluation for network services, systems and protocols | |
Poltronieri et al. | Phileas: A simulation-based approach for the evaluation of value-based fog services | |
WO2017045193A1 (zh) | 电器设备的远程访问方法和系统 | |
Gómez et al. | Traffic classification in IP networks through Machine Learning techniques in final systems | |
Ndonda et al. | Network trace generation for flow-based IDS evaluation in control and automation systems | |
Mahmoodi et al. | Autonomous federated learning for distributed intrusion detection systems in public networks | |
CN109639494B (zh) | 接口信息的统计方法、装置、服务器及存储介质 | |
Zhao et al. | TrCMP: A dependable app usage inference design for user behavior analysis through cyber-physical parameters | |
EP4280561A1 (en) | Information flow identification method, network chip, and network device | |
CN106294457A (zh) | 网络信息推送方法及装置 | |
Pekar et al. | Towards threshold‐agnostic heavy‐hitter classification | |
CN110263082B (zh) | 数据库的数据分布分析方法、装置、电子设备及存储介质 | |
CN110752994B (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 |