太阳城集团

  • / 14
  • 下载费用:30 金币  

基于视频主题相似度的视频推送方法.pdf

摘要
申请专利号:

CN201510494284.9

申请日:

2015.08.12

公开号:

CN105069121A

公开日:

2015.11.18

当前法律状态:

实审

有效性:

审中

法律详情: 著录事项变更IPC(主分类):G06F 17/30变更事项:申请人变更前:北京暴风科技股份有限公司变更后:暴风集团股份有限公司变更事项:地址变更前:100191 北京市海淀区学院路51号首享科技大厦13层变更后:100191 北京市海淀区学院路51号首享科技大厦13层|||实质审查的生效IPC(主分类):G06F 17/30申请日:20150812|||公开
IPC分类号: G06F17/30 主分类号: G06F17/30
申请人: 北京暴风科技股份有限公司
发明人: 王佳; 毕重兴; 陈亮; 毕先春
地址: 100191北京市海淀区学院路51号首享科技大厦13层
优先权:
专利代理机构: 北京华夏正合知识产权代理事务所(普通合伙)11017 代理人: 韩登营; 张焕亮
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201510494284.9

授权太阳城集团号:

||||||

法律状态太阳城集团日:

太阳城集团2016.08.24|||2015.12.16|||2015.11.18

法律状态类型:

著录事项变更|||实质审查的生效|||公开

摘要

本发明所提供的一种基于视频主题相似度的视频推送方法,包括以下步骤:A、抓取各个视频对应的标签;B、针对所述各个视频的标签进行LDA训练,获得各个视频的主题分布;C、基于步骤B所述各个视频的主题分布构建视频-主题分布矩阵,记为矩阵A,其转置矩阵表示为矩阵B;D、将所述矩阵A、B分别作为左右矩阵,采用外积法利用Map Reduce分布式计算框架进行矩阵相乘计算,获得各个视频间的主题相似度;E、根据所述各个视频间的主题相似度选择视频进行推送。由上,实现在数量众多的视频库中较高效率的确定出各个视频相似度,以进行推送。

权利要求书

1.一种基于视频主题相似度的视频推送方法,其特征在于,包
括以下步骤:
A、抓取各个视频对应的标签;
B、针对所述各个视频的标签进行LDA训练,获得各个视频的主
题分布;
C、基于步骤B所述各个视频的主题分布构建视频-主题分布矩
阵,记为矩阵A,其转置矩阵表示为矩阵B;
D、将所述矩阵A、B分别作为左右矩阵,采用外积法利用Hadoop
MapReduce分布式计算框架进行矩阵相乘计算,获得各个视频间的
主题相似度;
E、根据所述各个视频间的主题相似度选择视频进行推送。
2.根据权利要求1所述的方法,其特征在于,步骤A后还包括
步骤:对所抓取的各个视频对应的标签进行去重处理。
3.根据权利要求1所述的方法,其特征在于,
步骤B包括:
将所抓取的各个视频标签归纳为各个视频的不同主题;
针对所述不同主题进行LDA训练,得出各个视频合适的主题个
数以及不同主题分别所占的比重值。
4.根据权利要求3所述的方法,其特征在于,所述得出各个视
频合适的主题个数包括:采用以下计算式:
p e r p l e x i t y = exp { - Σ d = 1 M log p ( W d ) Σ d = 1 M N d } ; ]]>
p ( W d ) = Π n = 1 N d Σ z = 1 K p ( z | d ) p ( w n | z ) ; ]]>
其中,M表示视频库中视频总数,Wd表示第d个视频,Nd表示
第d个视频的视频标签总数,Wn表示第d个视频标签中第n个词,K
表示第d个视频的视频主题总数,z表示第d个视频的第z个视频主
题;
计算结果perplexity值与所述主题个数的合适程度成反比。
5.根据权利要求1~4任一所述的方法,其特征在于,步骤D包
括:
D1、所述矩阵A表示为:对于矩阵A中各元素的列位置序号记
为key,其对应的value值标记为L-movieid-value形式;
所述矩阵B表示为:对于矩阵B中各元素的行位置序号记为key,
其对应的value值标记为R-movieid-value形式;
L、R分别表示左、右矩阵;movieid表示左矩阵行位置及右矩阵
列位置;value值表示各元素所对应的不同主题所占的比重值;
将所述矩阵A、B分别按列、行分段;所述分段方式为:将视频
的总数进行因数分解表示为3个因数,记为f1、f2及f3,每个分段包
含f1个值,共有f2*f3个分段;
分段后,对各个分段进行标记,左矩阵第n列第j个分段表示为:
jL-n-1#f2*f3-value_lstn∈(1,2,...,f2*f3);
右矩阵第n行第j’个分段表示为:
j'R-1#f2*f3-n-value_lstn∈(1,2,...,f2*f3);
1#f2*f3表示各元素拷贝份数的序列号,1表示开始序列号,f2*f3
表示拷贝总数;value_lst表示在该分段内各视频主题所占的比重值的
列表;
D2、对分段的矩阵A、B执行HadoopMapReduce的分段拷贝任
务时,执行f2轮HadoopMapReduce的拷贝任务,每轮HadoopMap
Reduce将Map每条输入记录拷贝f3次;
完成拷贝任务时,左、右矩阵中的元素的记录样式分别表示为:
jL-n-r*f3#(r+1)*f3-value_lstn∈(1,2,...,f2*f3);
j'R-r*f3#(r+1)*f3-n-value_lstn∈(1,2,...,f2*f3);
r表示当前已完成拷贝的轮数;
D3、把要进行相乘的具有对应位置标记的左、右矩阵的两条记录
合并为一条记录,
合并后左、右矩阵元素的记录为:
n-j-j'element_list-L,n,j-element_list-R,n,j';
element_list-L,n,j表示左矩阵中第n列中的第j个分段中各元
素的集合,element_list-R,n,j’表示右矩阵中第n行中的第j’个分
段中各元素的集合;
D4、将D3中的表达式各条记录中左矩阵element_list元素集合
中的各个元素依次与右矩阵element_list元素集合中的各个元素相乘;
左矩阵中各个元素的key表示为movieid(L),即该元素在左矩阵
的具体位置;右矩阵中各个元素的key表示为movieid(R);value值记
为两元素的乘积,从而形成Reduce阶段的key/value对输出;
在Reduce阶段,将具有相同key的记录汇总,得到矩阵A、B乘
积矩阵中的每一个元素,所述每个元素为视频间的主题相似度值。

说明书

基于视频主题相似度的视频推送方法

技术领域

本发明涉及视频推荐技术领域,特别涉及一种基于视频主题相似
度的视频推送方法。

背景技术

主题模型(LDA,LatentDirichletAllocation)是一种非监督机器学
习技术,以下称为LDA主题模型。LDA主题模型可以用来识别大规
模文档集或语料库中潜藏的主题太阳城集团。它采用了词袋的方法,这种方
法将每一篇文档视为一个词频向量,从而将文本太阳城集团转化为了易于建
模的数字太阳城集团。

对于视频,基于其不同的名称、类型、参与的演员或导演、视频
内容等均可视为不同的文档集或语料库,从而针对视频库,基于LDA
主题模型训练,则可以生成视频库中所有视频的视频-主题分布。

当形成视频-主题分布后,当用户看某一视频时,便可依据不同视
频间的主题的相似性,为用户推荐其他视频内容。如何在数量众多的
视频库中寻找出与目前正在观看视频主题相似性的视频,是一亟待解
决的问题。

现有方法中,采用在Hadoop集群上进行视频间的主题相似度计
算。通过计算各视频主题向量间的余弦值,即可得到视频相似度,具
体公式如下:

S i m ( m 1 , m 2 ) = c o s ( m 1 , m 2 ) = m 1 · m 2 | m 1 | * | m 2 | - - ( 1 ) ]]>

式中,m1及m2表示任意两个视频,式中向量组成部分是该视频
所拥有的各主题所占的比重,且视频向量模长为1。视频m1的主题向
量集合表示为(m11、m12、……m1k),视频m2的主题向量集合表示
为(m21、m22、……m2k)。

上述向量余弦值计算可简化为向量内积计算。假设将视频主题训
练结果的视频-主题分布看作是M*K维矩阵,其中M指业务视频库总
视频数,K指视频主题模型训练得到最优主题个数,则此矩阵可以视
为是有M个K维向量组成。

A = a 11 a 12 ... a 1 K a 21 a 22 ... a 2 K ... ... ... ... a M 1 a M 2 ... a M K B = a 11 a 21 ... a M 1 a 12 a 22 ... a M 2 ... ... ... ... a 1 K a 2 K ... a M K - - ( 2 ) ]]>

假设A矩阵是M*K维矩阵,B矩阵为K*M维矩阵,矩阵中的
a11~a1k表示第一视频的主题分布,即第一视频对应的各主题向量值,
k表示各视频的视频主题数量;a21~a2k表示第二视频的主题分
布;……;aM1~aMk表示第M视频的主题分布。

C矩阵为A与B矩阵乘积。则C矩阵中元素可表示为:

c i j = Σ k = 1 K a i k b kj i , j ( 1 , 2 , ... , M ) - - ( 3 ) ]]>

cij即为A矩阵第i行向量与B矩阵第j列向量内积。

根据上文中视频相似度计算公式可得cij值即
为视频mi与视频mj相似度值。可见,视频库中任意两视频相似度计算
可转化为两个矩阵的乘法计算。

在实际业务场景下,视频规模往往很大,即M值很大,视频主
题模型训练得到的主题数也很大,即K值很大,因此常用的单机大规
模矩阵相乘计算方法耗费太阳城集团和空间都很大。

另外,还有一种算法是分块矩阵乘法计算,其过程为:

将A矩阵划分为N1*S1的等大小矩阵,B矩阵为S1*N1的等大
小矩阵,则有:

A = A 11 ... A 1 S ... ... A N 1 A N S B = A 11 ... A N 1 ... ... A 1 S A N S - - ( 4 ) ]]>

C i j = Σ k = 1 S A i k B k j i N , j N - - ( 5 ) ]]>

由上,对于分块矩阵乘法,对于不同的矩阵规模如何根据机器内
存大小指定分块策略较不易,且不同分块之间的运算及逻辑控制很繁
琐,由于策略的复杂和运行逻辑控制的繁琐,也导致运行效率不高。

若采用HadoopMapReduce分布式计算框架进行矩阵相乘计算,
能有效减少计算耗时及耗费空间。

HadoopMapReduce分布式计算框架包含Map和Reduce两个阶
段。Map阶段以key/value对作为输入,MapReduce框架会自动将
这些中间数据按照key值进行聚集,且key值相同的数据被统一交给
Reduce阶段处理。Reduce阶段产生另外一系列key/value对作为最终
输出写入HDFS(Hadoop分布式文件系统)。

如何利用HadoopMapReduce分布式计算框架较高效率的完成基
于主题模型的大规模视频相似度计算,或者说如何实现在数量众多的
视频库中较高效率的确定出各个视频相似度,从而进行视频推送是本
发明所要解决的技术问题。

发明内容

有鉴于此,本发明的主要目的在于,提供一种基于视频主题相似
度的视频推送方法,

包括以下步骤:

A、抓取各个视频对应的标签;

B、针对所述各个视频的标签进行LDA训练,获得各个视频的主
题分布;

C、基于步骤B所述各个视频的主题分布构建视频-主题分布矩
阵,记为矩阵A,其转置矩阵表示为矩阵B;

D、将所述矩阵A、B分别作为左右矩阵,采用外积法利用Hadoop
MapReduce分布式计算框架进行矩阵相乘计算,获得各个视频间的
主题相似度;

E、根据所述各个视频间的主题相似度选择视频进行推送。

由上,实现在数量众多的视频库中较高效率的确定出各个视频相
似度,以进行推送。

可选的,步骤A后还包括步骤:对所抓取的各个视频的标签进行
去重处理。

由上,使得各个视频的标签唯一,从而可以提高标签的准确性,
避免重复。

可选的,步骤B包括:

将所抓取的各个视频标签归纳为各个视频的不同主题;

针对所述不同主题进行LDA训练,得出各个视频合适的主题个
数以及不同主题分别所占的比重值。

可选的,所述得出各个视频合适的主题个数包括:采用以下计算
式:

p e r p l e x i t y = exp { - Σ d = 1 M log p ( W d ) Σ d = 1 M N d } ; ]]>

p ( W d ) = Π n = 1 N d Σ z = 1 K p ( z | d ) p ( w n | z ) ; ]]>

其中,M表示视频库中视频总数,Wd表示第d个视频,Nd表示
第d个视频的视频标签总数,Wn表示第d个视频标签中第n个词,K
表示第d个视频的视频主题总数,z表示第d个视频的第z个视频主
题;

计算结果perplexity值与所值与所述主题个数的合适程度成反比。

可选的,步骤D包括:

D1、所述矩阵A表示为:对于矩阵A中各元素的列位置序号记
为key,其对应的value值标记为L-movieid-value形式;

所述矩阵B表示为:对于矩阵B中各元素的行位置序号记为key,
其对应的value值标记为R-movieid-value形式;

L、R分别表示左、右矩阵;movieid表示左矩阵行位置及右矩阵
列位置;value值表示各元素所对应的不同主题所占的比重值;

将所述矩阵A、B分别按列、行分段;所述分段方式为:将视频
的总数进行因数分解表示为3个因数,记为f1、f2及f3,每个分段包
含f1个值,共有f2*f3个分段;

分段后,对各个分段进行标记,左矩阵第n列第j个分段表示为:

jL-n-1#f2*f3-value_lstn∈(1,2,...,f2*f3);

右矩阵第n行第j’个分段表示为:

j'R-1#f2*f3-n-value_lstn∈(1,2,...,f2*f3);

1#f2*f3表示各元素拷贝份数的序列号,1表示开始序列号,f2*f3
表示拷贝总数;value_lst表示在该分段内各视频主题所占的比重值的
列表;

D2、对分段的矩阵A、B执行HadoopMapReduce的分段拷贝任
务时,执行f2轮HadoopMapReduce的拷贝任务,每轮HadoopMap
Reduce将Map每条输入记录拷贝f3次;

完成MapReduce的拷贝任务时,左、右矩阵中的元素的记录样
式分别表示为:

jL-n-r*f3#(r+1)*f3-value_lstn∈(1,2,...,f2*f3);

j'R-r*f3#(r+1)*f3-n-value_lstn∈(1,2,...,f2*f3);

r表示当前已拷贝的轮数;

D3、把要进行相乘的具有对应位置标记的左、右矩阵的两条记录
合并为一条记录,

合并后左、右矩阵元素的记录为:

n-j-j'element_list-L,n,j-element_list-R,n,j';

element_list-L,n,j表示左矩阵中第n列中的第j个分段中各元
素集合,element_list-R,n,j’表示右矩阵中第n行的第j’个分段中
的各元素集合;

D4、将D3中的表达式各条记录中左矩阵element_list元素集合
中的各个元素依次与右矩阵element_list元素集合中的各个元素相乘;

左矩阵中各个元素的key表示为movieid(L),即该元素在左矩阵
的具体位置;右矩阵中各个元素的key表示为movieid(R);value值记
为两元素的乘积,从而形成Reduce阶段的key/value对输出;

在Reduce阶段,将具有相同key的记录汇总,得到矩阵A、B乘
积矩阵中的每一个元素,所述每个元素为视频间的主题相似度值。

附图说明

图1所示为本发明流程图;

图2所示为迭代拷贝任务原理示意图;

图3所示为实现本发明装置的原理示意图。

具体实施方式

为克服现有技术存在的缺陷,本发明提供一种基于视频主题相似
度的视频推送方法,实现在数量众多的视频库中寻找出与目前正在观
看视频主题相似性最高的视频,以进行推送。

如图1所示,本发明包括以下步骤:

S10:抓取视频的名称。

针对现有视频数据库中所存储的视频,获取各视频的名称。所获
取的名称可按照首字母读音进行排序。

S20:依据视频名称抓取对应视频的各个标签,存入视频标签数
据库。

通过网络爬虫程序,根据视频名称依次从互联网视频网站抓取对
应的各个视频标签,并将视频标签存入视频标签数据库。其中,由于
视频标签从不同的视频网站抓取,因此需在视频标签存入数据库时要
进行视频标签唯一性甄别,将重复的视频标签进行去重处理。

举例来说,某视频为一场足球比赛,其视频名称为“2014-15赛
季欧冠决赛_尤文图斯VS巴塞罗那”,该视频被不同的视频网站设置
有不同的标签,如,包括:“欧冠”、“尤文图斯”、“巴塞罗那”、
“梅西”、“皮尔洛”、“哈维”、“莫拉塔”等等,则本步骤依次
将上述标签从各视频网站抓取并进行去重存储。

S30:基于视频标签数据库,进行LDA主题模型训练,形成视频
-主题库。

本步骤的目的在于,基于与视频相关的各个视频标签对视频库进
行主题归类训练,得到视频库中由视频标签生成视频名称的规律,也
即视频由哪些主题组成,主题由哪些标签组成,即视频-主题库。例
如,上述视频标签都可归类于“足球”主题;“欧冠”、“尤文图
斯”、“巴塞罗那”可归类于“欧洲冠军联赛”主题;“哈维”、“皮
尔洛”可归类于“球星”主题等等。

为了便于后面的计算,预先对所有视频设定相同数量的主题个数
K。在对各视频进行主题模型训练的过程中,对所建立的主题模型的
优劣进行评估,即确定视频的各个主题所占的比重值,所述比重值在
后续的外积法计算中以向量值表示。本发明中,根据模型的perplexity
值判定模型优劣,perplexity值越小则模型越好,表示其所对应的视
频主题模型与所述视频标签越契合。在训练过程中,计算对应的模型
的perplexity值,最终选取perplexity值最小的模型作为最优模型,对
应的K值即为最合适的主题个数。其中,模型的perplexity值计算公
式如下:

p e r p l e x i t y = exp { - Σ d = 1 M log p ( W d ) Σ d = 1 M N d } - - ( 6 ) ]]> p ( W d ) = Π n = 1 N d Σ z = 1 K p ( z | d ) p ( w n | z ) - - ( 7 ) ]]>

其中,M表示视频库中视频总数,Wd表示视频库中第d个视频,
Nd表示第d个视频的视频标签总数,Wn表示第d个视频标签中第n
个词,K表示第d个视频的视频主题总数,z表示第d个视频的第z
个视频主题。

S40:根据LDA主题模型训练结果记录的内容存储各视频的主题
分布,即视频由哪些主题组成,以及视频在各主题所占的向量值。

仍以上述足球比赛的视频举例来说,该视频包括三个主题,即:
“足球”、欧洲冠军联赛”和“球星”,其中“足球”的向量(即该
主题在对应视频中所占的比重)为0.5;“欧洲冠军联赛”的向量为
0.3;“球星”的向量为0.2。

S50:基于所确定出的各个视频的主题分布,进行视频间相似度
计算。

由背景技术所述,视频库中任意两视频相似度计算可转化为两个
矩阵乘法计算,且可采用HadoopMapReduce分布式计算框架进行矩
阵相乘计算。通过现有技术中对的分析,采用内积计算方法或分块矩
阵乘法存在着运算量大或运算及逻辑控制繁琐的问题,基于此,本发
明基于外积法利用HadoopMapReduce进行大规模矩阵相乘进行视频
间相似度计算,

其中,外积法计算过程为:

a 11 a 21 ... a M 1 × a 11 a 21 ... M 1 = a 11 * a 11 a 11 * a 21 ... a 11 * a M 1 a 21 * a 11 a 21 * a 21 ... a 21 * a M 1 ... ... ... ... a M 1 * a 11 a M 1 * a 21 ... a M 1 * a M 1 - - ( 8 ) ]]>

a 12 a 22 ... a M 2 × a 12 a 22 ... M 2 = a 12 * a 12 a 12 * a 22 ... a 12 * a M 2 a 22 * a 12 a 22 * a 22 ... a 22 * a M 2 ... ... ... ... a M 2 * a 12 a M 2 * a 22 ... a M 2 * a M 2 - - ( 9 ) ]]>

a 1 K a 2 K ... a M K × a 1 K a 2 K ... a M K = a 1 K * a 1 K a 1 K * a 2 K ... a 1 K * a M K a 2 K * a 1 K a 2 K * a 2 K ... a 2 K * a M K ... ... ... ... a M K * a 1 K a M K * a 2 K ... a M K * a M K - - ( 10 ) ]]>

C = a 11 * a 11 + a 12 * a 12 + ... + a 1 K * a 1 K a 11 * a 21 + a 12 * a 22 + ... + a 1 K * a 2 K ... a 11 * a M 1 + a 12 * a M 2 + ... + a 1 K * a M K a 21 * a 11 + a 22 * a 12 + ... + a 2 K * a 1 K a 21 * a 21 + a 22 * a 22 + ... + a 2 K * a 2 K ... a 21 * a M 1 + a 22 * a M 2 + ... + a 2 K * a M K ... ... ... ... a M 1 * a 11 + a M 2 * a 12 + ... + a M K * a 1 K a M 1 * a 21 + a 12 * a M 2 + ... + a M K * a 2 K ... a M 1 * a M 1 + a M 2 * a M 2 + ... + a M K * a M K - - ( 11 ) ]]>

由上可知,A矩阵中每一列的每个元素与B矩阵中每一行的每个
元素依次相乘,计算结果分别是cij的组成部分,aik*ajk是独立的可以
由不同计算节点运算,基于HadoopMapReduce模型最终只需要根据
key(i,j)将运算结果进行汇总相加即可得到cij。故,本发明选择基于外
积法利用HadoopMapReduce进行大规模矩阵相乘进行视频间相似度
计算,具体的,本步骤S50包括下述子步骤:

S501:将视频主题模型进行训练得到的各视频的主题分布表示为
如上公式(2)所示出的互为转置矩阵的A、B两个矩阵,且设定A
矩阵为相乘时的左矩阵,B矩阵为相乘时的右矩阵。

如上所示,A、B互为转置矩阵。矩阵中的各元素a11~a1K表示
第一视频的主题分布,即第一视频对应的各主题向量值;a21~a2K表
示第二视频的主题分布;……;aM1~aMK表示第M视频的主题分布。
即Map阶段所接收的key是视频的各主题序号,value值是视频对应
各主题的向量值。

为保证左矩阵第n列元素与右矩阵第n行元素分布在同一个计算
节点,以便于后面进行矩阵乘积运算,矩阵可以按以下方式表示:

对于视频的各主题的序号记为key(即表示在第几列),其对应
的value值(向量值)标记为L-movieid-value形式,组成A矩阵。

其中,L表示左矩阵;movieid表示该元素在矩阵中的行位置,由
此,可以根据对应行(例如第一行表示属于第一个视频,第M行表
示属于第M个视频)和对应列(第一列表示对应第一个主题,对应
主题第一个序号,第K列表示对应第K个主题,对应主题第K个序
号)确定出该value值在左矩阵中的具体位置;value即表示该视频的
该主题的向量值。在B矩阵中,视频的各主题的序号同样记为key(即
表示在第几行),其对应的value值标记为R-movieid-value形式,组
成B矩阵。

S502:确定矩阵的分段拷贝策略。

由前述步骤可获知视频总数M,将M进行因数分解表示为3个
因数,记为f1、f2及f3。如果M因数分解得到因数个数小于等于2,
则其他因数用1代替。在利用HadoopMapReduce分布式计算框架进
行矩阵相乘计算时,则设置矩阵分段拷贝策略为:使矩阵的每个分段
包含f1个元素,共有f2*f3个分段;在进行分段拷贝时,拷贝f2轮,每
轮拷贝f3份。

下面对设置分段拷贝策略的原因进行介绍:

当视频数量较多(即M值较大)时,导致矩阵规模较大,直接
左矩阵(即A矩阵)一列每个元素与右矩阵(即B矩阵)中一行中
所有元素依次相乘,计算效率会较低。故本步骤采用左矩阵元素按列
分段,右矩阵元素按行分段。

根据矩阵相乘外积法的算法思想,需要将两个矩阵中的分段一一
对应相乘。假设每个分段包含w个元素,共有个n分段。由于左矩阵
中第k列第i分段需要与右矩阵中第k行所有分段相乘,则左矩阵第
i分段对应HadoopMapReduce的拷贝任务需要拷贝n份;同理右矩阵
第j分段需要拷贝n份。分段以后,相比于整行或整列拷贝,可以提
高拷贝效率。

进一步的,当M值较大时,左右矩阵每个分段需要拷贝份数都
很大,如果采用一轮HadoopMapReduce完成所有分段拷贝任务,则
每个Map对每行记录都需要执行很多遍拷贝工作,大大延长了Map
执行太阳城集团,同时也没有使尽可能多的计算节点参与计算。因此,可以
设置进行多轮MapReduce最终完成所有分段拷贝任务并将拷贝任务
分发到尽可能多的计算节点(如机器)上。

假设进行r轮拷贝,每轮拷贝n/r份,每完成一轮拷贝任务,下一
轮拷贝任务所输入的数据比上一轮拷贝任务输入数据膨胀n/r倍。相
应此轮参与运算的集群节点比上轮增加n/r倍,即拷贝任务被分发至
更多的机器,提升了拷贝效率,该迭代拷贝任务分发算法原理可参见
图2所示。

S503:根据所确定的策略对矩阵进行分段与拷贝。

根据步骤S502制定的分段与拷贝策略,左矩阵每列分为f2*f3段,
每段包含f1个元素;右矩阵每行分为f2*f3段,每段包含f1个元素。
在利用HadoopMapReduce分布式计算框架进行矩阵相乘计算时,经
过f2轮拷贝完成拷贝任务,每轮HadoopMapReduce将Map每条输
入记录拷贝f3次。

完成矩阵所述分段后,对各个分段进行标记,例如,左矩阵第n
列第j个分段表示为:

jL-n-1#f2*f3-value_lstn∈(1,2,...,f2*f3);--(12)

同理,右矩阵第n行第j’个分段表示为:

j'R-1#f2*f3-n-value_lstn∈(1,2,...,f2*f3);--(13)

其中,L、R分别表示左、右矩阵;1#f2*f3表示元素拷贝份数的
序列号,1为开始序列号,f2*f3为拷贝总数,即终止序列号;value_lst
表示在该分段内各视频主题向量值的列表。

采用上述表达式对矩阵内元素进行标记的目的在于,分别将各视
频主题向量在矩阵中所处的位置进行标记,便于后续步骤的位置确定
以及矩阵外积计算。

完成r轮拷贝任务后,左、右矩阵的元素的记录样式分别表示为:

jL-n-r*f3#(r+1)*f3-value_lstn∈(1,2,...,f2*f3)--(14);

j'R-r*f3#(r+1)*f3-n-value_lstn∈(1,2,...,f2*f3)--(15);

完成拷贝后,所拷贝的各元素仍然带有其所处位置的标签,另外
还带有拷贝的序列号,即对应为Map阶段的key。

S504:执行因子相乘的准备步骤。

元素拷贝完成后,接下来就将进入最终元素相乘的最后准备工
作。此步骤依据表达式(11),将接下来将要进行相乘的具有对应位
置标记的左、右矩阵的两条记录合并为一条记录,以便于在下一个步
骤中经过一轮的HadoopMapReduce就可以完成元素相乘。合并后左、
右矩阵元素的记录为:

n-j-j'element_list-L,n,j-element_list-R,n,j'--(16)

表达式(16)中的element_list-L,n,j表示左矩阵中的第n列第j
个分段中的各向量集合,element_list-R,n,j’表示右矩阵中的第n
行第j’个分段中的各向量集合。

S505:通过矩阵相乘得到乘积矩阵中的每一个元素,即得到视频
间相似度。

将表达式(16)中的各条记录中左矩阵element_list向量集合中
的各个元素依次与右矩阵element_list向量集合中的各个元素相乘。
相乘过程中,左矩阵中各个元素的key表示为movieid(L),即该元素
在左矩阵的具体位置;同理,右矩阵中各个元素的key表示为
movieid(R)。value值记为两元素的乘积,从而形成Reduce阶段的
key/value对输出。

在Reduce阶段,将具有相同key的记录汇总,即可得到最终乘积
矩阵中的每一个元素,即采用外积法计算矩阵A与矩阵B相乘,得
到的矩阵C中的每一个元素。

S60:根据相似度值的大小确定出相似度高的视频,并进行记录。

例如,选取每个视频相似度值前50个视频组成视频相似度记录
存入相应数据库中。

由上,则完成了视频相似度的判断以及录入数据库,该数据库即
可以用于视频推荐业务等。如,当用户观看视频A的时候,根据该数
据库的记录可确定出符合相似度要求的其他视频,向该用户进行推
送。

图3所示为实现上述方法的装置原理示意图,包括:视频标签抓
取模块31,用于从互联网抓取视频库中所有视频的内容相关标签,并
进行去重处理所述视频内容相关标签如前述步骤S20中包括的“欧
冠”、“尤文图斯”、“巴塞罗那”、“梅西”、“皮尔洛”、“哈
维”、“莫拉塔”等等。

视频标签数据库模块32,与所述视频标签抓取模块31连接,用
于存储视频库中各视频的所有标签。

LDA主题模型训练模块33,与所述视频标签抓取模块31连接,
基于与视频内容相关的标签对视频库进行训练得到主题建模。此模块
即是通过对视频库中各个视频进行训练,得到各视频中由标签生成视
频的规律,也即视频由哪些主题组成,主题由哪些标签组成,及各主
题在视频中所占比重,即步骤S40所述的向量值。

视频-主题接口模块34,与所述LDA主题模型训练模块33连接,
用于存储LDA主题模型训练模块训练结果。该训练结果指出了每个
视频的主题组成,及这些主题在视频中所占比重。

大规模视频相似度计算模块35,与所述LDA主题模型训练模块
33连接,此计算模块基于LDA主题模型训练结果视频-主题分布计算
视频相似度。

视频相似矩阵数据库模块36,与大规模视频相似度计算模块35
连接,用于存储视频间相似关系,即视频库中每两个视频间相似度。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明。
总之,凡在本发明的精神和原则之内,所作的任何修改、等同替换、
改进等,均应包含在本发明的保护范围之内。

关 键 词:
基于 视频 主题 相似 推送 方法
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:基于视频主题相似度的视频推送方法.pdf
链接地址:http://zh228.com/p-6401574.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');