老板问我,完全没有用户历史行为记录,怎么做推荐?

开发 开发工具
老板问我,如果系统没有用户的历史行为数据积累,就不能实施推荐了吗?今天讲讲“相似性推荐”。

前几天和老板通俗的介绍了协同过滤(Collaborative Filtering)和基于内容的推荐(Content-based Recommendation),但都必须分析用户的历史行为数据(例如电影点击数据,职位查看数据等),针对不同的用户进行个性化推荐。

老板问我,如果系统没有用户的历史行为数据积累,就不能实施推荐了吗?

今天讲讲“相似性推荐”。

[[435248]]

什么是“相似性推荐”?

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

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

仍以电影推荐为例,新用户A进入了《我不是潘金莲》电影详情页,如何对A进行电影推荐呢?

先看二维空间的点N,如何推荐与其最近的点?

答:可以用二维空间中,点与点之间的距离,表示点之间的远近。

对于全集中的任何一个点M(xi, yi),它与点N(x1, y1)的距离:

  1. distance = (x1-xi)^2 + (y1-yi)^2 

所以,只要计算全集中所有点与N的距离,就能计算出与它最近的3个点。

再看三维空间的点N,如何推荐与其最近的点?

答:可以用三维空间中,点与点之间的距离,表示点之间的远近。

对于全集中的任何一个点M(xi, yi, zi),它与点N(x1, y1, z1)的距离:

  1. distance = (x1-xi)^2 + (y1-yi)^2 + (z1-zi)^2 

所以,只要计算全集中所有点与N的距离,就能计算出与它最近的3个点。

循序渐进,对于一部电影《我不是潘金莲》,假设它有10个属性,则可以把它看做一个十维空间中的点:

  1. 点N《我不是潘金莲》 
  2. 导演:冯小刚 
  3. 女主:范冰冰 
  4. 男主:郭涛 
  5. 女配:张嘉译 
  6. 男配:大鹏 
  7. 类型:剧情 
  8. 地区:中国大陆 
  9. 语言:普通话 
  10. 日期:2016 
  11. 片长:140 

对于电影全集中的任何一部电影,都可以计算与点N《我不是潘金莲》之间的距离。二维三维中的点,可以用直线距离计算远近,10维空间{导演, 女主, 男主, 女配, 男配, 类型, 地区, 语言, 日期, 片长}中的两个点的距离,需要重新定义一个距离函数,例如:

  1. distance = f1(导演) + f2(女主) + … +f10(片长) 

这个距离,通俗的解释,就是每个维度贡献分值的总和。 分值可以这么定义:

  1. f1(导演){ 
  2.          如果两部电影导演相同,得1分; 
  3.          如果导演不同,得0分; 
  4.   

例如,现在10维空间中,有另一个点M《芳华》

  1. 导演:冯小刚 
  2. 女主:苗苗 
  3. 男主:黄轩 
  4. 女配:NULL 
  5. 男配:NULL 
  6. 类型:剧情 
  7. 地区:中国大陆 
  8. 语言:普通话 
  9. 日期:2017 
  10. 片长:140 

要计算点M《芳华》与点N《我不是潘金莲》的距离,代入distance距离计算公式:

  1. distance = f1(导演) + f2(女主) + … +f10(片长) 
  2.          =1 + 0 + … + 1 
  3.          =5 

即:导演、类型、地区、语言、片长相同各得1分,其他维度不同得0分。

遍历电影全集中的10w部电影,就能找到与点N《我不是潘金莲》最相近的3部电影,当用户点击《我不是潘金莲》的详情页时,直接推荐这3部最相近的电影即可。

相似性推荐,原理大致如上,要说明的是:

(1)由于没有用户历史行为积累,不是个性化推荐,所以所有用户的推荐结果都是相同的;

(2)一般来说,距离公式确实是线性的;

(3)一般来说,每个维度的权重不一样;

(4)这个线性公式,以及维度的权重,都可以通过机器学习训练出来;

相似性推荐原理如上,希望这1分钟,大家没浪费。

【本文为51CTO专栏作者“58沈剑”原创稿件,转载请联系原作者】

戳这里,看该作者更多好文 

 

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2021-11-23 10:50:29

关联规则推荐推荐系统开发

2013-08-30 10:03:42

SaaS

2021-11-12 11:51:03

基于内容的推荐查询推荐

2018-03-23 11:56:09

相似性推荐推荐算法推荐

2015-08-05 14:33:01

APP用户原因

2021-08-14 23:11:37

区块链加密货币技术

2021-03-18 12:16:44

用户分层业务

2022-09-26 11:32:14

用户分层服务业务

2010-04-08 16:13:34

Oracle数据库

2021-11-15 12:45:44

协同过滤算法架构

2022-03-10 11:25:51

InnoDB优化

2023-09-27 22:44:18

数据迁移数据库

2018-12-06 14:56:46

微服务隔离熔断

2020-09-21 06:45:48

监控延迟消息队列

2021-07-22 06:25:14

敏捷开发用户体验CIO

2016-09-21 10:18:26

阿里Dubbo性能测试

2023-08-27 21:25:20

用户画像数据数据分析

2020-04-22 15:27:30

Vue组件项目

2022-01-22 00:19:33

手机屏幕夜间模式

2020-04-10 08:03:04

分布式锁Redlock算法流行算法
点赞
收藏

51CTO技术栈公众号