AutoFIS阅读总结
AutoFIS 总结
AutoFIS是华为提出的一种自动选取二阶以及更高阶特征的特征抽取算法
论文开篇指出:在CTR预估中,交叉特征对于推理模型是非常重要的,在现有的深度模型中,交叉特征都是被手动设计或简单的罗列。罗列出所有的交叉特征不仅需要巨大的内存消耗和计算复杂度,而且无用交叉特征还会移入噪声并使得模型训练复杂化。因此提出了该算法—AutoFIS。
AutoFIS的作用:
- 去除无用交叉特征,甚至是有害的交叉特征
- 基于FM-AUTOFIS网络选取的二阶、三阶交叉特征,可以应用到 state-of-the-art 模型中,即用简单的模型进行交叉特征选择,然后应用到另外的模型中
AutoFIS工作原理
autoFIS模型训练分两个阶段:search stage 和 re-train stage。
search stage:通过 “结构参数”(后面会讲到)学习到各个交叉特征的对于结果的重要性
re-train stage:去除无用交叉特征,然后进行模型训练
对比现有特征选择工具
- Gradient boosting decision tree (GBDT):
缺点:该方法可以将为逻辑回归和FFM模型选择交叉特征。但是实际上,树模型更加适合于连续特征,而不适用于推荐系统中,维度很高的类别数据
- AutoCross技术
该特征选择技术要求 需要训练整个模型 去评估选择出来的交叉特征集合,但是候选集很多。 m个特征的二阶特征就有2Cm22^{C_{m}^{2} }2Cm2 个。 AutoCross具体过程为:
(未看过AutoCross,对其不是很了解)
缺点:AutoCross得到交叉特征不一定适用于Deep model。AutoFIS对于AutoCross的优点:
AutoFIS只需要运行search stage就可以评估出所有交叉特征的重要性,这种方法的效率更高;并且得到的交叉特征可以直接应用到search stage中的Deep model中。
模型介绍
上图分别是FM、DeepFM、IPNN。下面就详细介绍一下FM模型:
FM模型
Feature Embedding Layer:
embedding如何得到,请自行百度,大概方法如下:
该层的输出为[e1,e2,...,em][e_{1}, e_{2},..., e_{m}][e1,e2,...,em], 即m个embedding特征。
Feature Interaction Layer.
通过 该层得到交叉特征, 首先通过 “inner product of the pairwise feature interaction”。
[<e1,e2>,<e1,e3>...,<em−1,em>][<e_{1}, e_{2}>,<e_{1}, e_{3}>..., <e_{m-1}, e_{m}>][<e1,e2>,<e1,e3>...,<em−1,em>]
该层的输出为
何为inner product: 在数学中,点积(德语:Skalarprodukt;英语:Dot Product)又称数量积或标量积(德语:Skalarprodukt;英语:Scalar Product),是一种接受两个等长的数字序列(通常是坐标向量)、返回单个数字的代数运算。在欧几里得几何中,两个笛卡尔坐标向量的点积常称为内积(德语:inneres Produkt;英语:Inner Product),见内积空间。
AutoFIS详解
AutoFIS算法的工作原理
AutoFIS工作过程可以分为两个阶段,即搜索阶段,决定各个交叉特征的重要性;训练阶段,基于选择出的交叉特征进行再次训练。
搜索阶段:论文中引进一个gate operation(门操作),个数为等于交叉特征的个数,即 2Cm22^{C_{m}^{2}}2Cm2个,在autofis算法中,并不是从整个候选集中离散的形式筛选小候选集,而是引进一个结构参数 a,这样就可以基于梯度下降法去学习稀疏的结构参数a。结构参数如下图所示。
AutoFIS中,interaction layer的输出如下所示,在搜索阶段,ai,ja_{i, j}ai,j代表每个交叉特征对于最终预估结果的重要性。
在搜索阶段,论文提出,由于ai,j{a_{i,j}}ai,j与<ei,ej>{<e_{i}, e_{j}>}<ei,ej>是一起训练的,所以ai,j{a_{i,j}}ai,j的结果并不能表明<ei,ej>{<e_{i}, e_{j}>}<ei,ej>的重要性。(tip:我是这样想的,在工作当中,如果让一个时刻和你一起玩耍的人,给你打绩效的话,那么结果一定不是很公证的。)
为了解决ai,j{a_{i,j}}ai,j与<ei,ej>{<e_{i}, e_{j}>}<ei,ej>的问题,论文中在<ei,ej>{<e_{i}, e_{j}>}<ei,ej>上引如了BN层。
zin{z_{in}}zin 、zout{z_{out}}zout分表代表BN层的输入和输出,θ and β are trainable scale and shift parameters
of BN; ϵ is a constant for numerical stability。
搜索阶段采用的下降法为:GRDA Optimizer (Generalized regularized dual averaging optimizer),该方法的目的是为了得到稀疏深度学习模型
AutoFIS阅读总结相关推荐
- 论文阅读工具ReadPaper
对于搞科研的同学们来说,看论文是要经历的第一关,尤其是要读好多篇论文的时候,更是着实令人头大. 这不,最近无意中发现了个在线论文阅读网站:readpaper.com,号称「论文阅读笔记神器,硕博科研学 ...
- YOLOv4全文阅读(全文中文翻译)
YOLOv4全文阅读(全文中文翻译) YOLOv4: Optimal Speed and Accuracy of Object Detection 论文链接: https://arxiv.org/pd ...
- 多目标跟踪:CVPR2019论文阅读
多目标跟踪:CVPR2019论文阅读 Robust Multi-Modality Multi-Object Tracking 论文链接:https://arxiv.org/abs/1909.03850 ...
- 快速人体姿态估计:CVPR2019论文阅读
快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...
- Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读
Action4D:人群和杂物中的在线动作识别:CVPR209论文阅读 Action4D: Online Action Recognition in the Crowd and Clutter 论文链接 ...
- 深度学习点云语义分割:CVPR2019论文阅读
深度学习点云语义分割:CVPR2019论文阅读 Point Cloud Oversegmentation with Graph-Structured Deep Metric Learning 摘要 本 ...
- 3D目标检测论文阅读多角度解析
3D目标检测论文阅读多角度解析 一.前言 CNN(convolutional neural network)在目标检测中大放异彩,R-CNN系列,YOLO,SSD各类优秀的方法层出不穷在2D图像的目标 ...
- 3D目标检测论文阅读摘要
3D目标检测论文阅读摘要 2D Object Detection 的研究已经非常成熟了,代表作品有RPN系列的FasterRCNN,One Shot系列的YOLOv1-YOLOv3,这里推荐一个2D ...
- 2021年大数据Flink(四十八):扩展阅读 Streaming File Sink
目录 扩展阅读 Streaming File Sink 介绍 场景描述 Bucket和SubTask.PartFile 案例演示 扩展阅读 配置详解 PartFile PartFile序列化编码 ...
最新文章
- android APK内存多少字节,Android apk安全测评、应用加固、字节对齐、二次签名(有这一篇就够了)...
- RunLoop 详解
- 【转载】尝试使用GraphicsMagick的缩略图功能
- Autosys command
- AttributeError: module 'pymongo' has no attribute 'Connection'
- 使用 VMControl 2.4 实现多网络的 Power 服务器捕捉和系统部署
- 申请美国计算机科学,美国计算机科学的申请特点
- java中h1.j有什么作用_Android JNI学习之javah命令的正确使用(找了好半天才找到的,汉,网上好多说法都没用)...
- POJ#1182 食物链
- 循环中需要调用异步怎么确保执行完再执行其他的_什么是事件循环和异步编程?5种使用async/await更好地编码方式!...
- 基于java的客户关系管理系统的设计与实现(论文+毕业设计)(完整源码可演示)
- Opencv python之车辆识别项目(附代码)
- 从NLP任务中文本向量的降维问题,引出LSH(Locality Sensitive Hash 局部敏感哈希)算法及其思想的讨论...
- 计算机术语 日语,常用日语计算机词汇~~
- 高洛峰招徒培养IT名师
- 计算机刷新的作用,为什么要刷新 刷新有什么用?
- Linux----生产者与消费者
- 科技论文翻译,俄语文档的语法有何特点
- 程序员真实调查,工资真的高吗?反正我的不高
- 洛谷· [AHOI2008]紧急集合 / 聚会
热门文章
- java 权重_权重随机算法的java实现
- java none怎么用tomcat_关于如何在Tomcat中使用JavaBean
- Linux下hosts文件详解
- http_load 对squid 进行压力测试
- c语言into的用法,C为into doing sth 英语习惯用法.ppt
- python股票技术指标计算_使用 Ta-lib 计算 MACD 等技术指标
- kickstart无人值守
- mysql数据库实验3查询_mysql数据库(3)-查询
- Python3 遍历列表、字典和元组方式总结
- 锤子手机获工信部入网许可:清晰照曝光