【GCN-CTR】剪枝特征:Detecting Beneficial Feature Interactions for Recommender Systems (AAAI‘21)
Detecting Beneficial Feature Interactions for Recommender Systems (AAAI’21)
这篇的motivation和method都更自然一些,就是有的地方写的不太清楚。
Motivation
DeepFM等一系列模型注重于挖掘高阶特征,但是这些模型只管挖不管筛。对于一个样本有 JJJ 个特征,二阶组合特征就有 J(J−1)/2J(J-1)/2J(J−1)/2 个,大量的特征组合自然也有大量无用特征,会降低模型质量和速度,所以怎么合理对特征组合进行剪枝,是本文所研究的问题。这篇文章只考虑二阶特征组合。
同样地,这篇文章以特征作为节点建立Graph,把识别重要特征交互任务看作图上的 Link Prediction 任务,然后把 CTR 任务看作图分类任务。
所以从大的角度上看,这篇可以看作在Fi-GNN的基础上剪枝邻接矩阵。
Method:L0L_0L0-SIGN
每个节点有两套embedding viev_{i}^{e}vie 和 ui{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)=W2eReLU(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(vie⊙vje)+b1e)+b2e:R2×b→Z2
viev_{i}^{e}vie 和 vjev_{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×d→Rd
,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=eij′zij
这样看是不是很像在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:Rd→R 将节点的表征向量转换成数值。
然后用一个线性聚合函数 ϕ\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)}j∈X))}i∈X)
loss由三部分组成:
R(θ,ω)=1N∑n=1N(L(FLS(Gn;ω,θ),yn)+λ1∑i,j∈Xn(πn)ij+λ2∥zn∥2)θ∗,ω∗=argminθ,ω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=1∑N(L(FLS(Gn;ω,θ),yn)+λ1i,j∈Xn∑(πn)ij+λ2∥zn∥2⎠⎞=θ,ωargminR(θ,ω),
分别是模型预估偏差损失、对图的L0正则项和 和对模型参数的L2 正则项。
思考
这篇文章的优点是motivation更合理一些,比如下图,Gmail和Workday、Morning的组合就很有道理。
缺点是由于文章做的是二阶特征,GNN的意思就很淡,更没有Deep GNN的事,所以文章标题里是Detecting Beneficial Feature Interactions。
【GCN-CTR】剪枝特征:Detecting Beneficial Feature Interactions for Recommender Systems (AAAI‘21)相关推荐
- Feature Engineering 特征工程 3. Feature Generation
文章目录 1. 组合特征 2. 过去7天的数据 3. 上一个相同类型的项目的时间 4. 转换数值特征 learn from https://www.kaggle.com/learn/feature-e ...
- OpenCV中的特征匹配(Feature Matching)
OpenCV中的特征匹配(Feature Matching) 1. 效果图 2. 原理 3. 源码 3.1 SIFT关键点检测+Knn近邻匹配 3.2 ORB关键点检测+蛮力特征匹配 3.3 SIFT ...
- QIIME 2用户文档. 13训练特征分类器Training feature classifiers(2019.7)
前情提要 NBT:QIIME 2可重复.交互和扩展的微生物组数据分析平台 1简介和安装Introduction&Install 2插件工作流程概述Workflow 3老司机上路指南Experi ...
- QIIME 2教程. 13训练特征分类器Training feature classifiers(2020.11)
文章目录 训练特征分类器 下载并导入参考序列 提取参考序列 训练分类集 测试分类集 分类真菌ITS序列 译者简介 译者简介 Reference 猜你喜欢 写在后面 训练特征分类器 Training f ...
- QIIME 2用户文档. 12训练特征分类器Training feature classifiers(2018.11)
文章目录 前情提要 训练特征分类器 下载并导入参考序列 提取参考序列 训练分类集 测试分类集 分类真菌ITS序列 Reference 译者简介 猜你喜欢 写在后面 前情提要 QIIME 2可重复.交互 ...
- R语言使用caret包的findCorrelation函数批量删除相关性冗余特征、实现特征筛选(feature selection)、剔除高相关的变量
R语言使用caret包的findCorrelation函数批量删除相关性冗余特征.实现特征筛选(feature selection).剔除高相关的变量 目录
- R语言常用线性模型特征筛选(feature selection)技术实战:基于前列腺特异性抗原(PSA)数据
R语言常用线性模型特征筛选(feature selection)技术实战 目录 R语言常用线性模型特征筛选(feature selection)技术实战
- R语言基于线性回归(Linear Regression)进行特征筛选(feature selection)
R语言基于线性回归(Linear Regression)进行特征筛选(feature selection) 对一个学习任务来说,给定属性集,有些属性很有用,另一些则可能没什么用.这里的属性即称为&qu ...
- R语言基于LASSO进行特征筛选(feature selection)
R语言基于LASSO进行特征筛选(feature selection) 对一个学习任务来说,给定属性集,有些属性很有用,另一些则可能没什么用.这里的属性即称为"特征"(featur ...
- R语言基于Boruta进行机器学习特征筛选(Feature Selection)
R语言基于Boruta进行机器学习特征筛选(Feature Selection) 对一个学习任务来说,给定属性集,有些属性很有用,另一些则可能没什么用.这里的属性即称为"特征"(f ...
最新文章
- Linux环境kafka安装
- 工程师文化:Chrome快捷键
- word2vec 中的数学原理详解
- 大一统的宇宙与太极原理之随想
- php 运行 shell命令行参数,PHP exec()在通过浏览器执行时不会执行shell命令
- 关于MySQL建表对DML的影响
- c++检测输入是否为数字_Go64 for Mac(检测应用是否为64位)
- 7-158 验证“哥德巴赫猜想” (20 分)
- 如何禁用特定css_通过CSS追踪用户
- 安装MinGW-W64提示cannot download repository.txt
- 10分钟搞懂商业模式画布:9张分析图、6张模板
- 三次样条曲线拟合算法c语言,关于三次样条曲线拟合法
- 富士施乐Fuji Xerox DocuPrint M255 z 驱动
- 怎么使用计算机英语段落,怎么在电脑word文档中添加英文朗读功能
- 蓝鸥iOS开发工程师职场提升路线图
- 基于B站服务器宕机事故,小鸟云聊聊高防云服务器选择技巧
- SQLServer之创建唯一非聚集索引
- Commons-Collections3 , Commons-Collections4反序列化 从0开始手写exp
- 已知两点求直线一般方程,已知三点求平面一般方程
- 【MD】高等数学常用符号
热门文章
- 回答缺点?这样回答HR听完直呼大佬!
- Centos版Linux 一些常用操作命令 收集
- 即将奔三的90后,你们有多少存款
- read和write阻塞和非阻塞方面的理解
- 交集选择器与并集选择器
- ShaderMap Pro(贴图制作转换生成工具)v1.3.1官方版
- php 二维数组根据某个键值倒叙、升序排序
- 台式计算机usb接口无反应6,Win7电脑USB接口没反应不能用的解决方法
- win7计算机属性资源管理器停止工作,Win7系统Windows资源管理器已停止工作怎么解决?...
- 母亲的牛奶 Mother's Milk(usaco)