正文
我们算法优化的目标是什么?优化的核心目标也是两个,分别对应社区和电商。社区的目标是用户增长,我们衡量的是在社区的深度交互,这是一个间接的,但是离我们更近的一个 metrics(指标)。对于电商我们要做到的是驱动盈利,福利社的加车购买,是我们关注的指标。机器学习大概是从去年年初开始在小红书慢慢地发展起来,截止到去年年底,整体效果还不错,我们需要达到的深度交互,以及电商的购买转换,都有非常不错的提高。
刚才介绍了小红书和我们算法要解决的问题,现在举个具体的例子介绍怎么理解小红书的内容。刚才提到五千万用户的九百万篇推荐笔记,是我们最重要的内容,我们花了非常大的精力来理解内容。
首先我们看一下这些内容大概是什么样子。很简单,是图文并茂的。用户产生的内容图片多,而且质量非常高,同时是非常详细的种草文(推荐物品的文章),这个文章正常情况下不是横过来的,横过来是为了让大家看到这个文章很有长度,写得非常仔细,吸引眼球,而且有感情有干货。
因此需要把文本和图片结合起来去理解文章内容。我们通过机器学习把笔记的主题分到人工标定的上百个主题里。我们用 CNN(卷积神经网络)提取图像特征,用 Doc2Vec(文本到向量模型)提取文本特征,通过一个简单的分类器就能把用户笔记分到主题中。接下来具体介绍下图像特征的提取。
我们用的是卷积神经网络。
卷积神经是深度神经网络,层次比较多,是 feedforward 神经网络。简单解释下它的原理,它模拟了我们大脑处理图像的过程。什么意思呢?如果我们选一个稍浅的神经网络,把这个多层神经网络每一层的输出打出来,那我们大概就能够了解这个神经网络在做什么。最下面的输入层是我们图像的像素,第一层、第二层的输出我们可以看到这个神经网络能够提取出一些边缘的信息,再往上四五层的时候,它把边缘的信息组合起来了,我们会看到转角、圆圈还有网格这样一些形状上局部的信息,再往上到第六第七第八层的时候,就能看到一些整体的概念被抽象出来了。经过这个卷积神经网络层层的抽取和抽象,在像素之上会形成概念最有用的一些特征,这个就是我们拿到的图像的特征。通过这个卷积神经网络我们把一张图变成一个 4096 维的向量,这个向量是这个图在高维空间里的一种表示,它是有空间意义的,这个意义是指相似的图片,或者说图片上的相似特征在这个空间里是距离接近的。
我们这一套神经网络是在 Caffe Model Zoo 的很多已经预先训练好的模型里选出来的一个 VGG 的 16 层神经网络,它已经在 ImageNet 上训练好了,我们不需要花太多时间去训练它,我们只是标注了少量小红书上的图片,把它的主题标上去,然后我们再 fine-tune 这个神经网络,最后就达到我们期望的效果。
讲完了图像,我再讲一下文本的向量表示,文本的向量表示有非常多种,其中一个比较有名的向量表示叫做 Word2Vec,是 Google 提出来的,它的原理非常简单,它其实是一个非常浅的浅层神经网络,根据前后的词来预测中间这个词的概率,优化预测的时候模型就得到了词的向量表示。同样的这个词的向量表示在空间里也是有意义的,相似的词也处在相近的空间里。这个模型比较有意思的是,把向量拿出来随时可以做向量运算,比如图中,女人到男人之间的那个指向的向量,和皇后到国王之间是一样的,所以你知道其中三个,就能算出另外一个。
把文字的 Word2Vec Model 往上提一层时就会得到文本到向量的 Doc2Vec Model。那么怎么用它呢?其实就是把小红薯,就是我们的用户的笔记上的标签,它提到的商品的品牌品类加上笔记本身的内容一起放到这个模型中,我们就得到了一个描述笔记的向量,然后再提取。这个模型也是开源的,我们也直接拿来用就可以了。