本文转载自微信公众号「虞大胆的叽叽喳喳」,作者虞大胆。转载本文请联系虞大胆的叽叽喳喳公众号。
推荐系统是有技术壁垒的,涉及到各类算法和机器学习,工程实现就更难了。所以我们选择了神策智能推荐服务,但感觉效果不太好,通过他们提供的几个pdf,有了个大概的概念,发现召回是推荐系统中的重点。
推荐系统的作用:降低信息过载,那如果本身每天可推荐的内容不多呢;发掘长尾,这个是核心,能让好文章有更多的曝光机会;提高转化率,是提升dau?还是用户粘性?
如何衡量推荐系统的好坏?可能人的感受更重要,但无法量化;如果利用CTR,一定程度上能反应好坏(点击后不看估计也没啥用),点击后的反馈可能更精准,比如浏览时长,做出准确的评论等等。
推荐系统整个过程主要包括两点,首先就是召回,也就是粗排,筛选出相对较小的候选集;其次就是排序,也就是精排,对物品进行打分。
推荐系统就是建立任何物品之间的关系,核心就是数据,包括三个部分:首先就是用户行为,看文章、点收藏都是;其次就是物品信息;最后通过行为和物品信息,形成用户画像,这个画像可能就是常规意义上的画像、标签化,但在机器学习中,它是隐式的,是向量化的,人无法直接理解。
接下去说说神策推荐系统提到的四种召回方法,见下图:
首先强调基于深度用户行为分析的召回,由于是向量化,所以很难向人解释它的优劣,太黑盒了;主要分为两个分支,协同过滤(基于矩阵分解)很常见了,缺点就是无法解决新内容冷启动问题,以及时效性不足;
其次就是深度学习召回模型(HMF),借鉴了facebook论文,主要提到四点好处,更全面的行为表达,比如结合点击、收藏、搜索等多种行为,能更全面地表示用户行为偏好;能够加入一些用户画像放到模型中;考虑用户行为顺序(感觉挺牛逼的);组合各类复杂特征。
其次就是自然语言技术,神策解释是为了解决新内容的冷启动问题,开始我有点疑惑,后来才明白,一篇新内容出来,立刻通过NLP技术,从中找到一些标签化(比如关键词)的内容,这样结合用户画像,快速推荐给用户。
但可惜的是神策推荐在我们业务场景中,居然没有用到NLP技术。最近也看一些文章,纯粹介于内容推荐也能弄出一个好的推荐系统。
比如通过分词、主题分析、word2vec(词向量隐式关系的分析),有了这些关键“元素”,可以用在相关性计算、召回、排序等过程。
如果没有NLP技术,哪怕人为(编辑或用户)打分类和标签(更细分的分类)也行,虽然不智能,也不精准,但也能代表一些民意。
不过图片和视频进行语义分析就难了,要引入一些其他解决方案。
最后神策提到了NLP技术的三个好处:
利用自然语言技术,得到能表示每篇文章主题内容的语义向量
根据语义向量,推荐用户喜欢的主题的文章
只需要分析文章内容,不需要用户行为,能很好的推荐新文章,解决性能内容冷启动问题
接着就是基于用户画像的召回,首先就是利用已有的关注(不是好友之间的关注)关系,你在APP上的每个行为都隐藏了用户偏好,比如搜索某个关键词(是不是表明想看某些相关的文章?所以文章NLP的分析多么重要),再比如点击某个标签(比如军事标签,是不是说明想看军事相关的文章),或者收藏了某篇文章(是不是可以推荐类似的文章)。
其次就是基于标签构建用户画像,用户有很多常规意义上的画像,可解释的,也能表明他的一些兴趣偏好,比如性别、经常发的文章、站内提供的可选择性标签,反过来,通过推荐系统不断完善用户画像,从而进一步做精准推荐。
最后就是多源数据,比如入门数据,编辑推荐文章,KOL文章,官方文章等等,这些在召回的时候很有用,在神策中是以权重体现,是否说明这用于排序?而非召回?
为什么说神策智能推荐还不成熟,比如没有来自于用户的负反馈(我不喜欢),没有使用NLP技术(对于我们这样的内容APP,这个太重要了),不理解业务型态(无法针对性的调优,这可能是垂直sass解决方案的弊端,太机器化了),结合它们的控制台,只能看到热门召回和基于行为的召回,都是默认策略。既然是个性化推荐,它怎么证明做到了个性化推荐,也担心最后的推荐效果退化到了编辑推荐。
最后好好理解这句话,数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已