推荐系统的前世今生
导语
推荐系统作为互联网的增长引擎,那么那些互联网公司的产品用到了推荐系统呢?
- 短视频:抖音、快手
- 长视频:NETFLIX、YouTube、爱奇艺
- 电子商务:亚马逊、淘宝网
- 个性化阅读/信息流:Google News,今日头条
- 社交网络好友推荐:Meta、LinkedIn、微信
- 位置服务推荐:大众点评、美团、饿了么、口碑
- 广告推荐:Google、百度
- App分发:AppStore、Google应用商店、华为应用市场
- 婚恋对象推荐:世纪佳缘、百合网
说起推荐系统,还得提一下机器学习领域刻骨铭心的百万美元级比赛- 2006年的网飞奖 (Netflix Prize),2006年, Netflix对外宣布,他们要设立一项大赛,公开征集电影推荐系统的最佳电脑算法,第一个能把现有推荐系统的准确率提高 10% 的参赛者将获得一百万美元的奖金。2009 年 9 月 21 日,来自全世界 186 个国家的四万多个参赛团队经过近三年的较量,终于有了结果。一个由工程师和统计学家组成的七人团队夺得了大奖,拿到了那张百万美元的超大支票。
任何关注增长(用户、收入等)的APP和场景都可以从推荐系统获得助力,推荐系统的价值:信息过载时代,架起信息生产者和消费者之间的桥梁,实现二者的双赢,其中信息生产者是利用有限的展示位、曝光次数,获得更多的信息被消费机会。而信息消费者是从海量信息中,高效地找到自己感兴趣的信息。
推荐系统的经典架构
大家可以看到,这个推荐的架构就像一个漏斗一样,经过层层过滤和筛选出用户感兴趣的内容。召回系统作为推荐架构的第一层级,所以召回决定了操作系统的上限,如果一开始没有筛选出来,或者给的量非常少,后续很难有很好的效果提升,因此召回的时候,一般都是多路召回,常见的召回规则有:规则召回、协同召回、向量召回、树召回;由于每个召回方式都有优缺点,因此,召回的时候使用多路召回,使用不同的召回规则,将所有的可能的结果召回到库中。
一般情况下,召回阶段:数据量大、速度较快、模型简单、特征较少,因此可以离线弯沉;精排阶段:数据量小,排序精准、复杂模型、特征较多,因此可以在线完成。
召回算法
一般情况下,召回是计算速度与召回率之间的博弈,下面列举常用的几种召回方式以及适用场景和代表算法。
热度召回:
适用于新用户场景、响应潮流
算法举例: 统计,播放次数,浏览次数;相似性召回
相似性召回:
通过分析内容,推荐与用户浏览历史相似的内容
协同过滤
适用于存量用户,挖掘用户兴趣的场景
通过分析用户群历史行为,挖掘用户与物品,物品与物品间的关系
代表算法:UserCF、ItemCF、ALS等
表示学习
具备综合多种信息和特征的能力
代表算法:Item2Vec、Entity2Rec(知识图谱)、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算法。
- 点赞
- 收藏
- 关注作者
评论(0)