/deep_learning

基础的深度学习实验研究结果汇总笔记

Primary LanguagePythonMIT LicenseMIT

介绍

非专业的nlp、图像工程师,tensorflow调包工程师,注重快速实现,那么,让我们一起做点有趣的事情吧! 这个工程的目的是将自己在工程和学术研究中,一些应用到深度学习的思路和方法整理汇总出来:

  • 帮助深度学习入门同学快速上手
  • 提供一些在现有的机器学习方向上的新的方向和思路的整理
  • 解锁思维的禁锢

关于深度学习相关的浅入浅出的介绍,可以快速入门一下浅入浅出深度学习理论实践

关于深度学习相关的点击预估的介绍,可以快速入门一下yoho注册概率预估

关于深度学习相关的图像识别的介绍,可以快速入门一下基于SSD下的图像内容识别(一)基于SSD下的图像内容识别(二)

关于深度学习相关的目标向量化的介绍,可以快速入门一下深度学习下的电商商品推荐

关于深度学习相关的多层感知机的介绍,可以快速入门一下基于Tensorflow实现多层感知机网络MLPs

关于深度学习相关的deepfm的介绍,可以快速入门一下基于Tensorflow实现DeepFM

关于深度学习相关的Deep Neural Networks for YouTube Recommendations的介绍,可以快速入门一下利用DNN做推荐的实现过程总结

关于深度学习相关的RCNN_GRU的介绍,实在没空写博客了,sorry

关于深度学习相关的TextCNN的介绍,实在没空写博客了,sorry

关于深度学习相关的Bert做fine-tune的代码(类似接口,具体实现按照时间项目去改),我每次做nlp的baseline的时候,都是在这个代码上进行更改,主要是ner和classify两个问题的模版,可以快速入门一下Bert你需要知道的一些细节

关于深度学习相关的XDeepFM的介绍,可以快速入门一下xDeepFM架构理解及实现

关于深度学习相关的DeepInterestNetwork的介绍,实在没空写博客了,sorry

关于深度学习相关的Estimator框架模版的介绍,原因有三:

  • 组内同学开发不规范,tf代码风格包括:slim,keras,contrib,graph各式各样的写法,混乱不好管理
  • 代码逻辑不清晰,随处定义变量,随处定义函数
  • 由tornado服务迁往serving服务,需要更新的更频繁,接受的代码更加简单易上手,不需要高频去查各种tf接口

关于深度学习相关的Doc2Vec的介绍,可以快速入门一下Distributed Representations of Sentences and Documents


项目

RNN_applied_classification

利用GRU,提取用户的行为时序稀疏特征,并产出stack初始层的思路

CNN_applied_classification

利用全连接+CNN,提取稀疏特征,并产出stack初始层的思路

网络结构

Wide & Deep

Google 推荐算法的代码修正,原始代码来源于网络但是不能执行及流程不完整,修复代码demo,现可以直接复制后使用

网络结构

注意

在Linux环境下,tensorflow==1.0.0会有如下的报错,而MacBook环境下,tensorflow=1.0.0就不会报错:

double free or corruption (!prev): 0x0000000001f03dd0 ***

解决方法是更新版本到1.6.0(其他版本我没试),官方之前有人提过issue,大家注意一哈!

SSD_object_recognition

利用ssd直接实现物体区域识别

图片版效果:

视频版本地址:

行人识别场景

车辆识别场景

Word2vec_recommend

利用样本频率+Huffman树路径最大概率的方法,实现特征向量化的思路

MLPs

最简单的入门级神经网络算法 多层感知机网络

DeepFm

入门级别的CTR Prediction的神经网络算法 DeepFM的网络结构图

可能感兴趣的其他相关内容:FM部分||FFM部分

Deep Neural Networks for YouTube Recommendations

最近在利用来自google的YouTube团队发表在16年9月的RecSys会议的论文Deep Neural Networks for YouTube Recommendations做用户个性化商品推荐,看到不少论文上的理论总结分析,都很精彩,我手动实现了一遍,总结了一些实际工程中的体会,给大家也给自己一个总结交代。 Deep Neural Networks for YouTube Recommendations

normal_version:按照论文未修改的basemodel

attention_version:在basemodel的基础上,加了attention机制(线性attention/rnn attention)

record_dataformat_version:在basemodel的基础上,利用record机制存储数据,加快训练速度

RCNN_GRU

  • RCNN_GRU/model: 初始化模型的脚本
  • RCNN_GRU/process: 数据预处理的脚本

TextCNN

TextCNN

在做黄反广告文本的识别:

  • 初版本是朴素贝叶斯+LR(recall:72%,precision:88%)
  • 优化版是CBOW+LR(recall:77%,precision:88%)
  • 进阶版是CBOW/GLOVE+MLR(recall:85%,precision:91%)
  • 当前版是[D2V,CBOW,GLOVE]+TextCNN(recall:90%,precision:92%)

Bert

Bert+BiLSTM+Crf/FNN,关于Bert的更多可以参考我的ppt分享

XDeepFM

网络结构

主要把网络架构梳理了一边,后面项目结束再把整体的工程代码开源出来。

DeepInterestNetwork

和常见的网络上的版本不同的有两个地方的修改,我司实际使用上比官方版本要提升0.2pp的auc:

  • dice中的predict的bn过程采取了训练集的期望方差
  • 在fc的过程中用了tf.tanh替代tf.sigmoid/dice/prule

Estimator框架模版

  • data
    • 数据构造
    • DataMake.py
      • 常规构造方法
    • DeepFmDataMake.py
      • DeepFM的数据构造
    • TextCNNDataMake.py
      • TextCNN的数据构造
  • model
    • 模型框架
      • DeepFM
      • TextCNN
  • serving
    • docker部署
    • serving_grpc_client.py
      • 调用serving服务

Estimator框架重新写了DeepFm和TextCNN,总的来说,代码量差不多只是更加规范化了,以后建议以Estimator框架为模版开发。

Doc2Vector

来自于Distributed Representations of Sentences and Documents

工具

请参考:requirements.txt

其他