wise

CTR学习笔记&代码实现4-深度ctr模型 NFM/AFM

我怕爱的太早我们不能终老 提交于 2020-05-02 09:52:26
这一节我们总结FM另外两个远亲NFM,AFM。NFM和AFM都是针对Wide&Deep 中Deep部分的改造。上一章PNN用到了向量内积外积来提取特征交互信息,总共向量乘积就这几种,这不NFM就带着element-wise(hadamard) product来了。AFM则是引入了注意力机制把NFM的等权求和变成了加权求和。 以下代码针对Dense输入感觉更容易理解模型结构,针对spare输入的代码和完整代码 👇 https://github.com/DSXiangLi/CTR NFM NFM的创新点是在wide&Deep的Deep部分,在Embedding层和全联接层之间加入了BI-Pooling层,也就是Embedding两两做element-wise乘积得到 \(N*(N-1)/2\) 个 \(1*K\) 的矩阵然后做sum_pooling得到最终 \(1*k\) 的矩阵。 \[f_{BI}(V_x) = \sum_{i=1}^n\sum_{j=i+1}^n (x_iv_i) \odot (x_jv_j) \] Deep部分的模型结构如下 和其他模型的联系 NFM不接全连接层,直接weight=1输出就是FM,所以NFM可以在FM上学到更高阶的特征交互。 有看到一种说法是DeepFM是FM和Deep并联,NFM是把FM和Deep串联,也是可以这么理解

CTR学习笔记&代码实现4-深度ctr模型 NFM/AFM

烂漫一生 提交于 2020-05-02 09:15:02
这一节我们总结FM另外两个远亲NFM,AFM。NFM和AFM都是针对Wide&Deep 中Deep部分的改造。上一章PNN用到了向量内积外积来提取特征交互信息,总共向量乘积就这几种,这不NFM就带着element-wise(hadamard) product来了。AFM则是引入了注意力机制把NFM的等权求和变成了加权求和。 以下代码针对Dense输入感觉更容易理解模型结构,针对spare输入的代码和完整代码 👇 https://github.com/DSXiangLi/CTR NFM NFM的创新点是在wide&Deep的Deep部分,在Embedding层和全联接层之间加入了BI-Pooling层,也就是Embedding两两做element-wise乘积得到 \(N*(N-1)/2\) 个 \(1*K\) 的矩阵然后做sum_pooling得到最终 \(1*k\) 的矩阵。 \[f_{BI}(V_x) = \sum_{i=1}^n\sum_{j=i+1}^n (x_iv_i) \odot (x_jv_j) \] Deep部分的模型结构如下 和其他模型的联系 NFM不接全连接层,直接weight=1输出就是FM,所以NFM可以在FM上学到更高阶的特征交互。 有看到一种说法是DeepFM是FM和Deep并联,NFM是把FM和Deep串联,也是可以这么理解

Deep Snake : 基于轮廓调整的SOTA实例分割方法,速度32.3fps | CVPR 2020

江枫思渺然 提交于 2020-05-01 13:33:48
论文提出基于轮廓的实例分割方法Deep snake,轮廓调整是个很不错的方向,引入循环卷积,不仅提升了性能还减少了计算量,保持了实时性,但是Deep snake的大体结构不够优雅,应该还有一些工作可以补,推荐大家阅读   来源:晓飞的算法工程笔记 公众号 论文: Deep Snake for Real-Time Instance Segmentation 论文地址: https://arxiv.org/abs/2001.01629 论文代码: https://github.com/zju3dv/snake/ Introduction   实例分割是许多计算机视觉任务中的重要手段,目前大多数的算法都采用在给定的bbox中进行pixel-wise分割的方法。受snake算法和Curve-GCN的启发,论文采用基于轮廓的逐步调整策略,提出了Deep snake算法进行实时实例分割,该算法将初始轮廓逐渐优化为目标的边界,如图1所示,达到很好的性能且依然保持很高的实时性(32.3fps)。   论文的主要贡献如下: 提出基于学习的snake算法用于实时实例分割,对初始轮廓调整至目标边界,并且引入循环卷积(circular convolution)进行轮廓特征的学习。 提出two-stage流程进行实例分割,先初始化轮廓再调整轮廓,两个步骤均可以用于修正初始定位的误差。 Deep

.NetCore对接各大财务软件凭证API——前言

限于喜欢 提交于 2020-04-29 08:49:07
原文: .NetCore对接各大财务软件凭证API——前言 前言:作为一名程序员,难免少不了和其他系统做对接,那么API接口是最常见的一种对接方式了。当然,得益于公司的业务方向就是解决各大餐饮业财务手工做凭证耗时费力,我才能仔细研究各大财务软件的凭证接口。 从开始到现在,差不多也有2年的时间了,最开始的对接方式很直接很暴力,没错就是写库。效果嘛很明显,没有那么多复杂的接口要封装,但是缺点也很明显,就是外部数据进入后,如果搞不清楚数据库的关系就容易造成脏数据,对于这一点,我是深有体会。不过这也是我自己参与负责的第一个项目。由此开启了真正的财务对接,也演变成了目前公司不可或缺的一个产品--财务中台。 目前产品涉及到的财务软件主要有: 金蝶系列:包括金蝶云星空、金蝶K3Wise、金蝶KIS账务平台 用友系列:包括用友T+、NC、U8Cloud、U8 我想通过自己对接过的财务产品API接口,来做一个算是经验或者避免踩坑的系列吧,希望可以为其他的小伙伴做个参考,避免走弯路 在后续的系列中,会介绍每个财务接口,对接需要注意的地方,以及思路和方式方法,希望能在这个总结和交流的过程中,让自己得到成长,也让其他人能从中收获一些思路或者得到遇到此问题的解决办法。 来源: oschina 链接: https://my.oschina.net/u/4404812/blog/4257704

Spark笔记-treeReduce、reduce、reduceByKey

|▌冷眼眸甩不掉的悲伤 提交于 2020-04-27 19:01:54
Spark笔记-treeReduce、reduce、reduceByKey 参考资料: http://stackoverflow.com/questions/32281417/understadning-treereduce-in-spark http://stackoverflow.com/questions/34078430/treereduce-vs-reducebykey-in-spark reduceByKey和treeReduce之间有一个根本区别,reduceByKey它只对key-value pair RDDs可用,而treeReduce可以对任何RDD使用,相当于是reduce操作的泛化。 reduceByKey用于实现treeReduce,但它们在任何其他意义上都不相关。 reduceByKey对每个键执行reduce,结果生成RDD; 它不是"action"操作,而是返回ShuffleRDD,是"transformation"。 这等效于groupByKey后面跟着一个map,它执行key-wise reduction(为什么使用groupByKey是低效的)。 另一方面,treeAggregate是reduce函数的泛化,灵感来自AllReduce。 这在Spark中是一个"action",将结果返回到master节点。在执行本地的reduce操作之后

随机森林RF、XGBoost、GBDT和LightGBM的原理和区别

╄→尐↘猪︶ㄣ 提交于 2020-04-27 04:28:43
[TOC] 1、基本知识点介绍 RandomForest、XGBoost、GBDT和LightGBM都属于集成学习。 集成学习通过构建并结合多个分类器来完成学习任务,也称为多分类系统,集成学习的目的是通过结合多个机器学习分类器的预测结果来改善基本学习器的泛化能力和鲁棒性。 集成学习方法大致分为两类: 基本学习器之间存在强依赖关系、必须串行生成的序列化方法,即Boosting提升方法。 基本学习器之间不存在强依赖关系、可同时生成的并行化方法,即Bagging方法。 2、各个算法原理 2.1 随机森林 -- RandomForest RF原理 :RF是Bagging的扩展变体,它在以决策树为基础学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机特征选择,其流程大概分为四个步骤: 随机选择样本(放回抽样)。 随机选择特征属性。 构建决策树。 随机森林投票(平均)。 因此防止过拟合能力更强,降低方差。 Bagging,即套袋法,算法过程如下: 从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本,共进行k轮抽取,得到k个训练集。 每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(模型可以根据具体问题具体选取,如决策树,SVM,感知机。) 对于分类问题:将上面得到的k个模型采用投票的方式得到分类结果; 对于回归问题

一、K3 WISE 插件开发《常用数据表整理》

删除回忆录丶 提交于 2020-04-25 18:24:16
在后台数据库ICClassType表中,字段FID<0的是老单,FID>0的是新单。 ----------------系统设置------------------------ FStatus: 0--未审核;1--已审核;2--部分行关闭;3--已关闭; =============================================== 步骤一:先从t_tabledescription表中查业务单据的FTableID 步骤二:再根据FTableID,从t_fielddescription表中查业务单据的字段名、字段中文描述 这两个表可以查询金蝶的所有业务单据,用法如下: SELECT * FROM T_TableDescription WHERE FDescription LIKE '%入库%' --系统表 SELECT * FROM T_TableDescription WHERE FTableName LIKE '%ICStockBill%' --系统表 SELECT * FROM T_TableDescription WHERE FTableID=17 --系统表 SELECT * FROM T_FieldDescription WHERE FDescription LIKE '%批号%' --字段表 SELECT * FROM T

Deformable Convolutional Networks

穿精又带淫゛_ 提交于 2020-04-25 05:20:59
1 空洞卷积 1.1 理解空洞卷积 在图像分割领域 ,图像输入到CNN(典型的网络比如FCN)中,FCN先像传统的CNN那样对图像做卷积再pooling,降低图像尺寸的同时增大感受野,但是由于图像分割预测是pixel-wise的输出,所以要将pooling后较小的图像尺寸upsampling到原始的图像尺寸进行预测,之前的pooling操作使得每个pixel预测都能看到较大感受野信息。因此图像分割FCN中有两个关键,一个是pooling减小图像尺寸增大感受野,另一个是upsampling扩大图像尺寸。在先减小再增大尺寸的过程中,肯定有一些信息损失掉了,那么能不能设计一种新的操作,不通过pooling也能有较大的感受野看到更多的信息呢?答案就是dilated conv。 (a) 普通卷积,1-dilated convolution,卷积核的感受野为3×3 (b) 扩张卷积,2-dilated convolution,卷积核的感受野为7×7 (c) 扩张卷积,4-dilated convolution,卷积核的感受野为15×15 (a)图对应3x3的1-dilated conv,和普通的卷积操作一样. (b)图对应3x3的2-dilated conv,实际的卷积kernel size还是3x3,但是空洞为1,也就是对于一个7x7的图像patch

推荐系统系列(五):Deep Crossing理论与实践

偶尔善良 提交于 2020-04-25 01:54:41
背景 特征工程是绕不开的话题,巧妙的特征组合也许能够为模型带来质的提升。但同时,特征工程耗费的资源也是相当可观的,对于后期模型特征的维护、模型线上部署不太友好。2016年,微软提出Deep Crossing模型,旨在解决特征工程中特征组合的难题,降低人力特征组合的时间开销,通过模型自动学习特征的组合方式,也能达到不错的效果,且在各种任务中表现出较好的稳定性。 与之前介绍的FNN、PNN不同的是,Deep Crossing并没有采用显式交叉特征的方式,而是利用残差网络结构挖掘特征间的关系。本文将对DeepCrossing从原理到实现细节进行详细分析。 分析 1. DeepCrossing模型结构 <div align=center><img src='https://img2018.cnblogs.com/blog/955208/201911/955208-20191109202012738-359876410.png'></div> 整个模型包含四种结构:Embedding,Stacking,Residual Unit,Scoring Layer。 论文中使用的目标函数为 $logloss$ :$logloss=-\frac{1}{N}\sum_{i=1}^{N}(y_ilog(p_i)+(1-y_i)log(1-p_i))$ ,在实际应用中,可以灵活替换为其他目标函数。

Boosting算法的前世今生(下篇)

主宰稳场 提交于 2020-04-24 23:26:44
微信公众号: AIKaggle 欢迎建议和拍砖,若需要资源,请公众号留言; 如果你觉得AIKaggle对你有帮助,欢迎赞赏 Boosting算法的前世今生(下篇) [TOC] 本系列文章将会梳理Boosting算法的发展,介绍Boosting算法族的原理,框架,推导等,Boosting算法的前世今生(上篇)介绍了AdaBoost算法和梯度提升树算法,中篇详细介绍了陈天奇教主提出的XGBoost算法,下篇(本文)将会介绍LightGBM算法,CATBoost算法。LightGBM算法由Microsoft Research提出,主打梯度提升算法的轻量级实现,他的两个创新点在于基于单边梯度的采样算法(GOSS)和互斥系数特征合并(EFB)。而CatBoost是由俄罗斯Yandex公司提出的,他嵌入了自动将类别特征处理为数值型特征的创新型算法,并且使用完全对称树作为基模型。如果对机器学习算法和实战案例感兴趣,也可关注公众号:AIKaggle获取算法动态 引言 传统的boosting算法(如GBDT和XGBoost)已经有相当好的效率,但是在如今的大样本和高维度的环境下,传统的boosting似乎在效率和可扩展性上不能满足现在的需求了,主要的原因就是传统的boosting算法需要对每一个特征都要扫描所有的样本点来选择最好的切分点,这是非常的耗时。 LightGBM 的提出