3月份读了《内容算法》,对推荐引擎有了比较系统的认识。有意思的是,推荐引擎跟搜索引擎有比较多的相同点,甚至可以说是在搜索引擎的升级。于是整理一下分享出来。
什么是内容推荐引擎
内容推荐引擎是移动互联网以来新型的内容产品,打破了之前主动获取内容的形态,可以在用户无明确需求的情况下提供感兴趣的内容,并产生了新的内容生态。虽然 Kill 了用户更多时间,但对用户需求的挖掘,以及对用户更上一层路径的触达上,是极具创新力,并且非常成功的,并且已经有了今日头条、抖音、小红书等成功的产品。
推荐引擎初探
用一句话描述,推荐引擎就是根据用户画像,推荐出感兴趣的内容;并且根据用户行为,不断对用户画像进行调整和完善。举个简单的模型,假设抖音对我的标签为:
篮球 - 40%
路人王 - 10%
街舞 - 10%
美女 - 10%
亲子 - 15%
杭州 - 5%
南京 - 5%
风景 - 5%
那么,在抖音为我推荐的视频内容中,会出现以上主题的视频,并且按照我的兴趣比例进行划分。
技术架构
我直接截取了书上的原图。
整体上分为 2 部分,离线部分和在线部分。其中离线部分主要是内容的预处理,包含内容的分类,标签的提取和倒排。在线部分主要是根据用户画像对内容进行召回和排序,并且根据用户行为对画像和排序逻辑进行调整。
推荐引擎与搜索引擎
以下是书中截取的搜索系统的架构,可以跟上图中推荐引擎进行对比。
推荐引擎(下文缩写为 RE )和搜索引擎(下文缩写为 SE )的相同点:整体架构相同,都包含离线部分和在线部分。离线部分主要是对内容的预处理,对内容作类目划分,内容的倒排;在线部分主要是针对 query 作召回和排序。
RE 和 SE 在架构上的不同点:
Query 方面。SE 是用用户搜索词作 Query,RE 用用户画像和场景(包含地点、设备、时间等)作 Query
内容获取。SE 需要用爬虫抓取,是全网内容;RE 是用户提交就能直接获取,是只包含自己系统的内容
倒排处理。对内容的预处理,SE 主要依靠分词后的关键词,RE 主要依靠标签(实体词)
RE 和 SE 在产品上还有几点不同:
SE 是用户主动获取内容,只处在用户有需求这个阶段;而 RE 是用户被动获取信息,主要覆盖用户没有明确需求的阶段,而这个阶段时间更长,且流量更高
SE 是面向整个互联网,所以不仅有信息,还有各种功能,比如下载、购物、导航;而 RE 只是在产品自身的系统,重点还是信息,功能较少(现在也在用小程序来满足功能)
标签
主要是对内容的标签和对用户的标签。
内容的标签
对内容的标签,是帮助推荐引擎理解内容,尤其是视频、音乐和图片等无法准确识别的内容,更依赖标签,有PGC和UGC这两种生产形势。以下是豆瓣上对图书的标签:
用户的标签
用户标签,是用于推荐引擎检索的 Query,有静态和动态两种形式。静态标签是用户自身的属性,比如年龄、性别、学历、教育程度,是较固定,更新频率较低的;动态标签则是用户兴趣、场景标签,比如对篮球的爱好、所在的区域,是经常变动,更新频率较高的。以下是常见的用户画像数据:
位置信息。比如大众点评 APP 需要用户的位置信息给出周边美食等内容
搜索信息。淘宝会根据用户近期搜索调整推荐的产品,是千人千面的主要信息源之一
用户评分、收藏、分享、评论等。这些都是用户的典型行为,会不同程度影响用户画像
Google 也有整理用户的标签,以下是我的部分标签:
推荐引擎的应用
一些朋友以为推荐引擎只在今日头条、抖音这些典型产品应用,其实,内容推荐引擎的应用非常广泛,不夸张的说,大多数互联网产品都有应用。推荐引擎有以下几种应用形式。
独立 APP。这个无须多言,今日头条、抖音等都是典型产品,完全依靠推荐引擎
推荐模块。典型产品:微信的看一看。依靠用户行为和浏览记录给出相关的内容,只是微信中的一个模块。
推荐逻辑。典型产品:淘宝的千人千面。依靠用户画像给出产品推荐,并覆盖 APP 首页、搜索页等所有推荐区域。
内容分发逻辑
内容分发方式是一直在演变的,基本分为编辑分发(中心化、人工主导)、社交分发(去中心化、人工主导)、算法分发(机器主导),我在另一篇文章讲过。
编辑分发。是以编辑人工整理为主,用户看到的都是编辑人工整理的内容,有报纸、广播、门户网站这几种形式。
社交分发。是以 follow 为主,用户关注了哪些博主,就看到了博主的内容,主要就是微博和微信朋友圈的形式。
算法分发。是算法根据用户画像推荐对应内容,完全依靠用户画像,就是完全依靠推荐引擎。
现在的推荐引擎,其实并不是完全依靠算法,也都加入了编辑分发和社交分发的因素,只是影响因子不同。
比如抖音经常会刷到一些大V的视频,点赞和评论非常多,虽然我不太关注那个话题。这个主要是受到编辑分发的影响。
再比如抖音会刷到好友发的视频,虽然点赞不多,或者为0。这个主要受到社交分发的影响。
推荐引擎的缺点
推荐引擎虽然已经被多次成功验证,但仍有比较明显的缺点。
标题党泛滥。比较典型的场景是微信的家庭群,各种标题党泛滥,比如 “ 通知:放冰箱变致癌物?这3种食物千万别放冰箱!”。因为推荐引擎中 CTR 是影响展现的一项因素,所以标题党如鱼得水,甚至造成劣币驱逐良币,高质量文章不得不用 “如此 low” 的标题来吸引流量。
信息茧房。就是普遍担心的,越来越活在感兴趣的信息世界里。推荐引擎其实是有一个完善画像的机制,就是会推荐一些新话题的内容来试图完善画像,以扩充信息圈子。但实际效果没有那么理想,至少是需要对模型长期训练。
算法就是算命。算法普遍有个缺陷,就是能确定这样做的效果是好的,但好在哪里是无法解释的,用同事的话讲,“算法就是算命”。也就是无法解释效果背后的原因,也就无法沉淀和复用。(主要是面向网站运营人员)
对人性弱点的利用。随着推荐引擎对用户需求的探索,发现用户最关注的其实还是人性相关的内容,按照《七宗罪》里讲的就是傲慢、嫉妒、暴怒、懒惰、贪婪、暴食和色欲,所以对应到内容上,就是《同样是 80 后,他用了 3 年开上了兰博基尼》、《2019年!中国超越美国的元年》、《职场精英必备!这5个工具保证你效率提升至少50%》、《从第一季到第八季 龙妈胸围发生了这些变化》、《200元起!世界上最便宜的米其林餐厅盘点》。更不要说对健康、教育、中年危机、职场等焦虑的消费了。
Kill 时间。随着内容推荐系统对用户需求的洞察和满足,在用户中逐渐形成一种爽快和轻度满足的体验心智,再加上产品对当前时间的隐藏、内容碎片化,使用户不仅投入了碎片时间,还淡忘了时间。比如抖音,大多数用户都有刷完之后忽然发现已经很晚的体验。
总结
本篇内容整理下,就是以下几点:
推荐引擎就是根据用户画像,推荐出感兴趣的内容;并且根据用户行为,不断对用户画像进行调整和完善。
推荐引擎跟搜索引擎相比,整体架构是相同的,在 Query、内容获取、倒排处理这 3 个架构方面,在信息获取方式、用户覆盖路径、内容覆盖面这 3 个产品方面是不同的
推荐引擎会给内容和用户打标签。内容标签有 UGC 和 PGC 这 2 种生产形势,用户标签有动态和静态这两种方式。
推荐引擎应用广泛,有独立 APP、推荐模块、推荐逻辑 这 3 种形式,分别有 今日头条、微信的看一看、淘宝的千人千面这 3 个例子。
内容分发有编辑分发、社交分发和算法分发这 3 个逻辑。实际产品一般会结合这 3 个逻辑进行召回和排序。
推荐引擎缺点明显,有标题党泛滥、信息茧房、算法就是算命、对人性弱点的利用、Kill 时间这几个方面。
讨论题
最后还有个讨论题,想跟大家讨论。就是SEO 如何适应推荐引擎崛起的时代?比如百度的熊掌号的扶持,必然会导致部分流量从站长手里转到公众号博主那里。欢迎各位留言讨论,我会把精彩评论展示出来。