一种基于模块化的流形排序的图像推荐方法转让专利

申请号 : CN201810578350.4

文献号 : CN108804650B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 简萌贾婷毋立芳

申请人 : 北京工业大学

摘要 :

一种基于模块化的流形排序的图像推荐方法涉及智能媒体计算和大数据分析技术领域。本发明首先利用CNN网络提取图片特征,根据图片特征计算图片之间的相似性,构造拓扑关系图。利用模块化的方法将所有图片分到多个子流形上,单独对子流形进行学习。对于每一个子流形,结合已有的用户图片关系和图片之间的关系,得到子流形上的图片与所有用户之间的关系,根据子流形上的关系用户图像相关性得到用于图像推荐的全局流形中的用户图像相关性。采取局部流形的策略,降低面向大规模数据的计算难度,实现基于流形排序的社交多媒体相关度计算。根据每一张图片和所有用户之间的相关度排序,给每个用户生成推荐列表。

权利要求 :

1.一种基于模块化流形排序的图像推荐方法,其特征在于,包括以下步骤:

1)、基于图片内容信息的图片相似性计算,利用计算的相似性构图将图片输入网络中提取图片特征;利用余弦相似性计算两张图片的相似性;利用计算的相似性构图;

2)、流形的模块化

第一,将每一张图片分别放在一个流形上,然后考虑每一个流形上的图片和它的邻居图片,合并到这个流形上计算模块度增量;模块度增量是将一个孤立的点放到一个模块上后,这个模块的变化;也就是就说将一张独立的图片放到一个流形上后,这个流形上的模块度会发生变化,这个变化的量即为模块度增量;找到这个独立的图片在不同的流形上的模块度增量的最大正值,将这张图片放到这个流形上,若没有正值则图片所属流形保持不变;

重复上述过程直到每一张图片所属的流形不再变化;第二,把每一张图片当成一个节点,将新的流形上的所有节点压缩成一个新的节点,所有流形节点之间的权重转化为新节点的环的权重,流形之间的边权重转化成新节点之间的边权重;重复第一步,直到整个图的模块度不再发生变化;这就将所有的图片分布到了不同的流形上;将每一个流形上的图片分别进行流形排序;

3)、流形排序算法

流形排序的算法采用拉普拉斯图映射方法,基于图像间的拓扑流形分布,利用其几何结构中隐含的局部信息相关性,传播已知的用户与部分图像的相关度,获取所有图像对相关用户的相关度估计;

4)、根据相关度估计生成推荐列表

根据每一个流形上计算得到的用户图像之间的相关度,得到全部的用户和图像之间的相关度;根据每一张图片和用户之间的相关度排序,生成推荐列表。

2.根据权利要求1所述的方法,其特征在于,步骤3)、流形排序算法具体如下:所有图片的集合X={x1,x2,…,xn},用户集合U={u1,u2,…,uc},对应的拓扑关系图为W={wij}n×n,图像的用户先验Y=[yij]n×c,其中yi,j表示图像i与用户j的先验相关度,无先验则对应位置为0;

在分析构造拓扑流形W={wij}n×n的基础上,利用先验Y=[yij]n×c,建立流形排序模型,估计信息相关度F=[fij]n×c,其中,fij表示通过流形传播的图像i与用户j的相关度,即用户j对图像i的感兴趣程度;根据流形平滑准则,依流形分布关系,建立流形学习模型如下:其中, 表示Frobenious范数,tr(*)是矩阵的迹,L是W={wij}n×n的拉普拉斯矩阵,β是平衡参数;其解析解表示为

* ‑1

F=((1‑β)I+βL) Y

*

这里,I为单位矩阵,F=[fij]n×c即为优化上式收敛所得的图像X={x1,x2,…,xn}与用户U={u1,u2,…,uc}中基于流形排序的相关度估计结果。

3.根据权利要求1所述的方法,其特征在于,步骤2)、流形的模块化具体如下:首先将每一张图片分别放在一个流形上,然后考虑每一个流形上的图片和它的邻居图片,即相似性高的图片,合并到这个流形上计算模块度增量;模块度增量是将一个孤立的点放到一个模块上后,这个模块的变化;也就是就说将一张独立的图片放到一个流形上后,这个流形上的模块度会发生变化,这个变化的量即为模块度增量;模块度增量按下式进行计算;

其中ki,in是一个流形上的图片中与图片xi有连接关系的边的权重之和;ki表示所有与图片xi有连接关系的边的权重之和;∑in表示一个流形上的图片的所有的边的权重之和;

∑tot表示一个流形上的图片与图片之间的边的权重之和,m表示所有的边的权重之和;

然后找到这个独立的图片在不同的流形上的模块度增量的最大正值,将这张图片放到这个流形上;即找到使得ΔQ最大的那张邻居图片,且满足maxΔQ>0,则将这张图片分配到使得ΔQ最大的那张邻居图片所在的流形上;若没有取到正值,则该图片依然在其原来的流形上;重复上述过程直到每一张图片所属的流形不再变化;第二,把每一张图片当成一个节点,将新的流形上的所有节点压缩成一个新的节点,所有流形节点之间的权重转化为新节点的环的权重,流形之间的边权重转化成新节点之间的边权重;重复第一步,直到整个图的模块度不再发生变化;这就将所有的图片分布到了不同的流形上;分别对每一个流形上的图片进行流形排序。

说明书 :

一种基于模块化的流形排序的图像推荐方法

技术领域

[0001] 本发明涉及智能媒体计算和大数据分析技术领域,特别是涉及一种图片推荐方法。具体涉及一种利用用户图片之间的交互关系和图片内容信息用模块化的流形排序的算
法来进行图片推荐的方法。

背景技术

[0002] 社交网络以及以社交为基础的互联网应用发展迅猛,由此产生了个性化推荐的应用需求。而互联网大数据的爆发对社交网络的发展带来了挑战,社交媒体的开放环境促进
了大量多媒体信息的产生,但信息的类型杂多,内容质量参差不齐,这导致社交平台海量的
数据中80%以上的信息是冗余或无用的,用户的需求直接面临着“信息过载”带来的巨大挑
战。另一方面社交媒体的核心是用户,对用户兴趣的研究十分重要,并且用户想从大量的多
媒体数据中获得喜欢的信息也是非常困难的。因此有必要挖掘用户感知的社交多媒体信息
间的隐含的关系。
[0003] 社交多媒体是互联网快速发展的产物,顾名思义是有多媒体网络上的社交网络共同组成的,其内容包括多媒体信息,用户信息,用户与多媒体信息的交互。社交多媒体的信
息来源于用户亦服务于用户。伴随着社交网络(Facebook、Twitter、微博等)的盛行,社会化
网络引入了用户更多的社交行为数据,引入了社交网络成员之间的关系和交互行为信息。
社会化推荐通过引入这些信息能提升推荐系统的性能,更个性化的表达用户。
[0004] 社交多媒体的内容来源于用户,同时也为用户服务。可以说,社交多媒体的应用皆是直接或间接的以用户体验为核心的,而拓扑图模型鉴于其有效的网络学习能力常用于分
析各种结构。
[0005] 自从zhou等提出流形学习的概念以来,流形学习在模式识别和计算机视觉问题上提出了一系列巧妙的模型。Zhou提出基于流形先验传播的数据相似性预测模型,根据先验
信息沿流形传播的结果。对全局流形上的数据进行排序,该方法被广泛应用于推荐检索等
社交多媒体应用问题中。朱小飞通过研究相关性度量对高维稀疏查询数据处理的不足,提
出基于流形排序的查询推荐算法。该方法通过加强结构上具有代表性的查询,有效的避免
查询推荐的冗余性。Hoi等在流形学习的基础上引入主动学习,获取数据判别结构,用于图
像检索。Jian等结合用户的主动交互信息,提取图像库中图像的相关度,用于排列图像,实
现图像检索应用。可见流形学习策略能够有效的获取全局结构的判别结构,这一特性已被
应用于多种模式识别问题中,然而,考虑到流形学习中矩阵计算的负担,面对大数据的环
境,有必要研究可扩展的流形学习模式。采用局部流形子集学习的策略,可以降低面向大规
模数据的计算难度。
[0006] 社交网络中根据用户之间的交互关系将用户分成不同的社区。同一社区中的用户关系更加紧密。Vincent等提出一种模块化的方法将用户分成不同的社区。
[0007] 视觉内容越来越多的被用到了社交网络中,最近的许多研究已经说明了通过视觉内容学习用户兴趣的有效性。最近Lovato等提出通过用户收藏的图片来学习这个用户的喜
好,来给用户推荐图片。You Q等人提出了一种从用户发布的图像中推断用户属性的方法。
他们用卷积神经网络来提取图片特征,采用相似度来进一步传播图像之间的标签信息。这
也充分说明了图片的内容信息的重要性。将图片的内容信息和社交网络中的用户图片关系
相结合,可以提高推荐系统的推荐能力。
[0008] 综上所述,本发明利用社交网络上的用户图片关系,和用户收藏的图片的内容信息,结合模块化算法和流形排序的算法来给用户推荐图片。

发明内容

[0009] 本发明的目的是提供一种基于模块化流形排序的图片推荐算法。其框架如图1所示。
[0010] 1.一种基于模块化流形排序的图像推荐方法,其特征在于,包括以下步骤:
[0011] 1)、基于图片内容信息的图片相似性计算
[0012] 利用深度学习的方法提取图片的特征,首先利用自己的图片对网络进行微调。然后将图片输入网络中提取图片特征。利用余弦相似性计算两张图片的相似性;利用计算的
相似性构图。
[0013] 2)、流形的模块化
[0014] 首先将每一张图片分别放在一个流形上,然后考虑每一个流形上的图片和它的邻居图片,即相似性高的图片,合并到这个流形上计算模块度增量。模块度增量是将一个孤立
的点放到一个模块上后,这个模块的变化。也就是就说将一张独立的图片放到一个流形上
后,这个流形上的模块度会发生变化,这个变化的量即为模块度增量。找到这个独立的图片
在不同的流形上的模块度增量的最大正值,将这张图片放到这个流形上,若没有正值则图
片所属流形保持不变。重复上述过程直到每一张图片所属的流形不再变化。第二,把每一张
图片当成一个节点,将新的流形上的所有节点压缩成一个新的节点,所有流形节点之间的
权重转化为新节点的环的权重,流形之间的边权重转化成新节点之间的边权重。重复第一
步,直到整个图的模块度不再发生变化。这就将所有的图片分布到了不同的流形上。将每一
个流形上的图片分别进行流形排序。
[0015] 3)、流形排序算法
[0016] 流形排序的算法采用拉普拉斯图映射方法,基于图像间的拓扑流形分布,利用其几何结构中隐含的局部信息相关性,传播已知的用户与部分图像的相关度,获取所有图像
对相关用户的相关度估计。
[0017] 所有图片的集合X={x1,x2,…,xn},用户集合U={u1,u2,…,uc},对应的拓扑关系图为W={wij}n×n,图像的用户先验Y=[yij]n×c,其中yi,j表示图像i与用户j的先验相关度,无
先验则对应位置为0。
[0018] 在分析构造拓扑流形W={wij}n×n的基础上,利用先验Y=[yij]n×c,建立流形排序模型,估计信息相关度F=[fij]n×c,其中,fij表示通过流形传播的图像i与用户j的相关度,即
用户j对图像i的感兴趣程度。根据流形平滑准则,依流形分布关系,建立流形学习模型如
下:
[0019]
[0020] 其中, 表示Frobenious范数,tr(*)是矩阵的迹,L是W={wij}n×n的拉普拉斯矩阵,β是平衡参数。其解析解表示为
[0021] F*=((1‑β)I+βL)‑1Y
[0022] 这里,F*=[fij]n×c即为优化上式收敛所得的图像X={x1,x2,…,xn}与用户U={u1,u2,…,uc}中基于流形排序的相关度估计结果
[0023] 4)、根据相关度估计生成推荐列表
[0024] 根据每一个流形上计算得到的用户图像之间的相关度,得到全部的用户和图像之间的相关度。根据每一张图片和用户之间的相关度排序,生成推荐列表。
[0025] 本发明的具体技术方案和步骤介绍如下:
[0026] 首先利用CNN网络提取图片特征,根据图片特征计算图片之间的相似性,构造拓扑关系图。受“分而治之”理论的启发,采用基于模块化的流形排序的方法,以将整个流形作为
多个单独的子流形进行处理。也就是说,利用模块化的方法将所有图片分到多个子流形上,
单独对子流形进行学习。对于每一个子流形,结合已有的用户图片关系和图片之间的关系,
得到子流形上的图片与所有用户之间的关系,根据子流形上的关系用户图像相关性得到用
于图像推荐的全局流形中的用户图像相关性。采取局部流形的策略,降低面向大规模数据
的计算难度,实现基于流形排序的社交多媒体相关度计算。根据每一张图片和所有用户之
间的相关度排序,给每个用户生成推荐列表。
[0027] 1、基于图片内容信息的图片相似性计算
[0028] 本发明拟在社交策展网络花瓣网上进行图片推荐工作,爬取花瓣网的用户、图片、以及关系信息。在AlexNet网络上利用深度学习的方法提取爬取的图片的特征,首先利用自
己的图片对网络进行微调。花瓣网上的图片分成34类,根据图片所属的类别给图片添加标
签,用这些有标签的图片对网络进行微调。然后将图片输入网络中提取图片特征。利用余弦
相似性计算两张图片的相似性;利用计算的相似性构造拓扑关系图。
[0029] 2、流形的模块化
[0030] 首先将每一张图片分别放在一个流形上,然后考虑每一个流形上的图片和它的邻居图片,即相似性高的图片,合并到这个流形上计算模块度增量。模块度增量是将一个孤立
的点放到一个模块上后,这个模块的变化。也就是就说将一张独立的图片放到一个流形上
后,这个流形上的模块度会发生变化,这个变化的量即为模块度增量。模块度增量按下式进
行计算。
[0031]
[0032] 其中ki,in是一个流形上的图片中与图片xi有连接关系的边的权重之和。ki表示所有与图片xi有连接关系的边的权重之和。∑in表示一个流形上的图片的所有的边的权重之
和。∑tot表示一个流形上的图片与图片之间的边的权重之和,m表示所有的边的权重之和
[0033] 然后找到这个独立的图片在不同的流形上的模块度增量的最大正值,将这张图片放到这个流形上。即找到使得ΔQ最大的那张邻居图片,且满足maxΔQ>0,则将这张图片分
配到使得ΔQ最大的那张邻居图片所在的流形上。若没有取到正值,则该图片依然在其原来
的流形上。重复上述过程直到每一张图片所属的流形不再变化。第二,把每一张图片当成一
个节点,将新的流形上的所有节点压缩成一个新的节点,所有流形节点之间的权重转化为
新节点的环的权重,流形之间的边权重转化成新节点之间的边权重。重复第一步,直到整个
图的模块度不再发生变化。这就将所有的图片分布到了不同的流形上。分别对每一个流形
上的图片进行流形排序。
[0034] 3、流形排序算法
[0035] 流形排序的算法采用拉普拉斯图映射方法,基于图像间的拓扑流形分布,利用其几何结构中隐含的局部信息相关性,依数据流形传播用户的先验关联信息,计算用户对拓
扑流形上所有图像的相关度。用于相关信息的推荐。流形学习策略侧重于挖掘高维数据几
何流形关系中隐含的信息,强调获取全局判别结构的同事,学习局部几何关系中隐含的局
部相关性。
[0036] 所有图片的集合X={x1,x2,…,xn},用户集合U={u1,u2,…,uc},对应的拓扑关系图为W={wij}n×n,图像的用户先验Y=[yij]n×c,其中yi,j表示图像i与用户j的先验相关度,无
先验则对应位置为0。
[0037] 在分析构造拓扑流形W={wij}n×n的基础上,利用先验Y=[yij]n×c,建立流形排序模型,估计信息相关度F=[fij]n×c,其中,fij表示通过流形传播的图像i与用户j的相关度,即
用户j对图像i的感兴趣程度。根据流形平滑准则,依流形分布关系,建立流形学习模型如
下:
[0038]
[0039] 其中, 表示Frobenious范数,tr(*)是矩阵的迹,L是W={wij}n×n的拉普拉斯矩阵,β是平衡参数。其解析解表示为
[0040] F*=((1‑β)I+βL)‑1Y
[0041] 这里,F*=[fij]n×c即为优化上式收敛所得的图像X={x1,x2,…,xn}与用户U={u1,u2,…,uc}中基于流形排序的相关度估计结果。用这种方法学习每一个流形上的用户图片关
系。
[0042] 基于流形排序估计的用户与图像的相关度,作为用户对图像的感兴趣程度,可以直接用于面向用户的图像推荐。
[0043] 4、根据相关度估计生成推荐列表
[0044] 根据每一个子流形上计算得到的用户图像之间的相关度,可以得到全部的用户和图片之间的相关度。用户和图片之间的相关度越大,这张图片越容易被用户喜欢。所以根据
每一张图片和所有用户之间的相关度排序,给用户推荐相关度最高的N张图片。
[0045] 5、推荐结果评价
[0046] 推荐系统可以通过在线和离线来评价性能。在线评价是由真实的用户去评价推荐结果的好坏。但是在线评价很难实现,很难找到真实的用户来评价系统。所以一般的推荐方
法都是采用离线的方法来验证推荐系统的好坏,得到每一个用户的推荐准确率。

附图说明

[0047] 图1为本发明的整体框图;
[0048] 图2为本发明中模块化的结果;
[0049] 图3为数据的拓扑流形分布关系举例图

具体实施方式

[0050] 本发明目的是提供一种图片推荐的方法,其整体框架如图1所示。下面结合附图和具体例子对本发明做进一步的详细说明。
[0051] 该发明的实现步骤如下:
[0052] 1、基于图片内容信息的图片相似性计算
[0053] 本发明拟在社交策展网络花瓣网上进行图片推荐工作,爬取花瓣网的用户、图片、以及关系信息。其中包括4800个用户,34000张图片,大概10万个连接关系。在AlexNet网络
上利用深度学习的方法提取爬取的图片的特征,首先利用自己的图片对网络进行微调。花
瓣网上的图片分成34类,根据图片所属的类别给图片添加标签,用这些有标签的图片对网
络进行微调。使得网络更适合这个数据集,提取的特征更准确。然后将实验所需的图片输入
网络中提取图片特征。利用余弦相似性计算两张图片的相似性;利用计算的相似性构造拓
扑关系图。
[0054] 2、流形的模块化
[0055] 首先将每一张图片分别放在一个流形上,然后考虑每一个流形上的图片和它的邻居图片,即相似性高的图片,合并到这个流形上计算模块度增量。模块度增量是将一个孤立
的点放到一个模块上后,这个模块的变化。也就是就说将一张独立的图片放到一个流形上
后,这个流形上的模块度会发生变化,这个变化的量即为模块度增量。模块度增量按下式进
行计算。
[0056]
[0057] 其中ki,in是一个流形上的图片中与图片xi有连接关系的边的权重之和。ki表示所有与图片xi有连接关系的边的权重之和。∑in表示一个流形上的图片的所有的边的权重之
和。∑tot表示一个流形上的图片与图片之间的边的权重之和,m表示所有的边的权重之和
[0058] 然后找到这个独立的图片在不同的流形上的模块度增量的最大正值,将这张图片放到这个流形上。即找到使得ΔQ最大的那张邻居图片,且满足maxΔQ>0,则将这张图片分
配到使得ΔQ最大的那张邻居图片所在的流形上。如果ΔQ<0,则该图片依然在自己所在的
流形上。重复上述过程直到每一张图片所属的流形不再变化。第二,把每一张图片当成一个
节点,将新的流形上的所有节点压缩成一个新的节点,所有流形节点之间的权重转化为新
节点的环的权重,流形之间的边权重转化成新节点之间的边权重。重复第一步,直到整个图
的模块度不再发生变化。这就将所有的图片分布到了不同的流形上。分别对每一个流形上
的图片进行流形排序。将不同的图片模块化的结果如图2所示。
[0059] 3、流形排序算法
[0060] 流形排序的算法采用拉普拉斯图映射方法,基于图像间的拓扑流形分布,利用其几何结构中隐含的局部信息相关性,依数据流形传播用户的先验关联信息,计算用户对拓
扑流形上所有图像的相关度。用于相关信息的推荐。
[0061] 所有图片的集合X={x1,x2,…,xn},用户集合U={u1,u2,…,uc},对应的拓扑关系图为W={wij}n×n,图像的用户先验Y=[yij]n×c,其中yi,j表示图像i与用户j的先验相关度,无
先验则对应位置为0。
[0062] 在分析构造拓扑流形W={wij}n×n的基础上,利用先验Y=[yij]n×c,建立流形排序模型,估计信息相关度F=[fij]n×c,其中,fij表示通过流形传播的图像i与用户j的相关度,即
用户j对图像i的感兴趣程度。根据流形平滑准则,依流形分布关系,建立流形学习模型如
下:
[0063]
[0064] 其中, 表示Frobenious范数,tr(*)是矩阵的迹,L是W={wij}n×n的拉普拉斯矩阵,β是平衡参数。其解析解表示为
[0065] F*=((1‑β)I+βL)‑1Y
[0066] 还可以表示为:
[0067] F*=(I‑βS)‑1Y
[0068] 这里,S=D‑1/2WD‑1/2,D为一个对角阵,是W的第i行的所有元素的和。F*=[fij]n×c即为优化上式收敛所得的图像X={x1,x2,…,xn}与用户U={u1,u2,…,uc}中基于流形排序的
相关度估计结果。
[0069] 基于流形排序估计的用户与图像的相关度,作为用户对图像的感兴趣程度,可以直接用于面向用户的图像推荐。
[0070] 4、根据相关度估计生成推荐列表
[0071] 根据每一个子流形上计算得到的用户图像之间的相关度,可以得到全部的用户和图片之间的相关度。用户和图片之间的相关度表示用户对图像的感兴趣程度,图片与这个
用户的相关度越大,这张图片越容易被用户喜欢。所以根据每一张图片和所有用户之间的
相关度降序排序,给用户推荐相关度最高的N张图片。
[0072] 5、推荐结果评价
[0073] 推荐系统可以通过在线和离线两种方法来评价性能。在线评价是由真实的用户去评价推荐结果的好坏,即需要找到所爬去的图片的用户来评判推荐结果的好坏。但是在线
评价很难实现,很难找到真实的用户来评价系统。所以一般的推荐方法都是采用离线的方
法来验证推荐系统的好坏,得到每一个用户的推荐准确率。所以将所有图片的用户的80%
做训练,剩下的20%为测试集,用来评估系统的性能。