18
百百百百百 百百百百百百百百 钟钟钟 | [email protected] 2013-05-17, Friday

百度电影系统推荐算法创新大赛

Embed Size (px)

DESCRIPTION

百度电影系统推荐算法创新大赛. 钟文波 | [email protected] 2013-05-17, Friday. 2. 数据预处理分析. training_set 数据集: 训练集大小: 1262741 用户数: 9722 (平均每用户评分 130 部电影) 电影数: 7889 (平均每部电影被 160 用户评分) 全局评分平均数: 3.678 ( RMSE : 0.6900 ) 评分分布:. 2. 数据预处理分析. movie_tag 数据集: 标签数量范围:( 1~ 52 ). 2. 数据预处理分析. user_history 数据集: - PowerPoint PPT Presentation

Citation preview

Page 1: 百度电影系统推荐算法创新大赛

百度电影系统推荐算法创新大赛

钟文波 | [email protected]

2013-05-17, Friday

Page 2: 百度电影系统推荐算法创新大赛

2. 数据预处理分析

training_set 数据集: 训练集大小: 1262741 用户数: 9722 (平均每用户评分 130 部电影) 电影数: 7889 (平均每部电影被 160 用户评分) 全局评分平均数: 3.678 ( RMSE : 0.6900 ) 评分分布:

1 2 3 4 5

17139 64298 400006 608401 172897

1.36% 5.09% 31.68% 48.18% 13.69%

Page 3: 百度电影系统推荐算法创新大赛

2. 数据预处理分析

movie_tag 数据集: 标签数量范围:( 1~ 52 )

Page 4: 百度电影系统推荐算法创新大赛

2. 数据预处理分析

user_history 数据集: 历史记录数量: 987W 历史记录用户 ID 及电影 ID 在训练集中: 1577431

猜测用户观看历史数据中用户对于电影的评分: 如果用户 ID&& 电影 ID 在训练集中的平均评分大于全局

平均评分,则取对应的评分值为大于全局平均数的值。 如果用户 ID&& 电影 ID 在训练集中的平均评分小于全局

平均评分,则取对应的评分值为小于全局平均数的值。 其余取全局平均分或者介于以上两个评分的评分。

Page 5: 百度电影系统推荐算法创新大赛

2. 数据预处理分析

user_social 数据集 单向关注的社交网路数据 ;类似于新浪微博,用户 A 可

以关注用户用户 B 而不需要得到用户 B 的允许,这种社交网络中的用户关系是单向的,可以用有向图表示。

Page 6: 百度电影系统推荐算法创新大赛

3. 主要推荐算法模型 RMSE

全局评分值 0.72

以用户评分平均值作为预测评分 0.66

以电影评分平均值作为预测评分 0.66

基于用户的协同过滤 0.6421

基于物品的协同过滤 0.6120

slopeone 0.6489

LFM 0.6227

加入偏置 LFM 0.6172

考虑邻域影响的 LFM ( SVD++ ) 0.6231

以 Bias-SVD 为基准的 user-base 0.6142

以 Bias-SVD 为基准的 item-base 0.6049

线性拟合模型 0.6012

Page 7: 百度电影系统推荐算法创新大赛

3. 主要推荐算法

基于物品的协同过滤推荐算法:( 1 )计算电影相似度,得到 K 个最近邻居( 2 )预测用户对于电影的打分

U jU i

U ji

rrrr

rrrrjisim

u uuu uu

u uuuu

2,

2,

,,

)()(

))((),(

改进的余弦计算公式:

U jU i

U ji

rrrr

rrrrjisim

u juu iu

u juiu

2,

2,

,,

)()(

))((),(

皮尔逊相似度计算公式:

Page 8: 百度电影系统推荐算法创新大赛

3. 主要推荐算法

( 1 )基于物品的协同过滤相似度压缩: 例如计算 item1 , item2 之间的相似度,如果 A 表示

对 item1 评分过的用户集合, B 表示对 item2 评分过的用户集合,压缩系数公式表示如下:

U jU i

U ji

rrrr

rrrrSjisim

u juu iu

u juiu

2,

2,

,,

)()(

))((*),(

增加压缩系数后皮尔逊相似度计算公式:

BA

BA)2,1(S

itemitemorpunishFact

Page 9: 百度电影系统推荐算法创新大赛

3. 主要推荐算法

(2) 利用电影标签信息改进相似度的计算:基于邻居的协同过滤推荐算法 (Item-Base) 当中,对于数据

集 movie_tag ,利用这个数据集来求两部 movie 之间的相似度。我们可以这么认为如果两部电影具有相同的标签,那么这两部电影之间是具有一定的相似度的,相同标签越多它们则具有更高的相似度。在标签系统中,两部电影之间的相似度用两部电影的共同标签数除以两部电影的总标签数成正比。

如果用 A 表示 movie1 的标签, B 表示 movie2 的标签,则在标签系统中两部电影的相似度可以表示为:

BA

BA)2,1(St

moviemovieagSimilarByT

Page 10: 百度电影系统推荐算法创新大赛

3. 主要推荐算法

(3) 利用用户观看电影历史记录信息改进相似度的计算:基于邻居的协同过滤推荐算法 (Item-Base) 当中,对于数据

集 user_history 。我们可以这么认为如果两部电影具有相同的观看用户,那么这两部电影之间是具有一定的相似度的,相同观看用户越多它们则具有更高的相似度。

如果用 A 表示观看过 movie1 的用户, B 表示观看过movie2 的用户,则利用用户观看电影历史记录,两部电影的相似度可以表示为:

BA

BA)2,1(UserHisSh

moviemovieSimilarBy

Page 11: 百度电影系统推荐算法创新大赛

3. 主要推荐算法

最终 item 相似度的计算公式:

)()( Sh*1*St*1*),(*),( bajiPearsonSjisim

)2,1(S itemitemorpunishFact

)2,1(St moviemovieagSimilarByT

)2,1(UserHisSh moviemovieSimilarBy

惩罚系数:

通过标签计算的相似度:

观看历史计算的相似度:

Page 12: 百度电影系统推荐算法创新大赛

3. 主要推荐算法

预测评分阶段:( 1 )预测评分计算公式(以电影平均分作为基准评分):

J

j

sim

rrsimrip

j

j ju

i ji

jiu

),(

)(),(),( J ,

( 2 )最终预测评分计算公式(以 SVD 预测作为基准评分):

J

j

sim

brsimbip

j

j ju,u

iu, ji

jiu

),(

)(),(),( J ,

Page 13: 百度电影系统推荐算法创新大赛

3. 主要推荐算法

加入偏置后的 LFM 计算公式:( 2 ) Netflix Prize——BiasSVD 实际情况下,一个评分系统有些固有属性和用户物品无

关,而用户也有些属性和物品无关,物品也有些属性和用户无关。

f

ifufiuui qpbbmeanr̂

mean 训练集中所有记录的评分的全局平均数。网站不同,网站的整体评分分布也会显示出一些差异。

bu 用户偏置项。这一项表示了用户的评分习惯中和物品没有关系的那种因素。

bi 物品偏置项。这一项表示了物品接受评分中和用户没有什么关系的因素。

Page 14: 百度电影系统推荐算法创新大赛

3. 主要推荐算法

加入偏置后的 LFM 计算公式:( 2 ) Netflix Prize——BiasSVD 定义损失函数:

f

ifufiuui qpbbmeanr̂

)||||||(||ˆ),( 222

),(iu

Trainiuuiui qprrqpC

最小化上边的损失函数,根据随机梯度下降法,得到递推公式。

Page 15: 百度电影系统推荐算法创新大赛

3. 主要推荐算法

加入偏置后的 LFM 计算公式:( 1 )梯度下降法(参数

Gamma1 , Lambda1 , Gamma2 , Lambda2 ),最小化损失函数,根据随机梯度下降法,得到如下递推公式:

uiuiui rre ˆ)*(* 11 uuiuu bebb )*(* 11 iuiii bebb

)**(* 22 ufifuiufuf pqepp

)**(* 22 ifufuiifif qpeqq γ 是学习速度,取值需要通过反复试验获取,每一次迭代对 γ 进行衰减( γ*=0.9 ),这是随机梯度下降算法要求的,目的是使算法尽快收敛。

Page 16: 百度电影系统推荐算法创新大赛

3. 主要推荐算法

加入偏置后的 LFM 计算公式:( 1 )影响算法的主要因素:• 1 、 Dimension 数( factor 数)• 2 、 P 、 Q 矩阵的初始值(

nextFloat()/Math.sqrt(factor) )• 3 、学习速率与正则化系数

( Gamma1 , Lambda1 , Gamma2 , Lambda2 )• 4 、 bi[] 、 bu[] 初始化, bi[] 、 bu[] 一般初始化为 0

Page 17: 百度电影系统推荐算法创新大赛

3. 主要推荐算法

模型拟合:( 1 )预测值线性拟合

K

k

kkrar

1

)(ˆˆ

method :假设我们有 K 个不同的预测器。

Page 18: 百度电影系统推荐算法创新大赛

5. 主要参考文献

( 1 )《推荐系统实践》项亮( 2 )《 Netflix Prize 中的协同过滤算法》吴金龙( 3 ) Baidu URL : http://www.baidu.com( 4 )《 How we won the Netflix progress prize》 Yehuda Koren