程娟娟,宋 彪,李 微
(1. 南京工程学院计算机工程学院,江苏 南京 211167;2. 南京信息工程大学计算机学院,江苏 南京 210044;3. 南京工程学院科技与产业处,江苏 南京 211167)
数字化推荐算法可满足用户不同需求,有针对性的快速搜索所需资源,提高数字化资源检索效率[1,2]。但是网络资源内容庞大,为用户提供精准推荐难度较大。现有陈晔等人[3]提出以LFM矩阵分解为基础的推荐算法,马海江[4]提出的推荐算法是以卷积神经网络与约束概率矩阵分解为基础,以上两种算法均能对数字化资源在线推荐,但是在实际应用中存在用户分析耗时较长,且推荐精度偏低问题,用户体验感不够理想。
为此,本研究提出利用Vanilla算法计算数字资源排序权重。再结合神经网络模型计算用户对资源的评分,设计用户相似度矩阵初始值计算、分解与重组步骤,计算不同用户之间的相似度,完成数字化资源在线推荐。Vanilla算法主要通过全方面掌握用户信息,了解用户需求,达到寻找目标的目的,优化了数字化资源推荐的精准度。
本文利用Vanilla算法设计新的数字化资源在线推荐算法,Vanilla算法结合专家排列法计算不同情景维度的权重,并计算用户使用数字化资源的消费评分,通过神经网络的评分自动采集模型,评估用户对推荐的数字化资源喜欢程度,从而了解用户兴趣。在固定数字化资源的情况下,寻找不同用户之间的共同点,帮助目标用户实现消费评分的预测,最终完善数字化资源在线推荐算法。
Vanilla算法通过专家排序法获取所设立情景维度的权重,以便依据该权重获取用户对数字化资源的评分结果。
2.1.1 设定情境维度及权重
用户在线推荐数字化资源时,用户心情、用户闲暇时间、用户年龄、电子移动设备剩余电量、数字化资源的种类等均属于情境,并且信息来源和语境都有所不同[5,6]。由于情境可以改变用户的行为,因此用户使用数字化资源在线推荐算法第一步,应该收集用户数字化资源的情境因素,具体信息见表1。
表1 情境信息
将以上5个情境维度的合集用V表示,且V={vi}1≤i≤6,当下的情境状况用vi代表。不同情境状况vi的权重需要排列顺序,专家根据用户需求量多少进行排列,依照由多到少,第1位情境维度,为需求量最多,第2位仅次于第1位需求量,以此类推。若情境维度为n个,需要m位专家排列,那么排列可用m行n列的数字表示,即1,2,…,n。该情境的秩理解为该情境的排列位置,该情境的秩和为m位专家判断该情境的秩相加的数值,用R表示,Ri和wi分别代表第i个情境的次序和与权重,运算过程如下
wi=2[m(1+n)-Ri]/[mn(1+n)],i=(1,2…,n)
(1)
2.1.2 情境维度优先级一致性检验
专家根据判断用户对该情境需求量的多少,决定情境权重[7,8]。假设m位专家判断结果大致相同,则为有效权重,否则为无效权重。权重计算的前提条件需相同,这就需要显著性验证专家判断结果。具体验证步骤如下:
统计量X2是显著性验证计算结果,如式(2)所示
X2=m(n-1)W
(2)
其中
W=12S/[m2(n3-3)]
(3)
(4)
W代表临界值,S为显著水平,假设S>W,则表示几位专家判断结果是显著相同,否则差异较大。
以了解用户操作情况为前提,本文算法针对用户的喜好设计模型[9]。为避免用户异常评分行为、消除用户无理由评分和推荐算法评分不密集的问题,该算法需要根据用户使用数字化资源的行为,设立深层次的兴趣模型或评分,并且结合已经存在的表面评分算法实施推荐。神经网络推荐算法通过用户行为采集用户评分信息。
设定用户实际使用数字化资源累计总时长为L、快进次数为F、后退次数为B、用户数字化资源本身总时长T共4种因素影响用户评分R。通过神经网络学习算法建立一个能用L、T、B、F表示R的模型。
神经元作为底层构架模块,每个模块通过广泛链接形成一种非线性动态系统,该系统可以根据需要调整状态,称人工神经网络(Artificial Neural Network,ANN)。根据人工神经网络能够利用神经元互相采集数据的特点,可知该网络具有两大特征:第一,能够对新事物尽快掌握;第二,环境发生改变时,功能不受影响。在新环境中,神经网络能够通过学习完善本身功能并且利用学习算法自动修复变化的链接权值,从而适应新环境[10,11]。因此本文深层次评分的推荐算法选用神经网络,具体结构见图1。此网络含有输入端:数字化资源累计总时长L、快进次数F、后退次数B、用户数字化资源本身总时长T和输出端:用户评分R,仅可为0、1、2、3、4、5中的数值。该神经网络中L、T、BN、FN与R间的相互关系用式(5)表示:
图1 基于神经网络的资源自动评分模型
(5)
其中,L、T、B、F之一的第i项输入用xi代表,此处输入权值与偏置分别表示为wi、θ。
图1显示,如果存在足够多的输入变量的权值wi和偏置θ到推荐算法式(5),利用该神经网络的传递函数lgsig函数式(6)获得输出值并选择四舍五入,使输出值为0到5之间的整数。lgsig函数见式(6)
(6)
2.3.1 用户相似度矩阵初始值计算
用户消费关系可以帮助获取相似度初始值,为了掌握用户消费关系,必须了解用户时序行为。
用户合集用U代表,兴趣关系用E代表。现有项目I,如果用户Ui和Uj的评分态度一致,那么边值Ei-j上的权值Wi-j均需要加1。访问全部用户的时序消费关系,根据统计学整理设计出用户消费关系,边值Ei-j上的权值Wi-j用式(7)进行描述:
(7)
这里,规定时间间隔用Ni,j代表,共同兴趣评分项目数,按顺序表示成Ui和Uj。生活中Ni,j个项目里Ui→Uj评分态度一致的项目数表示为Wi-j,通过Wi-j显示用户Ui对Uj起到多大的作用。
(8)
2.3.2 用户相似度矩阵分解
用户集合用U=(U1,U2,…,UN)代表,项目集合用V=(V1,V2,…,VN)代表。根据上文算得用户与用户间相似度值,设立用户与用户相似度矩阵SN×N,优化函数L(S,P,Q)表示如式(9)所示
(9)
利用梯度下降法运算优化函数,以下式(10)是梯度迭代公式
(10)
具体运算步骤如式(11)所示
(11)
式中,函数g(x)的导数为g′(x),即g′(x)=e-x/(1+e-x)2。
2.3.3 重建用户相似度矩阵及目标
利用上文得到特征向量Pi、Qj,建立并排列出新的用户与用户间相似度矩阵,最终寻找到与该用户最相似的目标用户[12]。寻找到目标用户的具体算法如下:
将数据集、学习率α、正则化参数为λ1、λ2作为输入,目标用户作为输出。
1)制定用户时序关系需要MovieLens数据集;
2)通过式(8)算出用户初始相似度值,建立数据集DS;并将DS随机分成两组,一组为训练集TR,占80%,另一组为测试集TE,占20%;
3)随机初始化特征矩阵P、Q;(Ui,Uj,Sij)在TR中;
5)利用TE算出MAE值
6)如果MAE>ε,通过特征矩阵P、Q重建用户相似度矩阵;对用户的相似度值排列,得到目标用户。
在情境不一样时,通过本文算法专家排列加权得到消费评分用R(u,j)表示。假设在用户u中现有j类数字化资源需求的目标用户u′对其进行预测评分,用P(u′,j)代表。
具体运算见式(12)
(12)
U为全部的数字化资源网站的用户。
当数字化资源种类多样时,算出目标用户u′的预测评分需要两方面结合计算,分别为u的评分计算、u与u′的相似度值计算。以二者值为基础算出目标用户u′的预测评分,完成目标用户u′的数字化资源在线推荐列表创建任务。
以某数据化资源网站为实验对象,采用本文算法对该网站用户进行数字化资源在线推荐,验证本文算法的有效性。
本文算法采用神经网络实现用户自动评分,为了验证本文算法的速度和准确性,在大量使用该网站数字化资源的用户中,随机选取10名用户,编号为1~10。由于单纯计算失误率不能更好地反映本文算法的评分能力,因此评分数据还需计算平均绝对误差(MAE)值,同时记录评分运行时间。运行所需时间少,则表示计算用户评分速度快;失误率低,说明评分正确率高,而MAE同样反映本文算法的评分正确率。当MAE与失误率一样时,表示每次失误最小。实验结果见表2。
表2 用户评分计算速度和准确性
表2中可知,本文算法计算用户评分时的运行耗时最高为0.031s,说明该算法评分速度快。表中失误率在5%左右波动,失误率低,证明该算法计算评分准确性好,并且MAE与失误率值相等,表示抽取的样本预测失误最小。综上所述,采用本文算法具有运行速度快、准确率高的优势。
从该数据化资源网站中随机选取部分数据化资源组成数据集,将得到的数据随机分成两组,不能重复出现,一组为训练集占80%,一组为测试集占20%。为了验证本文算法的精准性,使用运算平均绝对误差(MAE)和均方根误差(RMSE)作为实验指标。实验对照算法为文献[3]算法和文献[4]算法。文献[3]和文献[4]均研究了推荐算法,前者通过LFM矩阵分解进行推荐,后者选用卷积神经网络与约束概率矩阵分解完成推荐。将这两种算法的实验结果与本文算法相对比。实验利用这三种算法完成数字化资源推荐。为了验证精准性,需将获取的评分数据分别算出平均绝对误差MAE和均方根误差RMSE,对比情况见图2。
图2 三种算法性能对比图
从图2可知,当目标用户数值为6时,三种算法的MAE和RMSE值最小,说明此时误差最低,三种算法推荐数字化资源结果为最佳。综合观察,本文算法与文献[3]算法、文献[4]算法比较误差最低,证明本文算法能够准确找到目标用户,并进行数字化资源精准推荐。
本文提出的基于Vanilla算法的数字化资源在线推荐算法,能够高质量实现网络用户所需的数字化资源的推荐。以Vanilla算法获取的专家排序权重为基础,采用神经网络模型计算用户对资源的评分,运行耗时少,准确率高,用户在使用本文算法进行数字化资源推荐时,能够节约时间,并且省略了筛选的过程,直接搜索出所需资源。方便用户的学习和生活。