【经典论文阅读1】FM模型——搜推算法里的瑞士军刀

2024-05-04 18:44

本文主要是介绍【经典论文阅读1】FM模型——搜推算法里的瑞士军刀,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 全文由『说文科技』原创出品,文章同步更新于公众号『说文科技』。版权所有,翻版必究
    在这里插入图片描述

FM模型发表于2010年,它灵活好用且易部署。作者行文极其流畅,作者首先对要处理的问题进行介绍,接着作者提出FM模型,这个模型与SVM的关键区别在于FM模型在稀疏数据上具备更好的性能。FM模型的底层思想就是用特征向量(可以看出本文已经初步具备embedding的思想)的点积代替简单的权重从而得到更好的权重表示,这种思想巧妙地绕开了稀疏数据的影响。现在FM模型仍然在搜推行业上发挥作用,对于业务刚起步的公司来说,它不仅效果好,而且性能强,故大多数人称之为搜索算法里的瑞士军刀。

0. 前言

看这篇文章前,首先需要理解one-hot向量和SVM

0.1 理解one-hot向量。

其实在embedding被广泛接受之前,业界一直使用的都是one-hot向量。这个one-hot向量很好理解,举个例子来说:如果一个词表大小为7(假设词典就是:『别和捞女谈恋爱』),那么别这个字的表示就是[1,0,0,0,0,0,0]。但是使用one-hot的一个最大的缺点就是:向量太稀疏了,只有一个1,其它全是0。而业界之前的做法就是将类似词表这种特征信息作为模型的输入,所以模型就需要对稀疏值有一个很好的处理能力(,但实际上大多数模型做不到)。

0.2 熟悉SVM。

简单来说:SVM算法就是需要去构建一个超平面,这个超平面可以很好的将数据进行分类,达到的分类效果是:使得支持向量到超平面最短的距离达到最大。 如果对这段话不能理解,可以参考我之前的算法工程师面试题十之支持向量机(SVM) 进行学习。SVM在稀疏特征上的效果很差,所以才出现了本文的FM模型。

1. 摘要

FM模型,是一个将factorization model(因式分解)模型和SVM模型优点结合在一起的模型。它具备如下优点:

  • FMs are a general predictor working with any real valued feature vector.
    这意思就是说:FMs是一个通用的预测器,这个预测器的输入可以是任何真实的特征向量

  • 对于巨大稀疏值这一问题,FM模型依然可以做出交互。【这一点就是FM的关键思想】
    在这里插入图片描述

  • FMs subsume many of the most successful approaches for the task of collaborative filtering including biased MF, SVD++ [2], PITF [3] and FPMC.
    意思就是说:FMs 归纳了协同过滤任务中大多数的成功的方法:例如 biased MF,SVD++,PITF,FPMC等。

总结一下,就是如下这些优点:
在这里插入图片描述

2. 思想

下面这句话就是本文最核心的思想:
在这里插入图片描述
the FM models the interaction by factorizing it. 就是说通过因式分解的方式建模交互, 交互的过程就是通过点积实现。

3. 模型

3.1. FM 模型

下面这段表述就清楚地说明了FM模型长什么样子:
在这里插入图片描述
x i x_i xi x j x_j xj 是特征向量 x x x 的第 i i i 维和 第 j j j 维上的值。

通过式子(1),可以看出,FM模型与逻辑回归的不同之处就在于多计算了
∑ i = 1 n ∑ j = i + 1 n < v i , v j > x i x j \sum_{i=1}^{n}\sum_{j=i+1}^{n} <v_i,v_j>x_i x_j i=1nj=i+1n<vi,vj>xixj
这一部分。假设 V 3 ∗ 2 V_{3*2} V32,那么这部分就等价于: < v 1 , v 2 > x 1 x 2 + < v 1 , v 3 > x 1 x 3 + < v 2 , v 3 > x 2 x 3 <v_1,v_2>x_1 x_2 + <v_1,v_3>x_1x_3 + <v_2,v_3>x_2x_3 <v1,v2>x1x2+<v1,v3>x1x3+<v2,v3>x2x3。这么做的效果就相当于让各个特征进行充分的交互,每个交互的权值由 < x i , x j > <x_i,x_j> <xi,xj>决定。

3.2. FM模型的表达能力

在这里插入图片描述

3.3. 稀疏数据下的参数估计

在这里插入图片描述

这段话看着挺头疼的,看懂了也就明白作者说的是哪会儿事儿了。这个思想很简单就是『因式分解』,再说的详细点儿,就是用embedding间点积的思想代替以前单个值作为特征交互的权重

  • 如果直接使用权重 w A , S T = 0 w_{A,ST} = 0 wA,ST=0 表示Alice和 Star Wars间的交互,则显得过于绝对了(Alice没看过这部电影或者没评价这部电影,不代表她没情绪啊);

那么有没有好的衡量方法呢?显然是有的?如果一步做不成的事儿,那就分两步做。将第 i i i个特征都抽象成一个向量 v i v_i vi(所有的特征向量的表示就成了一个矩阵 V V V),那么用向量间的点积去表示权重,这样总会避免得到0值吧!

在这里插入图片描述

上图完美的诠释了什么叫一图胜千言。说实话,在现在这个鱼龙混杂的论文年代,看到这种非常细致,非常认真的作图的论文真的很少(至少这个作者的论文比我本人写论文画的图要好太多)。

3.4. 复杂度

经过一系列的转换计算,可以得出FM模型的复杂度是 O(kn)。详细的转换计算过程如下:
在这里插入图片描述

3.5. 损失优化

使用随机梯度下降(SGD) 的方法来更新参数值。

3.6. d-way FM模型

上面介绍FM模型时,都是将交互矩阵的维度取成2,也就是所说的2-way FM模型,那么泛化成 d-way FM模型,就是下面这样:
在这里插入图片描述

4. 效果

4.1 FM vs SVM in sparse data

在这里插入图片描述

5. 疑问

5.1. 什么是pairwise training data

也就是一个tuple = (x,y),这个tuple (x,y) 表示 x 应该 比y 的排名更靠前,可以结合下面这篇文章理解:
在这里插入图片描述

5.2. 稀疏的含义是什么?

指的就是一个向量 x 的大多数元素都是zero。下面给出了一个简单的示例:

One reason for huge sparsity is that the underlying problem deals with large categorical variable domains.
原因就是:每项特征的类别都太多了,搞成one-hot 形式就会有很多稀疏值。

5.3 为啥拿特征之间的交互?

通过文章中的表达式:
在这里插入图片描述

5.4 SVM 未能在collaborative filtering 领域发挥价值的原因是:

在这里插入图片描述
hyperplane 也就是分类的超平面;non-linear kernel 也就是让你学习过程中十分头疼的那些核方法。

5.5 复杂度里的k,n 分别表达什么?

上文中提到 k k k是交互矩阵的纬度, n n n代表输入特征向量 x x x的维度

5.6 下文中的 degree d = 2是啥意思?

在这里插入图片描述
很简单,就是指交互向量的维度。

5.7 为啥用点积模拟交互?

在这里插入图片描述
那不然用啥捏?

6. 好句分享

In the remainder of this paper, we will show the relationships between factorization machines and support vector machines as well as matrix, tensor and specialized factorization models.

in the remainder of this paper, 在文章的剩余部分…

这篇关于【经典论文阅读1】FM模型——搜推算法里的瑞士军刀的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

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

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

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

AI hospital 论文Idea

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