一种基于多层LSTM的线上用户行为分析方法与流程

文档序号:20884022发布日期:2020-05-26 17:21阅读:1152来源:国知局
一种基于多层LSTM的线上用户行为分析方法与流程

本发明涉及网络信息安全领域,特别涉及一种基于多层lstm的线上用户行为分析方法。



背景技术:

大数据时代的到来加速了人们生活方式的可视化信息化,推动了各行各业的变革,人们生活变得多元化便捷化的同时,个人信息数据安全面临着极大的威胁与挑战。除了“暗网”下潜在攻击的存在,有些隐藏在人群中的个体也是不容忽视的,他们散布非法信息、实施恶意行为,对正常的系统和他人的隐私数据、财产安全和公众形象构成了极大的威胁。

2019年9月5日,滴滴对外宣布将定期公示恶意行为用户,涉及虚假投诉、虚假申诉和诱导取消等不良行为。每次在海量的数据中通过用户举报,再用传统人工调查取证核实用户行为的方法,不仅需要消耗大量人力物力资源,而且周期长、无法在短时间内得出结论。因此,我们需要利用大数据分析的方法,记录用户在网络平台上留下的“证据”,证据包含社交信息、行为习惯和兴趣偏好等,以避开事物之间因果逻辑关系,直接从数据本身获取信息从而得出结论。

目前深度学习是一种非常流行的技术,广泛应用于计算机视觉、人脸识别、自然语言和数据分析等领域。长短期记忆网络(longshort-termmemory,lstm)是深度学习的一种,基于时间递归的神经网络,能够处理具有时序特征的数据。用户在线上与服务器进行交互行为带有一定的时序信息,用时间循环神经网络学习数据本身的特征,实现对恶意用户行为的监测,是行之有效的方法。



技术实现要素:

本发明提出一种基于多层lstm的线上用户行为分析方法,采用lstm长短期记忆网络对已知用户类别的访问请求行为数据进行训练,生成一个用户访问请求行为的模型;该方法能根据具体场景需求,恶意用户和信任用户不同的划分规则,实现动态分析识别用户类别,以便于系统对识别出的恶意用户积极地采取一定的安全防御措施。

一种基于多层lstm的线上用户行为分析方法,包括以下步骤:

从服务器日志获取一段时间内与用户的所有交互数据,对数据进行清洗后收集所有的用户访问请求数据;对用户的访问请求数据进行预处理,过滤掉干扰信息,提取用户访问行为属性值;

对处理后的数据进行再加工,在一段时间内按照不同用户划分出对应的访问请求数据集,数据集里面的每条数据代表用户的一次访问请求行为;然后对数据集采用添加标签进行分类,筛选出恶意用户和信任用户,作为训练数据;

步骤1,收集训练样本数据集,从服务器用户访问日志中获取已知恶意用户、信任用户在一段时间内的访问请求记录,对访问请求日志数据进行清洗,过滤掉干扰信息,提取用户访问行为属性值并对用户标注;

步骤2,数据的数学表示,采用独热编码(one-hotencoding)对某用户的一次访问请求行为进行编码,获得访问请求行为向量;由用户在一段时间内所有的访问请求行为向量,构造出的访问请求行为矩阵;

步骤3,微观特征的学习,根据用户在不同时间段不同的行为表现,将这一段时间细分为t个小时间段,获取对应小时间段的t个行为矩阵分别放入t个lstm网络单元进行训练,得到t个用户行为数据的时序特征向量;

步骤4,宏观特征的学习,将t个时序特征向量合并成一个完整时间段的总时序特征向量,作为lstm的输入数据再次进行训练,将获得的最终输出传至全连接层,降维映射到两个分类;

步骤5,对所有标注的用户访问行为数据按照步骤3和4训练完成后,得到一个用户访问请求行为的特征模型;

步骤6,在服务器端固定时间点,对线上用户访问行为数据进行测试分析,对识别出的恶意用户系统积极采取适当的安全应对措施包括给予警告、不提供相关功能服务甚至永久封号。

上述的一种基于多层lstm的线上用户行为分析方法,所述步骤1中,从服务器获取用户访问的原始日志数据,由于原始数据通常是离散、不一致并且存在噪声,采用正则表达式对日志数据进行清洗,过滤掉干扰信息,提取用户访问行为属性值,包括用户唯一身份id、接口请求时间戳、接口请求关键字数据。对处理后的数据按照用户唯一身份id进行分组得到每个用户的访问请求数据集sid,根据已知用户类别对数据集标注,标注方法如下:

上述的一种基于多层lstm的线上用户行为分析方法,所述步骤2中,采用独热编码(one-hotencoding)即一位有效编码,将系统接口文档中所有的接口关键字数据(共n个)作为用户访问请求行为的特征,每个特征代表数据的一个维度,构造出用户在第i个时间点的某次访问请求行为向量vi=(v1,v2,...,vn)t,其中v1,v2,...vn的取值均为0或1,1表示该行为访问了某个接口,0则表示没有;再由用户这一段时间内所有的访问请求行为向量,构造出该用户这段时间内的访问请求行为矩阵mid=[v1,v2,...,vt],其中t以秒为单位;

上述的一种基于多层lstm的线上用户行为分析方法,所述步骤3中,根据这段时间内用户在不同时间段存在行为特征不一样,比如在工作时间用户访问请求行为较休息时间是相对少一些,将访问请求行为矩阵m细分为t个矩阵,把这t个矩阵放到t个lstm网络单元进行微观上的训练得到t个用户行为数据的时序特征向量。

上述的一种基于多层lstm的线上用户行为分析方法,所述步骤4中,将步骤3中获得的t个时段不同的时序特征合并成一个完整时间段的总时序特征向量再次进行宏观上的lstm训练,输出传入全连接层,通过激活函数softmax,映射到最终的预测标签,再将预测标签与实际标签相对比之后,通过损失函数求得的误差逆向传播修改神经网络的权重参数,完成一次训练过程。

上述的一种基于多层lstm的线上用户行为分析方法,所述步骤5中,可以不断地将已知用户类别的新数据集重复上述步骤对用户访问请求行为模型进行训练学习,增强模型分析用户行为的能力。

上述的一种基于多层lstm的线上用户行为分析方法,所述步骤6中,定时从服务器获取待检测用户行为日志数据并按照数据清洗、编码构成访问请求行为向量及矩阵、划分t个访问请求行为矩阵一系列步骤后用步骤5训练好的模型进行测试,系统对输出数据集中的恶意用户积极采取适当的安全防御措施包括给予警告、停止提供服务甚至永久封号。

上述的一种基于多层lstm的线上用户行为分析方法,所述的多层lstm,是对步骤2的用户访问请求行为矩阵先用lstm提取微观上的时序特征,能够分析出用户在某个特定时间点的行为特点;考虑到有些恶意用户行为是持续在一个较长时间段的,再用lstm学习宏观上的时序特征,分析用户某个时间段的行为特点。该方法基于时间的两个层次对用户行为进行分析,有效提高了对恶意用户识别的准确度。

附图说明

图一本发明一种基于多层lstm的线上用户行为分析方法具体实现流程图

图二多层lstm网络数据模型图

具体实施方式

本发明是一种基于多层lstm的线上用户行为分析方法,其具体实施方案将结合某社交app做进一步描述,包括以下几个具体步骤:

第一步,从app服务器端中获取某一天内已知恶意用户(涉及过度发布及重复转发广告信息、过度关注、过度加好友发骚扰信息等不良行为)和信任用户的行为日志,日志数据中包含了用户使用的客户端信息、ip地址、用户用户身份id、请求时间戳、请求url等信息,例如其中一条来自恶意用户的访问日志数据为:"27.38.5.159""-""03/nov/2019:00:30:01+0800""get/appuser/selectactivity?activityid=06d***45b&user=12710950http/1.1""200""74168"-"http://www.dui***ian.com/offlineactivity""mozilla/5.0(iphone;cpuiphoneos10_3_1likemacosx)applewebkit/603.1.30(khtml,likegecko)version/10.0mobile/14e304safari/602.1""-""soc.dui***ian.com"。对该条日志内容和格式采用正则表达式为regex="(\"[^]*\")(\"[-|^]*\")(\"[^}]*\")(\"[^}]*\")(\"[0-9]*\")(\"[0-9]*\")([-|^]*)(\"[^]*\")(\"[^\"]*\")(\"[-|^]*\")(\"[^]*\")"进行清洗,过滤掉引号空格横杠等干扰信息,提取user、selectactivity、03/nov/2019:00:30:01+0800作为用户访问行为属性(用户身份id、请求时间戳、请求接口关键字)的值。将所有清洗后的数据按照用户身份id进行分组得到每个用户的访问请求数据集sid,并对该用户数据集进行标注,由于已知该用户为恶意用户,则label_s(s12710950)=1。

第二步,将系统接口文档中所有的接口关键字数据(共75个)作为用户的访问请求行为特征,每个特征代表数据的一个维度,以1s为一个窗口采用one-hotencoding对上述用户在2019-11-0300:30:01(第1801s)的一次访问请求行为进行编码得到访问请求行为向量v1801=(0,0,...,1,...,0)t,若用户在某个时间点没有访问请求行为就用零向量填充,若用户在1s内发生多次(较少发生)随机取一次;那么该用户在一天内的访问请求行为矩阵为m12710950=[v1,v2,...,v86400],其中86400即一天的秒数。

第三步,由于用户一天里不同时间段的访问行为频率是不一样,比如人们在娱乐休息时间的访问请求行为相对于上班时间要多一些。为了更好的学习各个时间段的行为特征,我们按小时将访问请求行为矩阵m细分为24个矩阵,每个矩阵列数为3600,把这24个矩阵放到24个lstm网络单元进行各自训练得到24个微观上的用户行为数据的时序特征向量。

第四步,将24个时序特征向量合并成一个完整时间段的总时序特征向量,作为lstm的输入数据再次进行宏观上的训练,将获得的最终输出传至全连接层降维映射到两个分类;具体通过softmax激活函数,将输出结果映射到最终的预测标签,再将预测标签与实际标签相对比之后,通过损失函数求得的误差逆向传播修改神经网络的权重参数,完成一次训练过程。

第五步,不断从app服务器用户行为日志中获取新的已知用户类别的数据集重复上述步骤对该社交app用户访问请求行为模型进行训练学习,增强模型分析用户行为的能力。

第六步,从app服务器端每天零点获取用户行为日志数据并按照数据清洗、编码构成访问请求行为向量及矩阵、划分t个访问请求行为矩阵一系列步骤后将待识别用户访问请求数据用s6训练好的模型进行测试,对输出数据集中恶意用户采取给予警告、停止提供服务甚至永久封号的惩罚。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1