小视频推荐算法

                     短视频推荐算法

推荐算法是目前各大厂都在使用并且研究的一个方向,最近我们也在做推荐相关的业务,所以在此记录下自己的一些经验。这篇文章没有太多的技术细节,主要目的是为了让刚接触到推荐的朋友能够对推荐整体流程有一个清晰的了解和认识。若有错误请在评论指出。

推荐算法的应用很广泛,可以用在淘宝京东这些电商上,也可以用在爱奇艺,优酷的视频推荐上,我们今天讲的是将推荐算法应用在小视频的推荐上,就是类似目前很火的抖音的这种小视频推荐。小视频推荐就是把我们认为用户喜欢喜欢的视频推荐给用户来看。

我们的介绍依照下面的这张图来展开。

小视频推荐算法_第1张图片

这个图是我自己画的一个比较通用的推荐的流程图。首先推荐算法分为召回阶段排序阶段两个大的阶段。我们先来说一下召回阶段。

召回阶段:召回阶段主要做的事情(在这我们以小视频为例子)就是从海量的小视频里选出一部分候选集,可以使100个甚至更多,这个主要是看实际的业务指标。为什么我们要做这个事情呢?因为我们的视频量可能达到数百上千万个,这样直接用模型排序的话成本太高,时间也会非常慢,所以我们可以通过召回阶段粗略的晒选出一些质量更高的或者说更有可能被用户喜欢的小视频推荐给用户。

   那召回阶段我们应该如何来做呢?我们在做小视频推荐的时候可以采用多通道的召回。简单的来说就是通过不同的方法来召回小视频。因为召回我们要求的准确率并没有那么高,所以我们往往用一些比较简单的模型或者方法来做。

   一、协同过滤:

   相信了解过推荐算法的都知道协同过滤算法。常用的有user based-CF(基于用户的协同过滤)和item based-CF(基于物品的协同过滤),这篇文章先不具体介绍这些算法的实现,后面的文章会详细介绍。通过这两种算法建模,我们可以得到一些小视频的集合。

  二、基于query

   基于query就是基于用户的搜索记录,通过一些相似度的算法计算和用户搜索记录比较接近的标签,然后返回一批小视频

  三.基于用户画像和视频标签

  用户画像定义使用标签来量化用户特性属性,达到描述用户的目的。开发真正贴合用户实际需求的推荐算法,为排序阶段提供更多的用户特征,用户画像是很关键的。所以用户画像召回和排序阶段都很重要。我们通过视频标签和用户画像中的兴趣标签进行match,返回小视频。

在这里视频标签我们要介绍一下。随着UGC的不断增加,许多上传的小视频的标签都是不准确的甚至是缺失的。所以我们需要一个标签服务。来自动的为各个小视频打标签。我们可以采用DNN的办法,对视频抽帧然后放到DNN的模型去训练,从而来得到视频的标签。实现起来其实也不算很难。DNN最后一层为softMax,作为一个多分类的问题来处理。

排序阶段

 上面讲到了多通道对小视频进行召回,得到一个候选集后我们需要对这个候选集进行更加精准的排序。从候选集中选出更少的小视频推荐给用户。在这个阶段我们使用更多的是模型。数据处理和特征工程是每个机器学习项目的必要流程,但由于具体的业务不太一样,我们就不赘述了,我们主要聊一下在模型方面的一些问题。

 模型:在模型方面的选择业界已经有了很多种。传统的ML中我们用的有LR,GBDT,由于LR存在一个特征组合的问题,所以我们常常使用LR+GBDT的方法,通过GBDT来进行特征组合,最后放到LR中进行训练。当然还有比较经典的FM算法。随着DNN的发展,DNN现在也已经用到了推荐中。现在比较流行的是wide&deep(其实就是LR和DNN的一个结合),deepFM等等。这些模型在后面的文章我们会详细的讲解。

 看到这里可能有人会问排序模型的输入和输出应该是什么呢?对于推荐来说,我们的输入主要就是用户的特征,小视频的特征这两大部分。举个例子:用户的年龄,性别,行业,兴趣爱好,视频的一些标签这些就可以作为一个样本。而推荐的本质就是一个CTR预估问题,就是来预测用户点击或者不点击的可能性大不大。所以用LR举例来说我们的输出就是一个概率,这个用户点击这个小视频的概率。

预测的阶段分为offline(离线)和online(在线),离线预测可以进行批量的预测,效率高,在线预测能获得更好的用户体验。

上面就是小视频推荐一个整体的流程,接下来我会更加详细介绍召回排序阶段的算法和模型。希望有相关经验的朋友一起交流一起进步。

你可能感兴趣的:(推荐算法,机器学习,短视频推荐系统)