短视频主要存在以抖音、快手为代表的内容原创平台和以淘宝、今日头条为代表的垂直平台,短视频的推荐算法与资讯大同小异,短视频能够提取的文本特征往往只是标题一句话,其播放大多是自动播放,这就要求在语义模型建模和用户行为收集时要针对此种特征有所调整。
我们之前阐述过,用户行为数据上报至推荐系统的算法层,经过多种算法,如经过语义分析算法和用户协同算法的计算后会生成候选推荐结果集,再经由结果层的处理生成最终的推荐结果。算法层必不可少的模型为语义模型,用来进行文本的计算和特征抽取,那么在推荐系统中的效果比较不错的语义算法有哪些呢?
主要有LDA和Doc2vec、LSI,分别适用不同的文本长度和类型。
LDA(Latent Dirichlet Allocation,隐含狄利克雷分布)是一种概率主题模型。它可以将文档集中每篇文档的主题以概率分布的形式给出,从而通过分析一些文档抽取出他们的主题(分布)后,便可以根据主题(分布)进行主题聚类或文本分类。同时,它是一种典型的词袋模型,即一篇文档是由一组词构成,词与词之间没有先后顺序的关系。一篇文档可以包含多个主题,文档中每一个词都由其中的一个主题生成。
人类是怎么写作的呢?LDA的这三位作者在原始论文中给了一个简单的例子。例如,假设事先给定了这几个主题:Arts、Budgets、Children、Education,然后通过学习训练,获取每个主题Topic对应的词语。如图5–3所示。
图5–3 主题对应的词语
然后以一定的概率选取上述某个主题,再以一定的概率选取那个主题下的某个单词,不断地重复这两步,最终生成如下图所示的一篇文章。(其中不同颜色的词语分别对应上图中不同主题下的词)如图5–4所示。
图5–4 文章生成图
我们在看到一篇文章后,往往喜欢推测这篇文章是如何写成的,我们可能会认为作者先确定这篇文章的几个主题,然后围绕这几个主题遣词造句,表达成文。
LDA就是要干这事:根据给定的一篇文档,反推其主题分布。通俗来说,可以假定认为人类是根据上述文档生成过程写成了各种各样的文章,现在想让计算机利用LDA干一件事:让计算机给我推测分析网络上各篇文章分别都写了哪些主题,且各篇文章中各个主题出现的概率大小(主题分布)是什么。而这些主题该如何表达才能够让计算机识别呢?答案是通过向量矩阵。把一段文本转成向量矩阵,这个向量矩阵里会包含各个角度主题的分布概率且能够被计算机识别。
Doc2vec是Google的Quoc Le和Tomas Mikolov在2014年提出的一种非监督式算法,可以获得 sentences/paragraphs/documents 的向量表达,是 Word2vec 的拓展。Doc2vec学出来的向量可以通过计算距离来找 sentences/paragraphs/documents 之间的相似性。当所有文档在一起训练时,就可以得到这篇内容里每个段落,句子的概率分布情况,之后再计算整篇文档的主题概率进行修正,这样就得到最终的向量表达。
LSI(Latent Semantic Indexing),中文意译是潜在语义索引,即通过海量文献找出词汇之间的关系。潜在语义索引是一种用奇异值分解方法获得在文本中术语和概念之间关系的索引和获取方法。该方法的主要依据是在相同文章中的词语一般有类似的含义。该方法可以从一篇文章中提取术语关系,从而建立起主要概念内容。
LSI的基本思想是文本中的词与词之间不是孤立的,存在着某种潜在的语义关系,通过对样本数据的统计分析,让机器自动挖掘这些潜在的语义关系,并把这些关系表示成计算机可以“理解”的模型。它可以消除词匹配过程中的同义和多义现象。它可以将传统的VSM降秩到一个低维的语义空间中,在该语义空间中计算文档的相似度等。虽然LSI有很多不足,例如SVD计算非常的耗时,尤其进行词和文本数比较大的文本处理,对于这样的高维度矩阵做奇异值分解是非常难的。而对于处理一些规模较小的文本时,如果想快速粗粒度地找出一些主题分布的关系,则LSI是比较好的一个选择。
通过不断地实验和商业场景地验证,我们发现LSI在处理像短视频类的文字较短的文本时,性能更佳。而LDA和Doc2vec更适合长文本的语义建模,尤其是Doc2vec在处理短文本时效果偏差较大,其更适合5000字以上的如论文类、书籍类的长文本。因此,我们在短视频领域进行语义分析时往往选择的是LSI算法。
当然,无论何种算法,当文本太短时效果相比较长文本肯定是有一定的差距,这在短视频领域是个常见的现象。例如一条“陈赫竟然和贾玲约会”的短视频,其内容是陈赫和贾玲共同出演了一个小品。但仅从文本的相似推荐,可能推荐出“陈赫离婚”“陈赫约会”“贾玲绯闻”“约会中需要注意的事”等视频,而用户关注的可能仅仅是因为它是一个好笑的小品啊。因此这种情况,有两种处理方法:
1.将短视频的分类上报至系统,根据某一条短视频的语义推荐结果也只取固定分类的结果。就例如系统返回了10条根据此短视频语义推荐的结果,其中5条是娱乐八卦、3条是小品、2条是生活常识,那么我们在召回层可以只召回来自于小品分类的3条短视频。
2.我们可以对短视频打上标签,例如“陈赫竟然和贾玲约会”,这一条我们可以打上“陈赫”“贾玲”“小品”的标签,另外一条“陈赫和贾玲同台搭档真精彩”,也同样可以打上这几个标签,标签随视频的标题一同上报至系统,那么在系统的物料库里,“陈赫竟然和贾玲约会”这条物料的文本就还有了“小品”等文字信息,那么在进行语义相似度计算时,同样拥有相似标签的相似标题视频自然会更大概率地被曝光出来。
在进行用户行为上报时,短视频与电商、资讯有着明显区别的地方在于,短视频往往是自动播放,即不存在用户点击的行为。用户对于不感兴趣的视频往往一划而过,所以用户的浏览时长、浏览完成等指标成了重要的行为收集点。