当前位置:   article > 正文

【算法应用】Word2vec提取视频特征_获取视频数据的表示向量

获取视频数据的表示向量

摘要

从视频的内容属性中提取特征,是较为常见的方法。但这依赖于视频有很好的属性标注,即给视频维护一套丰富且精准的标签系统。本文介绍用Word2vec算法,不依赖视频标签,仅从用户观看历史中即可提取出很好的视频特征。

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(“猫粮”) Vec(“狗”) - Vec(“狗粮”) 这样的效果。这就是富含语义的表现。

Word2vec算法原理

Word2vec模型,包括CBOW模型和SG模型,它们都是只包含一个隐含层的三层神经网络模型。因为CBOW的思想是“根据上下文,来预测单词”,而SG则是“根据单词,来预测上下文”,这两者在结构上刚好相反。
图一、CBOW模型结构
图二、SG模型结构
其中,V代表词汇表中单词的个数,N为隐含层的维度,C则是“词袋”中单词的个数,也即用多少个单词来预测接下来的单词。WV×N为输入层到隐含层之间的权重矩阵WV×N*为隐含层到输出层之间的权重矩阵。输入层到隐含层的激活函数,是简单的线性函数;隐含层到输出层的激活函数,是softmax函数。

下面以CBOW为例,说明其迭代更新过程;对SG模型,结论可以类推。在CBOW模型中,当上下文只有一个单词时,最为简单。其结构相应的变为
图三、One-word context CBOW模型结构

隐含层计算方式如下式(1):

hi=x1w1i+x2w2i++xVwVi=k=1Vxkwki(1)

输出层的输入数据计算方式如下式(2):

uj=w1jh1+w2jh2++wNjhN=k=1Vwkjhk(2)

输出层计算方式如下式(3):

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/997211?site
推荐阅读
相关标签
  

闽ICP备14008679号