融合非负矩阵分解和图全变分的歌曲推荐算法

摘要: Kirell Benzi, Vassilis Kalofolias, Xavier Bresson and Pierre Vandergheynst Signal Processing Laboratory 2 (LTS2), Swiss Federal Institute of Technology (EPFL)

Kirell Benzi,

Vassilis Kalofolias,

Xavier Bresson and Pierre Vandergheynst

Signal Processing Laboratory 2 (LTS2),

Swiss Federal Institute of Technology (EPFL)

代码参见:https://github.com/hxsylzpf/recog

摘 要

本文正式地形式化一个全新的的歌曲推荐算法,其将歌曲推荐的问题转化为矩阵补全的问题来考虑,并通过基于非负矩阵分解(non-negative matrix factorization, NMF)的协同过滤算法以及图上的结合图的全变分(total variation, TV)的基于内容的过滤方法相结合来解决这个问题。相关的图通过使用音频、元数据以及社交特征等丰富的信息的结合,对歌单的邻接信息以及歌曲的相似度信息进行编码。我们证明,我们提出的这个融合了几种知名的方法的混合推荐系统,有着广阔的应用前景,并在效果上超过融合的相关算法。通过在真实数据上进行的实验,我们证实了我们的模型能仅仅根据低秩矩阵的信息或者基于图的信息以及两者的结合进行歌曲的推荐。

关键字:推荐系统,图,非负矩阵分解,全变分,音频特征

一 引言

在 Netflix上推荐电影,在Facebook上推荐好友,或者在LinkedIn上推荐工作等任务在过去几年中吸引了越来越多的关注。大部分Netflix奖的获得者喜爱用的著名的低秩矩阵分解算法需要明确的用户评级作为输入。一些其他相似的方法则通过用户对物品的操作来反映用户对物品的偏好,以致力于解决用户的不明确的反馈问题。具体到歌曲和歌单推荐问题,也已经有了各种不同的方法,其中既有单纯的基于内容的方法,也有各种混合的模型。最近,图的正则化被提出,用来提高矩阵补全算法的效果。

本文的主要贡献在以下几个方面:

l 设计并实现了一个数学上的融合协同过滤以及内容过滤的声音混合系统;

l 介绍了一个新的图正则化项(TV),在推荐系统的背景下,其效果要优于广泛应用的 Tikhonov 正则化;

l 一个良好定义的基于近端分裂方法的迭代优化模式。

大量的实验证明我们提出的推荐系统具有很好的表现。

二 本文的歌曲推荐算法

1. 歌曲推荐算法

假设我们有n个歌单,每个列表都包含m首歌中的其中一部分。我们定义矩阵C∈{0,1}n×m,矩阵中的元素 Cij 为 1 则表示歌单 i 中包含歌曲 j,否则为 0。我们再定义一个权重矩阵Ω∈{0,1}n×m,当输入的 Cij 可能为 1 时,Ωij=1,否则等于一个很小的值 ε(我们使用的 ε=0.1)。这里应用了不明确反馈问题的思路。在矩阵 C 中一个元素为 0 不代表这首歌与这个歌单无关,而是更可能不相关。

训练阶段的目标是找到一个近似的低秩表示,使AB ≈ C,其中A ∈ R+n×r,B ∈R+r×m都是非负的,且 r 很小。这个问题被称为非负矩阵分解(NMF),并引起了广泛的关注。相比其他的矩阵分解方法,NMF 由于只使用了加性因子,能够学习到物体(本文中即为歌单)的各个部分。NMF 的方法的缺点是其为 NP-hard。所以对于找到一个局部最小点来说正则化使很重要的。在我们的问题中,我们使用歌曲和歌单的图来确定因子 A 和 B。我们模型的公式计算如下:

          (1)

其中(∘)代表点级别的乘法运算符,θA, θB∈R+。我们使用一个加权 KL 散度作为 C 和 AB 之间距离的衡量,有研究表明对于不同的 NMF 设置,这比Frobenius 范式更为准确。公式中的第二项是歌单图中 A 的行的全变分,所以对其进行惩罚就提升了分段恒定信号。公式中的第三项与第二项类似,是 B 的列的全变分。最终我们提出的模型利用了参考文献[9, 16],并利用 TV 半范式将其扩展到图。

1.1 利用全变分进行图的正则化

在我们基于 NMF 的推荐系统中,每个歌单 i 都被矩阵 A 中的第 i 行 Ai 投影到一个低维空间。为了学习到歌单 Ai 的低秩的表示,我们通过歌单的低秩表示,定义歌单之间成对的相似度ωAii’。我们可以从 TV 正则化项的定义中推导出,

‖A‖TVA= ∑i∑i’~ iωAii’‖Ai-Ai’‖1所以当两个歌单 i 和 i’是相似的,那么它们在图中则是连通的,且连接这两个歌单的边的权值ωAii’很大(这里ωAii’≈ 1)。另外,相应的低维向量表示(Ai,Ai’)间的距离过大就会被惩罚,这使得在低维空间中,(Ai,Ai’)的距离会保持较近。同理,每首歌 j 都由矩阵 B 中的一列 Bj 表示到一个低维空间。如果两首歌(j,j’)很接近(ωBii’′≈ 1),那么(Bj,Bj’)以及图的正则化‖B‖则遵循上述的规律。

参考文献[10]的思路与本文相似,通过 Tikhonov 正则化将图的信息引入到模型中,例如通过 Dirichlet 能量项1/2∑i∑i’~ iωAii’‖Ai-Ai’‖22。然而这种方法促进了A 的列之间平滑的变化,而本文的方法图的 TV 项的惩罚则促进了在列 Ai 和 Ai’间具有潜在的突变边缘的分段恒定信号。这对于需要寻找多个类别的任务是有益的,例如聚类,或者本文中的推荐系统所涉及的相似歌单属于不同的目录的情况。

我们在第 4 部分会详细分析,歌曲和歌单的图的使用可以显著的提升推荐效果,且 TV 项的表现要比 Tikhonov 正则化更好。

1.2 原始-对偶优化

对于矩阵 A 和 B 来说,优化问题是全局非凸,但是各自凸的。一个常用的方法是固定 A 去优化 B,然后再固定 B 去优化 A,反复直到收敛。我们这里以固定 A 而优化 B 为例来描述上述优化方法。相同的方法可以在固定 B 时应用于A。我们将上述问题重新写为如下形式:

F(AB) + G(KBB) (2)

其中

F(AB)=KL(Ω∘(C‖AB)) =(−ΩijCij(log)+Ωij(AB)ij (3)

             (4)

其中KB∈Rne×m是图的梯度算子,ne 是图 B 中的边的条数。使用函数 F 和G 的共轭函数 F*和 G*,则等价于鞍点问题:

           (5)

其中Y1 ∈ Rn×m,Y2 ∈ Rne×r。我们定义最近项和时间间隔 σ1,σ2,τ1,τ2:

           (6)

迭代的方式是,当 k≥0 时:

     Y1K+1 = proxσ1F∗(Y1K+ σ1ABK)                  (7)

Y2K+1 = proxσ2G∗(Y2K+ σ2KBBK) (8)

BK+1=(BK-τ1ATY1K+1-(KTBY2K+1)T)+ (9)

其中 prox 是最近算子,(∙)+ = max(∙, 0)。在我们的问题中,我们选择了标准Arrow-Hurwicz 时间间隔σ1 =τ1 = 1⁄‖A‖,σ2 =τ2 = 1⁄‖K‖,其中‖∙‖是算子范数。

则最近解为:

      (10)

其中 shrink 即为软缩减算子。注意到,同样的算法也可以应用于 Tikhonov正则化,例如,通过将上面的第一个式子改为proxσ2G*(Y)=Y,就å¯ä»¥å°†â€–KBB‖1替æ¢ä¸ºG(KB B) = ‖KBB‖22。在式(10)中的正则化使用的是 KL 散度的一个对称变形,但是与我们使用的这种方法不同的是,Tikhonov 正则化不存在解析解。所以其目标函数并不像我们的一样满足一个有效的原始-对偶优化方法。我们保留这种非对称的 KL 模型,并称其为 GNMF,来将 TV 与 Tikhonov 正则化进行比较。

1.3 推荐歌曲

我们通过式(1)学到矩阵 A 和 B 之后,我们希望已知一些歌曲 cin 时(如图 1-1),能够推荐新的歌单 crec。我们也希望能实现实时的推荐,于是我们定义一个快速推荐

给定一些歌曲 cin,我们先通过解决一个正则最小平方问题来在歌单的低秩空间学习一个好的表示:ain=arg min a∈R1×r||Ωin。(cin-aB)||22+ε||a||22。其解析解ain=(BTΩinB+εI)-1(BTΩincin)当 r 很小时较容易计算(我们令ε = 0.01)。

与给定的歌单有相似表示的歌单也对于我们推荐歌单有益。所以在低维空间中,我们用加权和arec=Σni=1ωiAi/Σni=1ωi来表示被推荐的歌单。这里权重ωi=e-||ain-Ai||22/σ2, 取 决 于 与 其 他 歌 单 的 表 示 的 距 离ain, 且 σ =mean({||ain-Ai||2}ni=1)/4。最终推荐歌单的低秩表示为:

crec=arecB (11)

这里crec并不是二元的,而是一个连续的值,表示歌的排名。

2.歌曲和歌单的图

2.1 歌单的图

歌单的图中包含了歌单间成对的相似度信息。图的节点为歌单,边的权重表示了两个歌单之间的距离,当权重很大时(ωAii’ ≈ 1),表示两个歌单具有很高的相似度。在我们的模型中,歌单图中边的权重的计算不仅与外部信息例如元数据有关,还与内部信息有关,例如歌单中的歌曲信息。我们使用预定义好的 Art of the Mix 歌单分类来标注用户的歌单。则歌单的图中边的权重的计算定义为

        ωAii’=Υ1δcat{i}=cat{i’}+Υ2simcos(Ci,Ci’)

其中 cat 表示歌单的标签,Ci是矩阵 C 的第 i 行simcos(p,q)=

pTq/||p||.||q||是两个歌单的歌曲向量之间的余弦相似度距离。余弦相似度为两首歌相似的比例比上两个歌单长度乘积的均方根。两个正的参数Υ1和Υ2满足Υ1 + Υ2 = 1,用于决定歌单标签的相似度和歌单元素级别的相似度之间的相对重要程度。为了控制每个分类的边缘概率密度并让我们的模型更灵活,我们在同一个分类的节点之间保留 20%的边的一个子集。在实验中我们发现,令Υ2 = 0.3能获得较好的效果。 歌单图的效果通过使用标准 Louvain 方法对图进行分割进行衡量。分块的数目由在模块最大的地方切开形成的模块化系数的树图自动给出。第 4 节使用的图的模块化系数在使用只余弦相似度(Υ2 = 0)时为 0.63。如果我们加入元数据的信息,将每个分类下所有歌单对中的 20%进行连接,并令Υ2 = 0.3,则模块化系数增长到 0.82。

2.2 歌曲的图

我们模型中使用的第二个图是歌曲的相似度图。歌曲的图由从音频信号中抽取的 Echonest 特征与元数据信息结合以及音轨的社会信息混合组成。表 2-1 给出了用于构建歌曲图所使用到的特征。

为了提高我们的音频特征的质量,我们使用从 LastFm 相关标签中抽取的歌曲类型训练了一个大间隔最近邻模型(Large Margin Nearest Neighbors,LMNN)。为了抽取到真实的音乐类型,我们使用了这些标签经过其流行度(根据 LastFm)加权的 Levenshtein 距离以及 ID3 标签中定义的音乐类型。 最终,我们用 k 近邻(k=5)来构建歌曲的图,其中,对于 j 的 k 个最近邻中的一首歌 j’,两首歌 j 和 j’之间的边的权重ωBjj’=exp(-||xj-xj’||1/σ),参数σ是尺度参数,表示 k 个邻居之间距离的平均值。得到的图的模块化系数很高(0.64),使用 k-NN 进行非监督的准确率为 65%左右。

3. 实验结果

在这部分,我们通过在一个真实数据集上进行实验,将我们的模型与其他 3个不同的推荐系统进行比较。我们的测试数据集是从由 McFee 等构建 的 Art of the Mix 语料库中抽取的。我们之前就是在这个数据库中抽取了上述的特征。 评价一个音乐推荐系统是一个众所周知的难题。在本文中,我们使用一个经典的评价使用间接反馈的推荐系统的模型的方法,Mean percentage Ranking(MPR)以及歌单分类准确度,即在查询的分类中,过去已经出现过的歌单中的歌曲的百分比。

3.1 模型

我们先将我们的模型与一个只基于图的方法(我们称为 Cosine only)进行比较。对于给定输入,这个模型使用余弦相似度计算 t 个最接近的歌单(这里 t=50),通过将歌单中的所有歌曲用余弦相似度进行加权从而计算出一个柱状图进行推荐,如式(11)所示。第二个模型是使用了 KL 散度的 NMF,我们成为 NMF。最后一个模型 GNMF 是基于使用了 Tikhonov 正则化的 KL 散度,并应用了我们模型中的图。

3.2 查询

我们用 3 种不同的查询来测试我们的模型。在所有 3 种查询中,一个查询ctest包含 s=3 首歌作为输入,系统以一个歌单的形式返回最相近的 k=30 首歌作为输出。第一种查询为随机查询,从所有类别的歌中随机选择歌曲,其结果仅作为比较的基准。第二种测试查询,在测试集中的一个歌单中随机选择 3 首歌。第三种采样查询,在一个类别下随机选择 3 首歌。这种查询模拟了用户通过歌曲类别查询歌单的推荐系统。

3.3 训练

我们使用从所有歌单中随机选择出 70%的子集作为训练集,由于我们的模型不是联合凸的,初始化可能会对系统的表现产生影响,所以我们使用现在常用的 NNDSVD 技术来得到一个好的近似解。在我们的所有实验中,r=15 的结果很好,这意味着每行都有 5-20 个非零元素。最好的参数θA = 18以及θB= 1使用了网格搜索的方法。为了防止过拟合,我们在验证集的 MPR 刚停止增长的时候就使用提前停止的方法。

3.4 验证集

我们通过人工的在不用的歌单类别中进行查询的方法来构建验证集中的歌单。对于每个类别,我们在之前已经在用户创建的标注了类别的歌单中出现的歌曲中随机的选择 s=3 首歌。

3.5 结果

模型的结果,即不同模型的歌单分类准确率和 MPR 我们列在表 3-1 和表 3-2 中。如我们所预料的,对于随机查询,所有的模型都不能根据输入的歌曲返回歌单,而且使用了协同滤波同时没有假如图信息的 NMF 表现很差。这可以理解为是数据集的稀疏性造成的,数据集每行只含有 5-20 个非零元素,稀疏度只有 0.11-0.46%。协同过滤模型在有越多的观察到的等级时的表现越好,cosine 模型在类别准确率上表现更好,因为它直接使用了输入歌曲和歌单之间的余弦距离。然而,它的 MPR 说明即使状况很复杂,我们的模型在歌曲推荐时表现的更好。

4. 结论

在这篇论文中我们介绍了一个新的灵活的歌曲推荐系统,这个系统结合了歌单的协同过滤信息以及图中包含的歌曲相似度信息。我们使用一个基于原始-对偶的优化模式来得到一个高度并行的、可以用来处理大型数据集的算法。我们选择图的 TV 而不是 Tikhonov 正则化,并通过将我们的系统与 3 个不同的算法在真实的音乐歌单数据集上做比较,展示了我们模型的良好的实验效果。

原文链接

干货好文,请关注扫描以下二维码:
图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522021.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Facebook面向所有用户开放人脸识别功能;福布斯美国最具创新力领袖公布;AMD:将发新BIOS 优化三代锐龙加速性能……...

戳蓝字“CSDN云计算”关注我们哦!嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周五第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

Python数据挖掘与机器学习技术入门实战

摘要: 什么是数据挖掘?什么是机器学习?又如何进行Python数据预处理?本文将带领大家一同了解数据挖掘和机器学习技术,通过淘宝商品案例进行数据预处理实战,通过鸢尾花案例介绍各种分类算法。 课程主讲简介&a…

45K!拿下 AI 技术岗,这些知识点全考了!

是的 ,你没猜错!就是人工智能!AI的炽手可热程度和重要性无需多提。最近,笔者在网上发现了一个报告,报告名字:《BAT人工智能领域人才发展报告》,发现BT招聘AI的速度提升了近400%,其中…

考察数据科学家支持向量机(SVM)知识的25道题,快来测测吧

摘要: 本套自测题专为SVM及其应用而设计,目前超过550人注册了这个测试,最终得满分的人却很少,[doge],一起来看看你的SVM知识能得多少分吧,顺便还能查漏补缺哦。Introduction机器学习强大如一座军械库,里面有…

找第一个只出现一次的字符_leetcode哈希表之第一个只出现一次的字符

序本文主要记录一下leetcode哈希表之第一个只出现一次的字符题目在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s "abaccdeff"返回 "b"s "" 返回 " "限制:0 &…

linux查看pid 对应的程序_资深程序员总结:分析 Linux 进程的 6 个方法,我全都告诉你...

(给Linux爱好者加星标,提升Linux技能)作者:LemonCoder(本文来自作者投稿)操作系统「进程」是学计算机都要接触的基本概念,抛开那些纯理论的操作系统底层实现,在Linux下做软件开发这么多年,每次程序运行出现问题&#x…

无人值守时代,运维如何保障发布质量?

摘要: 阿里巴巴千亿交易背后,如何尽量避免发布故障?在面对实际运维过程中遇到的问题该如何解决?阿里巴巴运维技术专家少荃,给我们带来了解决方案和思路。 导读:阿里巴巴千亿交易背后,如何尽量避…

记一道字节跳动的算法面试题

戳蓝字“CSDN云计算”关注我们哦!来源公众号:苦逼的码农作者:帅地前几天有个朋友去面试字节跳动,面试官问了他一道链表相关的算法题,不过他一时之间没做出来,就来问了我一下,感觉这道题还不错&a…

带您探究云存储的奥秘,三分钟帮您快速了解OSS

摘要: 快来,带您探究云存储的奥秘,三分钟帮您快速了解OSS。 阿里云对象存储服务,简称 OSS,是一种面向海量数据规模的分布式存储服务,具有稳定、可靠、安全、低成本的特点,能够提供十一个九的数据…

六大主题报告,四大技术专题,AI开发者大会首日精华内容全回顾

戳蓝字“CSDN云计算”关注我们哦!9月6-7日,2019中国AI开发者大会(AI ProCon 2019) 在北京拉开帷幕。本次大会由新一代人工智能产业技术创新战略联盟(AITISA)指导,鹏城实验室、北京智源人工智能研…

SQL老司机,居然是这样智能挖掘异常日志

摘要: 提取异常日志是个大难题 面对海量的日志(TB乃至PB级别),如何从日志中挖掘出异常信息对于大部分的开发者而言是一个大难题。例如,判断机器的延时是否正常,部分request是否正常。通常,我们对于异常的数…

华为杯数学建模优秀论文_【优秀论文】2019数维杯国际大学生数学建模竞赛B题优秀论文...

推荐入群2020数维杯国际赛参赛群132020数维杯国际大学生数学建模竞赛于2020年11月26日08:00(周四)—11月30日08:00(周一)进行,报名正在火热进行中,扫码了解详情或可直接报名!扫码了解详情或可直接报名赛题B回顾2019数维杯国际赛赛题B回顾点击…

Lucene解析 - 基本概念

摘要: 前言 Apache Lucene是一个开源的高性能、可扩展的信息检索引擎,提供了强大的数据检索能力。Lucene已经发展了很多年,其功能越来越强大,架构也越来越精细。它目前不仅仅能支持全文索引,也能够提供多种其他类型的索…

FileZilla 下载安装使用

我电脑是win10 64位的,不知软件为何这样命名,已经用了2年多了。 FileZilla 版本:3.27.1下载链接 http://gainetsoftwares.kuaiyunds.com/gainetsoftwares/FileZilla3d0899f3-d291-4714-bd45-027ffaa49962.zip 1、 双击FileZilla_3.27.1_win3…

Vicor再携创新产品“登陆”ODCC大会,有详情!

戳蓝字“CSDN云计算”关注我们哦!目前,越来越多的应用系统对电源系统的功率密度及转换效率提出了更高要求,在电源系统设计中不仅功率密度是众多要素之一,其他例如电源系统架构、多种开关拓扑、电源模块和基于分立器件设计的封装技…

Lucene 查询原理

摘要: # 前言 Lucene 是一个基于 Java 的全文信息检索工具包,目前主流的搜索系统Elasticsearch和solr都是基于lucene的索引和搜索能力进行。想要理解搜索系统的实现原理,就需要深入lucene这一层,看看lucene是如何存储需要检索的数…

mac解压rar命令_苹果mac电脑上很好用的免费压缩软件?ezip压缩软件分享

在开始之前,先问问用苹果电脑的大家一个问题,有没有遇到过这种情况呢?就是好不容易在网上找到了需要的素材,然后下载回来后发现,想解压却解压不了。因为mac系统自带的压缩工具是不支持rar格式的,而在网上很…

如何从机器学习数据中获取更多收益

摘要: 本文讲解一些关于机器学习数据集的小技巧,分享个人经验,可供读者参考。对于深度学习而言,合适的数据集以及合适的模型结构显得至关重要。选择错误的数据集或者错误的模型结构可能导致得到一个性能不佳的网络模型&#xff0c…

CSDN×易观算法大赛火热进行中~

伴随着5G、物联网与大数据形成的后互联网格局的逐步形成,日益多样化的用户触点、庞杂的行为数据和沉重的业务体量也给我们的数据资产管理带来了不容忽视的挑战。为了建立更加精准的数据挖掘形式和更加智能的机器学习算法,对不断生成的用户行为事件和各类…

该放弃正在堕落的“RNN和LSTM”了

摘要: 随着技术的发展,作者觉得是时候放弃LSTM和RNN了!到底为什么呢?来看看吧~递归神经网络(RNN),长期短期记忆(LSTM)及其所有变体:现在是放弃它们…