1分钟了解相似性推荐

2018 年 3 月 20 日 架构师之路 58沈剑

前几天聊的“协同过滤Collaborative Filtering”和“基于内容的推荐Content-based Recommendation”,都必须分析用户的历史行为数据(例如电影点击数据,职位查看数据等),针对不同的用户进行个性化推荐。如果系统没有用户的历史行为数据积累,如何实施推荐呢?

 

今天接着用通俗的语言说说推荐算法中的“相似性推荐”。

 

什么是“相似性推荐”?

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

 

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

 

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

 

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

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


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

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

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

 

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

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


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

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

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

 

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

N《我不是潘金莲》

{

导演:冯小刚

女主:范冰冰

男主:郭涛

女配:张嘉译

男配:大鹏

类型:剧情

地区:中国大陆

语言:普通话

日期:2016

片长:140

}

 

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

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

这个距离,通俗的解释,就是每个维度贡献分值的总和。

 

分值可以这么定义:

f1(导演){

         如果两部电影导演相同,得1;

         如果导演不同,得0;

}

 

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

{

导演:冯小刚

女主:苗苗

男主:黄轩

女配:NULL

男配:NULL

类型:剧情

地区:中国大陆

语言:普通话

日期:2017

片长:140

}

 

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

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

         =1 + 0 + … + 1

         =5

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

 

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

 

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

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

  • 一般来说,距离公式确实是线性的

  • 一般来说,每个维度的权重不一样

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

 

相似性推荐,希望这1分钟,大家能有收获。


人肉推荐:

1分钟了解协同过滤,pm都懂了

1分钟了解基于内容的推荐,pm又懂了

登录查看更多
5

相关内容

协同过滤(英语:Collaborative Filtering),简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人透过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。协同过滤又可分为评比(rating)或者群体过滤(social filtering)。其后成为电子商务当中很重要的一环,即根据某顾客以往的购买行为以及从具有相似购买行为的顾客群的购买行为去推荐这个顾客其“可能喜欢的品项”,也就是借由社群的喜好提供个人化的信息、商品等的推荐服务。除了推荐之外,近年来也发展出数学运算让系统自动计算喜好的强弱进而去芜存菁使得过滤的内容更有依据,也许不是百分之百完全准确,但由于加入了强弱的评比让这个概念的应用更为广泛,除了电子商务之外尚有信息检索领域、网络个人影音柜、个人书架等的应用等。
商业数据分析,39页ppt
专知会员服务
160+阅读 · 2020年6月2日
【SIGIR2020】LightGCN: 简化和增强图卷积网络推荐
专知会员服务
72+阅读 · 2020年6月1日
少标签数据学习,54页ppt
专知会员服务
198+阅读 · 2020年5月22日
可解释推荐:综述与新视角
专知会员服务
111+阅读 · 2019年10月13日
通俗易懂,互联网的常见推荐算法
架构师之路
6+阅读 · 2018年4月17日
推荐系统机器学习算法概览
论智
7+阅读 · 2017年12月14日
推荐|一份不错的机器学习笔记!
全球人工智能
22+阅读 · 2017年11月20日
神经网络中的「注意力」是什么?怎么用?
人工智能学家
5+阅读 · 2017年10月19日
干货|10分钟快速入门PyTorch (7) 词向量
机器学习研究会
8+阅读 · 2017年9月26日
推荐|斯坦福大学机器学习:神经网络的表示!
全球人工智能
5+阅读 · 2017年9月20日
相似图片搜索的原理
数据库开发
9+阅读 · 2017年8月11日
干货 :详解个性化推荐五大最常用算法
数据分析
6+阅读 · 2017年7月19日
详解个性化推荐五大最常用算法
量子位
4+阅读 · 2017年7月8日
Financial Time Series Representation Learning
Arxiv
10+阅读 · 2020年3月27日
Arxiv
29+阅读 · 2020年3月16日
Arxiv
4+阅读 · 2018年9月6日
VIP会员
相关VIP内容
商业数据分析,39页ppt
专知会员服务
160+阅读 · 2020年6月2日
【SIGIR2020】LightGCN: 简化和增强图卷积网络推荐
专知会员服务
72+阅读 · 2020年6月1日
少标签数据学习,54页ppt
专知会员服务
198+阅读 · 2020年5月22日
可解释推荐:综述与新视角
专知会员服务
111+阅读 · 2019年10月13日
相关资讯
通俗易懂,互联网的常见推荐算法
架构师之路
6+阅读 · 2018年4月17日
推荐系统机器学习算法概览
论智
7+阅读 · 2017年12月14日
推荐|一份不错的机器学习笔记!
全球人工智能
22+阅读 · 2017年11月20日
神经网络中的「注意力」是什么?怎么用?
人工智能学家
5+阅读 · 2017年10月19日
干货|10分钟快速入门PyTorch (7) 词向量
机器学习研究会
8+阅读 · 2017年9月26日
推荐|斯坦福大学机器学习:神经网络的表示!
全球人工智能
5+阅读 · 2017年9月20日
相似图片搜索的原理
数据库开发
9+阅读 · 2017年8月11日
干货 :详解个性化推荐五大最常用算法
数据分析
6+阅读 · 2017年7月19日
详解个性化推荐五大最常用算法
量子位
4+阅读 · 2017年7月8日
Top
微信扫码咨询专知VIP会员