一种基于循环神经网络的Web用户访问路径预测方法与流程

文档序号:15164049发布日期:2018-08-14 17:13阅读:259来源:国知局
本发明属于web日志挖掘领域,具体针对用户访问路径预测问题提出了一种基于循环神经网络的web用户访问路径预测方法。
背景技术
:随着互联网的繁荣,网站成为信息共享的一个重要平台,但是大量的web页面使得用户难以快速定位自己所需的信息。随着互联网的发展,web已经成为网民获取信息的重要平台之一。用户可以通过个人电脑x、移动设备等各种方式接入互联网,随时获取感兴趣的信息,但是如何在海量的数据中快速定位所需的信息成为了一个难题。主要表现在以下方面:(1)站点信息冗余和信息爆炸影响获取所需信息的效率web站点不仅有大量的信息,也包含很多重复和相似的信息,使得用户要花费非常多的时间去辨别有价值的信息。例如博客站点,在大量的博文中寻找感兴趣的文章需要花费很多的时间,如果能够利用用户的历史访问日志信息,预测接下来可能访问的路径并进行推荐,能够有效的帮助用户节省时间。(2)不合理或结构复杂的网站容易让用户迷失在复杂的跳转链接中有的网站架构可能不符合用户的访问规律,不合适的导航经常会误导用户,导致耗费很多不必要的时间。通过web站点记录的用户访问日志数据挖掘用户的访问模式,进行访问路径预测,然后给每个用户动态的推荐相关页面,能够有效的提高用户到达目标信息的效率。目前挖掘web用户的访问规律常用的方法有聚类、关联规则、序列模式、马尔可夫链等。其中聚类方法通常根据兴趣对用户进行群体划分,方便分析不同用户群的兴趣;关联规则和序列模式通常挖掘用户的频繁访问模式,能够发现一般用户的访问路径;然而在实际应用中针对每个用户的访问记录进行个性化的路径分析,这些方法却略显不足。马尔可夫链常用于web用户访问路径的预测,虽然马尔可夫预测模型具有简单高效的特点,但是存在存储复杂度较高和路径预测准确率有待提升的问题。在用户会话表征方面,传统的用户访问特征的表征方法有两种:一是稀疏向量的表示方法,首先获取所有站点所有页面的url列表(一般用会话序列数据集中出现的所有url表示),向量的维度为url的数量,每一维表示一个固定的url,数值为会话中该url出现的频率,若未出现则为0,这会导致向量维度过高以及不能表示用户访问url的先后关系,且由于大多数维度值为0会出现数据稀疏问题;二是采用多元组的表示方法,这种方法考虑用户在页面停留的时间,例如构造<url,time>二元组,停留时间的加入能够更全面的考虑用户的访问行为,但是缺点是数据结构较复杂不易进行复杂的数学计算。技术实现要素:针对上述研究背景和问题,本发明提出了一种基于循环神经网络对每个用户进行访问路径预测的方法,首先将用户访问页面的url映射到m维向量空间,采用m维实数向量表示站点的每个url的特征,所有url的特征向量构成一个向量词典,并用特征向量构成的矩阵来表征用户会话序列;然后基于循环神经网络进行路径预测,通过学习历史用户会话数据来训练模型,以及调整模型的参数提高预测的准确性。(1)为了解决会话表征的问题,提出了一种向量表征用户会话序列特征的方法。利用word2vec对大量用户会话序列数据进行训练,获取向量化的url,url间的相似性可以通过向量间相似度(如欧式距离、余弦相似度等)来衡量。并且可以用矩阵描述用户会话,避免了采用url出现频次表示会话可能引起的维度灾难和数据稀稀疏问题,也能够改善用<url,页面停留时间>类似的多元组来表达访问序列所带来的不易进行复杂计算的问题。(2)利用会话序列中页面之间存在的关联性和上下文关系,将用户访问路径预测问题转化为序列预测问题,并提出了基于循环神经网络进行访问路径预测的模型框架。将会话序列的特征矩阵输入模型进行训练,通过训练数据学习获得良好的预测模型参数,循环神经网络能够有效的利用会话序列的上下文信息,然后对序列进行预测。通过对路径预测模型的输出进行处理,获取最可能访问的url的特征向量。为实现本发明所述目的采用的技术方案是:1、一种基于循环神经网络的web用户访问路径预测方法,其特征在于,基于一个web用户访问路径预测模型,其中,路径预测模型分为四层:输入层、特征层、lstm隐藏层和输出层,具体是:输入层:接收会话序列文件,并将会话序列输入到特征层;特征层:将url序列中的每个url转换为等长的浮点数特征向量,然后将每个url序列转换成对应的特征矩阵,并将特征矩阵输入到lstm层;通过web日志的预处理步骤获得用户会话文件,将用户会话文件输入word2vec中的skip-gram算法训练得到url的特征向量,每一个url被赋予一个定长的浮点向量,所有特征向量构成一个向量词典;lstm层:接收特征矩阵作为lstm层的输入数据,通过模型的计算向输出层输出预测结果;输入的会话序列经过特征层的处理,把每个url转换成一个定长的特征向量,并将会话序列转换为对应的特征矩阵,最后将会话序列的特征矩阵传输到lstm层进行计算;lstm在循环的每个时刻读取一行特征向量,然后预测下一个可能的值,并与真实的输入相比较,通过迭代的计算差值不断的调整模型的参数,直到差值达到一个极小值;输出层:对lstm神经网络的输出进行处理获得预测的访问路径的特征向量;具体包括以下步骤:步骤1:通过web日志的预处理方法,包括无效数据的过滤、不同用户的访问日志的识别、会话的识别、不完整会话的补全等步骤,从原始日志中获取用户会话序列,然后对会话进行异常值检测并过滤异常会话,并将所得的会话保存为文件,每行为一个会话序列,序列中的url之间用空格分隔;训练和测试的web日志数据集采用同样的处理方法;步骤2:使用word2vec工具对会话序列进行训练,获得站点所有url的特征向量构成的向量词典,其中每一个url对应一个唯一的定长浮点向量;训练数据和测试数据来是源于同一个站点的web访问日志,所包含的url属于同一个集合,因此进行统一的训练来获取特征向量词典;步骤3:将用户会话序列中的url与特征向量词典中的向量一一对应,获得序列中每一个url的特征向量,并将会话序列表示为特征矩阵;步骤4:将训练会话数据的特征矩阵数据输入到lstm循环神经网络进行训练,在多次迭代之后,获取访问路径预测模型;步骤5:输入测试会话数据并获取预测路径结果,将预测的访问路径url与真实的访问路径对比,评价预测的效果;在测试数据集上的结果不好时可以通过以下方法进行调节;一般来说,损失越低,模型越好,但是有可能出现过度拟合的问题,具体表现是在训练数据集上结果良好,但是在测试数据集上结果很差;过拟合可能有多种原因导致,一是训练数据量不够大且训练数据集和测试数据集的数据有差异,二是数据中有噪声,都很容易导致过拟合问题;一般采用早停法(earlystopping)来解决;早停法是一种正则化的形式,用于避免在用梯度下降的迭代方法训练模型的过程中产生过度拟合问题,并能够保持模型的泛化能力;早停法将数据集分解为训练数据集和验证数据集,在每个epoch的末尾评估验证数据集上的性能,如果比上一个epoch的效果好,保存当前的模型;若性能比上一个epoch差,则选取目前最优的模型,结束训练;步骤6:对方法进行验证,具体包括步骤6.1、验证预处理算法的效果对预测准确性的影响;采用互联网上公开的三个真实站点记录的web日志数据进行实验,将数据集划分为训练数据和测试数据,利用训练数据获取良好的模型参数,通过设置不同的参数,进行多次实验,寻找较好的模型参数,进而进行更准确的路径预测;步骤6.2、对比该预测模型与其它模型的效果;将基于循环神经网络的路径预测方法与基于马尔可夫链的路径预测方法进行对比,评估基于循环神经网络的路径预测方法的有效性;步骤6.3、验证预测模型中特征层对预测准确性的影响;评估本发明引入的特征层对路径预测准确率的影响,评估用户会话识别效果对路径预测准确率的影响。在上述的一种基于循环神经网络的web用户访问路径预测方法,循环神经网络模型的参数调节包括:步骤1、选择目标函数:选择合适的目标函数即选择合适的损失函数,损失函数计算预测值与真实结果之间的误差,采用均方误差(meansquareerror,mse)、或交叉熵(crossentropy)、或对数似然(log-likelyhood);步骤2、batchsize的设置:batchsize定义了通过网络传播的样本大小,batchsize划分训练数据进行模型的训练能够快速获取最优的权值;当对可变长的序列进行训练时,选取序列的最大长度为batchsize的大小,或者对序列按长度进行分组,以避免浪费计算的时间步;另外,在每个epoch的训练过程中,需要对训练数据进行置乱操作,然后划分训练样本;步骤3、调节学习速率:采用动态变化的方法,随机选择以下方式:方式一,启发式的方法,在迭代开始的阶段,选择较大的学习速率,让模型快速的接近目标值;在一段时间之后离目标值比较接近了,降低学习速率,使目标函数缓慢到达极小值;例如采用公式(2)来动态计算每个时刻的学习率,学习速率随时间下降;其中,ηt为t时刻的学习速率,η为初始学习速率;初始学习速率的设置一般也不能太大;方式二,根据损失函数对每个权值的导数变化来改变学习率,当导数较大时,采用较小的学习速率;当导数较小时,采用较大的学习速率。附图说明附图1是本发明实施例的基于循环神经网络的web用户访问路径预测模型。附图2是本发明实施例的预测模型流程图。附图3是本发明实施例的神经网络模型的训练过程。附图4是本发明实施例的会话识别算法的流程图。具体实施方式为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。一、首先介绍以下本发明的方法原理。本发明的方法是基于一个web用户访问路径预测模型,其中,路径预测模型分为四层:输入层、特征层、lstm隐藏层和输出层,具体是:输入层:接收会话序列文件,并将会话序列输入到特征层;特征层:将url序列中的每个url转换为等长的浮点数特征向量,然后将每个url序列转换成对应的特征矩阵,并将特征矩阵输入到lstm层;通过web日志的预处理步骤获得用户会话文件,将用户会话文件输入word2vec中的skip-gram算法训练得到url的特征向量,每一个url被赋予一个定长的浮点向量,所有特征向量构成一个向量词典;lstm层:接收特征矩阵作为lstm层的输入数据,通过模型的计算向输出层输出预测结果;输入的会话序列经过特征层的处理,把每个url转换成一个定长的特征向量,并将会话序列转换为对应的特征矩阵,最后将会话序列的特征矩阵传输到lstm层进行计算;lstm在循环的每个时刻读取一行特征向量,然后预测下一个可能的值,并与真实的输入相比较,通过迭代的计算差值不断的调整模型的参数,直到差值达到一个极小值;输出层:对lstm神经网络的输出进行处理获得预测的访问路径的特征向量;本发明包括以下步骤:步骤1:通过web日志的预处理方法,包括无效数据的过滤、不同用户的访问日志的识别、会话的识别、不完整会话的补全等步骤,从原始日志中获取用户会话序列,然后对会话进行异常值检测并过滤异常会话,并将所得的会话保存为文件,每行为一个会话序列,序列中的url之间用空格分隔。训练和测试的web日志数据集采用同样的处理方法。步骤2:使用word2vec工具对会话序列进行训练,获得站点所有url的特征向量构成的向量词典,其中每一个url对应一个唯一的定长浮点向量。训练数据和测试数据来是源于同一个站点的web访问日志,所包含的url属于同一个集合,因此进行统一的训练来获取特征向量词典。步骤3:将用户会话序列中的url与特征向量词典中的向量一一对应,获得序列中每一个url的特征向量,并将会话序列表示为特征矩阵。步骤4:将训练会话数据的特征矩阵数据输入到lstm循环神经网络进行训练,在多次迭代之后,获取良好的访问路径预测模型。循环神经网络模型的参数调节在提高模型预测的准确度上非常重要,而参数的调节是一个非常复杂的过程,没有较好的理论指导,需要在神经网络的实际运用场景中去相应地进行调节,但是由于巨大的解空间,通过控制变量法和枚举法来手动调节会耗费大量的时间,效率比较低。目前,在模型的训练过程中如何达到较好的效果,已有一些研究成果,如果在训练数据集或测试数据集上的结果表现不好,需要采取以下方法去帮助解决:①选择合适的目标函数选择合适的目标函数即选择合适的损失函数,损失函数计算预测值与真实结果之间的误差,常用的损失函数有均方误差(meansquareerror,mse)、交叉熵(crossentropy)、对数似然(log-likelyhood)等,在实验中需要去尝试发现最适合当前应用场景的损失函数。例如:glorot和bengio[43]通过实验证明当输出层采用softmax函数时,选用交叉熵作为损失函数比选用均方误差将得到更好的结果。②batchsize的设置batchsize定义了通过网络传播的样本大小,例如训练样本有1050个,定义batchsize为100,则每次顺序取100个样本放入网络进行训练,剩下的50个样本不够一个batch,简单的解决方法是仅仅获取剩余的所有样本进行训练。采用。。有两个很重要的有点:一是训练模型只需要更少的内存,由于每次使用较少数量的样本训练网络,所以整体训练过程需要更少的内存,当训练数据集非常大而无法一次全部读取到内存中的时候,这个方法特别有用;二是神经网络通过小的样本数据能够更快地训练,这是由于在每次传播之后都会更新权重,即每个计算结束都更新一次网络的权重,如果在一次计算中使用所有的训练样本,那么在一个epoch结束后只更新了一次网络的参数,因此,使用batchsize划分训练数据进行模型的训练能够更快的获取最优的权值。当对可变长的序列进行训练时,例如本文的训练数据url序列,可以选取序列的最大长度为batchsize的大小,也可以对序列按长度进行分组,以避免浪费计算的时间步。另外,在每个epoch的训练过程中,需要对训练数据进行置乱操作,然后划分训练样本。③调节学习速率(learningrate)学习速率是一个对神经网络训练效果影响很大的参数,需要在具体场景下设置合适的值。若学习速率太大,总损失可能在每次权值更新之后不会下降;若学习速率的值过小,训练的过程将会变得太缓慢,训练模型就会耗费非常多的时间。因此,为了使模型有合适的学习速率,采用动态变化的方法。第一种方法是启发式的方法,在迭代开始的阶段,选择较大的学习速率,让模型快速的接近目标值;在一段时间之后离目标值比较接近了,降低学习速率,使目标函数缓慢到达极小值。例如采用公式(2)来动态计算每个时刻的学习率,学习速率随时间下降。其中,ηt为t时刻的学习速率,η为初始学习速率。初始学习速率的设置一般也不能太大。第二种方法是根据损失函数对每个权值的导数变化来改变学习率,当导数较大时,采用较小的学习速率;当导数较小时,采用较大的学习速率。步骤5:输入测试会话数据并获取预测路径结果,将预测的访问路径url与真实的访问路径对比,评价预测的效果。在测试数据集上的结果不好时可以通过以下方法进行调节。一般来说,损失越低,模型越好,但是有可能出现过度拟合的问题,具体表现是在训练数据集上结果良好,但是在测试数据集上结果很差。过拟合可能有多种原因导致,一是训练数据量不够大且训练数据集和测试数据集的数据有差异,二是数据中有噪声,都很容易导致过拟合问题。一般采用早停法(earlystopping)来解决。早停法是一种正则化的形式,用于避免在用梯度下降的迭代方法训练模型的过程中产生过度拟合问题,并能够保持模型的泛化能力。早停法将数据集分解为训练数据集和验证数据集,在每个epoch的末尾评估验证数据集上的性能,如果比上一个epoch的效果好,保存当前的模型;若性能比上一个epoch差,则选取目前最优的模型,结束训练。步骤6:从三个方面对描述的方法进行验证:(1)验证预处理算法的效果对预测准确性的影响。采用互联网上公开的三个真实站点记录的web日志数据进行实验,将数据集划分为训练数据和测试数据,利用训练数据获取良好的模型参数,通过设置不同的参数,进行多次实验,寻找较好的模型参数,进而进行更准确的路径预测。(2)对比该预测模型与其它模型的效果。将基于循环神经网络的路径预测方法与基于马尔可夫链的路径预测方法进行对比,评估基于循环神经网络的路径预测方法的有效性。(3)验证预测模型中特征层对预测准确性的影响。评估本发明引入的特征层对路径预测准确率的影响,评估用户会话识别效果对路径预测准确率的影响。二、下面结合实施例,对本发明进行具体说明。根据模型的定义,附图1给出了基于循环神经网络的web用户访问路径预测模型,包括输入层、特征层、lstm隐藏层和输出层。本发明提供的一种基于循环神经网络的用户访问路径预测方法,附图2为预测模型的流程图,模型训练和预测具体包括以下步骤:(1)通过web日志的预处理方法,包括无效数据的过滤、不同用户的访问日志的识别、会话的识别、不完整会话的补全等步骤,从原始日志中获取用户会话序列,然后对会话进行异常值检测并过滤异常会话,并将所得的会话保存为文件,每行为一个会话序列,序列中的url之间用空格分隔。训练和测试的web日志数据集采用同样的处理方法。(2)使用word2vec工具对会话序列进行训练,获得站点所有url的特征向量构成的向量词典,其中每一个url对应一个唯一的定长浮点向量。训练数据和测试数据来是源于同一个站点的web访问日志,所包含的url属于同一个集合,因此进行统一的训练来获取特征向量词典。(3)将用户会话序列中的url与特征向量词典中的向量一一对应,获得序列中每一个url的特征向量,并将会话序列表示为特征矩阵。(4)将训练会话数据的特征矩阵数据输入到lstm循环神经网络进行训练,在多次迭代之后,获取良好的访问路径预测模型。(5)输入测试会话数据并获取预测路径结果,将预测的访问路径url与真实的访问路径对比,评价预测的效果。附图3是循环神经网络模型的训练步骤。首先定义模型,包括神经网络的类型、网络的层数等,本文使用lstm循环神经网络,lstm一般仅使用一层,多层lstm不太容易训练。循环神经网络模型的参数调节在提高模型预测的准确度上非常重要,而参数的调节是一个非常复杂的过程,没有较好的理论指导,需要在神经网络的实际运用场景中去相应的进行调节工作,但是由于巨大的解空间,通过控制变量法和枚举法来手动调节会耗费大量的时间,效率比较低。在训练数据集上的结果不好的调节方法有选择合适的目标函数、设置合适的batchsize、调节学习速率等,在测试数据集上的结果不好的调节方法有早停法、dropout方法等。附图4是一种启发式的异常会话检测方法,综合考虑会话时间窗口和会话序列的长度来对异常用户会话进行检测和过滤。2.实验验证(1)采用互联网上公开的三个真实站点记录的web日志数据进行实验,将数据集划分为训练数据和测试数据,利用训练数据获取良好的模型参数,通过设置不同的参数,进行多次实验,寻找较好的模型参数,进而进行更准确的路径预测。实验数据的规模如表1所示。表1实验数据规模数据集日志记录数/条来源13460704nasakennedyspacecenterwwwserver25874634194.44.65.2136377314http://www.concorde.ru/获取的会话数据如表2所示。表2预处理获取的会话数据数据集会话数会话数(过滤异常会话)129021918400325351481660103483457125881表3噪声数据对路径预测准确率的影响通过该实验表明,本发明基于循环神经网络的访问路径预测方法对噪声数据比较敏感,在使用该方法进行路径预测之前需要进行良好的预处理获取用户会话数据,预处理的效果会对预测的准确性有很大的影响。其中,基于循环神经网络的路径预测模型依赖于历史会话数据,如果能够记忆的信息越多,预测的效果越好,只看去除异常会话的数据集上的实验,数据集一的训练样本数为165602,预测准确率为0.4819,数据集二的训练样本数为149409,预测准确率为0.4672,数据集三的训练样本数为113292,预测准确率为0.4601,随着训练数据集的减小,预测准确率从0.4819下降到0.4601。(2)将基于循环神经网络的路径预测方法与基于马尔可夫链的路径预测方法进行对比,评估基于循环神经网络的路径预测方法的有效性。表4lstm循环神经网络模型与马尔可夫预测模型的实验结果对比实验结果如表4所示,将本文提出的预测方法与一阶马尔可夫预测模型和二阶马尔可夫预测模型进行了对比,从表中可以看出,在数据集1和数据集2的实验表明本文提出的基于lstm循环神经网络的预测模型准确率比一阶马尔可夫预测模型和二阶马尔可夫预测模型的都要略高,因此,循环神经网络模型在web用户访问路径预测方面要比基本的马尔可夫预测模型优秀,具有一定的应用价值。(3)评估本发明引入的特征层对路径预测准确率的影响,评估用户会话识别效果对路径预测准确率的影响。表5特征层与预测结果的关系实验结果如表5所示,不采用特征层的模型预测结果来源于实验一,然后采用特征层的预测模型中进行了两组实验,分别采用100维特征向量和200维的特征向量。从表中可以看出,使用特征层能够明显的提高预测的准确率,当增加特征向量的维度时,预测的准确率有少许提升。但是在实验过程中,增加向量维度之后,模型的训练时长会增加。不采用特征层的模型直接接收url序列作为输入数据,在训练时长和预测准确率上都没有优势,因此,预先将会话序列向量化的方法对提高模型的性能和准确率是有意义的。应当理解的是,本说明书未详细阐述的部分均属于现有技术。应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1