- 1 -
中国科技论文在线
基于情绪和因子分解的协同过滤算法
王强强1,2,孟祥武1,2,胡勋1,2**
作者简介:王强强(1989-),男,硕士研究生,主要研究方向:情感计算,上下文感知推荐系统
通信联系人:孟祥武(1966-), 男, 教 授, 博士生导师, 主要研究领域:网络服务, 智能信息处理,
通信软件. E-
(1. 北京邮电大学智能通信软件与多媒体北京市重点实验室 北京 100876;
2. 北京邮电大学计算机学院 北京 100876) 5
摘要:面对电子商务领域中电影个性化推荐问题,本文将情绪上下文信息和协同过滤算法相
结合,提出一种基于情绪和因子分解的协同过滤算法。第一种算法首先构造“用户-项目”
二维矩阵,使用 SVD 矩阵分解方法逆向填充稀疏矩阵,然后使用情绪上下文对填充矩阵作
预过滤处理,使用 KNN 协同过滤算法进行推荐预测。第二种算法首先构建“用户-项目-情10
绪”三维矩阵,在此矩阵的基础上使用模型公式计算得到用户对项目的推荐值,文中将详细
的介绍使用最小二乘化求解该公式未知变量的方法和步骤,以及如何通过增加情绪信息获
得到更为精确的预测结果。公开数据集实验表明,两种算法均能用于电影服务领域的用户
偏好预测,通过与传统的推荐算法相比表明,它们有更高的推荐精确度。
关键词:推荐系统; 协同过滤; 矩阵分解; 情绪; 因子分解机 15
中图分类号:TP393
• A collaborative algorithm based on emotional context
and factorization
WANG Qiangqiang
1,2
, MENG Xiangwu
1,2
, HU Xun
1,2
20
(1. Beijing Key Laboratory of Intelligent Telecommunications Software and Multimedia, Beijing
University of Posts and Telecommunications, Beijing 100876, China;
2. School of Computer Science, Beijing University of Posts and Telecommunications, Beijing
100876, China)
Abstract: To solve the problem of movie personalized services recommendation in the field of 25
electronic commerce, a collaborative algorithm based on emotional context is proposed by
combining mood context information with collaborative filtering (CF) algorithm. The first
algorithm is to build "user - project" two-dimensional matrix, using SVD matrix decomposition
method reverse filling sparse matrix, and then use emotional context to filter the filled matrix. And
then use the KNN collaborative filtering algorithm to recommend. The second algorithm is to 30
construct "user - project - emotional" multidimensional matrix, the model formula used on the
multidimensional matrix to predict value. The detailed information on how to use least square to
solve the unknown variables will be introduced. Besides, the knowledge on how to obtain more
accurate prediction results by increasing the emotional information will also be introduced.
Experiments in pubic datasets show that the two algorithms have higher recommend accuracy 35
comparing with the traditional recommendation algorithm and can be used in the field of film
service user preference prediction.
Key words: Recommender systems; Collaborative Filtering; Context; Mood; Factorization
0 引言 40
随着互联网技术的飞速发展和网络信息的爆炸式增长,人们对推荐系统产生浓厚的兴
趣。推荐系统[1]利用个性化的信息过滤技术[2]来预测特定用户对特定商品的喜好程度,或者
向特定用户推荐其最感兴趣的商品,其中协同过滤算法是推荐系统中应用最成功的方法。协
同过滤算法的核心是分析用户兴趣,在用户群中找到与指定用户相似兴趣用户,并根据相似
用户行为做出最终的判断。由于用户对产品的喜好程度受到上下文信息(如:情绪,时间,45
- 2 -
中国科技论文在线
地点等)的影响,例如:有些人“悲伤”的时候可能想观看“喜剧电影”来改变糟糕的心情,基
于此在协同过滤算法范畴内的上下文感知推荐[3]方法得到广泛的研究.
本文考虑用户情绪、数据集稀疏性和预测复杂度等因素对用户偏好产生的影响,提出一
种基于情绪和因子分解的改进协同过滤算法。用户对商品的评分组成一个二维评分矩阵,但
每个用户可能仅对其中很小部分商品做过评价,因此评价矩阵非常稀疏,解决这类问题的一50
般方法是使用特征值分解,如使用矩阵奇异值分解(SVD)方法对获得用户和商品的因子矩
阵,并使用因子矩阵逆向求解未知项对矩阵进行填充,以用来缓解数据集的稀疏性,但该方
法在使用时只适用于特定的数据集,如:不适用于实数评分域和上下文分类范畴等,此外该
方法的计算时间复杂度较高,不适合大数据量数据集和数据集的扩充。因此,本文同时介绍
一种改进的因子分解机模型(Factorization Machines,FMs),它能够弥补传统解决方法的不55
足,此外 FMs还能够适应各种上下文变量类型,并且能够在线性的时间复杂度内完成对用户
行为的预测。
本文第 2 节介绍协同过滤算法、矩阵分解等方面的相关工作,第 3 节将详细的介绍矩阵
分解缓解稀疏性模型和因子分解模型的过程和实现算法,第 4 节介绍使用的数据集和相关实
验分析,第 5 节对全文进行总结。 60
1 相关工作
协同过滤
协同过滤算法是推荐系统领域使用最为广泛的方法,基本思想是通过分析用户和项目的
偏好关系,通过相似度计算获得邻居用户,目标用户的偏好可以通过邻居用户对该项目偏好
的加权平均作为预测值。 65
首先,介绍相似度的计算公式,经常使用到的相似度计算公式:余弦相似度公式[4]和
Pearson 相关系数公式[5],其中 Pearson 相关系数使用比较多。通常共同对两部电影给予评分
得用户数量很少,Bell 等[6][7]建议使用压缩的方法来改进相似度的计算方法,以得到更可靠
的相似邻居,其公式为:
, ,
2 2
, ,
( )( )
| |
( , ) *
| | ( ) ( )
xy
xy xy
x s x y s y
s Sxy
xy
x s x y s y
s S s S
r r r r
S
sim x y
S a r r r r
(1) 70
其中 ( , )sim x y 表示用户 x,y的相似度值,
xy
S 为用户 x,y的共同评分集合,a为压缩参数, ,x sr
表示用户 x对项目 s的评分值,
xr 表示用户 x对共同评分集合的平均评分值。
得到用户之间的相似度后,一般可以选择 20 到 50 个与预测对象相似的邻居,并使用预
测公式进行预测。利用相似邻居进行中心加权求和来预测用户对项目的评分,其公式:
' ''
'
'
,
, '
[ ( , ) ( )]
| ( , ) |
u i uu N
u i u
u N
sim u u r r
r r
sim u u
(2) 75
其中 ,u ir 表示用户u 对项目 i的预测评分值,N 表示用户u 的邻居节点的集合,
'( , )sim u u 表
示用户u和用户 'u 的相似度值, ' ,u ir 表示用户
'u 对项目 i的已评分值, ur 表示用户u 对已评
分项目的平均评分值。
- 3 -
中国科技论文在线
矩阵奇异值分解
奇异值分解[8](SVD)是线性代数中一种重要的矩阵分解,是矩阵分析中正规矩阵酋对80
角化的推广。在信号处理、统计学等领域有重要的应用。
假设 R是一个m n 阶矩阵,其中矩阵 R的秩 ( )rank M r ,则 R的奇异值分解 SVD(R)
定义为:R U S V ,其中:U和 V分别是m m 和n n 的正交矩阵,S 是一个m n
的对角矩阵,它对角线上的元素由上往下依次递减,即 1 1( , ,..., )rS diag ,并且对角
线上的元素满足:( 1 1 ... 0r )。 85
实际的数据集研究过程中,由于用户和项目的数量都非常大,而数据集中只有很少用户
和项目具有交互信息,在这种情况下构造的“用户-项目”关系矩阵就会极度的稀疏,而稀疏
性问题对协同过滤的算法有着消极的影响。通过上文介绍的矩阵的奇异值分解可以很好的缓
解这个问题,通过二维矩阵分解后分别得到用户和项目的特征信息,再使用该特征信息重新
计算原矩阵的缺失信息,从而通过二维矩阵填充缓解稀疏性问题。 90
2 算法设计
矩阵分解缓解稀疏性模型
定义 1 情绪 {0,1}me ,其中 1me 表示情绪 me 对用户有影响, 0me 表示情绪 me 对
用户没有影响,将由 n个情绪上下文信息构成的向量模型表示为 1 2{ , ,... }nEmotion e e e 。
定义 2 对于“用户-项目-情绪”三维模型,将三维模型看作因变量( f ),则“用户-95
项目”关系和“项目-情绪”关系分别为自变量( 1 2,x x ),由于缺少任何一个自变量就会使
因变量失去其意义,则存在关系式 1 2f x x 。
该模型的具体实现步骤如下:
步骤 1:奇异值分解原始矩阵。构造二维“用户-项目”评分矩阵 R,使用公式 1 定义的
奇异值分解将矩阵分解为 U,S 和 V,并且通过实验选择适当的维度 k,将 S 简化为维度 k100
( ( )k rank R )的矩阵 kS ,并相应得到简化矩阵 kU 和 kV
步骤 2:填补原始矩阵中缺失信息。计算 kS 的平方根极为
1/2
kS ,则用户 i对项目 j的预
测评分为: 1/2 1/2( , ) ( ) ( )Ti k k k kP i j R U S i S V i ,其中 iR 是用户 i 在所有已评分项目上评
分的平均值。
步骤 3:求解矩阵填充后用户之间的相似度。为了提高用户相似度的可靠性,本文将使105
用前文介绍的公式(1)计算得到“用户-用户”相似矩阵 userS 。
步骤 4:求解用户相似邻居集合。首先构造“项目-情绪”二维矩阵,使用 Pearson 相关
系数公式计算得到“项目-项目”相似度矩阵 itemS ,使用定义 3 计算得到情绪影响下的相似
度值 user-moodS
user- item usermood
jk jk jkS S S (3) 110
从中选择 N个用户则为最终的相似邻居集合。
步骤 5:预测用户对项目的可能评分值。使用上述步骤得到的相似邻居集合和上文介绍
的中心加权求和公式(2)求解预测值。
- 4 -
中国科技论文在线
因子分解机模型
由于因子分解机[9](Factorization Machines)可以在线性时间内完成推荐预测,和其它115
传统上下文感知推荐方法相比较,FMs 更容易应用在多种上下文信息,本文将文献中介绍
的因子分解机模型进行详细的整理和改进,下面将给出改进后算法使用的具体步骤:
步骤一:构造“用户-项目-情绪”三维矩阵。假设该多元列表可描述为:(用户,项目,
情绪,评分),且存在以下用户评分信息:
(A,Ia,Happy,5),(A,Ib,Sad,3),(A,Ic,Nervous,1),(B,Ic, Nervous,4),(B,Id,Happy,5),(C,Ia,Sad,1),120
(C,Ic,Happy,5),则多元二维矩阵构造结果如图表一所示:
表一“用户-项目-情绪”多维矩阵
Tab. 1 “User-Item-mood” multidimensional matrix
Feature Vecture X Target y
1 0 0 1 0 0 0 0 0 1
1 0 0 0 1 0 0 1 0 0
1 0 0 0 0 1 0 0 1 0
0 1 0 0 0 1 0 0 1 0
0 1 0 0 0 0 1 0 0 1
0 0 1 1 0 0 0 1 0 0
0 0 1 0 0 1 0 0 0 1
A B C Ia Ib Ic Id S N H
User Movie Mood
5
3
1
4
5
1
5
Y(i)
Rating
步骤二:使用因子分解机的预测公式求解预测评分。FMs 的模型等式,在(d=2)情况
下的因子分解方程式定义如下: 125
2 2 2
0 , ,
1 1 1 1
1
ˆ( ) (( ) )
2
n k n n
i i i f i i f i
i f i i
y x w w x v x v x
(4)
n 为特征向量的 X
元素个数, ix 为向量中的第 i 个值。其中需要求解的模型参数包括以
下三个变量: 0w R ,它是一个全局偏倚,
nw R
是一个 n 阶矩阵,且 iw 为向量中第 i
个值的权重, n kV R 是一个n k 阶矩阵,其中 {1,2,4,8,16,32,64,128}K 。由于 FMs
是一个线性函数,所以公式(4)满足在模型参数 情况下定义为如下一个线性方程: 130
( ) ( )
ˆ( | ) ( ) ( )y x g x h x (5)
其中 ( )g 和 ( )h 分别是求解任意 下独立的参数值。
步骤三:求解公式(4)中的未知变量。求解上述未知数的常用方式是使用最小二乘法
拟合,为了减少任务的回归和防止过度拟合,对拟合公式添加补偿因子,最后得到如下的归
一化公式: 135
2 2
( )
( , )
ˆ( ( ) )
x y S
RLS Opt y x y
(6)
其中 ( ) 是模型参数 的归一化值,由于没有必要归一化全局偏倚,故在本文中设定
- 5 -
中国科技论文在线
0( )
0w 。为求解上述(6)式中参数对其求偏导数,结合公式(5)可得到一般求解公
式如下:
( ) ( )( , )
2
( ) ( )( , )
( ( ) ) ( )
( )
x y S
x y S
g x y h x
h x
(7) 140
步骤四:使用交替最小二乘拟合算法回归求解得到未知解。本步骤将详细的描述算法的
输入、输出和详细计算流程。
输入:“用户-服务-情绪”多元二维矩阵,目标用户 u、情绪上下文 C 和待推荐的项目
信息 i。
输出:用户 u 在当前上下文 C 下,对于待推荐项目 i 的推荐值。 145
算法的具体流程分为以下几步:
(1) 初 始 化 模 型 未 知 参 数 值 , 其 中 V 使 用 标 准 正 太 分 布 初 始 化 :
0 0, (0,0,...,0), ~ (0, )w w V N
;
(2) 预 计 算 误 差 项 e 和 上 述 公 式 中 的 ( )h 参 数 : ˆ( , | ) ( , )e x y y x y y ,
,
1
( , | )
n
i f i
i
q x f v x
; 150
(3)迭代求解得到位置参数
0, ,w wV
,根据公式(7),迭代计算 ( , | )e x y 和 ( , | )q x f ,
当模型未知参数达到一定标准值时停止迭代。
用户偏好预测
根据 节介绍前三步骤内容计算二维邻居填充后的项目的相似邻居,选取对要预测项
目有评分的前 K=50 个相似邻居,再使用后两步骤进行位置项目的推荐预测。最后,对预测155
值作近似处理,由于预测出的用户对项目的评分是小数,测试集的评分值都是整数评分,所
以需要修正预测值作以满足数据集要求的评分格式,由于本文实验使用数据集评分范围在
0~100,最小刻度为 5 分,需要将预测值转为整数形式,本文并不是采用“四舍五入”方式
处理预测评分值,而是使用用户评分趋势来对预测值的取舍进行有效度量,评分趋势由用户
的已评分情况来决定,如果用户整体对某一项目评分较高即为高分倾向者,对预测值修正时160
选择采取入的方式,反之则为低分倾向者,对预测值进行修正时采取舍的方法。
3 实验及结果分析
本文采用的实验平台为 PC(Intel(R),CPU , RAM 2GB)和 Windows 7 操
作系统,开发工具使用 Microsoft Visual Studio 和 ,算法使用 C++语言编写。
数据集 165
实验使用的是 Moviepilot 数据[10],数据集的评分刻度范围从 0 到 10,并允许“半点”等
级:如 、 等,为了记录方便将评分范围定在 0~100,如果用户评分为 则被记录为
35。数据集中有包括 105137 个用户、25080 部电影和 4544386 个评分记录,除了“用户-项目”
- 6 -
中国科技论文在线
评分矩阵外,还提供了各种上下文信息(如情绪、情节、社会网络和评论等),本文我们主
要探索研究情绪上下文特征信息对电影评分产生的影响,因此可以使用数据集中提供的电影170
和情绪关系集合,以用来构造上文中提到的“电影-情绪”二进制矩阵,该集合中有 6712 条记
录,为 2494 部电影和 16 种情绪信息的映射关系集合。
评价方法
本文采用平均绝对值偏差 MAE(Mean Absolute Error)和均方根误差 RMSE(Root Mean
Square Error)作为评价推荐系统推荐质量的度量标准。 175
MAE 主要是通过计算预测用户评分与实际用户评价之间的偏差,用来度量预测的准确
性,因此,MAE 越小,推荐质量越高,本文将构造 MAE 的走势图来评定实验结果。定义
预测评分集合为 1 2 3{ , , ..., }np p p p ,对应的实际评分集合为 1 2 3{ , , ..., }nq q q q ,预测对象个
数为 n。则其公式定义如下:
1
1
| |
n
i i
i
MAE p q
n
(8) 180
均方根误差 RMSE(Root Mean Square Error)主要是通过计算预测用户评分和实际用户评
分之间的均方根偏差,使用样本的离散程度来度量预测的准确性,本文将构造 RMSE 的走
势图来定量评定实验结果。根据上述公式内容,其公式定义如下:
2
1
( )
n
i i
i
p q
RMSE
n
(9)
实验描述及结果分析 185
为了对比本文使用改进算法的有效性,文中将进行三组实验:
第一组实验使用传统的基于项目的协同过滤算法(TCFBI,Traditional Collaborative
Filtering Based on Item)进行预测; 第二组实验选择文中介绍的二维矩阵奇异值分解缓解数
据稀疏性模型(SVDCF, Singular Value Decomposition Collaborative Filtering)进行预测; 第
三组实验选择文中介绍的因子分解机模型(FMCF,Factorization Machines Collaborative 190
Filtering)进行预测。通过实验对比可以较好的突出改进算法的推荐精确度。
实验中选取相似度大小前 50 的用户数据作为邻居,本文使用的算法需要对求解矩阵进
行压缩处理,公式(1)中的压缩参数 a的取值范围为[10,100],针对本实验数据集选择压
缩参数 50a ,本实验取公式(4)中迭代次数参数值 16K 。实验结果的 MAE 如下图所
示: 195
- 7 -
中国科技论文在线
0
1
2
3
10 20 30 40 50
TCFBI-MAE
SVDCF-MAE
FMCF-MAE
邻居数目
M
A
E
图 1 分组测试 MAE 误差比较
Fig. 1 MAE results comparison by groups
由图 1 所示可知,在不同邻居数目情况下,后两组实验结果较第一组实验结果有较低的 MAE
值,表明文中介绍的两种算法在一定程度上比传统方法推荐质量高,从而进一步表明使用上200
下文信息能够进一步提高推荐的精确性。
为了进一步反映出数据中的特大或特小误差,本文同时计算了三组实验的 RMSE 标准
误差,由于标准误差能够很好地反映出预测数据的离散程度,因而也是较好的评价参数。由
图 2 所示可知,在邻居个数增加的情况下,本文采用的两种算法都较传统算法的 RMSE 整
体趋势上有较低值,在不同评价指标下都证明了改进算法预测的精确性。 205
16
17
18
19
10 20 30 40 50
TCFBI-RMSE
SVDCF-RMSE
FMCF-RMSE
邻居数目
R
M
S
图 2 分组测试 RMSE 误差比较
Fig. RMSE results comparison by groups
从实验结果走势图 1 和图 2 观察,当相似邻居选择在[10,50]范围时误差走势趋于平缓,
即结果走势已经能很好反映出预测精度的改变。对比三条曲线进一步证明将情绪上下文因素210
运用到协同过滤算法中去,能够得到较高的预测精度,从而可以提高推荐的质量。
- 8 -
中国科技论文在线
4 结论
本文针对电子商务中用户情绪对用户偏好产生的影响,提出一种基于情绪和因子分解的
协同过滤算法,将用户情绪加入到传统的“用户-项目”推荐模型中去,通过实验结果对比,
表明矩阵分解方法能缓解稀疏性,因子分解机模型在包含情绪上下文信息的同时,较改进前215
的算法有更好的预测精度,进而能够最终提高了推荐质量。
[参考文献] (References)
[1] 许海玲,吴 潇,李晓东等.互联网推荐系统比较研究.软件学报,2009,20(2):350-362.
[2] 曾 春,邢春晓,周立柱.个性化服务技术综述.软件学报,2002,13(10):1952-1961.
[3] Wang L C, Meng X W, Zhang Y J, et al.. New approaches to mood-based hybrid collaborative filtering. In 220
Proceedings of the Workshop on Context-Aware Movie Recommendation at the 4th ACM Conference on
Recommender Systems (ACM Recsys'10), Barcelona, Spain, 2010:28-33.
[4] Adomavicius G, Tuzhilin A. Towards the next generation of recommender systems: A survey of the
state-of-the-art and possible extensions. IEEE Trans on Knowledge and Data Engineering (TKDE), 2005, 17(6):
734-749. 225
[5] 邓爱林,朱扬勇,施伯乐.基于项目评分预测的协同过滤推荐算法.软件学报,2003,14(9):122-129.
[6] , Y. Koren. Scalable collaborative filtering with jointly derived neighborhood interpolation weights.
Proceedings of IEEE International Conference on Data Mining (ICDM' 07), 2007:43-52.
[7] Robert M. Bell, Yehuda Koren, Chris Volinsky. Modeling relationships at multiple scales to improve accuracy
of large recommender of KDD '07 Proceedings of the 13th ACM SIGKDD international 230
conference on Knowledge discovery and data mining, 2007:95-104.
[8] 徐 翔, 王煦法. 基于 SVD 的协同过滤算法的欺诈攻击行为分析. 计算机工程与应用, 2009,45(20):92-95.
[9] Rendle, . of Reasoning for Intell., Osaka Univ., Suita, Machines. Data Mining
(ICDM), 2010 IEEE 10th International Conference on, 13-17 :995-1000.
[10] Shi, Y., M. A. Larson, A. Mood-specific Movie Similarity with Matrix Factorization for 235
Context-aware Recommendation. In Proceedings of the Workshop on Context-Aware Movie Recommendation at
the 4th ACM Conference on Recommender Systems (ACM Recsys’10), Barcelona, Spain, 2010:34-40.