Detecting Beneficial Feature Interactions for Recommender Systems (AAAI’21)

这篇的motivation和method都更自然一些,就是有的地方写的不太清楚。

Motivation

DeepFM等一系列模型注重于挖掘高阶特征,但是这些模型只管挖不管筛。对于一个样本有 JJJ 个特征,二阶组合特征就有 J(J−1)/2J(J-1)/2J(J1)/2 个,大量的特征组合自然也有大量无用特征,会降低模型质量和速度,所以怎么合理对特征组合进行剪枝,是本文所研究的问题。这篇文章只考虑二阶特征组合。

同样地,这篇文章以特征作为节点建立Graph,把识别重要特征交互任务看作图上的 Link Prediction 任务,然后把 CTR 任务看作图分类任务。

所以从大的角度上看,这篇可以看作在Fi-GNN的基础上剪枝邻接矩阵。

Method:L0L_0L0-SIGN

image-20220218130048595

每个节点有两套embedding viev_{i}^{e}vieui{u}_{i}ui,分别用于L0模块和SIGN模块。SIGN模块的作用类似于DCN、DeepFM中的特征交互模块,L0模块的作用则是为SIGN模块剪枝。

L0L_0L0 Edge Prediction Model

最简单的Edge Prediction方案就是MF,这里用一个MLP的模型 fepf_{e p}fep 来识别节点 iii 和节点 $ j$ 之间是否存在边:
fep(vie,vje)=W2eRe⁡LU(W1e(vie⊙vje)+b1e)+b2e:R2×b→Z2f_{e p}\left(v_{i}^{e}, v_{j}^{e}\right) = W_{2}^{e} \operatorname{Re} L U\left(W_{1}^{e}\left(v_{i}^{e} \odot v_{j}^{e}\right)+b_{1}^{e}\right)+b_{2}^{e}: \mathbb{R}^{2 \times b} \rightarrow \mathbb{Z}_{2} fep(vie,vje)=W2eReLU(W1e(vievje)+b1e)+b2e:R2×bZ2
viev_{i}^{e}vievjev_{j}^{e}vje 是节点 i, j 的bbb维的embedding, fep(vie,vje)f_{ep}(v_{i}^{e}, v_{j}^{e})fep(vie,vje) 的输出 eij′∈{0,1}e_{i j}^{\prime} \in \{0,1\}eij{0,1}。训练中再对 fepf_{ep}fep 加上 L0L_0L0 正则化,促使更加稀疏。

SIGN(Statistical Interaction Graph neural Network)

eij′=1e_{i j}^{\prime}=1eij=1 时,计算特征节点iii 和特征节点 jjj 的边权重(建模特征交互)
zij=h(ui,uj):R2×d→Rd\boldsymbol{z}_{i j} = h\left(\boldsymbol{u}_{i}, \boldsymbol{u}_{j}\right): \mathbb{R}^{2 \times d} \rightarrow \mathbb{R}^{d} zij=h(ui,uj):R2×dRd
ui,uj\boldsymbol{u}_{i}, \boldsymbol{u}_{j}ui,uj 就是节点 i, j 的ddd维的embedding 。那 eij′=0e_{i j}^{\prime}=0eij=0的就表示被剪枝掉了,不用建模特征 i 和特征 j 的交互,所以任意两个特征的交互表征可以表示为:
sij=eij′zij\boldsymbol{s}_{i j}=e_{i j}^{\prime} \boldsymbol{z}_{i j} sij=eijzij
image-20220218133425486

这样看是不是很像在Fi-GNN剪枝。

然后用一个线性聚合函数 ψ:vi′=ψ(ςi)\psi: \boldsymbol{v}_{i}^{\prime}=\psi\left(\varsigma_{i}\right)ψ:vi=ψ(ςi) 聚合邻居节点,更新节点表征。

然后用一个线性加权函数 g:Rd→Rg: \mathbb{R}^{d} \rightarrow \mathbb{R}g:RdR 将节点的表征向量转换成数值。

然后用一个线性聚合函数 ϕ\phiϕ 聚合图上所有节点的数值,得到最终输出:
fLS(G;w,θ)=ϕ({g(φ({fep(vie,vje)h(ui,uj)}j∈X))}i∈X)f_{L S}(G ; w, \theta)=\phi\left(\left\{g\left(\varphi\left(\left\{f_{e p}\left(v_{i}^{e}, v_{j}^{e}\right) h\left(u_{i}, u_{j}\right)\right\}_{j \in X}\right)\right)\right\}_{i \in X}\right) fLS(G;w,θ)=ϕ({g(φ({fep(vie,vje)h(ui,uj)}jX))}iX)
loss由三部分组成:
R(θ,ω)=1N∑n=1N(L(FLS(Gn;ω,θ),yn)+λ1∑i,j∈Xn(πn)ij+λ2∥zn∥2)θ∗,ω∗=arg⁡min⁡θ,ωR(θ,ω),\begin{aligned} \mathcal{R}(\boldsymbol{\theta}, \boldsymbol{\omega})=& \frac{1}{N} \sum_{n=1}^{N}\left(\mathcal{L}\left(F_{L S}\left(G_{n} ; \boldsymbol{\omega}, \boldsymbol{\theta}\right), y_{n}\right)\right.\\ &\left.+\lambda_{1} \sum_{i, j \in X_{n}}\left(\pi_{n}\right)_{i j}+\lambda_{2}\left\|\boldsymbol{z}_{n}\right\|_{2}\right) \\ \boldsymbol{\theta}^{*}, \boldsymbol{\omega}^{*} &=\underset{\boldsymbol{\theta}, \boldsymbol{\omega}}{\arg \min } \mathcal{R}(\boldsymbol{\theta}, \boldsymbol{\omega}), \end{aligned} R(θ,ω)=θ,ωN1n=1N(L(FLS(Gn;ω,θ),yn)+λ1i,jXn(πn)ij+λ2zn2=θ,ωargminR(θ,ω),

分别是模型预估偏差损失、对图的L0正则项和 和对模型参数的L2 正则项。

思考

这篇文章的优点是motivation更合理一些,比如下图,Gmail和Workday、Morning的组合就很有道理。

image-20220218135101727

缺点是由于文章做的是二阶特征,GNN的意思就很淡,更没有Deep GNN的事,所以文章标题里是Detecting Beneficial Feature Interactions。

【GCN-CTR】剪枝特征:Detecting Beneficial Feature Interactions for Recommender Systems (AAAI‘21)相关推荐

  1. Feature Engineering 特征工程 3. Feature Generation

    文章目录 1. 组合特征 2. 过去7天的数据 3. 上一个相同类型的项目的时间 4. 转换数值特征 learn from https://www.kaggle.com/learn/feature-e ...

  2. OpenCV中的特征匹配(Feature Matching)

    OpenCV中的特征匹配(Feature Matching) 1. 效果图 2. 原理 3. 源码 3.1 SIFT关键点检测+Knn近邻匹配 3.2 ORB关键点检测+蛮力特征匹配 3.3 SIFT ...

  3. QIIME 2用户文档. 13训练特征分类器Training feature classifiers(2019.7)

    前情提要 NBT:QIIME 2可重复.交互和扩展的微生物组数据分析平台 1简介和安装Introduction&Install 2插件工作流程概述Workflow 3老司机上路指南Experi ...

  4. QIIME 2教程. 13训练特征分类器Training feature classifiers(2020.11)

    文章目录 训练特征分类器 下载并导入参考序列 提取参考序列 训练分类集 测试分类集 分类真菌ITS序列 译者简介 译者简介 Reference 猜你喜欢 写在后面 训练特征分类器 Training f ...

  5. QIIME 2用户文档. 12训练特征分类器Training feature classifiers(2018.11)

    文章目录 前情提要 训练特征分类器 下载并导入参考序列 提取参考序列 训练分类集 测试分类集 分类真菌ITS序列 Reference 译者简介 猜你喜欢 写在后面 前情提要 QIIME 2可重复.交互 ...

  6. R语言使用caret包的findCorrelation函数批量删除相关性冗余特征、实现特征筛选(feature selection)、剔除高相关的变量

    R语言使用caret包的findCorrelation函数批量删除相关性冗余特征.实现特征筛选(feature selection).剔除高相关的变量 目录

  7. R语言常用线性模型特征筛选(feature selection)技术实战:基于前列腺特异性抗原(PSA)数据

    R语言常用线性模型特征筛选(feature selection)技术实战 目录 R语言常用线性模型特征筛选(feature selection)技术实战

  8. R语言基于线性回归(Linear Regression)进行特征筛选(feature selection)

    R语言基于线性回归(Linear Regression)进行特征筛选(feature selection) 对一个学习任务来说,给定属性集,有些属性很有用,另一些则可能没什么用.这里的属性即称为&qu ...

  9. R语言基于LASSO进行特征筛选(feature selection)

    R语言基于LASSO进行特征筛选(feature selection) 对一个学习任务来说,给定属性集,有些属性很有用,另一些则可能没什么用.这里的属性即称为"特征"(featur ...

  10. R语言基于Boruta进行机器学习特征筛选(Feature Selection)

    R语言基于Boruta进行机器学习特征筛选(Feature Selection) 对一个学习任务来说,给定属性集,有些属性很有用,另一些则可能没什么用.这里的属性即称为"特征"(f ...

最新文章

  1. Linux环境kafka安装
  2. 工程师文化:Chrome快捷键
  3. word2vec 中的数学原理详解
  4. 大一统的宇宙与太极原理之随想
  5. php 运行 shell命令行参数,PHP exec()在通过浏览器执行时不会执行shell命令
  6. 关于MySQL建表对DML的影响
  7. c++检测输入是否为数字_Go64 for Mac(检测应用是否为64位)
  8. 7-158 验证“哥德巴赫猜想” (20 分)
  9. 如何禁用特定css_通过CSS追踪用户
  10. 安装MinGW-W64提示cannot download repository.txt
  11. 10分钟搞懂商业模式画布:9张分析图、6张模板
  12. 三次样条曲线拟合算法c语言,关于三次样条曲线拟合法
  13. 富士施乐Fuji Xerox DocuPrint M255 z 驱动
  14. 怎么使用计算机英语段落,怎么在电脑word文档中添加英文朗读功能
  15. 蓝鸥iOS开发工程师职场提升路线图
  16. 基于B站服务器宕机事故,小鸟云聊聊高防云服务器选择技巧
  17. SQLServer之创建唯一非聚集索引
  18. Commons-Collections3 , Commons-Collections4反序列化 从0开始手写exp
  19. 已知两点求直线一般方程,已知三点求平面一般方程
  20. 【MD】高等数学常用符号

热门文章

  1. 回答缺点?这样回答HR听完直呼大佬!
  2. Centos版Linux 一些常用操作命令 收集
  3. 即将奔三的90后,你们有多少存款
  4. read和write阻塞和非阻塞方面的理解
  5. 交集选择器与并集选择器
  6. ShaderMap Pro(贴图制作转换生成工具)v1.3.1官方版
  7. php 二维数组根据某个键值倒叙、升序排序
  8. 台式计算机usb接口无反应6,Win7电脑USB接口没反应不能用的解决方法
  9. win7计算机属性资源管理器停止工作,Win7系统Windows资源管理器已停止工作怎么解决?...
  10. 母亲的牛奶 Mother's Milk(usaco)