2022-02-21

协同过滤

一、协同过滤简介

协同:利用群体行为来做决策。

过滤:从可行的推荐方案(标的物)中将用户喜欢的方案(标的物)找出来.

自然哲学思想:“群体的智慧”和“相似的物体具备相似的性质”

分类:基于用户的协同过滤和基于标的物的协同过滤。

二、协同过滤原理

核心思想: “物以类聚,人以群分”。

物理类聚:计算出每个标的物最相似的标的物列表,就可以为用户推荐用户喜欢的标的物相似的标的物 (基于物品(标的物)的协同过滤)

人以群分:将与该用户相似的用户喜欢过的标的物推荐给该用户(而该用户未曾操作过)。

协同过滤和核心是怎么计算标的物之间的相似度以及用户之间的相似度

隐式反馈:只要不是哟哦那个户直接评分的操作行为都算,包括浏览、点击、播放、收藏、评论、点赞、转发,很多隐式反馈是可以间接获得评分的,如果不简接获得评分,就用0、1表示是否操作过。

说一个非常朴素的思想:

列一个矩阵,矩阵中的值为用户对标的物的评分(或者隐式反馈,如点击、收藏等),如果用户有隐式反馈值为1,如果用户对某个标的物未产生行为,值为0。行向量:代表某个用户对所有标的物的评分向量,列向量:代表所有用户对某个标的物的评分向量。

真实的业务场景中,用户和标的物数量很庞大(用户百万、千万、亿级,标的物可能是十万、百万、千万级),但是每个用户只会操作有限个标的物,所以用户行为的矩阵是稀疏矩阵,正好方便进行相似度计算及为用户做推荐。

相似度的计算一般采用cosine余弦相似度算法来计算两个向量:

sim(v1,v2)= (v1 * v2)/|v1| * |v2|

计算完用户(行向量)或者标的物(列向量)之前的相似度,下面到了推荐的环节

1、基于用户的协同过滤

用户 1 对标的物 a 的喜好程度 sim(1,a) 用以下公式计算,U是与该用户最相似的用户集合(基于用户相似度找到与某用户最相似的K个用户), score(u(i),a)是用户u(i)对标的物a的喜好度(隐式反馈为1,对非隐式反馈,为用户对标的物的评分),sim(1,u(i))是用户u(i)与用户u的相似度


image.png

有了用户对每个标的物的评分,基于评分降序排列,用Top N算法推荐给用户,就是对所有物品进行运算后降序,取前N个物品推荐给用户。

2、基于标的物的协同过滤

用户 1 对标的物 a 的喜好程度 sim(1,a) 用以下公式计算,A是所有用户操作过的标的物的列表, score(u,a(i))是用户u对标的物a(i)的喜好度,sim(a(i),a)是标的物a(i)与a的相似度

image.png

基于评分降序排列,可以取topN推荐给用户

三、协同过滤算法的优缺点

1、 优点

1、 算法原理简单、思想朴素。

2、算法易于分布式实现、可以处理海量数据集。

3、算法整体效果很不错。

4、能够为用户推荐出多样性、新颖性的标的物。

5、协同过滤算法只需要用户的行为信息,不依赖用户及标的物的其他信息。

2、缺点

1、冷启动问题: 用户行为少,比如新上线的产品或者用户规模小的产品,很难发挥优势和价值。

对新入库的标的物,刚开始用户的操作是很少量的行为,这时相当于用户行为矩阵中该标的物对应的列基本都是零,所以无法进行计算,同时这个标的物不会出现在其他标的物的相似列表中,所以无法将该标的物推荐出去。

2、稀疏性问题: 现代的互联网产品,用户基数大,标的物数量多,一般用户只对很少量的标的物产生操作行为,所以行为矩阵十分的稀疏,太稀疏的行为矩阵计算出的标的物相似度往往不够精准,最后影响推荐结果的精准度。

四、协同过滤算法实际业务场景需要关注的问题

1、 是采用基于用户的协同过滤还是采用基于标的物的协同过滤

一般都会采用基于标的物的协同过滤,因为对于互联网产品来说,用户的增长相较于标的物的增长是较快的,但是新闻短视频类的应用标的物是增速巨大的,所以一般用基于标的物的协同过滤算法效果更稳定。

2、对时间加权

用户的兴趣是随着时间变化的,越久远的行为对用户当前的兴趣贡献越小,所以对于用户的行为矩阵,需要做时间加权处理,将用户的评分加一个时间惩罚因子,对久远的行为进行惩罚,可以采用指数衰减的方式 例:


image.png

n的值为标的物操作时间和基准时间相差的天数

3、用户对标的物的评分

真实场景,用户不一定给标的物评分,可能只有操作行为。这本来可以使用隐式反馈的方式来做协同过滤,但是效果很差。

虽然用户的反馈是隐式的,但操作行为是多样化的,比如浏览、点击、点赞、购买、收藏、分享、评论等等,可以根据这些行为的投入度(时间成本、资金成本、社交压力,投入成本越大给越高的分数)对这些行为人为打分,比如浏览1分,点赞2分,转发4分,这样就可以针对用户不同的行为生成差异化的评分。

对于音乐视频文章等,可以根据观看时长占总时长的比重进行打分,比如一个电影总时长为100分钟,如果用户看了60分钟就退出,可以给用户打6分。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容