推荐模型-上下文感知-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

相关文章

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

详解如何使用Python从零开始构建文本统计模型

《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主

SpringBoot整合Sa-Token实现RBAC权限模型的过程解析

《SpringBoot整合Sa-Token实现RBAC权限模型的过程解析》:本文主要介绍SpringBoot整合Sa-Token实现RBAC权限模型的过程解析,本文给大家介绍的非常详细,对大家的学... 目录前言一、基础概念1.1 RBAC模型核心概念1.2 Sa-Token核心功能1.3 环境准备二、表结

mybatis的mapper对应的xml写法及配置详解

《mybatis的mapper对应的xml写法及配置详解》这篇文章给大家介绍mybatis的mapper对应的xml写法及配置详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录前置mapper 对应 XML 基础配置mapper 对应 xml 复杂配置Mapper 中的相

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re