首页 > 其他分享 >Fi-GNN: Modeling Feature Interactions via Graph Neural Networks for CTR Prediction

Fi-GNN: Modeling Feature Interactions via Graph Neural Networks for CTR Prediction

时间:2023-10-12 17:14:22浏览次数:62  
标签:via mathbf CTR Interactions underbrace Fi GNN ldots hat

目录

Li Z., Cui Z., Wu S., Zhang X. and Wang L. Fi-GNN: Modeling feature interactions via graph neural networks for ctr prediction. CIKM, 2019.

"图网络"用在精排阶段 (算哪门子图网络啊).

Fi-GNN

  • 一个 item 可能有多种 field, 比如:

    \[\underbrace{[1, 0, \ldots, 0]}_{Language}, \underbrace{[0, 1, \ldots, 0]}_{Genre}, \underbrace{[0, 1, \ldots, 0]}_{Director}, \underbrace{[0, 1, \ldots, 0]}_{Starring}, \]

    这里我们用 one-hot 向量来表示具体的 item 对应的属性.

  • 假设总共有 m fields, 通过 embedding layer 可以得到:

    \[\mathbf{E} = [\mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3, \ldots, \mathbf{e}_m] \in \mathbb{R}^{m \times d}. \]

  • 对于 \(\mathbf{E}\), Fi-GNN 首先通过多头自注意力层得到 \(\mathbf{H}^1 = [\mathbf{h}_1^1, \mathbf{h}_2^1, \ldots, \mathbf{h}_m^1]\), 它作者后续的图网络的初始 embedding.

  • 这里, Fi-GNN 将每个域看成图的一个结点, 故该图总过有 \(m\) 个结点, 它的状态更新方式如下:

    \[\mathbf{h}_i^t = GRU(\mathbf{h}_i^{t-1}, \mathbf{a}_i^t), \\ \mathbf{a}_i^t = \sum_{n_j \rightarrow n_i} \mathbf{A}_{ji} \mathbf{W}_{out}^j \mathbf{W}_{in}^i \mathbf{h}_j^{t-1} + \mathbf{b}_{p}. \]

    其中 \(\mathbf{A} \in \mathbb{R}^{m \times m}\) 为图上的邻接矩阵, 它是通过 attenton 学习得到的:

    \[\mathbf{A}_{ij} = \frac{\exp(\text{LeakyReLU}(\mathbf{W}_w[\mathbf{e}_i \| \mathbf{e}_j])}{\sum_k \text{LeakyReLU}(\mathbf{W}_w[\mathbf{e}_i \| \mathbf{e}_k])}, j \not = i, \quad \mathbf{A}_{ii} = 0. \]

  • 经过T轮的"图"的更新之后,我们得到:

    \[\mathbf{H}^T = [\mathbf{h}_1^T, \mathbf{h}_2^T, \ldots, \mathbf{h}_m^T], \]

    在此基础上, 通过如下方式计算最后的预测 (二元):

    \[\hat{y} = \sum_{i=1}^m a_i \hat{y}_i, \\ \hat{y}_i = MLP_1(\mathbf{h}_i^p), \\ a_i = MLP_2 (\mathbf{h}_i^p). \]

代码

[official]

标签:via,mathbf,CTR,Interactions,underbrace,Fi,GNN,ldots,hat
From: https://www.cnblogs.com/MTandHJ/p/17759931.html

相关文章

  • Vue3 + Electron
    https://www.electronjs.org/https://www.electron.build/1.创建一个vue3项目可参考之前的笔记2.安装Electron$npminstallelectron-D$npminstallvite-plugin-electron-D根目录下新建electron/index.ts,修改vite.config.ts配置文件//vite.config.tsimport{......
  • electron+vue3+electron-updater 实现程序更新
    electron+vue3+edge调用C#.dll文件electron-edge-js用这玩意儿我血压高.....血压高的谨慎食用…文章目录electron+vue3+electron-edge-js调用C#.dll文件起步一、创建Vue3项目(ele)二、Vue3项目中添加electron模块1.添加electron-edge-js模块......
  • autohotkey 设置快捷键 设置光标位置 (ctrl + alt + Numpad0)
    autohotkey设置快捷键设置光标位置(ctrl+alt+Numpad0)原因3个屏幕,所以鼠标设置的灵敏度非常高,经常就找不到鼠标在哪了。设置个快捷键,让鼠标每次都初始化一个位置,这就好找了代码;设置光标到指定位置,3个屏幕光标有时候不好找;^ctrl!alt+代表Shift;^!+Numpad0::;sh......
  • TALL: Temporal Activity Localization via Language Query
    1introduction确定任务:TALL(TemporalActivityLocalizationviaLanguage):基于文本的时间活动定位,具体来说就是给定给定一个未修剪的视频和一个自然语言查询,目标是确定视频中所描述活动的开始和结束时间。将视觉和文本特征嵌入到公共空间以获得更好效果,但是这样对齐任务(alignme......
  • Resctrl内核实现(三)GROUP的创建
    前言在(一)我们已经清楚了Resctrl中RMID和CLOSID的切换规则是怎样的。在(二)中对内核中的CLOSID和RMID的分配、释放过程进行了详细解读。在后续的章节将会对Resctrl文件系统中重要的文件操作触发的内核行为进行解读。本章将对Resctrl中的建组操作进行分析。rdtgroup的创建在Resc......
  • Resctrl使用说明书
    前言Resctrl文件系统是Linux内核在4.10提供的对RDT技术的支持,作为一个伪文件系统在使用方式上与cgroup是类似,通过提供一系列的文件为用户态提供查询和修改接口。本文就resctrl文件系统的使用进行了详细说明,内容基本来自于LinuxDocumentation中的精华部分。使用限制与挂载检查......
  • Resctrl内核实现(四)schemata和cpus
    前言在Resctrl中可编程的文件主要有两个,schemata指定资源分配策略,cpus则为cpu绑定default_closid和default_rmid。修改cpus文件cpus文件按照所处目录的类型不同有两种操作,当所处目录类型为CTRL-MONgroup时会调用cpus_ctrl_write,目录类型为MONgroup时会调用cpus_mon_write。通......
  • Resctrl内核实现(一)CPU状态
    Resctrl内核实现(一)CPU状态resctrl是rdt机制的一个用户态接口,通过对rdt技术进行封装,提供了一套资源分配和监控机制的接口,方便用户进行使用。本文从resctrl的资源分配和监控的角度对内核源码实现进行了分析,参考的kernel版本为4.19.287。Resctrl下的CPU状态变化resctrl中有两种gro......
  • Resctrl内核实现(二)CLOSID和RMID管理
    前言RDT的监控数据累计和资源分配策略的关键就是CLOSID和RMID的分配策略。CLOSID和RMID管理CLOSID管理RDT中的资源通过控制组进行分配,控制组对于各类资源进行划分或者限制。每一个控制组用一个CLOSID进行标识,由于CLOSID的数量有限所以在内核中通过一个位图进行表示和管理。st......
  • Electrical CAD安装包 电气工程-Electrical CAD安装包下载
    AutoCADElectrical是一款功能强大、专业的电气设计软件。它具有电气符号库和符号自动编号、电气原理图设计、电线和电缆管理、PLC和控制系统集成、即时错误检查和报告、实时协作与协同设计、自动生成图表和表格、自定义和可扩展性等特点。通过使用AutoCADElectrical,电气工程师可......