【算法应用】Word2vec提取视频特征

本文介绍了如何利用Word2vec算法从用户观看历史中提取视频特征,无需依赖视频标签。Word2vec通过CBOW和skip-gram模型将单词转化为富含语义的向量,解决了一词多义问题。文章对比了spark和tensorflow平台上Word2vec的实现,并推荐使用tensorflow进行特征提取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要

从视频的内容属性中提取特征,是较为常见的方法。但这依赖于视频有很好的属性标注,即给视频维护一套丰富且精准的标签系统。本文介绍用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 V 代表词汇表中单词的个数, N 为隐含层的维度, C C 则是“词袋”中单词的个数,也即用多少个单词来预测接下来的单词。 W V × N 为输入层到隐含层之间的权重矩阵 WV×N W V × N ′ *为隐含层到输出层之间的权重矩阵。输入层到隐含层的激活函数,是简单的线性函数;隐含层到输出层的激活函数,是softmax函数。

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

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

hi=x1w1i+x2w2i++xVwVi=k=1Vxkwki(1) h i = x 1 w 1 i + x 2 w 2 i + ⋯ + x V w V i = ∑ k = 1 V x k w k i ( 1 )

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

uj=w1jh1+w2jh2++wNjhN=k=1Vwkjhk(2) u j = w 1 j ′ h 1 + w 2 j ′ h 2 + ⋯ + w N j ′ h N = ∑ k = 1 V w k j ′ h k ( 2 )

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

yj=p(wjwI))=exp(uj)Vjexp(uj)=exp(w1jh1+w2jh2++wNjhN)exp(w11h1++wN1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值