本博文主要对业界短视频推荐领域做一个系统概览,包括推荐系统与架构、召回算法与策略、排序算法的演进、分发策略的控制四大部分。对于其他的推荐场景,工作链路大同小异,不作累述。

一、推荐系统与架构

1.1、 短视频推荐流程

信息流推荐系统,其工作流程在各家公司中基本上大同小异,一条短视频从入库到分发,主要经过召回、排序、重排序等几个环节的处理,最终确定合适的展示位,得到最终分发。

下面以今日头条APP视频推荐为例进行一下简单的流程说明:

  1. User的一次刷新行为触发api透传一条request给service;

  2. Service会根据这个request的场景构建context;

  3. 根据实验与策略判断user触发的召回序列;

  4. 根据召回序列进行内容召回;

  5. 打分前过滤;

  6. 模型打分:粗排+精排;

  7. 打分后过滤;

  8. 策略层重排序;

  9. 兜底过滤:dislike、版权、历史去重等;

  10. 排序结果返回给前端进行头部展示。

图1 短视频推荐流程

图2 短视频推荐流程                                                             

1.2、召回架构

召回可以说是推荐系统的第一个排序阶段,召回的内容作为排序的候选集,直接决定着参与排序的实体是否符合用户口味。从技术上看,每路召回可以看成是一个个小的推荐服务,每路召回服务通过一个”key“进行内容召回。对于短视频个性化推荐场景而言,通常我们把这个"key"设置成用户的userid,也就是说,每路召回会为不同的用户召回不同的内容。而对于基于内容的召回场景而言,这个"key"更多的是一些视频的画像类特征,包括:tag、categeory、subcategory、topic、keywords等,同不同的特征映射一些排序规则,实现在该特征下内容的召回。

1.3、 指标与评估

推荐效果好不好,指标是最基本的评估参考。推荐系统的指标参考可粗略分为线上指标和离线指标两部分。

线上指标主要是整个推荐效果的线上统计指标,就短视频推荐而言,我们主要关注的是:DAU、CTR、人均停留时长、人均PV、视频VV、留存率、负反馈、单篇停留时长、视频完成率等。

离线指标更多是对召回算法、排序算法的效果的一个评估,简单来说,一件事情没有办法进行评估就很难进行进一步的优化。因此,我们需要一些方法去评价某一路召回的好坏、某一个排序模型的好坏。评价一个排序模型的好坏,则可以通过模型的训练AUC、各种损失函数、分析特征的有效性、分析特征的权重等方法进行量化的评估。

二、召回算法与策略

工业界的短视频内容量通常是百万级的,一些专业的视频推荐应用,其视频内容量甚至是千万级。如果对这些内容全部直接进行排序,显然不太现实。这个时候,召回的重要性就凸显出来。召回主要是考虑了一些机器、成本、效率等问题,通过不同的算法与规则对视频库的内容做一个粗筛,在保证内容“优质”的前提下,减少参与排序的内容数量。召回阶段实际上与排序阶段相辅相成,内容库中的短视频没有得到充分的分发,其原因无外乎是:召回阶段没召出来、排序阶段没排上去。

目前工业界并没有对召回算法或者召回策略有具体的层次或者划分。这里,我们根据召回的原理与性质简单将召回粗略归纳为算法类与策略类。

算法类召回(其实并不完全是算法导向),主要包括了基于内容的召回、基于协同过滤的召回,还有就是现阶段发展强势的embedding技术在召回领域的实现。

策略类召回(更多的是人工规则导向的内容召回)通常在内容召回的同时又实现了某些功能,如新用户、新视频的冷启动召回;还有就是人工运营系列,如热点视频推荐、优质视频的补底池等。

2.1、 基于内容的召回

基于内容的召回主要依赖对视频的内容理解和用户画像的积累。

2.1.1、内容理解

短视频内容理解可以分为文本类特征理解和图像类图像类特征理解。当前阶段的推荐系统更倾向于使用视频的文本类特征,在NLP技术支持下,我们可以抽取视频的语义特征,包括:标题、关键词、标签、视频源等等。图像类特征则依赖于图像处理技术对视频的内容特征进行抽取,包括:视频关键帧向量、封面图向量、图像清晰度、图像标签等。

有了视频的文本类特征和图像类特征,我们可以将二者整合成完整的视频画像,在短视频诸多的特征中,有些特征是静态的,有些特征是动态的,不同的特征在整个推荐系统中扮演着不同的角色。

视频静态特征主要包括:一级分类、二级分类、标签、keywords、topic、视频源等,这些特征组成用户画像的兴趣点信息;而视频动态特征则更多的包含线上表现信息:全局点击与分发数据、各个队列的点击与分发数据等。

2.1.2、用户画像

用户画像的生成主要是用户点击的兴趣点信息的累积,除了常规的后验统计信息,我们也可以利用一定的规则去推导出一些潜在的用户兴趣点信息。这样,除了用户本身的用户属性特征外,用户的兴趣点特征也会逐步积累到用户画像中。通常情况下,用户的潜在兴趣点会随着时间进行改变,为了适应用户的兴趣点的迁移,我们往往将用户画像拆分成长期画像(历史)和短期画像(近期)。用户的一些主动行为,也是其兴趣点的一个强烈反应(至少是短期兴趣点的一个反应),诸如搜索、订阅、关注等主动行为,可以理解为是一种比点击更加强烈的画像信号,这部分兴趣点往往是用户主观行为的真是反应。

2.1.3、关联用户跟内容

有了内容理解与画像的积累,我们需要一定的规则去关联用户跟内容。常用的关联方法是基于倒排的方法。倒排的方法,倒排的key是视频的静态特征,按不同规则对倒排进行排序,召回算法从倒排中根据用户兴趣点对内容做截断,进而实现从很大的视频库中筛选比较靠谱的一小部分视频。

此外,通过向量化计算用户与视频之间的相似性也是一种常用的关联方法。

2.1.4、CB召回存在的问题

CB类召回作为推荐系统领域的传统方法,虽然其有着用户独立性强的特点,但是由于算法本身的局限性,也存在着很多缺点:推荐泛化能力差,很难挖掘出用户的潜在兴趣;数据反馈慢,用户行为调整反应慢;热门内容只能通过人工干预分发;内容分发效率低,优质后验内容分发速率慢;头部视频容易集中,导致视频的利用率低。所以,在大多数情况下其精度都不是最好的,在推荐系统中更多的是其他推荐算法的一种辅助手段。

2.2、基于协同过滤的召回

协同过滤(Collaborative Filtering),简单来讲就是找相似。目前业界常用的CF思想主要有UserCF、ItemCF、SourceCF、ModelCF、TagCF等。主流的实现则是考虑用户和用户之间相似的UserCF和考虑物品和物品之间相似的ItemCF。

2.2.1、传统的协同过滤算法

传统的协同过滤算法利用用户行为的相似度计算出兴趣的相似度,我们可以假定用户u和用户v,令N(u)表示用户u感兴趣的物品集合(在短视频推荐场景下则是用户u浏览过的短视频集合),N(v)表示用户v感兴趣的物品集合,那么可以通过Jaccard公式或者通过余弦相似度公式计算出用户u和用户v之间的相似度:

Jaccard公式:

余弦相似度公式:

2.2.2、embedding类协同过滤算法

word2vec算法的出现为embedding方向提供了一个很好的实现方案。

借助于embedding思想,我们可以利用神经网络对user和item进行embedding表示。

参考word2vec算法的原理,我们可以将用户点击过的视频组成一个又一个的点击序列,这样就可以在序列内进行建模。如果把userid和docid都当成普通的词进行word2vec处理的话,该方案显然是可行的。因此,我们改进了原始的word2vec算法进行usrecf-embedding和itemcf-embedding。通过usrecf-embedding得到用户向量和词向量,将具有相似偏好的用户向量紧密在一起。通过itemcf-embedding的得到视频的ID向量。拿到了向量之后,就可以使用Dotproduct、Euclidean、Jaccard、Cosine、Pearson等规则去计算向量之间的相似性,达到CF的效果。

然而,在实际的推荐领域,embedding得到的向量往往是海量高维的,普通的方法计算向量间的相似度现在十分笨拙。Facebook开源的一个高性能的高维向量相似度检索和聚类库Faiss为CF的相似性计算提供了良好的解决方案。

2.2.3、CF召回存在的问题

CF类召回算法可以说是CB类算法的一个很大的改进,无论是传统的CF召回还是embedding类CF召回,在效果上明显优于CB类召回。但是CF类算法在面对新用户或者新内容时,现在存在召回能力不足的问题(UserCF:新用户、ItemCF:新内容),相似性的计算通常过度依赖用户历史行为,这样就很难挖掘出用户的潜在兴趣。而且就embedding协同召回而言,它的推荐效果会随着时间衰减,需要频繁的进行模型更新来实现embedding。

2.3、基于FM模型的召回

FM算法的核心在于特征组合,以此来减少人工参与特征组合工作。FM特征的数据结构通常包括User相关、Item相关、类别相关的特征、历史行为数据特征等等。通过不同特征的组合,生成新的含义。

基于FM模型的召回,通过对不同特征进行组合,可以实现user侧和doc侧的embedding,在计算出user向量和doc向量的相似性实现,user与doc之间的召回排序。

2.4、新用户冷启动的召回

新用户在进入短视频的信息流之后,在画像中几乎没有积累任何有用的兴趣点信息。那么,如何为这样的一批没有任何参考的用户推荐什么视频成为了一个及其重要的研究方向,这就涉及了新用户的冷启动问题。

2.4.1、已知召回信号的利用

如果新用户在其他业务场景或者在图文上有过一定的画像积累,首先可以利用这部分画像进行一些内容召回。除了利用图文或其他业务环境已经存在的兴趣点信号进行短视频召回,我们也可以挖掘出用户是否有过搜索、关注等信号,进而利用这些信号进行短视频召回。

2.4.2、基础信号的利用

目前各大应用都会请求手机的一些权限,比如手机app的读取权限等。获得了手机安装的一些应用后,我们可以创建一些映射规则,将这些应用映射到视频的静态特征上,在将这个静态特征转移成用户的兴趣点或者人群属性,实现对新用户冷启阶段的短视频召回。这样的方法,虽然不能说是很强烈的个性化召回,但明显要优于普通的热点和优质内容的补底池。此外,手机设备信息和地理位置相关信息也是挖掘新用户兴趣点的重要参考。

2.4.3、引导用户主动选择

开屏卡片、分发选择卡片的引导是触发用户协助定位新用户兴趣点的重要手段,在新用户打开应用的第一次,可以尝试着将一些优质的类别作为候选集去引导用户主动选择用户所属的人群和兴趣。用户的主动选择往往代表是用户接下来的点击意愿,是很好的一种积极信号。

图3 小红书开屏卡片示例

2.4.4、试探:兴趣试探+人群试探

新用户冷启动阶段,在未知用户基础兴趣时,用户兴趣试探显得极其重要,因为兴趣试探是一步步挖掘用户兴趣点的主要手段。除了对用户兴趣进行试探,我们也需要进一步挖掘出用户的人群属性,这样才能更好更快地积累出新用户的用户画像。

新用户的试探依赖的是优质内容池的构建,多维度内容池的建设,每个维度都要保证视频内容的专和精。

我门可以收集一些优质视频,构建不同维度的优质视频内容池,利用bandit算法、强化学习算法等技术,捕捉用户兴趣和人群属性信息。

2.5、新视频冷启动的召回

Item冷启也是推荐系统领域的一个不可忽视的问题,优质视频应该很快的投放出去是短视频冷启的一个基本目标。除了流量上的控制之外,做到新视频的高效分发,需要精准的人群定位。

为了避免新视频对用户体验的伤害和冷启本身对新视频的伤害(由于人群不准导致视频画像积累了一些不好的后验数据),一般视频的中重度用户会成为内容试探的人群候选,而尽量避免在新用户上进行新视频的试探分发。

分发策略:使用user的embedding向量进行人群聚类,把视频分发给最相近的聚类中心下的一群用户;阿里巴巴提出了一种Graph Embedding策略,主要解决的是淘宝新item的冷启问题,【推荐系统】Graph Embedding系列之EGES: Billion-scale Commodity Embedding for E-commerce Recommend in Alibaba。

2.6、人群聚类召回

人群聚类召回的目的在于挖掘出具有某种相同属性的一群人爱看什么,通过对人群点击历史进行协同召回,可以将人群聚类召回理解为具有相似兴趣信息的UserCF推荐。

2.6.1、人群聚类

人群聚类的方法有很多,比较常用的方法可以利用用户积累的画像信息,对用户画像进行量化,基于用户画像进行聚类;也可以利用用户的embedding(embedding往往是用户兴趣点的积累)

基于用户向量进行聚类。用户画像方法的聚类,我们关注的可以是人群、性别、地区、年龄、职业等信息。用户向量方法的聚类,我们更多关注的是用户的兴趣点信息。

2.6.2、召回策略

有了用户聚类后,很容易得到某一聚类下这群“具有相同属性或者兴趣的用户”的一些点击行为,很容易想到的一个召回策略就是:聚类内实时CF召回,也就是在聚类下把点过的视频互相推。

用户聚类也可以应用到新视频冷启过程中,将某个兴趣点下的视频分发给该聚类下的一群用户显然是个不错的选择。如果想要得到良好的冷启效果,我们可以进一步将人群进行划分,实现新视频与人群的完美匹配。

三、排序算法的演进

排序阶段是召回的下一个环节,也是整个推荐系统中最关键的一环,目前大多数公司都将主要精力聚焦在排序环节的优化。排序模型的发展趋势也是一个由简单到复杂的过程,模型表达能力代表了模型是否具备充分利用有效特征及特征组合的能力,再结合到具体的业务范畴后,模型优化的目标则直接体现着“我们希望推荐系统去做好什么”。

业界排序算法的发展趋势大致经历了LR、GBDT、FM、DNN、Wide&Deep、DeepFM几个阶段,下面简单概括下这些排序算法。

3.1、LR

逻辑回归算法是一种广义的线性模型,其特点是简单,因此成为了第一代推荐系统的常用排序算法,但其缺乏特征组合能力,需要人工做特征工程等缺点导致其很难取得满意的排序效果。

传统的LR只能在线下批量处理大量数据,无法有效处理大规模的在线数据流。模型更新可能要一天甚至更多,不够及时。因此,Google在2013提出了Follow The Regularized Leader(FTRL),一种在线逻辑回归算法。该方法对逻辑回归的目标函数进行了修改,加上各种系统工程上的调优,使得该模型的参数可以在每一个线上数据点进行动态更新。

3.2、GBDT

GBDT算法是一种迭代的决策树算法,由多颗决策树组成,预测复杂度取决于树的数目和深度,特征数不会太多,通常在几十到几千范围,需要较强的特征工程工作,难以捕获特征组合。其效果往往会优于LR算法,因此在第一代推荐系统中被广泛使用。

2014年Facebook发表了一篇论文,介绍将GBDT+LR模型用于其广告推荐系统领域,并取得了不错的效果。LR+GBDT相比于单纯的LR或者GBDT带来了较大的性能提升,该算法先使用GBDT自动进行特征筛选和组合,进而生成新的feature vector,再把该feature vector当作logistic regression的模型输入,进行LR训练。在方案可以看成,利用GBDT替代人工实现连续值特征的离散化,而且同时在一定程度组合了特征,可以改善人工离散化中可能出现的边界问题,也减少了人工的工作量。

3.3、FM

向量分解机(Factorization Machines,FM)是一种应用较为广泛的推荐模型,FM模型结合了支持向量机与因子分解模型的优点,并且能够用了回归、二分类以及排序任务,速度快,是推荐算法中召回与排序的利器。

FM算法主要是为了解决数据稀疏的情况下,特征怎样组合的问题。FM通过将特征空间压缩到向量空间,解决了传统模型的特征稀疏问题,具有很好的泛化能力;但其特征组合需要人工处理,高阶特征组合复杂,实际应用受限于计算复杂度,特征组合维度有限等缺点也是FM算法不可回避的优化方向。

FM模型定义如下:

FM算法:

3.4、Wide&Deep

Wide&Deep模型的核心思想是结合线性模型的记忆能力和 DNN 模型的泛化能力,在训练过程中同时优化2个模型的参数,从而达到整体模型的预测能力最优。其中,Wide部分有利于增强模型的“记忆能力”,Deep部分有利于增强模型的“泛化能力”。 Wide部分的实质是一个广义线性模型,而Deep部分则是一个简单的全连接网络。

Wide & Deep模型结构如下图,左边是wide部分,右边是deep部分:

Wide & Deep模型结构能够较好地利用了低阶和高阶组合特征,增加模型表达能力,但是wide部分依旧需要特征工程,其二阶特征组合需要人工挑选。

3.5、DeepFM

DeepFM其实是Wide&Deep的变体,把wide部分由LR转变为FM,这样就省去部分特征工程。FM和Deep部分共享embedding层,可以增强wide部分处理低阶交叉特征的能力,并提供更好的泛化能力。在Wide&Deep的基础上进行改进,不需要预训练FM得到隐向量,不需要人工特征工程,能同时学习低阶和高阶的组合特征;FM模块和Deep模块共享Feature Embedding部分,可以更快的训练,以及更精确的训练学习。

DeepFM模型框架:

3.6、排序算法小结

从推荐系统排序技术的演进趋势可以看出,排序算法的应用经历着一个由简单到复杂的过程,业界的应用也在逐步由离线训练转向在线训练。就短视频推荐排序而言,由于业务场景的需求,多目标排序模型也成为各家公司的一个研究方向。

图4 排序算法的演进趋势 

四、分发策略的控制

召回和排序虽然承载了推荐系统的大部分工作,但是算法本身并不是万能的,通常会遇到一些算法无法胜任的工作,比如低质视频的打压,政策性视频、热点类视频、编辑加精类视频的置顶,新用户冷启试探、新视频冷启试探、优质但分发不足的长尾类视频补充分发、合作方内容保量分发的强插,这些需求更多的是通过人工加一些策略来进行控制。因此,在排序之后往往需要添加rerank环节来控制最终的内容分发。

Rerank调整无外乎是一些内容的展示位调整,像优质内容/优质源提权、劣质内容/劣质源降权打压、特俗功能的召回保护、不置信的噪声点击降权、热点内容的降权、兴趣点权重随时间衰减等规则,都需要进一步在短视频分发前进行干预。

此外,出于社会责任与用户体验的考虑,夹杂着反动、色情、低俗、低质、标题党、“封面图党”、软文、广告等内容的短视频需要进行过滤处理。

五、总结

以上内容是对工业界短视频推荐领域的一点看法与理解,出现错误的陈述,欢迎大家批评指出,谢谢。

请相信我,除了这句话,上述的每一句话都有可能是错的!

【推荐系统】短视频推荐系统概述相关推荐

  1. 一矢多穿:多目标排序在爱奇艺短视频推荐中的应用

    短视频具有内容丰富.信息集中.用户粘性大的特点,如何提高短视频分发的效率和推荐精准度,有效提升消费时长.留存等关键业务指标,是推荐系统的核心能力和建模目标. 本文主要分享在短视频推荐场景下,爱奇艺基础 ...

  2. 多目标排序在快手短视频推荐中的实践

    分享嘉宾:郑东博士 快手 推荐算法技术总监 编辑整理:于洋 出品平台:DataFunTalk 导读:快手是中国领先的短视频和直播社区,拥有超过3亿的DAU和丰富的社交数据.快手秉承的价值观是真实.多元 ...

  3. 如何提升链路目标一致性?爱奇艺短视频推荐之粗排模型优化历程

    导读 工业界的推荐系统通常包括召回.粗排.精排以及重排四个阶段,如图一所示,每个阶段都像是一个漏斗,从海量的物品集合中过滤出用户最有可能感兴趣的物品.其中粗排模型发挥的主要作用是统一计算和过滤召回结果 ...

  4. 左右互搏:GAN在爱奇艺短视频推荐冷启动中的实践

    导语:由于推荐系统冷启动问题的存在,在视频推荐中为用户推荐新视频是一个极具挑战的问题,新视频推荐的效果直接影响推荐系统"新陈代谢"的稳定性和内容生态的健康发展.为了解决该问题,本文 ...

  5. 百度视频携手神策数据,引领基于 AI 的短视频推荐技术新潮流

    近日,中国最大的视频搜索和 PGC 内容分发平台百度视频与大数据分析服务提供商神策数据在已有的数据分析合作基础上,新增基于人工智能的个性化推荐技术合作,引领短视频推荐技术新潮流. 百度视频是中国最大的 ...

  6. 快手通过标签添加的我_快手怎么上热门?快手短视频推荐指标有哪些?

    "快手怎么才能上热门?快手上热门都有哪些技巧?" 其实这些问题,除了通过提高短视频质量,还可以通过分析推荐指数的方式解决. 运营者想要有效提升短视频的播放量,想让快手短视频快速上热 ...

  7. 短视频推荐算法过程分享,论如何针对推荐算法来优化短视频内容

    短视频推荐算法过程分享,论如何针对推荐算法来优化短视频内容 相信做短视频的小伙伴一定知道"短视频推荐算法",简单理解就是短视频平台都自有一套推荐机制,决定我们发布的短视频是否可以获 ...

  8. 爱奇艺随刻短视频/推荐 - 粗排模型

    文章地址:爱奇艺短视频推荐:粗排篇 重点掌握:最开始的GBDT->双塔DNN(蒸馏模型 和 精排widedeep模型一起进行训练,得到粗排小模型)->级联模型(精排是mmoe) 蒸馏模型过 ...

  9. vivo 短视频推荐去重服务的设计实践

    一.概述 1.1 业务背景 vivo短视频在视频推荐时需要对用户已经看过的视频进行过滤去重,避免给用户重复推荐同一个视频影响体验.在一次推荐请求处理流程中,会基于用户兴趣进行视频召回,大约召回2000 ...

最新文章

  1. Indigo | Indigo(Python)简介、安装与入门
  2. 怎样在VirtualBox 虚拟机中挂载共享目录
  3. IE中页面不居中,火狐谷歌等正常
  4. leetcode 226. 翻转二叉树
  5. boost::mp11::mp_partition_q相关用法的测试程序
  6. .NET开源两年之后社区贡献如何
  7. express中获取url参数
  8. flex布局水平垂直 垂直_垂直和水平装饰
  9. 杭州电子科技大学保研计算机,杭州电子科技大学计算机学院计算机科学与技术(一级学科)保研细则...
  10. 一文了解 Spring Boot 服务监控,健康检查,线程信息,JVM堆信息,指标收集,运行情况监控!...
  11. ProgressBar与Handler的整合应用
  12. leetcode/力扣 回溯算法大总结,BAT程序员完整学习手册开放下载!!
  13. opencv python3 找图片不同_使用OpenCV和Python查找图片差异
  14. 打造人脉关系网,成就事业
  15. winform遍历bartender_C# 调用Bartender打印的2种方式
  16. Windows解压tar.gzip文件
  17. Informatica的元数据和数据血缘关系
  18. 通俗易懂物联网(11):物联网解决方案设计
  19. Postman——pre-request产生随机字符串和随机数字传给request body
  20. Word插入脚注只占左下角一栏的方法

热门文章

  1. search(1)- elasticsearch结构概念
  2. mysql分组统计having_mysql group by和having实例详解
  3. android 读取短信 彩信,Android 短信转换成彩信的消息数量(实例代码)
  4. 女生学前端还是软件测试或者UI设计?
  5. 分布式项目部署服务器,分布式部署简单实现
  6. Realm(Java)数据库使用文档(查询Queries)
  7. NOIP2011计算系数详解
  8. 作为消费者,我们为什么会被种草?
  9. 免费稳定 = 网易云音乐API
  10. 宝宝感冒用药记录-仅供参考