源 | 小象(微信号:AIReport) 文 | 王亮
深度学习在语音和图片识别等领域的效果有目共睹,各种介绍文章已经非常多了。但机器学习应用最广泛的推荐和广告领域,深度学习还刚刚崭露头角,相关的文章还不是特别多。本文结合一个典型的短视频推荐系统,介绍深度学习在这个领域的一些实际应用。
现在典型的推荐系统框架,基本都是二层结构,先是通过热门推荐、基于内容的推荐、协同过滤等方法,获得“候选推荐集”,然后通过CTR预估等对候选集进行二次排序,展现给用户。深度学习的作用,主要是对其中的某些环节进行改进。
Word2vect的应用
首先是基于内容的推荐,该方法也是目前信息类推荐中,应用最为广泛的。内容推荐的一个要点在于给文本打标签,一般都是粗粒度的“类别标签”+细粒度的“关键词标签”。其中类别标签就是一个典型的文本分类问题,如图1所示。
图 1 短视频的标签
常规的做法,就是用“TF*IDF”做特征,生成文本的向量空间模型,然后用LR、SVM进行分类即可。但用短视频标题做10多个分类, Accuracy很难超过60%。这个其实属于典型的短文本分类问题。基于TF*IDF这种one-hot类的特征,像这两个视频标题 : “白夜追凶精彩剪辑”和“潘粤明新剧火了” 的相似度为0。
这个问题早期的解决方法很多都是基于topic model的,最近则更多的使用词向量。用Google的word2vect等工具,可以方便的把短文本中每个词向量化,然后简单的进行向量相加、归一化,就可以很容易得到短文本的向量表示,用这些向量作为分类器的输出,效果改善非常明显。
短视频分类问题,很多又是“多标签(multi label)”问题,如一个视频可以属于“明星”,又可以属于“娱乐”。更典型的像知乎这样的社区,“标签/类别”数量本身也会非常多,“短文本+多标签+类别多”就形成一个非常有挑战性的问题。具体可以看看前一段时间知乎组织的“2017 知乎-看山杯机器学习挑战赛”,就是做一个2000个类别的多标签分类问题,数据还都开放。
图2 知乎看山杯的比赛题目
排名前面的队伍,基本思路大多是word2vect作为输入,用基于RNN/CNN的TextCNN/fastText、TextRNN等做学习网络,用交叉熵(Cross Entropy)作为损失函数。
还有就是协同过滤的流程,像基于用户的推荐,首先就要对用户两两求相似度,用户的向量表示,一般都是其浏览过的视频。在特征处理中,大家都看过的热门视频是没有用处的,一般都会过滤掉。但有些研究,就专门利用这些“热门”视频,把观看过的用户,按照观看时间点顺序列出,大概这样的(v表示视频,u表示用户):
v1:u1 u2 u3 u4…..
v2:u3 u6 u9 u10 ….
然后把视频v都当做“文本”,用户u都当做“单词”,好吧user2vect搞定了,然后我们基于这种user embedding方法,就可以求用户之间的相似度了。这种方法在喜欢围观的国内社区,尤为有效。
RNN/LSTM的应用
基于浏览时间序列做推荐,还有另外一种方法,主要是利用单个用户浏览视频的时间序列,如用户u1的观看过的视频依次为:
u1:v1, v4,v6,v10, ….
我们就可以用RNN/LSTM建立一个视频的序列模型,实践中可以使用相对活跃的用户来构建。使用模型的时候,利用sample的方法,输入用户的历史浏览记录,就可以预测推荐新的视频了。基本的训练算法如下图所示:
图3 基于用户浏览视频序列,训练RNN/LSTM模型
像网易严选的推荐系统,就有用到类似的时序模型。其推荐系统框架和用户特征框架如下图所示:
图4 网易严选的推荐系统和用户属性系统,图片原载于“推荐系统本质与网易严选实践”
CNN的应用
视频预览、广告创意图片等,在用户点击决策中,往往占据很大的比例,因此,目前工程实践中应用报道较多的深度学习方法,就是对视频截图、创意图等图片特征的提取,然后与其它特征一起,做CTR预估。
我们在做短视频推荐中,也尝试利用了CNN算法,抽取预览图片的深层特征,然后与其他特征一起,做CTR预估使用,但实测效果并不是特别明显。
再者,基于CNN提取的图片特征,本身就可以做图片之间的相似度,然后做item based推荐。这种方法推荐出来的一般称为“相同风格”的视频,典型的如下图所示:
图5 一组基于CNN特征获取的相似截图
像美团就使用到CNN等技术,提取图片深度特征,对图片进行质量评分。其主要使用AlexNet去提取图片的高层语义描述,学习美感、可记忆度、吸引度、品类等High Level特征,并补充人工设计的Low Level特征(比如色彩、锐度、对比度、角点)。在获得这些特征后,训练一个浅层神经网络对图像整体打分。
美团整体的推荐系统算法框架和图像特征提取框架如下面两图所示:
图6 美团推荐算法框架,原载于“美团点评技术团队”网站
图7 美团图片深度特征提取,原载于“美团点评技术团队”网站
Youtube的推荐系统框架
YouTube作为Google自家的产品,其推荐系统自然是样板案例。YouTube推荐系统也经典的两层结构,其是由两个神经网络组成的,一个用于候选生成,一个用于排名。其具体的深度学习算法框架如下图所示:
图8 YouTube推荐算框架,图片原载于Deep NeuralNetworks for YouTube Recommendations ,RecSys2016
从上图中可以看到,YouTube主要使用了传统的用户的流量、评分等行为,包括序列信息等,并没有提到到截图等新特征。
短视频推荐实战课
最后简单说下我们的短视频推荐实战课。简而言之,我们的希望构建一个机器学习、深度学习的“朱日和”战场,涵盖完整的线上产品、真实的数据、各类算法落地等。以同学们为中心,把所学的各种理论知识都能实际的coding出来,反映的真实的产品中,真正做到实践出真知。
-END-
●本文编号493,以后想阅读这篇文章直接输入493即可
●输入m获取文章目录
算法与数据结构
更多推荐《18个技术类公众微信》
涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。