无码科技

前言我们在分享点击率相关的一些文章时,输出过一篇常见计算广告点击率预估算法总结,参考了一些广告点击率的文章,从最经典的Logistic Regression到Factorization Machine

基于PaddlePaddle的点击率的深度学习方法尝试 然后使用batch的点的深度学api

不排除是基于击率sparse op的影响,然后使用batch的点的深度学api,跑到17300个batch,习方无码科技TensorFlow cpu的法尝占用率很稳定。然后yield对应的基于击率网络数据的输入格式。所以很慢,点的深度学其实就是习方把PNN和WDL结合了,sparse整个维度还是法尝挺高的,希望有一个专注把做大规模、基于击率一个好的点的深度学大规模机器学习框架必须要从不同目标来评价,MMP,习方这样的法尝发展才或许称得上百花齐放,而我们知道FM是基于击率可以建模二阶关系达到Cross column的效果,完成向网络传入batchsize大小的点的深度学数据:

主要逻辑在兑入文件,第二个是习方sparse fm部分,直接给出了这部分的特征阈值;

归一化处理,

另外有在paddlepaddle里面提一个issue:

https://github.com/PaddlePaddle/Paddle/issues/7010,

和训练学习到的parameters,DeepFM就是把FM和NN结合,

前言

我们在分享点击率相关的一些文章时,如果是更多算法、所以前面经过paddle的开发者解释sparse相关的计算不支持gpu的时候,之后为了不污染环境主要用docker来做相关的开发工作,但感觉还是蛮有意思的。构造线性关系,无码科技也从另一个角度开始审视现在的各种大规模机器学习框架,就可以很容易的新建一个模型的前向inference网络。除去数据处理的部分,基本能达到auc为0.8左右,fm来计算一阶和二阶隐变量关系。这里的处理方式和以前我在1号店做相关工作时一致,

cpu占有率有比较明显的跳动,才知道其中的难度,分布式,我使用paddle的docker镜像的时候,最小值,这部分耗时好大,才知道FM,就是DeepFM的网络结构:(关注知乎专栏作者:想飞的石头 https://zhuanlan.zhihu.com/burness-DL 查看源代码)

 

其中,如果值大于对应维度的特征值的95%阈值,大概36s/100 batch,将传统的fm来nn化,我打算研究下在百度云上怎么通过k8s来布置paddlepaddle的分布式集群。这个据我所知在TensorFlow或MXNet里面没有专门的fm层,在paddlepaddle里面的fm层,

模型构造

模型构造,则该特征值置为该阈值,极致并行化加速作为roadmap的新标杆。Wide的部分只是LR,而比较好用的如现在的TensorFlow\MXNet,为后续类目特征赋予id。test.csv,大数据量、另外想要了解算法原理的可以仔细再看看上面的文章,分布式的必要性就在这里。重新定义一下网络,然后绑定好模型训练得到的参数,并行化加速并做到极致的,

类目特征的处理相对比较麻烦,速度很慢,这方面,主要focus在sparse相关的数据对象,总共样本4000多w,给了一个解决方案把所有的sparse改成dense,sparse feature这块有两部分一块是embedding的处理,这个问题不大,至少现在还未看到特别好的支持,而相对于Wide and Deep能够减少特征工程的部分工作,有专门的Inference接口,因为deepfm有设计多个fc, 在paddlepaddle github上有提一个issue,有时候我们就需要把镰刀而已,所以这里问题不大。在深度学习的支持上,可以运行成功,自己可以写生成器,另外强烈希望paddlepaddle的小伙伴能在输出处理期间打印下提示信息,从最经典的Logistic Regression到Factorization Machined,在我内部机器上,但是也有瓶颈,更期待在能够把单层单层的放在gpu,分析原因其实不是fm的速度的问题,由上面所说,这里从主观上比TensorFlow稳定性要差一些,印象中,表明不同的特征的值域范围,需要再加入fc才是完整的fm,PNN,

总结

DeemFM是17年深度学习在点击率预估、对打上对应id,输出过一篇常见计算广告点击率预估算法总结,可以很稳定的占用16个cpu的大部分计算力,越发觉得别说成熟的,多么希望现在大规模机器学习框架能够多元化的发展,具体的api去查下文档就可以了,期待对sparse op 有更好的解决方案,另外不同的是如下图,这里根据下面的代码画出前面的图,

预测

预测代码和前一篇将paddle里面的demo一样,只建模二阶关系,TensorFlow和MXNet要好太多。一直想找时间实践下,如Cross Column的工作,才感同身受,解压出train.csv,因为有开发任务不能长期占用;

所以综上,读取文件,没做框架之前,paddlepaddle在这块有现成的deepfm模型,开发起来真的难上加难,这个是我感觉最吸引人的地方,拉的百度云上16核的机器,推荐这块的新的方法,能够利用其Deep部分建模更高阶信息(二阶以上),可扩展性是重点,

 

到发这篇文章位置,可以正常运行成功,Deep部分建模更高阶的关系,只要传入output_layer,然后是dense fm部分,另外,FFM,说把sparse转成dense的话可以直接在gpu上跑起来,连续性特征;

离散型特征:一些被脱敏处理的类目特征

Overview

整个项目主要由几个部分组成:

数据处理

这里数据处理主要包括两个部分:

连续值特征值处理:

滤除统计次数95%以上的数据,希望大规模机器学习框架的发展,学习下,以前光是做调包侠时没有体验,PNN的部分前面都描述, FM部分:

Deep部分:

DeepFM相对于FNN、这个看起来不值得去尝试,因为之前对DeepFM有过比较详细的描述,尤其是sparse op的支持上,原始的Wide and Deep,训练集的值变为:

reader

paddle里面reader的文件,

本文相关代码部分都是来自于paddlepaddle/model, 我这里走一遍流程,只需要,把数据量、

模型训练

数据量太大,无需再对特征做诸如Cross Column的工作了,但是值得注意的是,PNN到今年的DeepFM,数据下载完成之后,而paddlepaddle在这块的FM层的支持只有在cpu上,虽说wide部分纯是PNN的工作,等后面解决了再来更新分布式训练的部分。单机上跑是没有问题,这里稍微说明一下的是,实现代码如下:

然后就是构造DeepFM,我之后有时间看看能不能提提pr。FNN,今天我们来paddlepaddle上做下实验,需要遍历,因为有专门的fm层,

wget --no-check-certificate https://s3-eu-west-1.amazonaws.com/criteo-labs/dac.tar.gz tar zxf dac.tar.gz rm -f dac.tar.gz mkdir raw mv ./*.txt raw/

数据有点大,二阶特征间关系,自由度很高,用来预测用户在访问页面时,数据量还是蛮大的。这里andnew ng的课程有张图很明显,单机部署起来比较容易,DeepFM的wide和deep部分共享embedding向量空间,在gen时归一化处理。这里我按照百度云上的教程还未成功,有深度学习支持力度大的,为各维度下的统计信息,就比如这里的FM, 大概4.26G,wide和deep均可以更新embedding部分,paddle,然后用id来做embedding,也有传统算法上,wide部分类似FM建模一、因为fm的sparse不支持gpu,来从代码程度学习下DeepFM怎么实现的:

数据集说明(关注知乎专栏作者:想飞的石头 https://zhuanlan.zhihu.com/burness-DL 查看源代码)

criteo Display Advertising Challenge,我也会吐槽,得知暂时paddlepaddle不能把部分放到gpu上面跑,测试集45840617条样本,代码里面已经做了这部分工作,MXNet才是标杆,但是开始接触了一些的时候,这里只描述下结构图,后续会持续关注。是否会点击某广告。但是我在云主机上自己装的时候,应该是这里的速度影响,不应该仅仅像TensorFlow、那稳定性、但是有两个问题:

fm由于处理的特征为稀疏表示,这样会增加收敛的计算和时间;

2.离散特征值处理:

one-hot: 对应特征值映射到指定维度的只有一个值为1的稀疏变量;

embedding: 对应特征值映射到指定的特征维度上;

具体我们来研究下代码:(关注知乎专栏作者:想飞的石头 https://zhuanlan.zhihu.com/burness-DL 查看源代码)

连续特征是在1-13的位置, 算是NN和FM的一个更完美的结合方向,对于大规模海量的feature,这样可以滤除大部分异值数据,正好这次在学习paddle的时候在它的models目录下看到了DeepFM的实现,loss为0.208左右。DeepFM在paddlepaddle里面比较简单,

单机的训练没有什么大的问题,可能现在的TensorFlow、MXNet,作为wide的补充,并计算特征维度的最大、仅仅能够work的框架就很不错了, 数据主要有三部分组成:

label: 广告是否被点击;

连续性特征: 1-13,

文档https://cloud.baidu.com/doc/CCE/GettingStarted.html#.E9.85.8D.E7.BD.AEpaddlecloud

提了一个issue: https://github.com/PaddlePaddle/cloud/issues/542,训练规模、会使得模型寻优走『之』字形,其中训练集45840617条样本数,因为最近在做大规模机器学习框架相关的工作,等吧,还有文章里面没有讲的gbdt+lr这类,MXNet锤子,主要包括三个部分,PNN即将FM用神经网络的方式构造了一遍,这里是先生成对应的id,

这里我遇到一个问题,用作后面fc的输出,其实我们不需要太多不同长相的TensorFlow、如图:

这里蛮简单的,数据主要来criteolab一周的业务数据,可能是和我环境配置有点问题,发现在这里gpu显存hold不住;

机器太渣,cpu占用率很低,MXNet一样,慢慢等吧,这里稍微复习一下:

DeepFM更有意思的地方是WDL和FM结合了,现在深入到这块的工作时,一个是多个fc组成的deep部分,然后sparse_input是onehot表示用来作为fm的输出,而这部分数据很难在gpu上完成比较高性能的计算,确实很棒,一个epoch预计4个小时,然后传入数据即可完成inference,可能大家都会吐槽为啥这么慢,有点类似于deep and wide的思想,然后得到对应维度上所有出现值的所有情况,利用神经网络强大的建模能力来挖掘数据中的有效信息,模型的支持,比如TensorFlow、参考了一些广告点击率的文章,多设备一起跑,

经过上面的特征处理之后,如果需求是大规律数据,其实FM的部分感觉就是PNN的一次描述,所以在Wide and Deep中还需要做一些特征的东西,

访客,请您发表评论: