其实从 Netflix 以后大家就已经意识到矩阵分解是一种很有效的建模方式,它的基本原理就是把用户作为一个维度,内容作为一个维度,然后建一个二维的矩阵,把这个二维的矩阵找到一个低维的表示,这可能只有 50 或者 100 维,这个个数还是跟内容一样,所以每个内容有一个 100 维的小的表示,每个用户也有一个 100 维的小的表示。这两个作为一个点击,可以恢复出原来的东西。 为什么这样就能工作呢?详细讲解请见知乎 Live Nade - 深度学习推荐引擎 我们下一代的推荐引擎是用深度学习的方法,具体的方法叫做 Nade,它其实原来是在文本的 top model 里面的一种方法。我们有一个专家是跟着 Nade 的发明人做博士毕业的,所以他对 Nade 特了解,他来到我们公司之后,就发明了 CF-NADE。这是我们 Hulu 自己发明的一种方法。 其实这个原理也不是很难,就是我们把这个 Nade 看成一个黑箱,基本的想法就是用 Nade 来训练一个用户的表示和一个内容的表示,但是这个表示可以不像矩阵分解那么死,因为它结合的时候不再是一个代数的点程,而是基于一个神经网络的,实际上带来了更多的自由度。 基于内容的推荐 我们现在在做的一个事,是去了解一个视频里每一帧他大概的情感是什么?你要说很复杂的情感现在也很难准确辨别,所以我们做的方法是先做一个 Face Detector,然后再把脸上的表情识别出来,现在也有一些很多现成做表情识别的东西。我们认为表情代表的场景的情感,大家可以看到下面有一些结果。
我们还会借助视频和音频相融合的方式。它有三套方法,一套是基于 CNN 的,一套是基于 RNN 的,还有一套是基于 SVM 的,一共是三套方法,我们会在三套方法中做一些融合。 如何说服用户? 刚刚讲的所有模型,其实最后归根结底是「做展示」,无论是用货架的方法来展示,还是用自动播放的方法来展示。但是这个展示的有效性很大程度上是取决于你有没有打动用户,你要给她一个很好的理由。我们试图给出一些推荐的理由,比如我们给这个用户推了这个剧,我们会说是因为你看过他的前传,这样的话用户会觉得,你确实是有道理的。还有一个是增强用户对系统的信任,如果你的系统是黑盒,扔出来一堆剧说看吧,那估计很难说服用户。 大家可以回想一下,在录像店的体验,如果是那种小店的话,你跟那个店主特别熟,他给你推一个张媛又拍了一个新片你可以看。你会知道,他真的知道你了解你,给你推这个东西,我们想达到的就是让计算机能够被用户所信任。 当然大家可能觉得这个跟人编辑还是有很大的差距,所以我们还在继续努力。这里面也用到一些基本 CNN 的东西。所以深度学习在我看来就是一个工具,你可以用来做很多的事,掌握好这个工具,灵活性更大。 Hulu 的直播新尝试 刚才大部分讲视频点播的场景,其实 HuLu 今年 6 月会做一个新功能:直播,这是一个很大的 feature,j2直播,我们和美国四大电视台都有合作,直接把直播内容拿过来。每一个都是电视台正在播的节目,它跟歌华有很大的区别,你可以做搜索,你可以根据类别来分,已经完全把频道的概念淡化了,但你还是可以根据频道做一些浏览,并且可直接浏览,比如我想看现在所有的动作片,不管是哪个台播的,都可以直接看到。 我们的愿景是说,到了互联网时代,我们想要把电视台的概念完全透明化。它只是这个时间在播这个内容,对于这些内容应该怎样重新组合,完全应该是我们个性化推荐算法的责任,我们来给每个用户定制一个电视台,这是我们的愿景。 更多关于「直播」这个场景下,需要考虑的因素、需求、以及正在尝试使用的研究方法,可以移步「极客公开课知乎 Live」>>>> 关于冷启动 讲到冷启动,我们思路是在点播里,SVOD 是对点播的缩写,LIVE 是直播的缩写。在点播里我们有用户行为,那么根据一定的原数据,我们把用户行为 push 到一个直播的库里。 具体的方法,我们会拿到每个剧的一些描述,包括 title、actor 是谁,我们会把这种描述用 NLP 的方法,也是用词向量的方法,把它变成一个这叫 deion embedding,然后可以度量相似度。有了相似度之后,我们可以把一个点播剧和一个直播剧的相似度,做一个关联。 (责任编辑:本港台直播) |