参考链接:

1. 快手参数个性化 CTR 模型 - PPNet
2. 快手精排模型实践
3. LHUC算法论文

  • 如上图所示,PPNet 的左侧是目前常见的 DNN 网络结构,由稀疏特征(sparse features)、嵌入层(embedding layer)、多神经网络层(neural layer)组成。
  • 右侧是 PPNet 特有的模块,包括 Gate NN 和只给 Gate NN 作为输入的 id 特征。其中 uid,pid,aid 分别表示 user id,photo id,author id。左侧的所有特征的 embedding 会同这 3 个 id 特征的 embedding 拼接到一起作为所有 Gate NN 的输入。
  • 需要注意的是,左侧所有特征的 embedding 并不接受 Gate NN 的反传梯度,这样操作的目的是减少 Gate NN 对现有特征 embedding 收敛产生的影响。Gate NN 的数量同左侧神经网络的层数一致,其输出同每一层神经网络的输入做 element-wise product 来做用户的个性化偏置。Gate NN 是一个 2 层神经网络,其中第二层网络的激活函数是 2 * sigmoid,目的是约束其输出的每一项在 [0, 2] 范围内,并且默认值为 1。当 Gate NN 输出是默认值时,PPNet 同左侧部分网络是等价的。
  • 经实验对比,通过 Gate NN 为神经网络层输入增加个性化偏置项,可以显著提升模型的目标预估能力。PPNet 通过 Gate NN 来支持 DNN 网络参数的个性化能力,来提升目标的预估能力,理论上来讲,可以用到所有基于 DNN 模型的预估场景,如个性化推荐,广告,基于 DNN 的强化学习场景等。
    前面提到,左侧所有特征Embedding不接受GateNN的反向梯度传播。在TensorFlow2.x中,如何阻止呢?通过函数tf.stop_gradient()函数即可。用法如下:
x = tensorflow.Variable(1, dtype=tensorflow.float32)
with tensorflow.GradientTape() as tape:y = x * xz = y + x

显然,由于z=x2+xz = x^2 +xz=x2+x,所以z′=2x+1z'=2x+1z=2x+1 。加上tf.stop_gradient()后:

with tensorflow.GradientTape() as tape:y = tensorflow.stop_gradient(x * x)z = y + x

此时,z′=1z'=1z=1

  1. 参考链接:https://www.zhihu.com/question/486168076
  2. TensorFlow API:https://tensorflow.google.cn/api_docs/python/tf/stop_gradient?hl=en

PPNet模型和tf.stop_gradient的用法相关推荐

  1. lr模型和dnn模型_建立ML或DNN模型的技巧

    lr模型和dnn模型 机器学习 (Machine Learning) Everyone can fit data into any model machine learning or deep lea ...

  2. Tensorflow Keras模型和Estimator有什么区别?

    对于整个tensorflow2.0框架,tensorflow Keras模型和Tensorflow Estimators都能够训练神经网络模型并使用它们来预测新的数据. 它们都是TensorFlow ...

  3. 五种IO模型和nginx的web模块

    IO模型和nginx模块 IO模型 前言 消息通知 IO模型 nginx nginx模块 安装nginx nginx.conf的配置 main段相关指令 HTTP模块配置 与套接字相关的配置 与路径相 ...

  4. 架构设计:系统间通信(4)——IO通信模型和JAVA实践 中篇

    接上篇<架构设计:系统间通信(3)--IO通信模型和JAVA实践 上篇> 4.多路复用IO模型 在"上篇"文章中,我们已经提到了使用多线程解决高并发场景的问题所在,这篇 ...

  5. TCP/IP四层模型和OSI七层模型

    TCP/IP四层模型和OSI七层模型对应表.我们把OSI七层网络模型和Linux TCP/IP四层概念模型对应,然后将各种网络协议归类.     表1-1  TCP/IP四层模型和OSI七层模型对应表 ...

  6. 情感分析的描述、基于词袋模型和word2vec模型的情感分析实现

    情感分析的描述.基于词袋模型和word2vec模型的情感分析实现 以购物评论为例: # 读入原始数据集 import pandas as pddfpos = pd.read_excel('../dat ...

  7. 文档信息的向量化-NNLM模型和word2vec

    文档信息的向量化-NNLM模型和word2vec

  8. R语言广义加性模型(GAMs:Generalized Additive Model)建模:数据加载、划分数据、并分别构建线性回归模型和广义线性加性模型GAMs、并比较线性模型和GAMs模型的性能

    R语言广义加性模型(GAMs:Generalized Additive Model)建模:数据加载.划分数据.并分别构建线性回归模型和广义线性加性模型GAMs.并比较线性模型和GAMs模型的性能 目录

  9. tf.estimator的用法

    tf.estimator的用法 利用 tf.estimator 训练模型时需要写两个重要的函数,一个用于数据输入的函数(input_fn),另一个用于模型创建的函数(model_fn).下面逐一来说明 ...

最新文章

  1. 10年Python大牛倾力打造系统Python学习流程图!
  2. HTTPS是如何加密的
  3. 【正则表达式】JavaScript的exec()和search()方法
  4. mysql数据库约束详解_MySQL数据库中的外键约束详解
  5. 具有预先训练模型的AI人脸识别
  6. [GoogleAppEngine]GAE平台需设置默认threadsafe-编译问题
  7. 热烈庆贺本博客9级及排名138
  8. 【PAT】A-1034 :Head of a Gang(图的DFS遍历和map的巧妙使用---图的入门题目)
  9. DolphinScheduler 调度系统
  10. C#通过NOPI读写Excel,并插入图片,VS2019
  11. android手机开机密码,安卓手机锁屏密码忘了怎么办 锁屏密码解决方法
  12. python生成中文字符画_用python生成字符画
  13. 解决pip Could not fetch URL There was a problem confirming the ssl certificate: HTTPSConnectionPool问题
  14. 收藏向:看完此篇让你轻松玩转领英
  15. AndroidStudio安装apk到vivo手机时提示安装失败
  16. 如何保证电脑硬盘格式化后数据不能被恢复?
  17. BlumNet: Graph Component Detection for Object Skeleton Extraction阅读笔记
  18. iOS Background Fetch 后台应用程序刷新的使用
  19. 数字图像中手写阿拉伯数字的识别技术概览
  20. 鹅厂招人啦!限量内推码和面试直通卡!助你直拿Offer(内附岗位介绍)

热门文章

  1. 搭建webservice环境,测试本地WSDL接口
  2. 转载: 通过指甲检视健康
  3. java docx转pdf_如何在Java中将DOCX转换为PDF
  4. db与dbm(分贝与分贝毫)
  5. Python-Pandas{数据结构与基本功能}
  6. STM32之ADC+步骤小技巧(英文)
  7. 2016智能硬件开发者创客大会
  8. 于g2o新版本编译出错的原因及解决办法
  9. 上海脱裤犀利姐:不要迷恋姐,姐只是憋不住
  10. 判断远程服务器是什么系统,远程监测诊断系统