快好知 kuaihz订阅观点

 

好的推荐系统应该是什么样?

推荐,猜你喜欢,个性歌单,热搜榜……这些我们常见的其实都是推荐系统输出的内容,一个推荐系统的好坏实实在在影响着用户使用产品的感受。

在没找到工作的间隙,开始从原理层面了解机器学习,做毕设的时候是关于图片学习的,啃完paper撸好论文后的我,不久前我终于能够畅游互联网的海洋了。抓紧时间体验和使用了国外的一大批社区和vedio后,对其有了一些思考。这里闲扯两句,也算是抛砖引玉。

推荐系统到底是个啥

这个问题,不同的人有不同的答案,如果你是网购达人,那么对于你可能是这样的:

如果你是音乐发烧友,那么就是这样的:

如果你是知识青年,应该是这样的:

如果你是八卦狂魔,那么就是这样的啦:

推荐,猜你喜欢,个性歌单,热搜榜,这些都是推荐系统输出的内容,我们从这些就可以总结出,推荐系统到底干了啥了?

1. 帮助用户找到他们感兴趣的东西(商品,内容),发掘长尾

用户找到想要的东西,谈何容易。商品茫茫多,甚至是我们自己,也经常点开淘宝,面对眼花缭乱的打折活动,满减促销。陷入无限的选择困难症,在经济学中,有一个著名理论叫长尾理论(The Long Tail)。

套用在互联网领域中,指的就是最热的那一小部分资源和掌握它们的头部用户将得到绝大部分的关注,而剩下的很大一部分资源却鲜少有人问津。这不仅造成了资源利用上的浪费,也让很多的中部和尾部的内容输出者没有公平的曝光机会。

2. 降低信息过载

如今的互联网无论是信息量还是热点量都处于overload的状态,若是将所有的内容都放在首页,那么用户将是无从阅读的,信息的利用率将会非常低下,因此需要推荐系统来帮助用户筛选过滤信息。

3. 提升用户黏性,增加用户的转化率和点击率

一个优秀的推荐系统不仅能让用户更频繁的访问某一个板块/站点,而且总是能够帮助用户找出他需要的商品和内容,提升其消费的动力。

4. 为用户创建专属的用户画像,为用户提供私人订制的个性化服务

每当系统成功推荐了一个用户感兴趣的内容后,我们对该用户的兴趣爱好等维度上的形象是越来越清晰的。当我们能够精确描绘出每个用户的形象之后,就可以为他们定制一系列服务,让拥有各种需求的用户都能在我们的平台上得到满足。

5. 深度关联使用场景,为消费创造新的窗口

试想如果在你需要太阳镜的时候能够根据你浏览页面的历史记录来给你个性化推荐太阳镜,岂不是很爽?这不仅解决了你的消费需求,也为商家提供了个性化售卖的窗口。

你或许跟我感觉是一样的,推荐系统就是如果A,那么B的一个系统。其关键就在于如何确定A与B的映射关系。目前常用的有协同过滤、Logistic Regression、DNN、GBDT等。

详情抄送:http://neuralnetworksanddeeplearning.com/

一个推荐系统对用户有什么影响

我们先来看看,一个聊胜于无的推荐系统是什么样子的。前两天刷知乎,timeline上出现了一个问题:为什么知乎的推荐系统为何这么差?

知乎用户吴大官人是这样回答的:

其实纵观这几年来国内的APP,无论是知乎、今日头条等信息资讯类app,还是网易云、抖音这些泛娱乐app。都在尝试用推荐算法来过滤内容,推荐用户可能更感兴趣、更具有吸引力的内容以期让用户能更久的驻留在自己的生态里。

但是,这真的是个有效且好用的方式吗?

笔者持保留意见。我是个年轻人,我想看看更大的世界,不需要你喂养的千篇一律的内容。

这里要尬吹一下奈飞神一般的推荐系统了

Netflix的推荐技术本质上回答了两个问题:

1. 如何提升用户观看体验?

2. 如何在内容上投用户所好?

奈飞在每次启动的时候都会咨询:是谁在观看影片?

一个典型的 Netflix 用户会在 60-90 秒的浏览后失去兴趣,这个过程中大概能看到 10-20 部作品,仔细看过其中 3 部左右,滑动不超过两屏。在这之后用户要么就是找到了自己想要的作品,要么就彻底流失掉。所以推荐系统要做到的就是针对不同的用户在这两屏里,找到自己感兴趣的作品,从而留住用户

用户的观看体验可能收到多方面因素的影响,观看入口,操作步骤,海报内容等等都有可能对用户的观看体验造成影响,奈飞通过为每个用户建立用户画像,可以迅速定位到观看的用户的性别,年龄,过去看过的影片,好友信息等内容,从而产生一个stream主页,根据用户画像构建了一个复杂的推荐系统来为用户推荐合乎口味的影片和电视剧。这个推荐系统的方法包括:

PVR – Personal Video Ranker:记录你的影片风格的偏好,同时结合时下流行来进行推荐以达到最好的推荐效果。

Top-N Video Ranker:根据用户的个性化推荐计算出得分最高的条目来进行推荐,和PVR有所不同。PVR是先进性优先分类,然后再进行的个性化推荐

Trending Now:当前热点,可以解决以下的三种场景:

周期性的观影需求,比如节假日或者是特殊的纪念日。

一些突发事件,类似于时政要闻。

一些热点事件,诸如碧昂斯劈腿了(大雾)。

Continue Watching:上次没看完,这次接着看呗。算法本身也会做一些预测,是真的没看完,在追。还是对这个节目不感兴趣而直接弃剧。可以从观影时间,结束观看的时间戳来进行推荐

Video-Video Similarity:根据你观看的某部电影的相似度来进行计算,只是基于电影本身的内容推荐,但是展示到瀑布流中会进行个性化筛选。

推荐页面最终排序及生成:上面提到的 5 种算法推荐出的过千个模块,会进行统一的排序最终展示给用户。奈飞使用的算法中针对不同用户的使用习惯做了定制化的方案,不再采用固定的模块排序。

Evidence:Netflix推荐系统中一个非常重要的特性就是“evidence”,它的覆盖面很广,比如获得什么奖项、演员是谁、封面图要放什么。在拿到所有的 evidence 后,Netflix 会根据不同的电影和用户,选择不同的 evidence 推出去说服用户接受这部电影。这个举措不但会给用户带来信任感,还会鼓励他们更积极地参与到推荐互动中来,给予更多有效反馈。

推荐算法的优化

想要在一个非常大的、复杂的推荐系统中优化算法是一件非常困难的事情,尤其是当你想调成某个item时候经常会不知所措,由于 Netflix 几乎所有收入都来自于每月用户的订阅费,而观看时间与次月留存也被证明了是正相关的,因此多种算法和参数在竞争时都会以观看时长以及留存率作为比较指标。

Netflix 的 A/B test

最初的时候随机选择部分用户推荐算法更换为与当前使用的算法不同的另一套算法,这个过程会持续 2-6 个月。

回收统计结果,制作以下的问卷:

改动后的算法是否激励用户看了更多的电影?

算法改动后的用户群体相比传统用户整体上是否看了更多的电影?

算法改动是否提升了续费的比例?

测试组的大小如何决定?

测试组要选多少用户进来才具有代表性?比如测试组留存 50.05%,对照组留存 49.95%,提升了 0.1%,那我到底需要多少用户来实验才能说明这个提升是真正的提升,而不是选择的样本波动呢?

这里采用了一个概率模型,假设留存率和置信区间存在关系,比如你现在计算出的留存是 50%,那么可以在概率模型中找到留存率为50%的位置,如果说测试组和对照组的差是 0.1%,就往 Y 轴上去查找 0.1%,发现对应的值是 2000K,这就意味着如果要验证这个结果有效,测试组和对照组的用户量级都必须是 2000K 才可以

Netflix 的 AB test 会在老用户及新用户两个群体里分别进行。老用户的好处是量足够多,可以跑很多实验。但老用户已经有自己的使用习惯了,突然换上新的算法,并不能完全体现新算法的实际表现,因为用户会按照自己的历史经验来使用产品。

因此在新用户群体中做实验其实更好,但问题就是新用户没那么多,而且新用户第一个月还是免费的,那么他们多半不会在免费期去关闭他们的帐号。这就意味着面向新用户的测试,得在一个月后,让他们实际续费时,才能得出续费率的统计结果。

但整体上来看,这样的实验手段还是太慢了,即使每次实验都是多种算法多种参数的组合,但还是慢到他们自己也不太能接受。因此他们用上了 offline experimentation:

举个例子,利用一个用户两天之前的所有观看数据,让各种算法来计算接下来应该给该用户推荐什么电影,然后再去查看这两天该用户实际看了什么电影。计算这两者间的重合度,从而去评判不同算法之间的好坏。

这样的操作完全依赖历史数据,不用等待,可以不断的迭代,增删参数,改变算法本身。因此运作起来速度很快。

但这种方法也有它的坏处,就是假设用户在接受新的推荐后,还是会去点之前看的那些电影。这个假设偶尔成立,但很多场景下也是不成立的。

不过 offline experimentation 还是有它的价值,就是可以帮助我们快速验证想法,以及发现一些新的推荐机会。

(而且我注意到似乎对于同一部影片,奈飞推荐给不同的人的stream流都是使用的不同的海报。可能他们对海报也做了标签吧。

而且,不仅是强大的推荐系统,奈飞的内容精细化程度也很大程度上为其做了质量背书。作为一个20年高龄,在快餐信息和内容为王的时代依旧屹立不倒的视频网站,其前瞻性的自制剧的投拍功不可没。

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:好的推荐系统应该是什么样?  什么样  什么样词条  应该  应该词条  推荐  推荐词条  系统  系统词条  
设计

 关于Flash Banner设计...

banner 设计会严重影响广告投放效果,在此建议相关设计人员,在设计FLASH-BANNER的时候考虑到以下问题.1.尽量减少矢量图形的路径节点数:...(展开)