资源经验分享推荐系统系列2-基于物品做推荐系统的方法

推荐系统系列2-基于物品做推荐系统的方法

2019-12-17 | |  97 |   0

原标题:推荐系统系列2-基于物品做推荐系统的方法

原文来自:博客园      原文链接:https://www.cnblogs.com/dongguadan/p/10583351.html


 

一、内容协同过滤之物品协同过滤

    协同过滤算法是指:利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息。

    物品协同过滤是指协同过滤算法在进行筛选的时候是以物品之间的相似度作为衡量,如图1:

电影名

R

Toy

RxToy

Jumanji

RxJumanji

Grumpier

RxGrumpier

Waiting

4.7

0.171

0.808

0.212

0.996

0.077

0.362

Father

2.7

0.009

0.024

0.102

0.275

0.085

0.230

Heat

1.0

0.165

0.165

0.7

0.7

0.203

0.023

总计

 

0.345

0.997

1.014

1.971

0.365

0.615

归一化

 

 

2.890

 

1.944

 

1.685

                                                                                                                                        图1

    第二、三、四行每一列的意思分别为:电影名字《Waiting》、某用户给《Waiting》的打分、《Waiting》与《Toy》之间的相似度(计算方法见第四节)、《Waiting》的打分乘以《Waiting》与《Toy》之间的相似度…以此类推。

    第四行给出了相似度累计值和Rx电影名的累计值。

    第五行使用Rx电影名的累计值除以相似度累计值。

    根据第五行的计算,我们基于推荐影片的评分分别为Toy:2.890,Jumanji:1.944,Grumpier:1.685。由此可见,《Toy》应该优先推荐给该用户。

 

二、皮尔逊相关度

    皮尔逊相关系数广泛用于度量两个变量之间的相关程度,其值介于-1与1之间。

                                                                                           01.png 公式1

三、欧几里得距离

    欧几里得距离或欧几里得度量是欧几里得空间中两点间“普通”(即直线)距离。

                                                                                             03.png                          公式2

四、相似度矩阵

    衡量物品之间的相似度,这里我们使用用户打分维度作为相似度特征,如图2:

电影名

用户1打分

用户2打分

用户3打分

Waiting

1

2

3

Father

3

2

1

Heat

1

2.5

3

                                                                                                                     图2

    可以使用皮尔逊相关度或者欧几里得距离计算:《Waiting》与《Heat》属于同一类型,与《Father》属于不同类型。

 

五、系统构造基本流程

    1、 构造用户打分数据,例如:ID为87的用户给部分电影的打分如下;

    05.png

    2、 根据用户打分数据构造物品相似度矩阵;根据相似度矩阵构造用户推荐列表,例如给ID为87的用户推荐的影片如下:

06.png

六、测试代码、测试数据、参考资料

      https://github.com/dongguadan/recommender-system/tree/master/Item-Based-Filter

    《集体智慧编程》

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:深度学习之目标检测:非极大值抑制源码解析(nms)

下一篇:采用太平洋AI的DINK框架一键运行3D点云识别,一键训练深度学习模型

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...