前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >2、推荐广告算法模型之特征交叉模型

2、推荐广告算法模型之特征交叉模型

原创
作者头像
用户2794661
发布于 2022-08-03 17:03:50
发布于 2022-08-03 17:03:50
82400
代码可运行
举报
文章被收录于专栏:程序人生小记程序人生小记
运行总次数:0
代码可运行

自动特征交叉模型包括:FM系列(FM、FFM、AFM)、Embedding+MLP(FNN、PNN、NFM、ONN)、双路并行(Wide&Deep、DeepFM、DCN、xDeepFM、AutoINT)

FM系列(FM、FFM、AFM)

FM

  • 原理

将特征映射为K维向量,然后两两组合,旨在解决稀疏数据下的特征组合问题。

两两特征组合的方式最简单的方式为多项式组合,在数据稀疏的情况下,使用多项式组合预估的准确性会大大降低,FM提出一种先将特征映射为K维向量,然后两两组合的方式,由于学习到的参数更多,会提高预估的准确性。

  • 公式

  • 损失函数

(交叉熵损失函数)

  • 使用细节

(同LR)

  • 实现方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def model_fn(features, labels, mode, params):
    """
    FM model
    """
    feature_columns = build_features()

    input = tf.feature_column.input_layer(features, feature_columns)

    input_dim = input.get_shape().as_list()[-1]

    with tf.variable_scope('linear'):
        init = tf.random_normal(shape=(input_dim, 1))
        w = tf.get_variable('w', dtype=tf.float32, initializer=init, validate_shape=False)
        b = tf.get_variable('b', shape=[1], dtype=tf.float32)

        linear_term = tf.add(tf.matmul(input, w), b)

    with tf.variable_scope('fm_interaction'):
        init = tf.truncated_normal(shape=(input_dim, params['factor_dim']))
        v = tf.get_variable('v', dtype=tf.float32, initializer=init, validate_shape=False)
        sum_square = tf.pow(tf.matmul(input, v), 2)
        square_sum = tf.matmul(tf.pow(input, 2), tf.pow(v, 2))
        interaction_term = 0.5 * tf.reduce_sum(sum_square - square_sum, axis=1, keep_dims=True)

    with tf.variable_scope('output'):
        y = tf.math.add(interaction_term, linear_term)

    return y
  • 论文

Fast context-aware recommendations with factorization machines

  • 相关文章

张俊林:推荐系统召回四模型之:全能的FM模型

FFM

  • 原理

将特征映射为(Field*K),然后对特征进行两两组合,FFM认为一个特征和其他特征进行组合时,对不同特征应该对应个不同的向量。

  • 公式
  • 损失函数

(交叉熵损失函数)

  • 使用细节

(同LR)

  • 实现方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def model_fn(features, labels, mode, params):
    """
    FFM model
    """
    feature_columns, field_dict = build_features()
    field_dim = len(np.unique(list(field_dict.values())))
    input = tf.feature_column.input_layer(features, feature_columns)
    input_dim = input.get_shape().as_list()[-1]

    with tf.variable_scope('linear'):
        linear_term = tf.layers.dense(input, units=1)

    with tf.variable_scope('field_aware_interaction'):
        init = tf.truncated_normal(shape=(input_dim, field_dim, params['factor_dim']))
        v = tf.get_variable('v', dtype=tf.float32, initializer=init, validate_shape=False)

        interaction_term = tf.constant(0, dtype=tf.float32)
        for i in range(input_dim):
            for j in range(i + 1, input_dim):
                interaction_term += tf.multiply(
                    tf.reduce_mean(tf.multiply(v[i, field_dict[j], :], v[j, field_dict[i], :])),
                    tf.multiply(input[:, i], input[:, j])
                )
        interaction_term = tf.reshape(interaction_term, [-1, 1])

    with tf.variable_scope('output'):
        y = tf.math.add(interaction_term, linear_term)

    return y
  • 论文
  • 相关文章

张俊林:推荐系统召回四模型之二:沉重的FFM模型

AFM

  • 原理

FM会让一个特征固定一个特定的向量,当这个特征与其他特征做交叉时,都是用同样的向量去做计算。这个是很不合理的,因为不同的特征之间的交叉,重要程度是不一样的。如何体现这种重要程度,之前介绍的FFM模型是一个方案。另外,结合了attention机制的AFM模型,也是一种解决方案。

  • 公式

  • 损失函数

(交叉熵损失函数)

  • 使用细节

(同LR)

  • 实现方法
  • 论文

《Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks》

  • 相关文章

梁勇:推荐系统遇上深度学习(八)--AFM模型理论和实践

Embedding+MLP(FNN、PNN、NFM、ONN)

FNN

  • 原理

FNN是2016年提出的一种基于FM预训练Embedding的NN模型,其思路也比较简单;FM本身具备学习特征Embedding的能力,DNN具备高阶特征交叉的能力,因此将两者结合是很直接的思路。FM预训练的Embedding可以看做是“先验专家知识”,直接将专家知识输入NN来进行学习。注意,FNN本质上也是两阶段的模型,与Facebook在2014年提出GBDT+LR模型在思想上一脉相承。

  • 公式

FM+MLP

  • 损失函数

(交叉熵损失函数)

  • 使用细节

(同LR)

  • 实现方法
  • 论文
  • 相关文章

PNN

  • 原理

PNN是2016年提出的一种在NN中引入Product Layer的模型,其本质上和FNN类似,都属于Embedding+MLP结构。作者认为,在DNN中特征Embedding通过简单的concat或者add都不足以学习到特征之间复杂的依赖信息,因此PNN通过引入Product Layer来进行更复杂和充分的特征交叉关系的学习。PNN主要包含了IPNN和OPNN两种结构,分别对应特征之间Inner Product的交叉计算和Outer Product的交叉计算方式。

  • 公式

product layer 中每个节点是两两Field的embedding对应的“product”结果,而非所有Field的。根据 product 函数的不同选择,PNN也有不同实现,这里的想象空间就很多了。文中尝试了相对常见的向量内积(inner product)和外积(outer product),对应 IPNN 和OPNN。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

  • 损失函数
  • 使用细节
  • 实现方法
  • 论文

NFM

  • 原理

特征交叉方式:NFM将PNN的Product Layer替换成了Bi-interaction Pooling结构来进行特征交叉的学习。

  • 公式

Bi-interaction Pooling:

编辑

添加图片注释,不超过 140 字(可选)

编辑

添加图片注释,不超过 140 字(可选)

  • 损失函数
  • 使用细节
  • 实现方法
  • 论文

ONN

  • 原理

ONN是2019年发表的CTR预估,我们知道PNN通过引入不同的Product操作来进行特征交叉,ONN认为针对不同的特征交叉操作,应该用不同的Embedding,如果用同样的Embedding,那么各个不同操作之间就会互相影响而最终限制了模型的表达。

  • 公式

编辑切换为居中

添加图片注释,不超过 140 字(可选)

  • 损失函数
  • 使用细节
  • 实现方法
  • 论文

Wide&Deep

  • 原理

Wide And Deep是2016年Google提出的用于Google Play app推荐业务的一种算法。其核心思想是通过结合Wide线性模型的记忆性(memorization)和Deep深度模型的泛化性(generalization)来对用户行为信息进行学习建模。

  • 公式

编辑切换为居中

添加图片注释,不超过 140 字(可选)

  • 损失函数
  • 使用细节
  • 实现方法
  • 论文

DeepFM

  • 原理

我们知道FM只能够去显式地捕捉二阶交叉信息,而对于高阶的特征组合却无能为力。DeepFM就是在FM模型的基础上,增加DNN部分,进而提高模型对于高阶组合特征的信息提取。DeepFM能够做到端到端的、自动的进行高阶特征组合,并且不需要人工干预。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

  • 公式
  • 损失函数
  • 使用细节
  • 实现方法
  • 论文

DCN

  • 原理

特征交叉方式:Deep&Cross其实也属于双路并行的模型结构,只不过提出了一种新的模型叫做Cross Net来替代DeepFM中的FM部分。DNN本身虽然具备高阶交叉特征的学习能力,但其对于特征交叉的学习是隐式的、高度非线性的一种方式,因此作者提出了Cross Net,它可以显式地进行特征的高阶交叉,CrossNet相比于DNN的优势主要在于:

公式:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

  • 公式
  • 损失函数
  • 使用细节
  • 实现方法
  • 论文

xDeepFM

  • 原理

xDeepFM全称为eXtreme Deep Factorization Machine,可以看出其是在DeepFM基础上进行了改进。xDeepFM的贡献主要在于提出了压缩交互网络(Compressed Interaction Network),与DCN相同的是,都提出了要cross feature explicitly;但不同的是,DCN中的特征交叉是element- wise的,而CIN中的特征交叉是vector-wise的。

  • 公式

编辑切换为居中

添加图片注释,不超过 140 字(可选)

  • 损失函数
  • 使用细节
  • 实现方法
  • 论文

AutoINT

  • 原理

将self_attention机制引入到推荐场景中。

  • 公式

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

  • 损失函数
  • 使用细节
  • 实现方法
  • 论文

参考文献:

深入FFM原理与实践

万字长文梳理CTR预估模型发展过程与关系图谱

https://www.bookstack.cn/read/huaxiaozhuan-ai/README.md

阿里妈妈技术:WSDM 2022 | 点击率模型特征交叉方向的发展及CAN模型介绍

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
关于业务架构基础知识的二三事儿(编号:005 关于什么是业务架构)
今天晚上临时挤出点儿时间,说个重要问题,就是“业务架构”的定义,到底什么是业务架构。
用户6900693
2023/08/29
1990
关于业务架构基础知识的二三事儿(编号:005 关于什么是业务架构)
从业务架构视角聊聊大型商业银行的转型实践
随着云计算、大数据、区块链和 AI 以及移动互联等新一代信息技术的发展,企业数字化转型加速。市场在变,需求也在变,面对高度创新和充满不确定性的敏态业务,为快速交付高质量的软件产品或服务,企业需要有更好的业务架构设计,去适应不同阶段的业务特性。
用户6900693
2020/04/26
8160
从业务架构视角聊聊大型商业银行的转型实践
中台指挥官体系建设系列 八- 中台建设中技术平台的考虑
前面文章的读者对象主要是CIO/CTO、产品经理、企业架构师,这个章节的读者对象主要是企业架构师/首席架构师。本篇内容长、专业内容多,建议收藏仔细阅读。
数字化转型
2020/05/15
1.1K0
关于业务架构基础知识的二三事儿(编号:002 架构联通设计)
第一篇发出后,大家看的还挺积极,有读者也发来了问题,既然客官点菜了,那东北厨子就得上灶了,必须得!
用户6900693
2023/08/29
3750
关于业务架构基础知识的二三事儿(编号:002 架构联通设计)
关于业务架构基础知识的二三事儿(编号:007 关于元模型)
读者提问:我最近在对比学习BIZBOK、TOGAF、ABAE聚合架构、《华为数字化转型之道》中提到的业务架构要素(元模型),怕自己理解有偏差,您能否出一期解读不同业务架构元模型的文章,对比哪些元素相同、哪些不同
用户6900693
2023/10/08
7100
关于业务架构基础知识的二三事儿(编号:007 关于元模型)
关于业务架构基础知识的二三事儿(编号:001)
我自己出来讲业务架构到现在也算三年多了,我经常说自己是个烧冷炕的,那时候几乎没多少人在公开讲这个领域,因为虽然有大名鼎鼎的Zachman框架、TOGAF等方法论可供大家学习,但是国内企业实打实且从头到尾完整实施的案例极少。华为早在2008年就成立了企业架构部,但是出来讲企业架构也不过是这几年的事情,尤其是2022年《华为数字化转型之道》这本书出来之后,毕竟企业架构同道少,所以,2021年和2022年我也都去华为交流学习过,其实所有落地的方法论都有些区别,这是需要注意灵活的地方。
用户6900693
2023/08/29
3040
关于业务架构基础知识的二三事儿(编号:001)
关于业务架构基础知识的二三事儿(编号:004 关于学习业务架构)
最近刚看到一则新闻,国资委在浙江召开央企数字化转型工作会议,总结了央企的成绩,也提到了几项要求,我摘录了其中几条:
用户6900693
2023/08/29
2040
关于业务架构基础知识的二三事儿(编号:004 关于学习业务架构)
三大层次学习企业架构框架TOGAF
在本文中,笔者将首先讨论企业架构框架TOGAF的学习方法。目前,关于TOGAF的学习材料主要以官方手册为主,网上的资料大多不成体系。然而,官方手册本身存在几个较大缺点可能影响学习质量,以下是笔者总结出来的几个主要缺点:
洁洁
2024/04/23
4310
三大层次学习企业架构框架TOGAF
数字化转型中,如何高效设计业务架构?
数字化转型的传统过程中,企业往往不关注架构设计,或者只关注 IT 层面,未从企业架构宏观视角出发进行设计,特别是在整个企业架构中扮演着至关重要的业务架构。 业务架构是明确从企业战略计划到企业各部分如何运转的工具,其从企业的全局视角,对后续IT架构及业务运营方向提供指导。 本文我们主要介绍什么是业务架构?业务架构包括哪些主要内容?以及如何有效构建业务架构? 1 什么是业务架构 业务架构(Business Architecture)来自业务,业务最终的目的是“售出产品,换取利润”,业务是为企业产生盈利的工作和经
博文视点Broadview
2023/04/19
1.2K0
数字化转型中,如何高效设计业务架构?
关于业务架构基础知识的二三事儿(编号:005-1 关于什么是业务架构)
业务架构的思考,从“全局化、结构化”和“目标导向”这两个基本逻辑出发,其分析基础是通过对流程和数据的分解,形成最基本的零件,也就是关于构件的定义,得有了这一地的拼图材料才能开展工作,“巧妇难为无米之炊”。
用户6900693
2023/08/29
2140
关于业务架构基础知识的二三事儿(编号:005-1 关于什么是业务架构)
数据治理专业认证CDMP学习笔记(思维导图与知识点)- 第四章数据架构篇
本文档为数据架构部分笔记,思维导图与知识点整理。共分为6个部分,由于页面显示原因,部分层级未能全部展开。结构如下图所示。
用户6070864
2023/03/24
4860
数据治理专业认证CDMP学习笔记(思维导图与知识点)- 第四章数据架构篇
程序员们,是时候重新关注下企业架构了!(续)
笔者有幸参加过一个在全世界范围看也少有的极为完整的大型银行企业架构转型工程,是一家国有银行,工程历时六年多,项目投入和深度都是无与伦比的。该项目采用的是 TOGAF 加 CBM 的融合型方法论,其工程情况如下图所示:
用户6900693
2021/12/26
5120
程序员们,是时候重新关注下企业架构了!(续)
【业务架构】业务架构为企业架构的顶层
业务架构是最主要的架构;所有其他架构都可以从业务架构中派生出来,并且应该可以追溯到业务架构。 尽管任何模型都是对某些现实的抽象,但业务架构应该是业务术语中对现实最有形的表示。它为构建所有其他架构提供了业务规则和要求。该架构层维护与企业战略的联系,并使整个企业保持专注;通过这种方式,它为额外的业务改进和建立竞争优势的机会提供了极好的反馈机制。 业务架构定义了企业价值链(或流程流)及其与所有企业和外部业务实体的关系。它定义了企业必须生产什么以及如何生产以满足客户、在市场中竞争、与供应商打交道、维持运营和照顾员
架构师研究会
2022/03/08
7370
企业架构与领域驱动设计的融合
DDD的作用范围主要还是针对系统级的分析、架构与设计,在更高的层面上,即将问题空间扩大到超过系统范围,变成企业或组织范围之后,DDD的模式就显得捉襟见肘了。此时,可以考虑引入企业架构的思想,尤其是业务架构的内容,给了DDD很好的补充,又或者说,将企业架构与DDD融合起来,就能真正串联起战略和战术设计了。
张逸
2023/03/23
2600
企业架构与领域驱动设计的融合
企业架构 | TOGAF架构能力框架
为确保架构功能在企业中能够被成功运用,企业需要通过建立适当的组织结构、流程、角色、责任和技能来实现其自身的企业架构能力。这正是TOGAF的架构能力框架(Architecture Capability Framework)的关注点所在。架构能力框架为企业如何建立这样一种架构能力提供了一系列参考材料。不过TOGAF的架构能力框架在当前还不是一套全面的关于如何运用架构能力的模板,它只是为企业架构能力建设和运用过程中的各项关键活动提供了一系列导则和指南。
架构之家
2022/07/12
1.9K0
企业架构 | TOGAF架构能力框架
金融企业架构数字化实践
国资委在《关于加快推进国有企业数字化转型工作的通知》中明确指出,以企业架构为核心构建现代化IT治理体系,促进IT投资与业务变革发展持续适配。在信创迁移和数字化转型的双重推进下,企业架构有效承接战略、对齐业务和科技,使得企业各领域形成一个有机整体,更快速地助力企业应对挑战、响应变化,并增强自身的竞争力。
yuanyi928
2022/09/26
6370
金融企业架构数字化实践
企业架构方法论可以简化吗?
在与很多读者朋友的沟通中,经常会遇到对方法论的各种思考和提问,这都是为了推动方法论的进步,今天跟大家聊下问的最多的一个,也许笔者自己说的也是误解,大家共同讨论吧。
用户6900693
2021/03/11
6290
企业架构方法论可以简化吗?
【业务架构】业务架构:战略执行之路上缺失的艺术/科学
我不止一次被告知,企业架构 (EA) 是在浪费时间。老板、客户、同事和开发人员都告诉过我。我可以理解有些人不了解架构在公司中所扮演的角色——尤其是商务人士。但是,当 CTO 或 CIO 告诉您这一点时,您不得不想知道他们是如何成为他们的职位的?他们是主人的侄女还是侄子?他们对 CEO 保密吗?也许他们只是看起来的一部分。他们显然不是从他们的智慧和能力中得到的。
架构师研究会
2022/09/26
2640
【业务架构】业务架构:战略执行之路上缺失的艺术/科学
架构设计的四大思维支柱
笔者在 InfoQ 前文《关于架构演进发展的探讨》和《架构演进的第四个趋势:行业级标准化》中,提出了笔者对架构发展趋势的一些浅见,也介绍了企业级业务架构方法论的来龙去脉,本文拟基于上述文章提炼一下企业软件(大家常说的 B 端软件)架构设计中的四大思维支柱供大家参考。
用户6900693
2020/04/24
5290
架构设计的四大思维支柱
「企业架构」TOGAF 和Zachman有什么区别?
Zachman和TOGAF是用于实现企业架构的框架。在本文中,我们将讨论两个最流行的企业架构框架:TOGAF和Zachman。我们还将包括如何选择以及额外资源的提示。
架构师研究会
2020/07/20
2.9K0
「企业架构」TOGAF 和Zachman有什么区别?
推荐阅读
相关推荐
关于业务架构基础知识的二三事儿(编号:005 关于什么是业务架构)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档