推荐系统的前世今生

举报
魔法师 发表于 2022/08/03 20:04:30 2022/08/03
【摘要】 如果说互联网的目标就是连接一切,那么推荐系统的作用就是建立更加有效率的连接,节约大量用户与内容和服务连接的时间和成本,同时推荐系统是建立在海量数据挖掘基础上,高效地为用户提供个性化的决策支持和信息服务,以提高用户体验及商业效益。


导语

推荐系统作为互联网的增长引擎,那么那些互联网公司的产品用到了推荐系统呢?

  • 短视频:抖音、快手
  • 长视频:NETFLIXYouTube、爱奇艺
  • 电子商务:亚马逊、淘宝网
  • 个性化阅读/信息流:Google News,今日头条
  • 社交网络好友推荐:MetaLinkedIn、微信
  • 位置服务推荐:大众点评、美团、饿了么、口碑
  • 广告推荐:Google、百度
  • App分发:AppStoreGoogle应用商店、华为应用市场
  • 婚恋对象推荐:世纪佳缘、百合网

说起推荐系统,还得提一下机器学习领域刻骨铭心的百万美元级比赛- 2006年的网飞奖 (Netflix Prize)2006年, Netflix对外宣布,他们要设立一项大赛,公开征集电影推荐系统的最佳电脑算法,第一个能把现有推荐系统的准确率提高 10% 的参赛者将获得一百万美元的奖金。2009 9 21 日,来自全世界 186 个国家的四万多个参赛团队经过近三年的较量,终于有了结果。一个由工程师和统计学家组成的七人团队夺得了大奖,拿到了那张百万美元的超大支票。

任何关注增长(用户、收入等)的APP和场景都可以从推荐系统获得助力,推荐系统的价值:信息过载时代,架起信息生产者和消费者之间的桥梁,实现二者的双赢,其中信息生产者是利用有限的展示位、曝光次数,获得更多的信息被消费机会。而信息消费者是从海量信息中,高效地找到自己感兴趣的信息。

 

推荐系统的经典架构

大家可以看到,这个推荐的架构就像一个漏斗一样,经过层层过滤和筛选出用户感兴趣的内容。召回系统作为推荐架构的第一层级,所以召回决定了操作系统的上限,如果一开始没有筛选出来,或者给的量非常少,后续很难有很好的效果提升,因此召回的时候,一般都是多路召回,常见的召回规则有:规则召回、协同召回、向量召回、树召回;由于每个召回方式都有优缺点,因此,召回的时候使用多路召回,使用不同的召回规则,将所有的可能的结果召回到库中。

一般情况下,召回阶段:数据量大、速度较快、模型简单、特征较少,因此可以离线弯沉;精排阶段:数据量小,排序精准、复杂模型、特征较多,因此可以在线完成。

 

召回算法

一般情况下,召回是计算速度与召回率之间的博弈,下面列举常用的几种召回方式以及适用场景和代表算法。

热度召回:

适用于新用户场景、响应潮流

算法举例: 统计,播放次数,浏览次数;相似性召回         

 

相似性召回:

通过分析内容,推荐与用户浏览历史相似的内容

 

协同过滤

适用于存量用户,挖掘用户兴趣的场景

通过分析用户群历史行为,挖掘用户与物品,物品与物品间的关系

代表算法:UserCFItemCFALS

 

表示学习

具备综合多种信息和特征的能力

代表算法:Item2VecEntity2Rec(知识图谱)、GraphEmbedding、双塔模型DSSM等。

 

精排算法

我们都学习了不少的精排算法,那么工业界的排序模型都是怎么演进的呢?下面通过一张图来描述一下排序模型的演进历程

推荐系统的优化

如何驱动我们算法优化的方向,首先就是要确立业务目标,将业务目标转化为可实施的算法优化目标;算法模型通过AB实验效果的观察,确定优化目标的合理性。

对于每个场景,我们关注的目标都不一样,

对于商品推荐、广告推荐等,如应用市场:业务目标eCPM,优化目标:CTR

对于内容类推荐:关注停留时长,如YouTube、头条、快手等比较关注用户停留时长。

 

推荐系统的难题

冷启动问题

冷启动常遇到的问题分为三种:

用户冷启动:主要解决的是如何给新用户做个人推荐的问题

物品冷启动:主要解决如何将新的物品推荐给可能对它感兴趣的用户这一问题

系统冷启动:主要解决如何在一个新开发的产品上(还没有用户,没有用户行为,只有一些物品的信息)涉及个性化推荐系统,使网站刚发布就让用户体验到个性化推荐服务这一问题

 

常见的冷启动方法:

1、提供个性化的推荐,最简单的就是热门排行榜,我们可以用户推荐热门排行榜,然后等用户数据收集到一定程度的时候,在切换为个性化推荐

2、利用信息做粗粒度的个性化,比如注册信息、社交账号、渠道信息、通讯信息

3、要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后对用户推荐那些和这些物品显示的物品;

4、对于新加入的物品,可以利用内容信息,将他们推荐给喜欢过和他们相似的物品的用户

5、在系统冷启动时,可以引入专家知识,通过一定的高效方式迅速建立物品的关联度表

6、将库中的物品聚类,在给新用户推荐时,每个类别中推荐几个,总有一款是你喜欢的。

7、利用社交信息来冷启动,特别是在社交属性的产品中,将好友喜欢的物品推荐给新用户。

 

EE(探索&开采)问题

Exploitation:对用户比较确定的兴趣,当然要利用开采迎合,好比说已经挣到的钱,当然要花。

Exploration:光对着用户已知的兴趣使用,用户很快会腻,所以要不断探索用户新的兴趣才行,保证多样性和新鲜度

说到EE问题,肯定离不开Bandit算法,它是解决EE问题的一种有效算法,它来源于历史悠久的赌博学,一个赌徒,要去摇老虎机,走进赌场一看,一排老虎机,外表一模一样,但是每个老虎机吐钱的概率可不一样,他不知道每个老虎机吐钱的概率分布是什么,那么每次该选择哪个老虎机可以做到最大化收益呢?这就是多臂赌博机问题(Multi-armed bandit problem, K-armed bandit problem, MAB)。

怎么解决这个问题呢?最好的办法是去试一试,不是盲目地试,而是有策略地快速试一试,这些策略就是Bandit算法。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。