徐 俊,张 政,杜宣萱,肖 刚
(浙江工业大学 计算机科学与技术学院,浙江 杭州 310023)
互联网和大数据技术的快速发展导致信息爆炸式增长,为用户获取信息提供了便利,但同时用户面对如此纷繁复杂的数据难以快速、准确地获取自己想要的数据.推荐技术就是依据用户的个性化偏好在海量数据中选择符合用户需求的信息、产品及服务提供给用户,目前已经广泛应用在电子商务、社交网络等领域[1].
基于协同过滤的方法是应用最广的推荐技术,其中基于模型的方法和基于内存的方法是传统协同过滤方法的两大类别[2].特别是基于模型的方法因为有较高的推荐精度和良好的可扩展性,所以受到学术界和工业界的广泛关注[3].然而,在大数据环境下,随着评分矩阵规模的不断扩增,未评分记录越来越多,新用户和新项目的不断加入,这两种协同过滤推荐算法都面临着严重的数据稀疏性和冷启动挑战[4].研究人员一般采用结合辅助信息,例如用户人口统计学数据[5-8]、社会网络数据[9-12]和语境感知[13-15]等多方面数据,来解决数据稀疏性和冷启动问题.这些多源数据一般为高维稀疏性数据,数据真实性和可靠性不高、噪声大且涉及隐私较难获取或并不真实存在.
项目语义是指项目本身的描述信息包含的语义,例如电影的剧情简介、产品的功能描述等,根据这些自然语言的描述文本提取语义向量表示项目语义.由于项目语义具有更加准确、稳定且容易获取的优势,并且能表达项目间的深层次关联性,因此本文提出了一种基于项目语义的协同过滤冷启动推荐算法(ISCF),通过改进TF-IDF算法构建语义表示模型来提取项目语义向量,并融入到矩阵分解中补全评分矩阵,利用聚类对评分矩阵进行分割,然后通过协同过滤冷启动推荐.
本部分主要对本文算法以及本文研究领域方面所用到的一些知识进行简单介绍.
word2vec是Google的Mikolov等人[16]在2003年提出的一种基于深度学习的词向量模型.它的基本思想是通过训练语料库将每个单词转换成n维实向量,利用向量之间的距离来计算单词的语义相似度.下面是CBOW模型(Continuous Bags-of-Words Model)网络结构图如图1所示:
图1 CBOW模型网络结构
该网络结构主要分为3层:输入层、映射层和输出层.W(t-k),…,W(t-2),W(t-1),W(t+1),W(t+2),…,W(t+k)为当前词W(t)的上下文Context(t),通过调整k选择上下文的范围.CBOW模型利用当前词W(t)的上下文Context(t)预测当前词W(t)的概率P(W(t)|Context(t)),通过极大似然估计把概率最大化.Word2vec模型会因为选取向量维度和上下文个数的不同导致向量效果不同.
因为Word2vec模型是对文本中的词构建向量,而不是对整个文本构建向量,因此Word2vec在向量空间上可以进行加减法运算[17],文献[18]中结合TF-IDF(term frequency inverse document frequency)算法构建文本语义表示模型.TF-IDF算法是一种常用加权技术,广泛应用与信息检索和文本挖掘,核心是利用权重来评价特征词对整个文本贡献的程度.该算法通过统计词频TF和逆向文件频率IDF来评估特征词对文本语义贡献的重要程度,词频TF的公式定义如下所示:
(1)
其中,该特征词在文本j中的总次数表示为ni,j,所有特征词在文本j中出现的总次数表示为∑knk,j.特征词的普遍重要性利用逆向文件频率IDF来统计,所有文本总数与出现该特征词的文本数量比的对数统计就是IDF,IDF值与特征词的重要性呈正相关.逆向文件频率IDF的公式定义如下:
(2)
公式(2)中,语料库中所有文本的总数为|D|,包含特征词ti的文本数量为|{j:ti∈dj}|,为了避免无特征词导致分母0,公式对分母进行加1操作,即|{j:ti∈dj}|+1.通过词频TF与逆向文件频率IDF的相乘放大了权重,从而可以将权重较小的常见特征词过滤掉,筛选出高权重的特征词.TF-IDF算法如下所示:
TF-IDFi,j=TFi,j*IDFi,j
(3)
文本语义向量将TF-IDF权重与Word2vec模型结合,其计算公式如下:
(4)
其中,vj表示文本j的语义向量,wi表示项目描述中抽取的第i个关键词,Vwi表示为第i个关键词通过Word2vec工具转换后的语义向量,n表示文本j中特征词总数量.
矩阵分解模型因为具有良好的可扩展性和高效性,所以被广泛的应用于推荐系统中.模型将用户-项目评分矩阵Rm×n分解为Pm×d和Qd×n这两个潜在特征矩阵,示意图如下所示:
图2 矩阵分解示意图
其中n表示用户总数,m表示项目总数,d表示潜在特征维度,然后再通过P和Q的内积预测评分.
本部分将详细描述ISCF算法,主要包含3部分:
1)利用基于TF-IDF改进算法的项目语义表示对项目语义信息进行向量化描述;
2)在矩阵分解中融入项目语义;
3)通过聚类分割进行协同过滤冷启动推荐.
项目描述是由多种多样特征词构成的文本,可以利用语义表示模型计算项目语义向量.语义表示模型中的TF-IDF算法虽然能够提取文中关键特征词,并将常见特征词过滤掉,但是该算法仅是利用特征词的数量统计权重,并没有考虑过特征词本身所具有的含义.例如,两个特征词尽管不一样,但蕴含的意思相近,即近义词,那么TF-IDF算法将会把它们分别进行统计词频,从而降低了关键特征词的提取精度.对此,本文利用不同特征词之间的语义相关性改进传统TF-IDF算法,增强文中关键特征词的提取精度.在统计特征词的词频过程中,改用语义词频STF,即统计文本中与该特征词语义相关的特征词出现的频率,而非简单的统计特征词在文本中出现的次数TF,语义词频STF定义如下:
(5)
其中,N(j)表示为项目j中的特征词总数量,ε是一个阈值,当cos(Vwt,j,Vwi,j)>ε时,则认为特征词t和特征词i属于同一类别的词,即近义词.因为具有相关性的特征词集合能反映出整个文本的语义特征,不用传统的词频统计而改用改用特征词之间的语义相关性来统计,可以挖掘文本中重要的特征词从而更好的凸显出文本的语义特征.改进之后的TF-IDF权重计算公式如下所示:
STF-IDFi,j=STFi,j*IDFi,j
(6)
具有语义相关的特征词通过该公式可以获得词频的增加从而提高自身的权重值.然后利用改进后的TF-IDF算法来优化每个特征词的语义权重值,再利用Word2vec来实现项目语义向量的表示,计算公式如下:
(7)
其中,vj表示项目j的语义向量,STF-IDFi,j表示为结合了语义相关性的项目j描述文本中特征词wi的权重,n表示项目j描述文本中特征词总数量,该方法可以增强项目语义的特征表示.
矩阵分解模型在推荐系统中被广泛应用,但其精度受限于数据的完整性,当用户评分矩阵数据稀疏时,其预测评分的精度不佳.本文将额外的项目语义信息融入到矩阵分解模型中改善因数据稀疏性带来的预测评分欠佳问题.
在矩阵分解中引入用户在项目语义上的偏好潜在特征,并通过一个调节因子来调整用户评分偏好和用户语义偏好在评分预测中的比例,评分预测函数如下:
(8)
(9)
本文通过借助随机梯度下降法求解上述的损失函数方程.各个学习参数的梯度方向通过下面公式求解:
(10)
(11)
(12)
参数训练完成后,通过评分预测函数预测评分矩阵R中的缺省值,并进行填补获得补全评分矩阵R′.
在补全评分矩阵R′的基础上,本文利用到了k-means聚类算法在线下对补全后的评分矩阵R′进行聚类分割,在线上利用新用户属性信息和项目语义信息快速寻找到分割后的数据小矩阵,并通过协同过滤进行预测评分.在预测评分中,使用分割后的小矩阵进行预测计算,计算量的减少使得计算速度大大加快,同时还使得算法具备了可扩展性和实时性.
本文利用内容上的相似表达项目之间的关系,即通过项目的语义向量vi和vj计算余弦值表示项目的相似度simI(i,j).用户的相似度参考文献[5]中的属性相似度计算方法:
(13)
其中,n为用户所有属性的总数,Aik和Ajk表示为用户i和用户j的第k个属性的属性值,sim(Aik,Ajk)表示为用户i和用户j的第k个属性的相似度,wk表示为第k个属性的权重值.属性相似度sim(Aik,Ajk)使用绝对指数相似度计算,其具体公式如下所示:
sim(Aik,Ajk)=e-|Aik-Ajk|
(14)
其中,sim(Aik,Ajk)值的范围在[0,1]之间,用户i和用户j的第k个属性越相似,其值越接近于1,反之,则越接近于0.wk是属性的权重值,每个属性对用户的影响程度不同,为精确每个属性的权重值,提取属性k相同的所有用户所评分最高的前t个项目集合,并分析不相同的集合个数,计算平均值ave(k),再通过下面公式计算每个属性的权值,具体公式如下所示:
(15)
通过数据统计获得的属性权值相比于人工赋值更加的可靠和准确.
本文分别通过用户和项目的相似度计算方法进行k-means算法聚类,根据用户和项目的类簇对评分矩阵进行数据分割,图3展示了该数据分割.
图3 用户和项目类簇分割数据
上述图3中同种颜色的表示为一个数据块小矩阵,使用用户类簇和项目类簇来对评分矩阵中的行和列进行共同分割,将一个高纬度的评分矩阵分割成了更加细小且大小不同的低纬度小矩阵.新用户和新项目根据与类簇质心的相似度将获得用户和新项目各自所属的类簇xc和yc,然后可以通过这两个值快速的确定评分矩阵中唯一小矩阵,利用这个小矩阵中的数据进行协同过滤预测评分.评分预测具体公式如下所示:
(16)
本文实验的硬件环境为处理器 i7 9700,3.00GHz,8核8线程,内存 8GB,显卡1050ti 4GBRAM.算法实现采用Python语言.实验数据的公开数据集来源于Movielens,其包括了用户、电影以及电影评分数据.其用户对电影的评分取值为{1,2,3,4,5},分数越高代表对电影越青睐,数据稀疏度为93.7%.此外,本文为构建项目语义在互联网电影资料库(Internet Movie Database,简称IMDb)中利用爬虫技术获取了1682部电影的剧情文本描述信息.
评分预测的准确度采用平均绝对误差(MAE)和均方根误差(RESE)评价.其计算方式如下:
(17)
(18)
本部分将对算法中的参数a、缓解数据稀疏性和冷启动问题进行实验分析.
4.3.1 参数a分析
参数a控制用户评分信息和项目语义信息的贡献程度,为了确定参数a的最佳值,我们将a从0以0.1的步长递增到1观察其对预测结果的变化影响.当a=0时,数据仅包含用户评分信息,此时模型等同于MF,当a=1时,数据仅包项目的语义信息.
图4展示了a值不断提高时融入项目语义的矩阵分解的预测效果,起初在a值从0.1增加到0.6的过程中,MAE的值在下降,即预测评分的准确性上升,但在a值从0.6增加到1的过程中,MAE的值又开始上升,即预测评分的准确性下降.因此,当a=0.6时预测评分的效果达到了最佳.同时,该实验也证明了融入项目语义能够提高矩阵分解的预测效果,缓解数据稀疏性问题.
图4 参数a的影响
4.3.2 缓解数据稀疏性问题分析
为了说明融入项目语义的矩阵分解能够有效得了缓解数据稀疏性问题,本文将分别与以下算法进行比较:
1)Basic MF:基础矩阵分解,仅利用用户评分矩阵预测评分.
2)PMF:概率矩阵分解,结合概率论的矩阵分解模型.
3)BPMF:基于马尔可夫蒙特卡罗方法的贝叶斯概率矩阵分解.
4)CBMF:由文献[13]提出的内容加强矩阵分解,在矩阵分解过程中结合了标签信息.
5)CISMF:由文献[8]提出的基于耦合相似度的矩阵分解,利用了耦合相似度的矩阵分解方法.
6)CSMF:本文研究的融入项目语义的矩阵分解,将项目语义信息作为辅助信息融入到矩阵分解过程中.
本文的实验采用五折交叉验证的方法,测试数据拆分为4份训练集和1份测试集,与其他算法的对比效果如表1所示.
表1 本文所提算法与其它矩阵分解比较
本文所提融入项目语义的矩阵分解的实验参数设置为λ1=λ2=λ3=0.02,a=0.6,d=5,ε=0.8.图5展示了本文所提算法与其它算法在测试集上的结果,CBMF、CISMF、CSMF引入辅助信息的推荐算法相比于MF、PMF、BPMF无辅助信息的推荐算法明显降低了MAE值和RMSE值,即提升了预测结果的准确性,这说明引入辅助信息能过有效地缓解数据稀疏性问题.其中本文所提的融入项目语义的矩阵分解(CSMF)算法均优于其它算法,原因是CSMF算法不同于其它算法仅将辅助信息作为正则化来限制矩阵分解,而是将辅助信息,即项目语义作为分解过程中的潜在特征参数,并分解出用户主观上的语义偏好潜在特征,在预测评分过程中,结合了用户主观语义上的影响因素和客观历史评分上的影响因素,因为在现实世界中项目的语义信是影响用户行为的重要因素之一.因此将用户的语义偏好引入到矩阵分解中,能够有效地提升矩阵分解的评分预测能力,缓解数据稀疏性问题.
4.3.3 解决冷启动问题分析
为了说明本文所提的ISCF算法在提升新用户评分预测准确性以及解决冷启动问题上的效果,本文将与以下冷启动算法进行比较:
1)PredictMean:一种计算已有评分平均值作为预测的基础推荐算法.
2)UDCF:通过人口统计学属性特征计算用户相似度的协同过滤冷启动推荐的方法.
3)COS-CF:通过属性的耦合相似度进行协同过滤冷启动推荐的方法[19].
4)ISCF:本文所提的在补全评分矩阵的基础上,利用聚类分割进行协同过滤冷启动推荐方法.
本部分依然采用五折交叉验证的方法,与其它冷启动算法的对比效果如表2所示.
表2 本章所提算法与其它冷启动相关算法比较
图5 矩阵分解算法MAE对比图Fig.5 MAE comparison of Matrix factorization algorithm 图6 冷启动推荐算法MAE对比图Fig.6 MAE comparison of cold start recommendation algorithms
由图6可看出,本文所提的基于项目语义的协同过滤冷启动推荐算法(ISCF)对新用户的评分预测精度高于其它对比算法,这是因为ISCF算法不仅利用了已有评分数据,还将未评分项通过之前的预测也加入到了推荐过程中,使得数据更加全面和完善.此外,在计算评分上,同时利用了用户相似关系和项目语义相似关系.首先通过项目语义协同过滤计算已有用户对这类项目的平均分,然后再通过用户属性协同过滤计算新用户对此类项目的预测评分.
图7展示了最近邻个数对各种冷启动推荐算法的影响,随着横坐标最近邻个数的增加,对应的MEA值变化的过程.
图7 ISCF与其它冷启动推荐算法的性能比较
观察图7中可知,伴随横坐标最近邻个数的增加,UDCF、COS-CF、ISCF的MAE值都在不同程度减小,最后趋向于平稳状态.由结果可知,本文所提的ISCF算法始终优于其它对比算法,这是因为ISCF算法不仅利用了用户端的信息,还利用到了项目端的信息,即项目语义,在两端分别进行了聚类处理.由于实验中仅用了职业、性别、年龄这三个特征对用户进行聚类,所以对比差距不大,如果在用户信息更全面的环境下,该算法的优势会更加明显.
本文所提的基于项目语义的协同过滤冷启动推荐算法,首先利用语义相关性改进TF-IDF算法,对项目语义进行向量化表达,然后融入到矩阵分解中以缓解数据稀疏性问题,补全评分矩阵,最后通过聚类对补全后的评分矩阵进行分割,获得多个低纬度的评分小矩阵,利用小矩阵中的数据进行协同过滤预测评分,有效的解决了冷启动问题,并提升了算法的可扩展性和实时性.下一步的研究方向则是考虑如何将用户心理特征结合到推荐领域中,改善冷启动推荐的效果.