推荐算法之相似性推荐

前文介绍了协同过滤算法和基于内容的推荐算法

协同过滤算法要求要有很多用户,用户有很多操作

基于内容的推荐算法用户可以不用很多,但是用户的操作也要有很多

但是,如果要推荐给新用户(用户的操作不多),应该要怎样推荐呢?这里就要用到相似性推荐了


相似性推荐定义:对于新用户A,没有ta的历史行为数据,在ta点击了item-X的场景下,可以将与item-X最相似的item集合推荐给新用户A。

问题转化为,如何用一种通用的方法,表达item之间的相似性。


仍然以电影推荐为例子,相似性推荐算法执行步骤:

1.找到用户浏览过的某电影

2.定义这些电影的具体内容,假设我们以{导演,类型,男主,女主,男配,女配,地区,语言,时长}为维度来定义(这点跟基于内容的推荐算法一样)

3.对每个维度设立权值,并且对于同个key不同的value直接设置不同的分数(且称为相似度评分吧),例如:

我们认为,权值分配是{导演1,类型2,男主3,女主4,男配5,女配6,地区7,语言8,时长9}(维度后面跟的是权值)

假设用户浏览过的电影男主为男主1,而另一部电影,假设男主也是男主1,则男主项得10*3分;假设是男主2,则得8*3分;是男主3,则得5*3分,以此类推

具体的权值和值与值之间的分数可以自己定

4.基于步骤3,拿到分数最高的电影,即为要推荐的电影


具体再看一下

(1)找用户浏览过的电影,假设为电影A

(2)定义这些电影的具体内容,假设定为

{导演1,类型1,男主1,女主1,男配1,女配1,地区1,语言1,时长1}

(3)对每个维度设立权值,并且对于同个key不同的value直接设置不同的分数

为简单起见,假设我们所取的维度+权值为{导演1,类型2,男主3,女主4,男配5,女配6,地区7,语言8,时长9},

假设所有的维度里,满分都为10(即值相同记为10分)

类型1和类型2相似度评分为8分

类型1和类型3的相似度评分为2分

男主1和男主2的相似度评分为9分

男主1和男主3的相似度评分为8分

(4)拿到分数最高的电影

假设我们待推荐的电影只有2部(实际当然不可能),

电影B:{导演1,类型2,男主3,女主1,男配1,女配1,地区1,语言1,时长1}

电影C:{导演1,类型3,男主2,女主1,男配1,女配1,地区1,语言1,时长1}

电影B的推荐评分:1*10+2*8+3*8+4*10+5*10+6*10+7*10+8*10+9*10=440

电影C的推荐评分:1*10+2*2+3*9+4*10+5*10+6*10+7*10+8*10+9*10=431

电影B的推荐评分大于电影C的推荐评分,所以给用户推荐电影B


相似性推荐,原理大致如上,要说明的是:
(1)由于没有用户历史行为积累,不是个性化推荐,所以所有用户的推荐结果都是相同的
(2)一般来说,距离公式确实是线性的
(3)一般来说,每个维度的权重不一样
(4)这个线性公式,以及维度的权重,都可以通过机器学习训练出来


参考文章:http://mp.weixin.qq.com/s/KROc9G_kAs8_vquKQKJIFw




  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值