一、介绍
- 为什么要有推荐系统:信息过载、用户需求不明确;
- 搜索和推荐的区别:搜索更关注马太效应(马太效应传送门),简单的说,就是让富有者更加富有,让贫穷者更加贫穷;而对于推荐来说,则更加关注长尾分布,也就是要要提高覆盖率;
- 搜索和推荐相结合,如百度搜索界面(其他人还搜等等);
- 推荐系统应用在哪:头条(新闻推荐)、快手(短视频推荐)、淘宝(商品推荐)等;
二、评估
-
推荐系统由三方构成:用户+内容提供方+网站(留住用户,实现商业目标),网站也就是推荐算法工程师效力的地方了;
-
如何得知推荐系统推荐的好坏,分为
- 显示反馈(电影评分等):显示反馈能更加准确的反映用户的真实品味,但是获取成本高,获取数量少;
- 隐式反馈(播放+评论+下载+购买):隐式反馈获取数据容易且数据量大,但是存在错误引导,比如对于抖音视频,如果你评论了某段视频,代表你真的喜欢所推荐的吗?不一定,可能你评价的是:无聊…。所以需要借助后续方法如NLP方法提取情感态度,进一步对用户做精准的个性化推荐;
-
常用推荐系统评估指标:准确性、满意度、覆盖率、多样性(新颖性、惊喜度)、信任度、实时性、鲁棒性、可扩展性、商业目标、用户留存等;
- 准确性:如RMSE、MAE、topN推荐(准确率+召回率);
- 覆盖度:信息熵(信息熵越大,说明推荐越均匀)、基尼系数;
- 多样性&新颖性&惊喜性:好比一个人喜欢听某首歌,但是听多了总会疲倦,所以需要推荐一首耳目一新的歌曲来缓解审美疲劳,但是多样性和准确性是相互矛盾的,需要做一个tradeoff;
- …
-
对于推荐系统有两个必须考虑的问题:EE(exploit-explore)和冷启动问题:其中之一的解决办法便是使用Bandit算法,有比较好的博文对此进行了总结,给个传送门(Bandit算法),为什么Bandit算法可以在一定程度上缓解冷启动问题呢?模拟下面这个场景,对于一个新来的用户,并不确定他的兴趣如何,那么我们可以通过分类或者LDA等生成topic的方式,将此作为多臂老虎机,我