怎么推荐
第一个范畴: 智能运营系统应该是以个性化为主的,也就是不依赖云数据,仅仅根据用户自己的行为判断用户的喜好哪些特性。
第二个范畴: 推荐的意义是在1的基础上,把用户可能喜欢的别的APP特性拿给用户使用,这是另一个范畴。
协同过滤的几个步骤
- 组合用户行为:
#对应第一个范畴#
计算用户对单个物品的「喜爱程度」,比如加权。
#对应第二个范畴#
计算多个物品之间的「相似度」,比如向量(余弦夹角、欧几里得)。
计算多个用户之间的「相似度」,以用户对所有物品的偏好作为(多维)向量。
- 预处理:减噪和归一化
- ITEM-CF USER-CF 哪个数量少用哪个CF
用户、物品(APP特性)矩阵可以计算用户之间的相似度。矩阵中的值是喜爱程度。
column:用户\row:物品 | B版 | C版 |
---|---|---|
用户1 | 0.6 | 0.4 |
用户2 | 0.3 | 0.6 |
当然,这个是知道了用户喜爱程度之后的事情了。如果我们知道了用户对物品的喜爱程度,就能直接给用户推荐对应的物品。
下面探讨,怎么确定喜爱程度。
最简单的,加权。下面讨论另一种,latent factor(潜在因子)。
latent factor
用户、行为(潜在因子)矩阵
column:用户\row:行为(减噪、归一化的 ) | 页面停留时间短 | 页面停留时间长 |
---|---|---|
用户1 | 0.6 | 0.4 |
用户2 | 0.3 | 0.6 |
行为、物品矩阵
column:行为(减噪、归一化的)\row:物品 | B版 | C版 |
---|---|---|
页面停留时间短 | 0.6 | 0.4 |
页面停留时间长 | 0.3 | 0.6 |
用户1在页面停留时间短的行为的行为打分 x 页面停留时间短之余B版的打分 + 用户1在页面停留时间长的行为的行为打分 x 页面停留时间长之余B版的打分 + ..
=用户1对于B版的喜爱程度。
矩阵相乘R_bar=Q*P^T可以得到用户对物品的喜爱程度R_bar。
对于稀疏矩阵,可以采用类似SVD分解的方式,采用最速下降法处理。
16/02/2017
Reference:
[1]http://m.blog.csdn.net/article/details?id=51103051
[2]https://www.baidu.com/s?wd=矩阵分解%20推荐系统&rsv_spt=1&rsv_iqid=0x9917e3d500002fda&issp=1&f=3&rsv_bp=1&rsv_idx=2&ie=utf-8&rqlang=cn&tn=baiduhome_pg&rsv_enter=1&oq=%25E7%259F%25A9%25E9%2598%25B5%25E5%2588%2586%25E8%25A7%25A3&rsv_t=42f6%2F%2BTnb64eReJjaXxJgoxUy60nh4Fstb6FO%2BtNtF21uvnkTB65g%2BRuvAm7Tdfsm4Ip&rsv_pq=958073ff0000727d&rsv_sug3=34&rsv_sug1=30&rsv_sug7=100&rsv_sug2=1&prefixsug=%25E7%259F%25A9%25E9%2598%25B5%25E5%2588%2586%25E8%25A7%25A3&rsp=1&rsv_sug4=3281&rsv_sug=1
[3]http://blog.csdn.net/sun_168/article/details/20637833
[4]https://www.zhihu.com/question/26743347