推荐系统之《Factorization Machines》论文精读

2024-06-21 09:58

本文主要是介绍推荐系统之《Factorization Machines》论文精读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        本文是AI公园公众号的第一篇,希望从今天开始,AI公园能够陪伴大家一起学习和工作。

        本公众号将以原创为主,如果大家喜欢的话,请点击上方“AI公园”并关注。谢谢大家支持!

        推荐系统是目前AI应用的非常成熟的领域,而且也取得了非常好的效果,而在很多推荐系统的场景中,我们会非常普遍的用到one-hot编码之类的方法,这就导致了我们的输入特征会变的非常的稀疏,也就是中间会有大量的0,那么我们该如何处理这种情况呢,今天给大家带来一篇经典的论文精读,大家看看吧!有论文还有代码哦。


干货来了!!!


Factorization Machines

摘要:在本文中,我们介绍了一种因式分解机,这是一种新的模型,结合了SVM的优点,利用了因式分解模型。类似SVM,因式分解机是一种通用的预测器,可以适用于任意的实值特征向量。对比SVMFMs利用因式分解对变量之间的关系进行建模。因此,FMs可以在大量稀疏特征中进行相互关系的估计。我们展示了,模型的表达式可以在线性时间内求解,FMs可以进行直接的优化。所以,不像非线性的SVM,不需要进行对偶变换,模型的参数可以直接的进行估计,不需要用到支持向量。我们展示了和SVM的关系,以及在稀疏的设置下的参数估计的优势。

另外,有许多因式分解模型如矩阵分解,并行因子分析如SVD++PITFFPMC。这些方法的缺点是通用性不好,只对特殊的输入数据有用。优化方法对于不同的任务也各不相同。我们展示了,FMs通过制定不同的输入就可以模拟这些模型。这就使得FMs非常的易用,甚至可以不需要因式分解分解模型的专业知识都可以。

 

1、介绍

  SVM是机器学习和数据挖掘中最流行的算法之一。然而在协同过滤的场景中,SVM并不重要,最好的模型要么直接使用矩阵的因式分解或者使用因式分解参数。本文中,我们会展示,SVM之所以在这些任务中表现不好,是因为SVM在复杂的非线性的稀疏的核空间中很难找到一个好的分割超平面。而张量分解模型的缺点在于(1)不用应用于标准的预测数据(2)不同的任务需要特殊的模型设计和学习算法。

  本文中,我们介绍了一个新的预测器,Factorization MachineFM),是一个像SVM一样的通用的预测模型,但是可以在非常稀疏的数据中估计出可靠的参数。FM对所有变量的相互关系的进行建模(对比SVM的多项式核),但是利用了可因式分解的参数,而不是像SVM一样使用了稠密的参数。我们展示了,模型的表达式可以在线性时间内求解,而且只依赖与线性数量大小的参数。这就允许了直接进行优化和存储模型的参数,而不需要存储任何的训练数据。(SVM是需要存储支持向量的)。非线性的SVM通常使用对偶形式进行求解,而且会使用到支持向量。我们也显示了在协同过滤的业务上FMs比许多很成功的模型如带偏置的MFSVD++PITFFPMC等都好。

总的来说,FM的优点:

1)FMs可以在非常稀疏的数据上进行参数估计。

2)FMs的复杂度是线性的,方便优化,不需要依赖支持向量,适用于大型的数据集。

3)FMs是通用的预测模型,可以适用于任意的实值的特征向量。

 

2、在稀疏数据下进行预测

  大部分的常用的预测任务是估计一个预测的函数640?wx_fmt=png,从一个实数向量640?wx_fmt=png到目标T(如果是回归任务T=R,如果是分类任务T={+-})。在监督学习中,假设有个数据集640?wx_fmt=png,我们也研究了排序的任务,函数y可以用对x向量的评分。评分函数可以通过成对的数据进行训练。由于成对数据是反对称的,可以直接使用正的实例。

  在本文中,我们要解决的问题是数据的稀疏问题,也就是说在x向量中,大部分的值都是0,只有少部分不是0。稀疏的特征在现实世界中是非常常见的,如文本分析和推荐系统中。

例1 假设我们有个电影评分系统,系统记录了用户在特定的时间对电影的评分{1,2,3,4,5},用户U和电影I为:

640?wx_fmt=png

观察到的数据S为:

640?wx_fmt=png

任务是使用这些数据,预测一个函数y,预测一个用户在某个时间对某个电影的评分。

1显示了创建的特征向量,每一行是一个样本,包括了特征向量x和对应的评分y,前4列表示了用户的属性,后面5列表示了当前评价的是哪个电影,再后面表示了用户评价过的其他的电影的分数,这些分数做过归一化,再后面是时间,从20091月开始计算,用月数来表示,比如16就是从20091月开始往后数16个月,就是20104月;最后几列表示用户评价过的最后一个电影,最右边的是当前电影的评分y

640?wx_fmt=png

1

在本文中,我们将使用整个数据集来进行演示。

3、因式分解机(FM

A. 因式分解模型

1)模型方程:2阶的模型方程:

640?wx_fmt=png

其中,<·,·>表示长度为k的点乘,k是一个超参数:

640?wx_fmt=png

2阶的FM能过获取所有的单个特征和配对特征的相互关系。第i和第j个变量的相互关系并没有直接使用wij来表示,而是通过因子v的方式来表达,这就是最关键的地方,这种方法使得我们在更高阶的稀疏数据上也可以进行很好的参数估计。

2)表达能力:我们知道对于正定矩阵W,存在矩阵V,使得W=V·Vk足够大。然而对于稀疏的情况,应该选择一个比较小的k,因为没有足够的数据去预测一个复杂的W。限制k,也就是FM的表达能力,能够提高稀疏情况下的相互关系矩阵的泛化性能。

3)稀疏情况下的参数估计:在稀疏情况下,通常没有足够的数据进行直接的参数估计。因式分解机可以进行稀疏的估计,是因为进行了因式分解之后,用来估计一个参数的数据也可以用来估计相关的另一个参数。比如说,我想预测两个用户之间的相互关系参数,来预测y,从图1可以看到,在每个样本中,用户的向量是one-hot,也就是说,在一个样本中,两个用户的参数不会都是非0数,如果直接进行估计的话,那么AB的相互关系参数会估计成0。但是如果进行因式分解机的预测话,就不会这样了。

4)计算量:接下来,我们展示如何让FMs变得实际可用。方程(1)的计算复杂度是O(kn2),但是通过下面的变换,会变成线性的时间复杂度O(kn)。在稀疏的情况下,大部分的x中的元素都是0,我们在计算的时候,只需要进行非0值的计算就可以了。

640?wx_fmt=png

B. 使用因式分解机进行预测

因式分解机可以用在各种预测任务中:

回归:直接进行预测,使用最小均方误差进行优化。

二分类:使用合页损失或者对数几率损失进行优化。

排序:对预测的分数进行排序,可以通过成对实例的分类损失进行优化。

在上面所有的情况下,都可以使用L2的正则化来防止过拟合。

C. 因式分解机的学习

FMs的参数可以通过梯度下降的方式来求解:

640?wx_fmt=png

其中,640?wx_fmt=pngi无关的,可以事先求出来。每个梯度都可以在O(1)时间内求得,整体的参数更新的时间为O(kn)

我们提供了一个通用的实现,LIBFM(http://www.libfm.org),使用SGD,支持元素和配对的loss

D. d阶的因式分解机

2阶的因式分解机可以很容易的推广到d

640?wx_fmt=png

其中,第l个相互关系参数可以通过PARAFAC模型进行因式分解。通过变换,同样可以在线性的时间复杂度上求解。

E. 总结

FMs的优点:

1)可以在稀疏的情况下进行很好的参数估计,特别是可以估计没有观测到的相互关系。

2)参数的大小和运算时间都是线性的,可以通过SGD进行参数的更新,可以使用多种loss

4、FMs vs. SVMs

A. SVM模型

我们看一下SVM模型和FMs的关系,我们知道SVM可以表示成变换后的特征向量和

参数的内积的形式,这个参数的变换我们通常使用核函数来进行。

1)线性核:和FM1阶的情况完全等效

2)多项式核:当多项式为2阶的时候,SVM对所有的相互关系使用了独立的参数,而FMs则通过因子的方式来共享相互关系之间的参数。

B. 稀疏情况下的参数估计

我们下面解释一下为什么SVM在稀疏的情况下表现不好。

1)线性SVM:在这种情况下线性SVM对应到了一个非常简单的模型,因为只有少数的几个参数。所以模型的参数的预测在这种稀疏情况下也会不错,但是预测的质量却不好,见图2

2)多项式SVM:这种情况下,SVM可以获取高阶的相互关系,但由于是x是稀疏的,所以最后的模型也是非常简单的模型,所以,结果也不会比线性的SVM更好。

640?wx_fmt=png

2

 

C. 总结

1)SVM的稠密的参数需要相互关系的直接的观测值,而在稀疏的输入的情况下,这种直接的观测值很少。

2)FMs可以直接进行学习,非线性的SVM通常在对偶形式进行求解。

3)FMs的函数不依赖与训练数据SVM的预测依赖部分训练数据(支持向量)。

5、FMs vs. 其他的因式分解模型

FMs可以通过使用合适的输入来模拟很多其他的因式分解模型。

6、结论

本文介绍了因式分解机(FMs)。并对和SVM进行了对比,以及和其他的因式分解模型进行了对比。FMs对于解决稀疏的输入相比SVM能够有很好的效果,参数和复杂度都是线性的,而且可以直接用SGD进行优化。FMs可以适用于任意的实值的预测。


论文链接:https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf

Github代码:https://github.com/srendle/libfm.

网站:http://www.libfm.org/

这篇关于推荐系统之《Factorization Machines》论文精读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080902

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

防近视护眼台灯什么牌子好?五款防近视效果好的护眼台灯推荐

在家里,灯具是属于离不开的家具,每个大大小小的地方都需要的照亮,所以一盏好灯是必不可少的,每个发挥着作用。而护眼台灯就起了一个保护眼睛,预防近视的作用。可以保护我们在学习,阅读的时候提供一个合适的光线环境,保护我们的眼睛。防近视护眼台灯什么牌子好?那我们怎么选择一个优秀的护眼台灯也是很重要,才能起到最大的护眼效果。下面五款防近视效果好的护眼台灯推荐: 一:六个推荐防近视效果好的护眼台灯的