跨平台的音乐推荐算法传媒

传统的音乐推荐算法往往是根据用户的听歌记录来对其进行推荐,但是对于一个新用户传统的推荐算法就无能为力了。在本文中,我们使用机器学习中典型关联分析(CCA)技术期望能够通过加入用户的社会属性(微博)来改进原始的推荐算法,从而更加精准的推荐给用户他们喜欢听的音乐,另外,相较于其他推荐算法,我们能够实现推荐的冷启动。即使用户之前没有听过任何音乐,我们也能够从他的微博数据中挖掘出他喜欢听的音乐类型。

关键词:

跨平台音乐推荐机器学习

1.简介

2.1传统音乐推荐算法概述

传统推荐算法主要分成两类,一种是基于历史数据的推荐算法[11],另一种是协同过滤算法[6]。基于历史数据的推荐算法也是推荐算法的萌芽,我们将目标信息通过特征提取作为输入,用户的喜好作为输出构造一个分类器或者回归器,然后预测时我们可以根据结果(可以是0/1的二分类,也可以是一个实数)选取排在前面的信息推荐给用户,这种方法实际上是一个传统机器学习的过程,这里不再赘述。

这里重点说一下协同过滤算法(CollaborativeFiltering,CF),这是推荐系统中很有创新性的一个算法。我们以基于用户的协同过滤算法为例,算法的思想很简单,我们认为,如果两个用户兴趣相似,则可以把这个用户的信息偏好推荐给另一个用户。计算两个用户的相似程度可以把他们在全部信息集上的偏好量化后定义一种距离(点积,欧几里得距离等),推荐时可以用最近邻算法找到每个用户邻近的几个与他兴趣相似的用户,把他们的信息偏好加权推荐给这个用户。与之相对应的是基于物品(item)的协同过滤算法,只是将定义用户的相似度变成了定义物品的相似度而已。

协同过滤相较于基于历史数据的推荐算法而言优点在于它能更多的挖掘到用户的隐藏属性,也就是说,通过用户的历史数据挖掘不出来的属性,不过,由于协同过滤涉及到构造一个全用户数量乘以一个全信息数量的矩阵,对于大数据而言要求更高的计算速度,因此需要用到更多的计算资源和更好的矩阵运算优化策略,另外,协同过滤算法的另一个问题是矩阵的稀疏性,比如我们在做音乐推荐时,一个用户听过的歌曲毕竟是有限的,因此得到的用户-音乐矩阵会十分稀疏,这不利于计算用户之间的相似程度。

然而,无论是基于历史数据的推荐算法还是协同过滤,都涉及到一个无法解决的问题,我们称之为冷启动问题。冷启动问题是指,如果我们并不知道用户曾经的数据,换句话说,该用户是一个新用户,没有任何的先验知识,那我们的预测过程就没有办法进行,推荐信息也就只能是随机推荐了。基于上面这一些不足,在目前推荐算法的20年发展中,研究者们不断提出了更准确,涉及特征更广,适用面更广的算法,它们或是基于现有算法的改进,或是完全新的算法。我们在下一讲中进行叙述。

2.2跨平台音乐推荐算法概述

2.2.1协同过滤衍生算法——空间分解算法[9,10,12]

与协同过滤一样,我们要分析的是一个用户×音乐的矩阵A,矩阵的每一项表示某用户对某音乐的偏好程度,可以用0/1二分类表示,也可以是一个实数,之前提及过,这个矩阵是一个稀疏矩阵,大约只有0.1%左右的元素是被确认的。那么,最简单直接能被想到的方法是引入一个隐空间,将这个矩阵拆分成描述用户特性和隐空间关系的矩阵U及隐空间和音乐特性关系的矩阵V,这个隐空间可以被理解为情感因素。我们要做的是让矩阵积UV^T尽可能接近于原矩阵A,这个过程可以用最小二乘和梯度下降的方法解决。这样,我们就可以用矩阵积UV^T去估计原矩阵A,从而也就能够知道矩阵A中那些未知的元素。

当然,上面描述的只是这类方法中最基本的架构。在算法的实际应用中,为了增加算法的准确程度,我们往往利用“多媒体”这一因素,引入用户-用户关系(好友关系),音乐-音乐关系(音乐近似程度),扩展原来的用户-音乐关系(用户偏好),以运用更多的信息,那么很自然的,可以用UU^T来估计用户-用户关系,VV^T来估计音乐-音乐关系,最终要达到的目标变成了使得这三个矩阵积分别近似于相对应的三种关系矩阵。当然,在这类方法的发展中,还有另外的一些变种,比如由单一的隐空间扩展为用户隐空间和音乐隐空间等等,这些算法也在实际的应用中取得了非常不错的推荐成功率。

而这类算法相对于传统的协同过滤也解决了冷启动等诸多问题,这些问题都可以用矩阵的形式化描述通过数学方法来解决,因此是一类前景非常不错的算法。

2.2.2基于知识图谱的联合超图算法(UnifiedHypergraphAlgorithm)[8]

一个好的推荐算法不能只考虑到用户的喜好,因为每个用户都是社会人,他们的喜好或厌恶都或多或少的受到身边人的影响,而这种社交网络的引入会增加推荐算法的正确率。因此,如果我们在推荐算法中引入图来描述这一过程,是最好不过的选择。

(1)同一条边的端点权重应该趋于相同。

(2)端点权重应该与已知信息保持一致。

基于这两点,我们可以用数学的方式来解这个图模型,从而获取到所有点的权重。完成了整个的推荐过程。

这个算法的优势在于它不仅能够向用户推荐音乐,还能完成其他多种多样的功能,比如像用户推荐艺术家,专辑,还可以向用户推荐相似的用户等等,甚至还可以预测一首音乐会被哪些用户所喜欢,这些信息通过图模型完全的展示了出来,这也是它相较传统推荐算法最为突出的一点。

2.2.3多观点学习算法(Multi-ViewLearning)[1]

这类推荐算法的最大特点是依托于除音乐本身的社交平台,比如微博数据,用户发过的图片数据等等,这类方法跳出了音乐推荐这个相对狭窄的领域,它的基本观点是:用户的社交数据能够体现用户的性格或是一些内在的东西,从而我们可以跨平台的了解一个用户收听音乐的行为,从而能够更精准的推荐歌曲。这类算法通常会构造几组不同平台用户的特征向量,然后联合学习这几组特征空间来推荐音乐,因此叫做多观点学习算法,它探究的是不同特征空间之间的关联。

这类学习算法比较繁多,我们主要介绍CCA,HENN[5]和Corr-AE[2]算法,而前两个算法正是本实验中使用的算法,为简化起见,在后文中我们都用两组特征来描述,一组是用户的社交平台数据(如微博文本特征),另一组是用户偏好的音乐特征。

典型关联分析(CarnonicalCorrelationAnalysis,CCA)是一个十分经典的算法,它的思想是找到两组变换,分别针对两组特征向量,把它们投影到同一预先定义好维度的隐空间中去,然后通过在隐空间中使用最近邻算法做推荐。衍生算法有KCCA和DCCA[3],它们分别通过核变换方法和深度神经网络方法将线性CCA变成非线性CCA。

Corr-AE算法利用了神经网络中经典的AutoEncoder三层模型,它将两组向量分别放进两组AutoEncoder中,然后学习出两组AutoEncoder的参数,保证两组AutoEncoder的隐层关联系数最大。

总而言之,这三类办法都是期望将两组向量投影到同一空间或是可互相变换的两组空间中去,然后基于这个空间做推荐。这个空间我们可以理解为用户的内在因素。

这类算法最大的特点就是完美解决了冷启动的问题,因为它们甚至不需知道用户之前的音乐数据,只需知道用户的社交平台数据就可以轻松完成推荐。

3.算法描述

另外,如果我们发现两组向量的关系不是简单的线性关系的时候,可以引入核函数的方法,这就是KCCA算法,而同样如果训练参数时使用了深度神经网络的技术,就进阶成为DCCA[3]算法。在本次实验中我们所用的均为线性CCA算法。

THE END
1.相关商品推荐:基于协同过滤的推荐算法二、 协同过滤推荐算法的实现步骤 数据收集 首先需要收集用户的行为数据,比如购买记录、产品评分、点击记录等,构建用户-商品的行为数据集。 相似度计算 接下来需要计算用户或商品之间的相似度,可以采用余弦相似度、Pearson相关系数、Jaccard相似系数等方法进行计算,以找出相似的用户或商品。 https://www.jianshu.com/p/396b7c403ee4
2.前深度学习时代基于物品相似度进行推荐的协同过滤算法 ItemCF 通过计算共现矩阵中物品列向量的相似度得到物品之间的相似矩阵,再找到用户的历史正反馈物品的相似物品进行进一步排序和推荐,ItemCF的具体步骤如下: (1)基于历史数据,构建以用户(假设用户总数为m mm)为行坐标,物品(物品总数为n nn)为列坐标的m × n {m\times n}m...http://www.kwrg.cn/news/121236.html
3.协同过滤推荐研究综述AET目前,应用于推荐系统的算法主要分三类:基于内容的过滤推荐算法、协同过滤推荐算法及混合推荐算法。 基于内容的过滤推荐算法[2]是对用户的兴趣进行分析,构成用户配置文件,并将其和文件集中的文件用共同的特征变量表示。最后比较两者的相似度来为用户进行推荐。随后,通过用户的反馈信息,不断更新用户配置文件,以此来动态地...http://www.chinaaet.com/article/212308
4.推荐算法——基于物品的协同过滤算法基于用户的协同过滤算法在用户增长的时候,相似度计算的计算会越来越困难。基于物品的算法给用户推荐他们之前喜欢的物品相似的物品。 算法步骤 计算物品之间的相似度 根据物品的相似度和用户的历史行为给用户生成推荐列表 相似度公式如下: wij=|N(i)∩N(j)||N(i)||N(j)|?...https://www.imooc.com/article/27099
5.基于协同过滤算法图书推荐系统的设计与实现.pdf本系统分前台管理和后台管理两部分。前台用户在登录后执行的操作有查看 个性化推荐列表、收藏图书、阅读图书、评论图书、修改个人信息等。其中个性 化图书推荐列表应用了协同过滤算法,该算法根据用户收藏的图书类型,利用余 弦相似度公式计算出图书类型之间的相似度,统计当前用户收藏列表中每种图书 ...https://max.book118.com/html/2024/0217/7053136045006042.shtm
1.推荐系统前深度学习时代推荐算法(1):协同过滤(CF)以上两者分类的的依据是它们如何计算相似度和依据相似度做推荐的部分。(听到这你可能还有点懵,先别急~,继续往后面看) 基本思想: 基于用户的协同过滤推荐:通过计算用户相似度,找到与目标用户行为相似的其他用户,推荐相似用户正反馈交互过的物品。 https://blog.csdn.net/qq_58872188/article/details/143798469
2.协同过滤算法腾讯云开发者社区混合型协同过滤结合了基于用户和基于物品的协同过滤算法,充分利用它们的优点,以提高推荐系统的准确性和鲁棒性。 3.2 算法步骤 通过用户-物品矩阵,同时计算用户相似度矩阵和物品相似度矩阵。 综合两个矩阵的信息,生成最终的推荐列表。 3.3 优缺点 优点:综合了基于用户和基于物品的优势,提高了推荐系统的性能。 https://cloud.tencent.com/developer/article/2389581
3.线性化数学模型11篇(全文)实现协同推荐主要有三个步骤:步骤1:收集用户偏好数据。步骤2:计算相似度,找到相似用户群或者物品。步骤3:依据推荐策略,进行推荐计算。协同过滤推荐算法根据相似度比较对象的不同,可分为基于用户的协同推荐和基于物品的协同推荐。 (1)基于用户的协同推荐算法。根据历史数据,计算所有用户对产品的喜好程度,并由此找到目标...https://www.99xueshu.com/w/ikey77ax5ud4.html
4.java商城实现协同过滤推荐商品代码实现协同过滤推荐算法代码...基于用户的协同过滤算法主要包含以下两个步骤: A. 搜集用户和物品的历史信息,计算用户u和其他用户的相似度,找到和目标用户Ui兴趣相似的用户集合N(u) B.找到这个集合中用户喜欢的,且目标用户还没有听说过的物品推荐给目标用户。 适用性 由于需计算用户相似度矩阵,基于用户的协同过滤算法适用于用户较少的场合; 由于...https://blog.51cto.com/u_12855/8559622
5.基于改进RFM模型的直播平台用户细分及个性化推荐方法研究用户-主播价值偏好,构建用户评分矩阵,结合协同过滤算法开展推荐实验.基 于国内某主流直播平台的后台数据进行研究,结果表明,基于RFMT Segmentation的用户细分方法更适 用于实际应用的推荐,细分后的各类群体推荐效果大幅提升.RFMT模型增加了对用户粘性和长期价值 的考虑,更适应直播平台的特点,所提出的基于直播平台的用户细分...http://ci1st.istis.sh.cn/CN/PDF/954
6.相似度检测(精选十篇)在实际应用中, SOM网络的识别率与初始权值、网络的神经元个数、学习样本集、邻域定义等诸多因素有关, 而且在网络竞争的过程中, 由于是无监督算法, 会出现样本类别划分过细等问题, 为此本文提出了基于相似度检测的SOM网络模型。该模型从模拟人脑的工作方式出发, 依据相似度检测准则, 设置了包含多个获胜神经元的“兴...https://www.360wenmi.com/f/cnkeyuf6k6cp.html
7.内容算法时代,如何引爆用户流量?基于用户的协同,即切合了上面的例子,其基础思路分为两步:找到那些与你在某一方面口味相似的人群(比如你们都是新手爸妈,倾向于同一种教育理念),将这一人群喜欢的新东西推荐给你。 基于物品的协同,其推荐的基础思路是:先确定你喜欢物品,再找到与之相似的物品推荐给你。只是物品与物品间的相似度不是从内容属性的角度...https://36kr.com/p/1722509279233