推荐模型-上下文感知-2015:FFM模型【在FM基础上引入特征域】【每个特征对应的不是唯一一个隐向量权重,而是一系列,与每个特征域都计算出一个隐向量权重】【FM:O(kn);FFM:O(knf)】

本文主要是介绍推荐模型-上下文感知-2015:FFM模型【在FM基础上引入特征域】【每个特征对应的不是唯一一个隐向量权重,而是一系列,与每个特征域都计算出一个隐向量权重】【FM:O(kn);FFM:O(knf)】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Yuchin Juan et al. “Field-aware Factorization Machines for CTR Prediction” in RecSys 2016.

https://github.com/rixwew/pytorch-fm

2015年,Criteo基于FM提出的FFM在多项CTR预估大赛中夺魁,并被Criteo、美团等公司深度应用在推荐系统、CTR预估等领域。

FFM算法,全名 Field-aware Factorization Machines ,整整比FM算法多了一个F!多出来的F意为Field

相比FM模型,FFM模型引入了特征域感知(field-aware)这个概念,使模型的表达能力更强了。
在这里插入图片描述
FM、FFM模型只具备二阶特征交叉的能力。Deep Crossing模型可以通过调整神经网络的深度进行特征之间的“深度交叉”,这也 是 Deep Crossing名称的由来。
在这里插入图片描述

(式 2-22 ) 是 FFM的数学形式的二阶部分。其与FM的区别在于隐向量由原 来 的 变 成 了 也 /2 ,这意味着每个特征对应的不是唯一一个隐向量,而是一组 隐向量。当税特征与税特征进行交叉时,税特征会从税的这一组隐向量中挑出与特征税的域心对应的隐向量%后进行交叉。同理,/ 2也会用与税的域方对应的隐向量进行交叉。

这里所说的域( field ) 具体指什么呢?简单地讲,“域”代表特征域,域内 的特征一般是采用one-hot编码形成的一段one-hot特征向量。例如,用户的性别 分为男、女、未知三类,那么对一个女性用户来说,采用one-hot方式编码的特 征向量为[0,1,0],这个三维的特征向量就是一个“性别”特征域。将所有特征域 连接起来,就组成了样本的整体特征向量。

下面介绍Criteo FFM的论文⑹中的一个例子,更具体地说明FFM的特点。 假设在训练推荐模型过程中接收到的训练样本如图2-11所示。
在这里插入图片描述
其中,Publisher、Advertiser、Gender 是三个特征域,ESPN、NIKE、Male 分别是这三个特征域的特征值(还需要转换成one-hot特征)。

如 果 按 照 F M 的原理,特 征 ESPN、NIKE和 M ale都有对应的隐向量 WESPN,WNiKE,WMaie,那么ESPN特征与NIKE特征、ESPN特征与Male特征做交 叉的权重应该是WESPN , WNIKE和WESPN e WMale。其中,ESPN对应的隐向量WESPN在 两次特征交叉过程中是不变的。

而 在 FFM 中,ESPN与 NIKE、ESPN与 M ale交叉特殊的权重分别是 WESPN,A . WNIKE,P 和 WESPN,G • Malpo
细心的读者肯定已经注意到,ESPN在与NIKE和 Male交叉时分别使用了不 同的隐向量WESPN,A和WESPN,G,这 是 由 于 N IK E和 M ale分别在不同的特征域 Advertiser(A)和 Gender(G)导致的。

在 FFM模型的训练过程中,需要学习〃个特征在7个域上的左维隐向量,参 数 数 量 共 九 个 。在训练方面,FFM的二次项并不能像FM那样简化,因此其 复杂度为kn2o 一

相比FM, FFM引入了特征域的概念,为模型引入了更多有价值的信息,使 模型的表达能力更强,但与此同时,FFM的计算复杂度上升到奶2 ,远大于FM的如。在实际工程应用中,需要在模型效果和工程投入之间进行权衡。
在这里插入图片描述

从 POLY2到 FFM的模型演化过程

在这里插入图片描述
在这里插入图片描述




参考资料:
RS笔记:传统推荐模型之FFM (引入特征域的概念) [2015 Criteo]
推荐系统召回四模型之二:沉重的FFM模型
深入FFM原理与实践
FFM模型详解

这篇关于推荐模型-上下文感知-2015:FFM模型【在FM基础上引入特征域】【每个特征对应的不是唯一一个隐向量权重,而是一系列,与每个特征域都计算出一个隐向量权重】【FM:O(kn);FFM:O(knf)】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

SpringBoot项目引入token设置方式

《SpringBoot项目引入token设置方式》本文详细介绍了JWT(JSONWebToken)的基本概念、结构、应用场景以及工作原理,通过动手实践,展示了如何在SpringBoot项目中实现JWT... 目录一. 先了解熟悉JWT(jsON Web Token)1. JSON Web Token是什么鬼

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

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

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

Spring Boot 中整合 MyBatis-Plus详细步骤(最新推荐)

《SpringBoot中整合MyBatis-Plus详细步骤(最新推荐)》本文详细介绍了如何在SpringBoot项目中整合MyBatis-Plus,包括整合步骤、基本CRUD操作、分页查询、批... 目录一、整合步骤1. 创建 Spring Boot 项目2. 配置项目依赖3. 配置数据源4. 创建实体类

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

基于Qt实现系统主题感知功能

《基于Qt实现系统主题感知功能》在现代桌面应用程序开发中,系统主题感知是一项重要的功能,它使得应用程序能够根据用户的系统主题设置(如深色模式或浅色模式)自动调整其外观,Qt作为一个跨平台的C++图形用... 目录【正文开始】一、使用效果二、系统主题感知助手类(SystemThemeHelper)三、实现细节

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

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