曾 蔚,吴伊萍
(1.泉州师范学院 数学与计算机科学学院,福建 泉州 362000;2.福建省大数据管理新技术与知识工程重点实验室,福建 泉州 362000;3.智能计算与信息处理福建省高等学校重点实验室,福建 泉州 362000)
随着近年来大数据和云计算的广泛应用,用户在互联网上的活动产生了大量行为数据,如何充分利用在线系统日志中海量的用户行为数据,对用户行为数据进行深度分析及挖掘从而发现用户行为数据中的内在规律及价值日趋重要。然而用户行为往往复杂且难以预测,通常在同一系统中活动的用户可以看成是一个群体,同一群体中的个体倾向于采取相同或相近的策略,因此群体行为首先具有一致性。其次,群体是由个体构成的,个体行为同时又受个人习惯或爱好等个人内在因素影响而具有独特性。而更复杂的情况是,如个人习惯或爱好等个人内在因素并非一成不变,更有可能的是随着时间演变而发生迁移。此外,个体行为尤其是网络用户行为还通常会表现出随机性和不可预测性,且无论是群体行为和个体行为都受短期记忆效应影响而呈现长尾分布的特征。综合上述所有影响因素,用户行为复杂且难以刻画,至今仍没有较为通用的解释分析模型。卷积神经网络作为目前广泛应用的深度学习模型,具有优异的主动特征提取性能,在一些模式分类问题中,将卷积神经网络用于特征提取,性能能够得到显著的提升[1]。虽然卷积神经网络在很多实际应用中均取得了突出的效果,但也存在着一定局限性。卷积神经网络作为一种判别模型,能够得到准确度很好的分类结果,但对于为何给出这样的判别结果却无法解释,这也就是人们所说的——黑盒模型。但现实生活中,人们感兴趣的往往是数据特征的未知部分,人们希望能够了解隐含在黑盒模型中的因果关系,希望能通过这些因果关系更清晰地理解问题、发现问题,从而最终解决问题。以上两点都是黑盒模型所无法解决的。相比于黑盒模型,贝叶斯网络[2]作为人工智能领域中知识表达与推理的重要方法之一,因其具有透明的网络结构,在因果推理方面具有无可比拟的优势。本文将卷积神经网络与贝叶斯网络相结合,首先基于群体行为一致性特征,利用卷积神经网络对群体共性行为进行建模。接着,充分利用贝叶斯网络模型在因果推理方面的优势,引入个人内在因素、短期记忆特征及外在客观因素影响等特征构建贝叶斯网络,对卷积神经网络的识别结果进行校正,旨在帮助人们了解用户行为数据中隐含的因果关系,发现问题所在,最终解决问题。
卷积神经网络作为深度学习中广泛应用的一种深度模型,近年来在计算机视觉[3]、自然语言处理[4]及语音识别[5]等诸多领域均取得了显著进展。卷积神经网络通常由输入层、卷积层、激活层、池化层、全连接层和输出层构成。不同于传统的BP神经网络中相邻层间结点采用的全连接形式,卷积神经网络中的局部连接、权值共享及池化操作大大减少了需要学习的权重参数,从而提高了训练性能。在卷积层中有多个卷积核对输入数据进行卷积运算来捕捉数据的多个局部特征,接着通过激活函数对卷积层的输出结果进行非线性映射,随后的池化层进行下采样来对卷积层输出的特征图进行降维,这不仅能够进一步减少训练参数,也能降低模型过拟合的程度。因此,输入的数据经过多个连续的卷积-池化结构映射到了隐层特征空间,但在全连接层前如果神经元数目过多或训练数据过少时有可能会出现过拟合的情况,因此可以在全连接层前引入dropout操作随机删除部分神经元来缓解过拟合的出现,提高网络的泛化能力。最终,位于dropout之后的全连接层将提取到的特征图映射成一个特征向量,并进行最终的分类输出。
贝叶斯网络[2]是一种概率图模型,它将图论与概率论知识相结合,能够表示随机变量之间的相互依赖关系及因果关系,可以用于发现数据中隐含的知识,目前广泛应用于故障诊断[6]、风险评估[7]、用户行为[8]等领域。贝叶斯网络由两部分构成:1)有向无环图(Directed Acyclic Graph,DAG),即贝叶斯网络结构,图中的每一个结点都对应了一组随机变量,而连接结点的有向边则表示父节点对子节点的直接影响;2)网络参数,每个结点都对应着一个条件概率表(Conditional Probability Table,CPT),用于表示该结点与其父结点之间的关联程度。结点Xi的条件概率分布可以用P(Xi|πi(Xi))来表示,其中πi(Xi)表示结点Xi的父结点集合。因此,随机变量X={X1,X2,…,Xn}的联合概率分布可以表示为:
以KDD Cup 2010所提供的智能教学辅导系统2005-2006年的用户交互记录日志为例,根据用户当前所面对的方程预测下一步将采用哪一个知识点进行解题。该数据集记录了用户在系统中解数学方程的过程行为日志信息。系统中的题目按照单元、章节的结构进行划分。系统将用户答题过程中与系统的每一次交互操作记录为一条日志,每条日志含有用户Id、题目及从属结构、当前步骤、用户解当前方程所使用的知识点、首次尝试是否正确、解题次数、开始时间、正确操作持续时间、错误操作持续时间、结束时间、正确次数、错误次数、查看提示次数等19个特征。
由于教学系统中的数学方程包含了系数、常数、变量名称、运算符等,且所有组成部分的个数及顺序均为随机生成,显然这样的数学方程无法直接输入卷积神经网络,这就需要对数学方程进行预处理。通过观察用户在系统中的解题方程,可以归纳为加号、减号、乘号、除号、等号、正变量、负变量、常数乘式、变量乘式及括号表达式等10个组成部分,因此将每一个数学方程根据以上划分的组成部分分别以特定数字表示,并保留原始运算顺序。例如,方程828x-180+22x = -18可表示为数字序列1,2,6,9,1,5,6。其中1对应正变量、2对应于减号、6对应常数项、9对应加号、5对应等号。为便于卷积神经网络进行处理,对以上数字序列中的每个数字分别进行one-hot编码后均可形成1*10的行向量,因此包含了m个数字的数字序列最终可构成m*10的矩阵。而数据集中方程的组成部分不超过33个,因此可以将每个数学方程转换为33*10的二维矩阵。
图1为所采用的卷积神经网络结构,如图1所示,该网络由2个二维卷积层,1个下采样层、2个dropout层及2个全连接层构成,其中C1、C2为卷积层,每个卷积层均使用32个3*3的卷积核对输入的数据进行二维卷积运算,且均采用Relu函数进行激活。其中C1卷积层卷积时不使用填充,但C2卷积层卷积时使用填充。在C2卷积层之后设置一个下采样层S3用于特征图降维。随后有两个全连接层F5和F7用于将特征映射为特征向量,为防止过拟合,在两个全连接层前分别设置两个dropout层D4和D6,分别进行25%和50%的随机失活,最后一个全连接层F7采用softmax函数输出最终的预测结果。
图1 卷积神经网络结构
同一个群体通常具有相同的共同活动内容和形式,因此具有群体共性。而群体中的每个个体同时还拥有不同的个性、喜好及个人习惯等个人内在因素,因此用户行为也同时拥有个性化特征。不同的用户在面对相同问题时,由于个人习惯或个人喜好等因素,可能采取完全不同的应对方式。例如,给定数学方程403x+992-27x=-31,由于方程左侧的加号与减号优先级一致,用户可以选择先进行变量消元,也可以选择先消除常数项,而用户如何选择取决于两方面因素。第一个因素是客观外在因素,例如教学内容总是按教学顺序随时间逐渐推进。例如上述变量消元、消除常数项等两种方法,用户在前一阶段先学习的变量消元法,此时用户只会采取先进行变量消元的解法。在后一阶段又学习了消除常数项,此时用户就有可能随机采取其中一种方法进行解题。第二个因素是个性因素,经观察,部分用户的解题行为相对固定,这表现在每次遇到同类问题时几乎都采取一致的解法,而另外一部分用户的行为则具有一定的随机性,有时候采取变量消元法,有时候采取消除常数项法。另一方面,用户在大部分系统上的行为经常存在短期记忆效应,即面对同样的场景,用户更有可能重复最近的行为,受最近的影响最大。根据以上分析,引入贝叶斯网络来对上一小节中卷积神经网络给出的预测结果进行校正。
假设己有一组用户、一组题目和一组解题所使用的知识点,分别表示为U={u1,u2,u3,…,ul}、P={p1,p2,p3,…,pm}及K={k1,k2,k3,…,kn}。与此同时,3.2小节中卷积神经网络输出层对于每一条输入的日志数据均给出了20个类别的预测概率,取出预测概率值最高的两个类别及对应的概率分别记为(ki,kj)及(pki,pkj)。为充分提高贝叶斯网络的训练及预测效率,减少结点个数,需要进行以下处理:1)、对得出的每对(ki,kj)进行编号,记为C={C1,C2,C3…Cz},Ch为提取出的每对(ki,kj);2)、根据每对(ki,kj)的预测结果进行分类,计算Pki-Pkj的值,等距分为8组,记为Pv={Pv1,Pv2,Pv3…Pv8};3)、对于每对(ki,kj),记录用户最终采用的知识点,记为R={R1,R2}。此外,根据上文分析,用户的个人内在因素表明用户与知识点之间存在使用偏向性、客观外在因素和短期效应因素表明时间与知识点间存在使用偏向性。对于用户与知识点之间的偏向性,每一对用户与知识点计算偏向性权重取决用户使用该知识点的频率,因此对于任一知识点,根据用户使用的频率来计算其权重。此时值得注意的是,用户使用系统的次数存在较大差异,小部分用户只有几条或是几十条日志记录,但近半用户则拥有数千条日志记录,这时就需要对使用频率进行归一化处理,本文采取公式(1)计算用户-知识点偏向性权重,其中Fu,k1和Fu,k2分别表示用户u使用知识点k1和k2的频率,max(Fk1)和max(Fk2)分别表示单个用户使用知识点k1和k2的最高频率,因此Wu.c可以表示用户使用知识点的偏向度,若Wu.c为正数表示偏向k1,为负则表示偏向k2,且Wu.c的绝对值越高表明用户越偏向使用某一知识点,而Wu.c绝对值趋向于0则表示用户对于知识点k1和k2没有明显偏向。根据Wu.c的值,将用户-知识点偏向度按照以下区间划分为6个类别[0,0.1),[0.1,0.3),[0.3,1],[-0.1,0),[-0.3,0.1),[-1,0.3),记为Utype={U1,U2,U3,U4,U5,U6}。
(1)
另外,用户行为同样也取决于如教学过程推进等当下客观外在因素及短期记忆效应因素,因此根据用户行为发生时间,提取用户最近行为及近一月对于相同问题所有用户行为同时作为贝叶斯网络结点,采用公式(2),(3)如下所示。对于题目p及类别c,若近一月所有用户采用k1的频率大于k2的频率,将GRECENT设为0,否则为1。对于题目p及类别c,若用户u最近一次采用k1,URECENT设为0,否则为1。
GRECENT={0Fp,c,k1>Fp,c,k21Fp,c,k1<=Fp,c,k2
(2)
URECENT={0lastActionu,p,c=k11lastActionu,p,c=k2
(3)
最后,建立贝叶斯网络CNN-Bayes=
图2 用户行为预测贝叶斯网络结构
实验采用KDD Cup 2010所提供的智能教学辅导系统2005-2006年的用户与系统交互记录日志,选取涉及题目EG45、EG45A、EG51、EG51A等日志记录共40436条含有解题方程步骤的用户行为记录作为实验数据。为保证每个题目都含有足够的训练数据,对实验数据按题目分组,每一组的前80%作为训练数据,剩余20%作为测试数据。实验将预测所有用户面对当前方程时将采取哪一个知识点进行下一步解题。根据3.1小节的方法提取方程特征,可得数据集中共含有963种方程,用户面对963种方程时可选用的知识点共有20种。在提取特征后首先采用3.2小节中设计的卷积神经网络进行用户行为预测,最终正确率达到83.3%。可知卷积神经网络已经能够较好的根据群体行为共性预测出用户下一步将采取的行为。提取预测结果部分类别混淆矩阵如表1所示,该混淆矩阵所涉及的11个类别已经涵盖了测试集98%的数据。观察表1的混淆矩阵可知,与其他类别相比较,K1、K4及K8的正确率偏低,而原因正如4.1小节所述,用户行为具有一定的随机性,而随机性可能取决于客观外在因素、个人内在因素及短期记忆效应因素。
因此,在卷积神经网络预测结果的基础上,继续采用4.1节所设计贝叶斯网络对卷积神经网络的预测结果进行进一步校正。由于训练集和测试集按时间先后顺序划分,因此在测试集中可能出现新用户或者老用户对某个题目没有历史答题情况等冷启动问题,对于此类缺失数据的填充均采取填充最高频数所属类别的方法,最终得出的最终正确率为89.7%,得到了6.4%的提升,经贝叶斯网络校正后的部分类别混淆矩阵及正确率如表2及图3所示。对比两个混淆矩阵可知,经贝叶斯网络校正后,K1、K4及K8的正确率有了显著提升,但在K9、K11上也出现了个位数的预测偏差。
表1 CNN部分预测结果混淆矩阵
表2 贝叶斯网络校正后的混淆矩阵
图3 卷积神经网络与贝叶斯网络校正后的正确率对比
提出了一种用户行为预测模型,该模型将卷积神经网络与贝叶斯网络相融合,首先利用卷积神经网络预测出群体共性行为,接着采用贝叶斯网络,引入短期效应因素、客观情景因素、个人内在因素等特征,对卷积神经网络的预测结果进行进一步校正,最后的实验结果表明,经贝叶斯网络校正后,预测正确率得到了显著提升。比起单一的卷积神经网络,采用贝叶斯网络的优势在于其强大的因果推理,其透明的网络结构有利于发现用户发生行为的原因,为决策提供了依据。