一、适用场景
1)用户的推荐动态阅读
2)用户的推荐关注用户
3)用户的推荐发帖板块
二、实例
1)用户行为与权重(待定)
1.点击——1 分(仅点击没有其他行为)
2.点赞——2 分
3.评论——4 分
4.关注——3 分
5.分享——5 分
2)对象条件定义(待定)
动态:直接评论数在 10 以上或点赞数在5 以上
关注用户:粉丝数在 20 以上,且连续 5 日有新增动态
推荐板块:发帖数在 500 以上,且连续 5 日有新增动态
3)算法样本(细节规则随便定)
1.日内每30名用户对随机 5 条对象的数据统计为样本
4)如下用户、对象(动态、关注用户、推荐板块)、行为、权重
用户:A、B、C、D、E、F
对象:1、2、3、4、5、6
行为:点击(1)、点赞(2)、评论(4)、关注(3)、分享(5)
5)用户行为列表(假设)
用户 | 对象 | 行为 |
---|---|---|
A | 2 | 评论 |
A | 5 | 分享 |
A | 3 | 关注 |
B | 1 | 点赞 |
B | 6 | 点赞 |
C | 4 | 关注 |
C | 2 | 点击 |
C | 2 | 分享 |
C | 3 | 关注 |
D | 1 | 点赞 |
D | 4 | 分享 |
D | 6 | 点击 |
E | 1 | 点击 |
E | 2 | 点击 |
F | 5 | 分享 |
F | 2 | 关注 |
F | 4 | 评论 |
6)算法步骤
6.1)根据用户行为计算对象与用户的评分矩阵
1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|
A | 0 | 4 | 3 | 0 | 5 | 0 |
B | 2 | 0 | 0 | 0 | 0 | 2 |
C | 0 | 5 | 3 | 3 | 0 | 0 |
D | 2 | 0 | 0 | 5 | 0 | 1 |
E | 1 | 1 | 0 | 0 | 0 | 0 |
F | 0 | 3 | 0 | 4 | 5 | 0 |
6.2)根据评分矩阵计算用户的相似度矩阵
1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|
A | 0 | 4 | 3 | 0 | 5 | 0 |
B | 2 | 0 | 0 | 0 | 0 | 2 |
C | 0 | 5 | 3 | 3 | 0 | 0 |
D | 2 | 0 | 0 | 5 | 0 | 1 |
E | 1 | 1 | 0 | 0 | 0 | 0 |
F | 0 | 3 | 0 | 4 | 5 | 0 |
A | 0 | 4 | 3 | 0 | 5 | 0 |
---|---|---|---|---|---|---|
B | 2 | 0 | 0 | 0 | 0 | 2 |
Cos<A.A> cos<A,B> cos<A,C>…
Cos<B,A> cos<B,B>…
Cos<C,A>…
.
.
得到
A | B | C | D | E | F | |
---|---|---|---|---|---|---|
A | 1.00 | 0.00 | 0.63 | 0.00 | 0.40 | 0.74 |
B | 0.00 | 1.00 | 0.00 | 0.26 | 0.50 | 0.00 |
C | 0.63 | 0.00 | 1.00 | 0.42 | 0.54 | 0.58 |
D | 0.00 | 0.26 | 0.42 | 1.00 | 0.26 | 0.52 |
E | 0.40 | 0.50 | 0.54 | 0.26 | 1.00 | 0.30 |
F | 0.74 | 0.00 | 0.58 | 0.52 | 0.30 | 1.00 |
6.3)相似度矩阵乘以评分矩阵,得到推荐列表
1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|
A | 0 | 4 | 3 | 0 | 5 | 0 |
B | 2 | 0 | 0 | 0 | 0 | 2 |
C | 0 | 5 | 3 | 3 | 0 | 0 |
D | 2 | 0 | 0 | 5 | 0 | 1 |
E | 1 | 1 | 0 | 0 | 0 | 0 |
F | 0 | 3 | 0 | 4 | 5 | 0 |
X
A | B | C | D | E | F | |
---|---|---|---|---|---|---|
A | 1.00 | 0.00 | 0.63 | 0.00 | 0.40 | 0.74 |
B | 0.00 | 1.00 | 0.00 | 0.26 | 0.50 | 0.00 |
C | 0.63 | 0.00 | 1.00 | 0.42 | 0.54 | 0.58 |
D | 0.00 | 0.26 | 0.42 | 1.00 | 0.26 | 0.52 |
E | 0.40 | 0.50 | 0.54 | 0.26 | 1.00 | 0.30 |
F | 0.74 | 0.00 | 0.58 | 0.52 | 0.30 | 1.00 |
得到“ 推荐列表”
1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|
A | 3.89 | 6.5 | 5.7 | 3.6 | 8.62 | 3.24 |
B | 3.48 | 0 | 2.42 | 1.04 | 1.4 | 3.48 |
C | 1.89 | 5.78 | 4.26 | 5.56 | 4.9 | 3.3 |
D | 2.74 | 1.3 | 3.94 | 5.52 | 2.4 | 5.08 |
E | 1 | 1 | 0.63 | 0.26 | 0.9 | 0.74 |
F | 2 | 6.54 | 4.38 | 6.08 | 7.54 | 3.58 |
6.4)对已经产生分数的对象进行置 0 操作,得到最终的推荐对象表
1 | 2 | 3 | 4 | 5 | 6 | |
---|---|---|---|---|---|---|
A | 3.89 | 0 | 0 | 3.6 | 0 | 3.24 |
B | 0 | 0 | 2.42 | 1.04 | 1.4 | 0 |
C | 1.89 | 0 | 0 | 0 | 4.9 | 3.3 |
D | 0 | 1.3 | 3.94 | 0 | 2.4 | 0 |
E | 0 | 0 | 0.63 | 0.26 | 0.9 | 0.74 |
F | 2 | 0 | 4.38 | 0 | 0 | 3.58 |
(也就是用户对一个对象有了行为之后,该对象将在推荐内容之外)