afm_layer

推荐系统 - 排序 - AFM(attentional factorization machine) Attentional Factorization Machine 本文介绍Attentional Factorization Machines:Learning the Weight of Feature Interactions via Attention Networks,简称为AFM,原文Paper链接;具体的代码实现见Github 之前我们讲过FM(https://blog.youkuaiyun.com/weixin_41332009/article/details/113310163) 摘要 AFM 阅读详情

在这里插入图片描述

# coding=utf-8
import itertools
import tensorflow as tf
from tensorflow.keras import Model
from tensorflow.keras.regularizers import l2
from tensorflow.keras.layers import Embedding, Dense, Dropout, Input

from tensorflow.keras.layers import Layer

class AFM_Layer(Layer):
    def __init__(self, feature_size, embedding_dim, mode="sum",name=None, att_vector=8, activation='relu', dropout=0.8):
        super(AFM_Layer, self).__init__()
        self.embedding_weight = \
            self.add_weight(shape=(feature_size, embedding_dim),
                            initializer=tf.initializers.glorot_normal(),
                            name="{}/embedding_weight".format(name))
        self.mode = mode

        if self.mode == "att":
            self.attention_W = Dense(att_vector, activation=activation, use_bias=True)
            self.attention_dense = Dense(1, activation=None)

        self.dropout = Dropout(dropout)
        self.dense = Dense(1, activation=None)


    def call(self, inputs, **kwargs):
        ## (batch_size, feature_size, embedding_size)

        feature_zize = inputs[1] ## (batch_size, feature_size)
        emb_res = tf.nn.embedding_lookup(self.embedding_weight, inputs)

        row = []
        col = []
        ## 按照顺序依次选取进行交叉,就是序号
        for r, c in itertools.combinations(range(len(feature_zize)), 2):
            row.append(r)
            col.append(c)

        p = tf.gather(emb_res, row, axis=1) ## (batch_size, (f_size)*(f)/2, k)
        q = tf.gather(emb_res, col, axis=1) ## (batch_size, (f_size)*(f)/2, k)
        bi_interaction = p * q

        #  axis=1  reduce_sum reduce_mean 去除一个维度 (batch_size, embed_dim)
        if self.mode == "sum":
            outputs = tf.reduce_sum(bi_interaction, axis=1)
            return outputs

        if self.mode == "avg":
            outputs = tf.reduce_mean(bi_interaction, axis=1)
            return outputs

        if self.mode == "att":
            ## 讲每个向量进行映射,然后再缩减为1为,然后归一化
            a = self.attention_W(bi_interaction)  # (None, (len(sparse) * len(sparse) - 1) / 2, t)
            a = self.attention_dense(a)  # (None, (len(sparse) * len(sparse) - 1) / 2, 1)
            a_score = tf.nn.softmax(a, axis=1)  # (None, (len(sparse) * len(sparse) - 1) / 2, 1)
            outputs = tf.reduce_sum(bi_interaction * a_score, axis=1)  # (None, embed_dim)
            return outputs


if __name__ == '__main__':

    inputs = tf.constant([[1, 2, 3, 5, 6],
                          [8, 2, 3, 68, 11],
                          [20, 2, 2, 3, 6],
                          [39, 2, 99, 23, 34]], dtype=tf.int32)

    print("inputs", inputs)

    afm_layer = AFM_Layer(100, 10, name="AFM_layer")

    res = afm_layer(inputs, mode="att")
    print("res:", res)

深度学习CTR模型最全演化图谱 [王喆观点] 毕业于清华大学计算机系的王喆学长回顾了近3年来的所有主流深度学习CTR (click through rate) 模型,并梳理推荐系统、计算广告领域在深度学习方面的前沿进展。内容来源:https://zhuanlan.zhihu.com/p/63186101 随着微软的Deep Crossing,Google的Wide&Deep,以及FNN,PNN等一大批优秀的深度学习CTR预估模型在2... 阅读详情

相关推荐

推荐算法炼丹笔记:排序模型CTR点击率预估系列

微信公众号:炼丹笔记​CTR点击率预估系列家谱炼丹之前,先放一张CTR预估系列的家谱,让脉络更加清晰。(一)FiBiNET:结合特征重要性和双线性特征交互进行CTR预估1.1 背景本文发表在RecSys 2019,主要通过动态学习不同特征的特征重要性权重,解决CTR预估中对不同场景下不同特征的权重(ReWeight)重定义问题,同时,双线性的使用解决稀疏数据在特征交叉建模时的有效性问题。1.2 创...

炼丹笔记 1129

Datawhale活动task01:AFM阅读

task01:AFM阅读 (这是我第一次在csdn上写文章,目的是完成参加Datawhale组织的一个很好的活动的任务,第一次发也是对我的一种挑战) 1. AFM提出的动机 AFM(Attentional Factorization Machines)是在FM的基础上加上了注意力机制,而FM是通过特征隐向量的内积来对交叉特征进行建模,公式如下: yfm=w0+∑i=1nwixi+∑i=1n∑i+1n<vi,vj>xixj y_{fm} = w_0+\sum_{i=1}^nw_ix_i+\sum_

weixin_45442031的博客 201

《推荐系统》-NFM模型

1、引言 在CTR预估中,为了解决稀疏特征的问题,学者们提出了FM模型来建模特征之间的交互关系。但是FM模型只能表达特征之间两两组合之间的关系,无法建模两个特征之间深层次的关系或者说多个特征之间的交互关系,因此学者们通过Deep Network来建模更高阶的特征之间的关系。因此 FM和深度网络DNN的结合也就成为了CTR预估问题中主流的方法。有关FM和DNN的结合有两种主流的方法,并行结构和串行结构。两种结构的理解以及实现如下表所示: 图1、两种结构的理解 今天介绍的NFM模型(Neural Factor

m0_37748303的博客 674

推荐系统FM系列文章(四)-- AFM模型

0. 写在前面 前面我们介绍了FM系列的三大模型,包括FM模型,DeepFM以及NFM。DeepFM与NFM模型都对FM做了不同程度的优化,重点都是结合神经网络实现对特征的高阶组合。今天我们来介绍将attention机制应用于FM模型的AFM模型(Attentional Factorization Machine)。 个人心得: 特征组合的重要性会随预测目标的改变而发生变化 attention机制用于学习特征交叉前的不同权重 论文地址: https://www.ijcai.org/Proceedings

hionechance的blog 1041

因子分解机(Factorization machine,FM),DIFM模型

但是上述工作忽略了样本的独特性,举例来说,当样本是,预测是否会点击,此时女性这个特征会起到较为关键的作用;当样本是,预测是否会点击,此时女性这个特征就相对来说没有那么重要。在IFM中,使用DNN结构来计算input-aware factors,这种方式是bit-wise level的,也就是说,特征的embedding的不同元素之间会相互影响;同时,许多的研究工作聚焦于从特征交互角度来提升FM模型的效果,如。...

ZhangJiqun&191cm&85kg 424

ConnectionResetError 10054 根因分析与全链路防御指南

ConnectionResetError(错误码10054)是TCP协议中服务端主动发送RST包导致的强制断连,本质并非网络连接失败,而是服务端基于空闲超时、连接满载、TLS协商失败等策略做出的确定性终止决策。理解其底层原理有助于跳出‘重试’误区,转向连接生命周期管理。该错误高频出现在HTTP长连接、WebSocket、第三方API对接等场景,尤其在Nginx反向代理、负载均衡器(如AWS ALB)、WAF设备及内核conntrack机制下极易触发。本文结合Wireshark抓包分析、客户端心跳保鲜、协议指

weixin_30225755的博客 637

推荐系统深度学习篇-AFM模型介绍(3)

一、AFM模型简介 AFM模型是17年发表在IJCAI-17上的一篇论文,它是NFM模型的一个改进, 在传统FM模型中,使用二阶交叉特征得到非线性表达能力,但是不是所有的特征交叉都会有预测能力,很多无用的特征交叉加入后反而会相当于加入了噪声。为了区别对待不同的特征,引入了Attention机制。 论文地址为:https://www.ijcai.org/proceedings/2017/0435.pdf 其结构图为 其中attention network可形式化为: AFM模型的公式为: 需要注意的是:

来自Daisy和她的单程车票 2396

092、多sensor帧同步在环视系统中的实现——基于瑞芯微RK3588的PPS同步与曝光同步方案

摘要: 本文探讨了瑞芯微RK3588平台在360环视系统中实现多摄像头帧同步的技术方案。针对环视拼接常见的动态场景错位问题,提出了PPS同步与曝光同步相结合的解决方案。通过GPIO硬件触发实现四路摄像头同步曝光,配合I2C全局曝光控制,将时间误差控制在0.5ms内。文章详细解析了RK3588设备树配置、内核驱动实现中的关键细节,包括同步信号处理、寄存器原子写入等核心技术点,并分享了量产中遇到的温度漂移、信号完整性等实际问题及解决方法。最终通过硬件整形和电源优化,将同步抖动控制在±5μs以内,有效解决了动态拼

zzfmlxs的博客 33

排序算法模型(8):使用Attention机制结合FM的CTR预估模型AFM

由于LR在特征工程上的高昂成本,具有隐性特征交叉向量的FM()成为挖掘二阶特征组合的CTR预估。FM的核心思路是,为每一个特征设置一个隐向量,根据该向量的值来表示该特征与其他特征之间的关系。对于任意两个特征的组合,只需要求出两个隐向量的内积即可得到其权重值。FM在CTR预估作业上的潜力被不断挖掘,先是FFM()提出了“field”概念。原始的FM是每个特征只有一个隐向量wi​,而FFM则认为特征应该被分为不同的field,如果一共被分为n个不同field的话,每个特征就应该具备n个不同的隐向量。

唐犁的博客 768

基于JeecgBoot 3.9.0 开源项目的企业管理平台

基于JeecgBoot 3.9.0 开源项目的企业管理平台

宁波阿成的博客 370

YOLOv8改进-bifpn

跨尺度连接通过添加一个跳跃连接和双向路径来实现,自此实现了加权融合和双向跨尺度连接。该结构是加权且双向连接的,即自顶向下和自底向上结构,通过构造双向通道实现跨尺度连接,将特征提取网络中的特征直接与自下而上路径中的相对大小特征融合,保留了更浅的语义信息,而不会丢失太多的深层语义信息。传统的特征融合时将尺度不同的特征图以相同权重进行加权,但是当输入的特征图分辨率不同时,以相同的权重进行加权对输出的特征图不平等。所以BiFPN根据不同输入特征的重要性设置不同的权重,同时反复采用这种结构来加强特征融合。

weixin_45303602的博客 8136

Attentional Factorization Machines - 学习笔记

引言 本篇文章介绍的是Attentional Factorization Machines(AFM)。AFM开创性地将注意力机制引入到因子分解机(Factorization Machines)中,可视为FM和NFM的延续之作,这两个模型在前面博客中已经进行了介绍,有兴趣的读者可以点击蓝色链接进行深入了解。 简单回顾一下,FM使用两个隐向量的内积来表示一对特征组合的权重,增强了模型的泛化性;NFM为了弥补FM中特征交叉阶数有限的缺点,引入深度神经网络(DNNs)构建交叉特征,并提出了一种新的特征交叉操作。 概

不学无术的小镇做题家 878

Java调用YOLOv26全解析:从ONNX模型部署到工业质检实战

本文分享了工业自动化领域使用Java调用YOLOv26进行零件缺陷检测的完整方案。通过YOLOv26s模型结合ONNX Runtime Java部署,误检率和漏检率显著降低(分别从12%降至2.1%,8%降至0.8%)。文章详细介绍了方案选型理由、环境配置避坑指南、ONNX模型导出步骤,以及Maven依赖配置(分CPU/GPU版本)。该方案直接在上位机Java环境中运行,避免了跨语言调用损耗,适合工业质检场景部署,提供了可复用的性能优化和多线程推理实现。

2601_94871597的博客 1105

《文哥的学习笔记——推荐系统遇上深度学习》笔记(1~9)

原地址文哥的学习笔记 本文仅从个人角度进行记录学习。 第一篇 FM模型理论和实践: 1、CTR预估(click-through rate) 2、FM:考虑了高阶的特征组合(一般只用二阶),通过矩阵分解用辅助向量求解特征组合的权重矩阵。好处:参数数量减少;参数因子化使得xhxi的参数和xhxj的参数不再相互独立,因为有了xh特征关联,减少数据稀疏性造成的影响。 第二篇 FFM模型理论和实践: 1、在FFM中,每一维特征 xi,针对其它特征的每一种field fj,都会学习一个隐向量 v_i,fj。主要用于解决

Doodlera的博客 767

实现电脑同时上内网和外网(或通过外网访问到该电脑通过该电脑访问内网)

一、需求描述 目前使用的公司网络只能够上内网,但是又有上外网查资料的需求: ①想要实现电脑既能上内网的同时也可以上外网; ②想要使用其他外网电脑使用外网连接到该电脑,通过该电脑访问内部的网络内容。 二、准备内容 电脑必须具备两个网卡,即:可以同时连接内网和外网(比如我的笔记本就可以:使用网线连接笔记本网口与内网通讯,使用WIFI连接手机热点访问外部网络); 注意:如果只有一个网口,可以另外购买USB的无线网卡来实现上网卡。 三、实现电脑同时上内网和外网的操作步骤 3.1、网络拓扑图 ..

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 2万+

关于112G和56G PAM4信号的有效回损(ERL)

本文探讨了回波损耗(RL)对高速数字通信系统性能的影响,重点分析了时域信道运行裕度(COM)与频域回波损耗指标的关联性。研究表明,传统频域回波损耗指标在预测系统性能时存在假阳性/假阴性问题,特别是对PAM-4信号系统影响更为显著。通过引入基于时域脉冲响应的有效回波损耗(ERL)指标,并结合判决反馈均衡器(DFE)的补偿效应,可更准确评估系统性能。实验表明,短封装器件虽然频域回波损耗较差,但在实际系统中表现更优。研究提出通过时域门控加权等方法优化ERL计算,为高速互连设计提供了更可靠的性能评估框架。

小孟同学的博客 290

哪些DDoS防御服务能够保护复杂应用层攻击?F5多层防御能力解析

复杂DDoS攻击可能同时涉及应用层、网络层以及基础设施环境,因此防护方案需要覆盖不同攻击层级和部署场景。针对不同攻击类型和应用架构,F5提供了不同侧重点的DDoS防护方案:NGINX App Protect DoS面向Layer 7应用层攻击,通过应用行为分析和多层缓解机制保护Web应用与API;Distributed Cloud DDoS Mitigation覆盖L3-L7攻击缓解能力,为互联网暴露应用提供云端多层防护;

huangns的专栏 337

Android15车载系统开机冷启动流程源码解析

本文主要介绍Android15车机系统开机冷启动的流程,暂不包含bootloader,仅从kernel开始直至Launcher首页展示。

jidapenglin28的专栏 253

【推荐系统论文精读系列】(十三)--Attentional Factorization Machines Learning the Weight of Feature Interactions

文章目录一、摘要二、介绍三、Attentional Factorization Machines3.1 模型3.1.1 Pair-wise Interaction Layer3.1.2 Attention-based Pooling Layer3.2 学习3.2.1 防止过拟合References 论文名称:Attentional Factorization Machines Learning the Weight of Feature Interactions via Attention Networ

优快云 精品推荐 1600

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

AFM 网络介绍与源码浅析

AFM 网络介绍与源码浅析 前言 分享一篇上上个星期看过的论文, 记录下重点吧~ Attentional Factorization Machines (AFM) 文章信息 论文标题: Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks 论文地址: https://www.ijcai.org/Proceedings/2017/0435.pdf 代码地址:

珍妮的选择的博客 814

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

CTR模型理解

(读论文)推荐系统之ctr预估-AFM模型解析 self.P.shape Out[18]: torch.Size([4]) 假如有39个域,那么就有m⋅(m−1)2\frac{m\cdot (m-1)}{2}2m⋅(m−1)​=741个特征交互,Attention layer的WWW就是一个4x4的矩阵,hhh是个4x1的输出层,aij=[741] ,过一遍softmax归一化 ...

using namespace 数学工具构造器; 847

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

NFM

NFM模型(Neural Factorization Machine)是一种串行结构。在CTR预估中,为了解决稀疏特征的问题,学者们提出了FM模型来建模特征之间的交互关系。但是FM模型只能表达特征之间两两组合之间的关系,无法建模两个特征之间深层次的关系或者说多个特征之间的交互关系,因此学者们通过Deep Network来建模更高阶的特征之间的关系。因此 FM和深度网络DNN的结合也就成为了CT...

zhangbaoanhadoop的博客 2657

CTR模型:AFM

1. 简介 FM模型将所有二阶交叉特征都认为同等重要, 一些二阶交叉特征是没有价值的,可能会引入噪声并且降低模型性能。 AFM(Attentional FM)在2017年被提出,通过Attention机制来自动学习每个二阶交叉特征的重要性。 和Wide&Deep, DeepCross等模型相比,AFM结构简单,参数更少,效果更好,AFM有更好的解释性,通过注意力权重知道哪些交叉特征对于预测贡献大。 2. AFM 模型 (1)Embedding层 将每个特征映射到dense向量表示, 映射到向量 v

rosefun96的博客 9273

python论文摘要_「Attentional Factorization Machines」- 论文摘要

前言FM能够发现二阶组合特征,但是所有特征的权重都是一样的,这会阻碍FM的效果,因为不是所有的特征都是有用的,例如有些无用的特征进行组合会引入噪声,降低FM的效果。本文提出了AFM模型,通过引入attention机制,学习交互特征的重要程度。Introduction为了平衡特征之间的交互,可以利用polynomial regression(多项式回归)来学习交互特征的权重,但是会存在一个主要的问题...

weixin_30399511的博客 435

MTK 内存管理简单总结 3

昨天说到了内存的分配。下面看一下内存释放 主要进行了3步: static void applib_mem_ap_free_int(void *mem_ptr) { /*----------------------------------------------------------------*/ /* Local Variables */ /*--------

懒人 4607

关于铝镓氮(AlGaN)上p-GaN的高选择性、低损伤蚀刻

一种是p-GaN (80nm)/Al0.25Ga0.75N(15nm)/无意掺杂的GaN(300nm)/缓冲层(4.2μm)/Si(1mm),另一种是Al0.25Ga0.75N(15nm)/无意掺杂的GaN (300nm)/缓冲层(4.2μm)/Si(1mm)。另一方面,未蚀刻的Mg掺杂p-GaN层可以形成导致断态泄漏的导电沟道。我们通过精确控制p-GaN层的蚀刻深度,同时对底层AlGaN势垒造成较小蚀刻损伤,对于恢复接入区域中的高密度电子是必要的,这是p-GaN栅极HEMT制造中较关键的工艺。

Insist_1122的博客 1946
上一篇: CIN_layer
下一篇: tf.newaxis vs tf.expand_dims
github_元宝
博客等级 码龄9年 1粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值