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

前几天和老板通俗的介绍了协同过滤(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)由于没有用户历史行为积累,不是个性化推荐,所以所有用户的推荐结果都是相同的;
(2)一般来说,距离公式确实是线性的
(3)一般来说,每个维度的权重不一样
(4)这个线性公式,以及维度的权重,都可以通过机器学习训练出来;
相似性推荐原理如上,希望这1分钟,大家没浪费。

原文始发于微信公众号(架构师之路)

去年今日运营文章

  1. 2022:  5500字总结:运营人如何进行知识管理?(0)
  2. 2022:  《腾讯产品法》 知识体系搭建(0)
  3. 2022:  朋友让我给他直播间提意见(0)
  4. 2022:  抖音直播起号的基础知识分享(0)
  5. 2022:  淘宝店铺怎么处理差评?(0)

本文转载于微信公众号(架构师之路),本文观点不代表爱运营立场,转载请联系原出处。如内容、图片有任何版权问题,请联系爱运营处理。

(0)
爱运营爱运营管理员
上一篇 2023年9月20日
下一篇 2023年9月20日

发表回复

登录后才能评论
分享本页
返回顶部