
很值得一看,不管是对于创业者还是用户。
毕竟,推荐算法,某种程度上来说其实一直被「妖魔化」了。
看起来很神秘的算法,最后,你会发现,其实还在分析和预测人类的行为本身。
我们从官网整理了一些觉得不错的内容,整理成了今天这篇文章。
授权编译,原文参见:https://95152.douyin.com/transparency
01
推荐算法:
用数学方法高效匹配信息
互联网诞生后,为了高效连接人和信息,共出现过四类主要技术/模式:
-
第一类是门户网站,核心逻辑是对内容建立分类目录,按目录对不同信息进行集纳,用户按照目录路径查阅信息;
-
第二类是搜索引擎,其最大特点是基于用户的搜索需求,通过搜索引擎主动搜寻信息;
-
第三类是社交网络,其特点是用户首先要关注好友或者订阅频道,系统基于此进行推送;
-
最后一种是推荐系统,特点是系统会更加智能主动地发掘用户的兴趣。
那么推荐系统是如何实现更加高效的信息匹配的呢?
事实上,推荐算法的本质是个极其高效的信息过滤系统。个性化推荐算法,好比给每个人量身定制了一个信息「快递员」,能更高效、准确地把合适的信息推送到用户面前,满足每个用户各不相同的需求。
今天,这类算法已广泛应用于电商平台(商品推荐)、视频网站(内容推送)及社交网络(好友/信息流推荐),通过「千人千面」推荐显著提升推荐的精准度和用户体验。
而从技术视角来看,推荐算法的基础是机器学习。事实上,机器学习是人工智能的核心技术之一,其定义有很多种,大体都可以归结为通过已有的数据进行数学建模、挖掘规律,随后,在此基础上对未知的数据进行预测。
推荐算法是机器学习技术的重要应用领域之一,其核心目标是通过分析用户的「行为」(点击、浏览、喜欢、转发、收藏等),构建个性化的推荐模型。具体而言,系统会基于用户历史动作、对象特征和上下文环境,采用算法模型预测用户可能会对什么样的内容产生什么样的行为。
传统推荐,
不需要算法「懂」内容
「协同过滤」(Collaborative Filtering,简称 CF)推荐算法是最经典的推荐算法之一,至今仍然在广泛使用。所谓「协同过滤」推荐,简单来说就是协同用户的行为,一起对海量的信息进行过滤,从中更加快速筛选出用户可能会产生行为(比如完播、点赞)的内容。
基于内容的协同过滤的大致过程是这样的。比如用户 A 观看了内容 X、Y、Z,用户 B 观看了内容 X、Z、W,那么 X 和 Z 之间就有较高的相似度。然后根据用户对已观看或已评分内容的偏好,为用户推荐与这些内容相似的其他内容。重点是计算内容之间的相似度,根据用户的行为数据,找出与目标内容相似的其他内容。这种方法在内容数量相对稳定、用户数量较大的场景下表现较好。
因此协同过滤可以在完全「不理解内容」的情况下,也为用户推荐其可能想看的内容。其原理简单来说就是,找到和你兴趣相似的用户,把他们感兴趣的内容也推荐给你。

协同过滤机制
不过,要在上亿用户中满足上述需求,过程要比上图复杂很多。协同过滤进化出的「矩阵分解」(Matrix Factorization)算法,是业界最常用算法之一。其过程简单说是,基于用户行为数据,构建共现矩阵。

矩阵分解算法构建共现矩阵的过程 ([1])
在协同过滤的过程中,用户相似度的计算是算法中最关键的一步。通过上文介绍可知,共现矩阵中的行向量代表相应用户的用户向量。那么,计算用户 A 和用户 B 的相似度问题,就是计算用户向量 A 和用户向量 B 之间的相似度,两个向量之间常用的相似度计算方法有多种,下面介绍其中一种。
余弦相似度,如下图公式所示。余弦相似度(Cosine Similarity)衡量了用户向量 A 和用户向量 B 之间的向量夹角大小。夹角越小,证明余弦相似度越大,两个用户越相似。([2])

余弦相似度公式
以上内容描述了协同过滤的流程。协同过滤算法通过分析用户行为数据而非内容特征,实现个性化推荐。需要说明的是,上述介绍只是非常精简的协同过滤推荐算法的描述,具体的细节在不同场景中可能有差异。
推荐算法升级:
神经网络激发深度学习能力
随着微软的 Deep Crossing,谷歌的 Wide&Deep,以及 FNN、PNN 等一大批优秀的深度学习推荐模型在 2016 年被提出,推荐系统全面进入深度学习时代。([3])
时至今日,深度学习推荐模型已经成为推荐领域当之无愧的主流。行业以多层感知机器(Multi-Layer Perceptron,MLP)为核心,通过改变神经网络的结构,构建特点各异的深度学习推荐模型。在进入深度学习时代之后,推荐模型主要在以下两方面取得了重大进展。
(1)与传统的机器学习模型相比,深度学习模型的表达能力更强,能够挖掘出更多数据中潜藏的模式。
(2)深度学习的模型结构非常灵活,能够根据业务场景和数据特点,灵活调整模型结构,使模型与应用场景完美契合。
从技术角度讲,深度学习推荐模型大量借鉴并融合了深度学习在图像、语音及自然语言处理方向的成果,在模型结构上进行了快速的演化。
3.1 深度学习&神经网络原理介绍
深度学习的基础依然是机器学习。机器学习是人工智能的一个分支,核心目标是使用数据和算法使人工智能能够模仿人类的学习方式,并逐渐提高准确性。
在推荐算法应用领域,机器学习的核心目标是学习模仿人类点击某种内容的行为。其常见的过程大致可以简化如下:
-
准备训练集数据;
-
将训练集中的数据输入模型进行训练;
-
将模型输出数据与训练集的目标数据进行对比;
-
通过不断调整参数使得二者不断接近(数学称为拟合)。
这个过程,从表面看和老师教授学生新知识类似:在训练集(相当于老师)的指导下,通过大量的数据输入(相当于练习题),对比目标不断调整模型参数(改错),使得模型输出结果尽量准确,这个过程就是机器学习。
近几年,机器学习的能力越来越强,这得益于深度学习的发展。深度学习是机器学习的高级形态,其核心特点是以人工神经网络为架构。
人工神经网络(Artificial Neural Network,即 ANN)是模仿生物大脑内神经网络的结构和功能设计的计算模型,由大量的节点(类似生物大脑的神经元)之间相互连接构成。
人工神经网络可以分成三个主要部分:输入层、隐藏层、输出层。输入层能够对外界的信息进行处理和分类,然后将结果传递给下一层;隐藏层可能包含一层或多层,能够对输入层或者其他隐藏层传递来的信息进行处理,并将信息传递给输出层或下一个隐藏层;输出层对输入进来的信息进行最终分类判断,并输出结果。深度学习中的「深度」,指的就是在神经网络中使用「多层」,通常情况下,层数越多,算法的能力越强。

神经网络结构
在深度学习中,现实世界的所有事物都可以被转化为向量,模型的输入和目标首先被向量化,再进行各种复杂运算。在此用「破案抓小偷」的类比,来介绍神经网络的基本原理:
-
输入层:小区保安(输入特征)
小区门口的保安负责登记来访人员信息,例如戴黑帽子、穿红衣服、背双肩包(像素级基础特征)。登记完成后,他把这些信息写成小纸条,传给下一层侦探。
-
中间隐藏层:多组侦探(加工分析特征)
第一组侦探:看小纸条拼拼图,发现「黑帽子+红衣服」常出现在便利店盗窃案;
第二组侦探:查历史档案,发现「双肩包+上午 8 点」对应小区快递被偷案;
第三组侦探:画嫌疑人画像,综合「黑帽子、红衣服、双肩包+多次出现在案发地」,锁定惯犯特征;
-
输出层:警长拍板(输出计算结果)
警长拿到综合报告,对比数据库后大喊:「这是上周连环盗窃案的 A!」(输出计算结果)
-
训练过程:
一开始侦探们总认错人,队长会复盘:「上次把戴黑帽子的外卖员当成小偷,是因为没考虑时间特征!」。于是调整「时间权重」,下次侦探优先检查「黑帽子+非工作时间」的人。如此反复训练后,侦探队成了抓小偷专家。
以上为简化案例,实际模型的复杂度远高于此。但其底层原理大体类似,都是将现实问题转化为纯粹的数学问题。从理论上来说,只要有足够大量的数据对深度神经网络进行训练,它就能用来模拟任意类型的函数,解决各种类型的问题。
3.2 抖音 Wide&Deep 模型
抖音在 2016 年上线,恰逢推荐算法开始进入深度学习时代,我们所应用的推荐算法也是深度学习算法的一种。接下来我们以至今依然是抖音推荐算法主力模型之一的 Wide&Deep 模型为例进行介绍。([4])
Wide&Deep 模型的主要思路正如其名,是由单层的 Wide 部分和多层的 Deep 部分组成的混合模型。其中,Wide 部分的主要作用是让模型具有较强的「记忆能力」(memorization),「记忆能力」可以被理解为模型直接学习并利用历史数据中物品或者特征的「共现频率」的能力;Deep 部分的主要作用是让模型具有「泛化能力」(generalization),「泛化能力」可以被理解为模型传递特征的相关性,以及发掘稀疏甚至从未出现过的稀有特征与最终标签相关性的能力。
其具体模型结构如下图:Wide&Deep 模型把单输入层的 Wide 部分与由 Embedding 层和多隐层组成的 Deep 部分连接起来,一起输入最终的输出层。Deep 部分进行深层的特征交叉,挖掘藏在特征背后的数据模式;而单层的 Wide 部分善于处理大量稀疏的特征,使得数据稀少的用户或者物品也能获得有数据支撑的推荐得分,从而提高泛化能力。
Wide&Deep 模型的这一结构特征,可以解决前文提到的协同过滤算法的短板。协同过滤算法优点突出,但是其局限性也很明显,就是泛化能力差,推荐的结果头部效应比较明显。也就是容易造成信息单一问题。

Wide & Deep 模型结构
3.3 抖音双塔召回模型
一条视频从海量信息中被选中,推送给用户,一般要经过进入内容池、召回、排序三个环节。用户发布的新视频首先要经过初步评估进入内容池,然后进入召回环节,其作用是从海量的内容池中,初步快速粗筛出一大批用户可能感兴趣的内容。
举例来说,召回环节需要用到召回模型,抖音最常用的召回模型是「双塔召回模型」(Two-Tower Retrieval Model)。双塔召回模型把用户和内容都转化为数学空间里的一个个点,就像是给用户和内容贴上了独特的「数字标签」,这个过程叫做向量化表征学习。其大概过程如下:
(1)分别将用户特征、内容特征进行数学转化(如展示小猫的视频为 0,展示小狗的视频为 1,短视频为 0,长视频为 1,那么一个展示小猫的长视频即(0,1),其实际长度取决于特征有多少维度,用户特征同理);
(2)将转化后的数学特征输入到用户塔、内容塔两个深度学习模型中,经过训练,各自形成一组新的数字集合,这叫做用户表征和内容表征。在这一步,原本各自代表一个现实特征的数字不再具备任何实际语义,两个模型会把用户特征和内容特征都转化为没有现实意义的数字代码——因此,算法不用理解现实语义,只需处理纯粹的数学符号;
(3)将两组形式为纯粹的数字集合的用户表征和内容表征,放入同一个向量空间中,每一组数字集合便在向量空间中拥有了一组专属的向量值,好比一组独有的「数字指纹」;
(4)将训练过的所有内容表征的向量值和当前用户表征的向量值的距离进行对比,距离越接近代表用户越喜欢。当你的「数字指纹」和某个视频的「数字指纹」在坐标系里刚好比较「匹配」(距离近),算法就会推荐它。

双塔召回模型
相比人工推荐,推荐算法实现了一个重要范式突破:它将用户对内容的具体偏好(如点击、评分等显式行为)抽象为高维空间中的数学映射关系。
通过将用户-内容交互矩阵分解为隐语义空间中的用户偏好矩阵和内容特征矩阵,算法无需理解「内容类型」或「开心愤怒情绪」等现实语义,而是通过潜在特征向量运算,就能实现对用户「是否会看完」「是否会点赞」「是否会收藏」某个内容的行为预测。
正是这种脱离现实语义的数学建模能力,结合亿级数据,实现「知其然,而不必知其所以然」的精准推荐。
推荐算法只能预估用户行为动作
基于机器学习和深度学习构建的推荐算法,提升了超大规模信息分发、推荐的效率,能交付人类难以快速高效完成的任务。但由于算法是通过数据收集、特征工程、模型训练等复杂流程预测用户的行为,其本质是数学模型的运算过程,只是在建立用户行为与内容特征之间的数学统计关联,而非理解内容本身。因此相比人类,算法依然有其局限性。

推荐算法是对用户各种行为概率的综合预估
当用户打开抖音时,抖音的推荐算法会给候选视频打分,并把得分最高的视频推送给用户。
用户在观看时可以对看到的视频做出各种互动,这些互动体现了用户对这个视频的感兴趣程度。比如用户点赞比不点赞要好,看完比没看完要好,没有点不喜欢比点不喜欢好。在这里,「看完了」就是一次反馈动作,「点赞」也是一次反馈动作。
用户对观看的视频的每一次反馈,都有正面或者负面的价值。抖音的推荐排序模型学习的也就是这种行为反馈,推荐系统的目标就是把反馈价值最高的视频推给用户。
抖音推荐算法的核心逻辑可以简化为「推荐优先级公式」:综合预测用户行为概率 × 行为价值权重 = 视频推荐优先级。公式展开为:

推荐优先级公式
抖音推荐预估动作率的具体步骤
5.1 算法学习:用户反馈行为输入
算法模型是预测用户各种互动和反馈行为发生的概率。发生概率是模型输出的结果,但在此之前,需要输入大量数据,这些模型的数据叫特征。模型需要内容和用户两端的数据做输入,其中主要是学习用户行为数据。抖音算法学习用户行为数据,既有实时的新数据,也很重视对用户历史行为数据的学习。下图为相关模型。

抖音学习用户反馈的深度学习算法
5.2 概率模型预测:抖音推荐算法都预估用户哪些行为
推荐算法会通过算法模型预测用户对候选视频的行为概率(动作率)。结合用户行为和视频本身的价值权重,推算出视频推荐的价值分数,并将综合得出的价值最高的视频推送给用户。
在这个过程中,推荐算法会对用户的一系列行为预估,这些行为包括点赞、关注、收藏、分享、不喜欢、是否点击作者头像、评论区停留时长、长期消费等等。

抖音推荐算法预估哪些行为(举例)
5.3 价值模型评估:定义行为的「推荐价值」
价值模型,代表了抖音对于哪些动作可能更重要的理解。简单来说,如果仅考虑用户交互概率,可能会造成一些问题,比如,一些精心制作的中长优质视频,可能因为完播率较低,而在分发中处于劣势地位。
因此,抖音的价值模型希望实现内容、用户、作者以及平台的多方价值共赢。通过价值模型,对用户的互动行为进行价值计算,并通过不断调整参数,对各类价值进行加权。
然后,按「价值最大化」原则计算出候选内容的分数。在这个原则的指导下,算法会综合考虑多个因素来评估候选内容的价值。它不仅会关注内容本身的特点,还会考虑作者的收益以及平台生态等因素。
通过对这些因素的深入分析和权衡,算法能够为每个候选内容计算出反映其潜在价值的分数,从而为后续的推荐提供有力的依据。
5.4 动态调整:价值权重的即时反馈
随着算法的进步,从行为发生到现实有效反馈的时间已经非常短,这种近似即时调整的机制,有助于算法更精准地预判用户行为。抖音已经实现了「分钟级」实时反馈更新。
人工为算法建立内容秩序
不管推荐算法如何复杂,其工作的核心都是学习用户产生的行为反馈数据,并通过概率计算,将模型中推荐价值最高的视频推送给用户。
算法不必理解晚霞为何令人驻足,只需计算用户停留在火烧云视频的时长与分享概率;算法无需参透幽默的本质,却能精准拟合一串「哈哈哈哈」的评论与众人内心欢喜的相互关系。算法始终在用数学的纯粹性,尝试复刻人类选择的不确定性。
也正是因为这个特性,若单纯依靠算法预判行为而不加约束,可能会带来不当内容泛滥等新问题。因此,对于不懂内容的算法,还需要为其构筑多层「护栏」,避免算法对内容价值的「认知盲区」引发的问题。
[1] 图片参考《深度学习推荐系统》,作者王喆,电子工业出版社,2020 年 3 月出版。
[2] 内容援引自《深度学习推荐系统》,作者王喆,电子工业出版社,2020 年 3 月出版。
[3] 推荐系统进入深度学习时代的内容均援引自《深度学习推荐系统》,作者王喆,电子工业出版社,2020 年 3 月出版。
[4] Wide&Deep 模型的内容均援引自《深度学习推荐系统》,作者王喆,电子工业出版社,2020 年 3 月出版。
(文:Founder Park)