赞
踩
从视频的内容属性中提取特征,是较为常见的方法。但这依赖于视频有很好的属性标注,即给视频维护一套丰富且精准的标签系统。本文介绍用Word2vec算法,不依赖视频标签,仅从用户观看历史中即可提取出很好的视频特征。
Word2vec是“Word to vector”的缩写,顾名思义,是将单词转化为数值向量的一种方法。Word2vec从原理上,又分为CBOW(countinous-bag-of-words)模型和SG(skip-gram)模型。无论哪种模型,都可以给单词提供一种富含语义的刻画。等等,单词的“语义”是什么鬼?什么样的一种刻画又可以称得上是富含语义的?
这先要从单词最基本的的向量化方式,onehot表示法说起。有一个词汇表,{猫,狗,榴莲}。那么,猫可以表示为[1, 0, 0],狗=[0, 1, 0],榴莲=[0, 0, 1]。这里有一个问题,即“猫”和“狗”之间的相似度与“猫”和“榴莲”之间的相似度是一样的。但是,我们想要的表示方式,可以告诉我们“猫”和“狗”都是萌宠,它们之间应该更接近一些。”应该更接近一些”这种东西,就是以上所说的“语义”。
Word2vec得到的向量表示,可以做到:Vec(“猫”) - Vec(“猫粮”)
Word2vec模型,包括CBOW模型和SG模型,它们都是只包含一个隐含层的三层神经网络模型。因为CBOW的思想是“根据上下文,来预测单词”,而SG则是“根据单词,来预测上下文”,这两者在结构上刚好相反。
图一、CBOW模型结构
图二、SG模型结构
其中,
下面以CBOW为例,说明其迭代更新过程;对SG模型,结论可以类推。在CBOW模型中,当上下文只有一个单词时,最为简单。其结构相应的变为
图三、One-word context CBOW模型结构
隐含层计算方式如下式(1):
输出层的输入数据计算方式如下式(2):
输出层计算方式如下式(3):
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。