参考链接:

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. Spring父子容器的关系分析--用实例说话
  2. 学习笔记整理之对象的转型
  3. Java有线程安全的set吗?
  4. feign整合hystrix开启hystrix后启动报错_Spring Cloud进阶之路 | 六:断路器(hystrix)...
  5. mysql怎么查找删除重复数据_Mysql中如何查找并删除重复数据
  6. Cowboy 源码分析(二十六)
  7. ffmpeg filter过滤器 基础实例及全面解析
  8. xp母盘制作流程+QQDLL+系统文件DLL修改(转)
  9. mysql源代码多少行_数据库是一个庞大的工程,本来想读读mysql的开源代码,可看到代码行数.doc...
  10. 计算机电路基础答案刘怀望,计算机电路基础
  11. 基于Android的办公自动化系统APP设计与实现
  12. 软件测试找游戏bug,游戏测试用例及游戏测试bug详解
  13. 腾讯云服务器部署教程
  14. 华三防火墙三层逻辑子接口对接华三交换机
  15. 情商决定了工作方面的成就
  16. 对称加密算法、非对称加密算法、散列函数与数字签名的介绍
  17. 存储资源盘活助力网络强国
  18. 太酷了!GitHub 开发者自制火星车,教程全面开源!网友:这才是大佬!
  19. 易语言做mysql登录器_易语言制作简单的一个登陆器
  20. 如何保存伴奏在计算机,怎么把原唱变成伴奏 有什么方法可以把歌曲去掉原唱保留伴奏...

热门文章

  1. Ubuntu 12.04 下安装 openGL 驱动时,究竟做了什么事?
  2. R语言进行探索性因子分析EFA、除了R原生函数(princomp函数和factanal函数)以及psych包以外的其它包:FactoMineR、FAiR包、GPArotation包、nFactors包
  3. linux的tcp非阻塞客户端与服务端demo源码
  4. 优质投资组合构建、MA、MACD、KDJ、RSI、OBV相关指标计算及预测模型在线实验闯关
  5. android 版本比对,iQOO Neo三个版本对比体验 845版、855版、855 Plus版对比实测
  6. go自定义和使用set包处理列表 交集 并集 差集
  7. ASP.Net的两种开发模式
  8. 《计算机基础》在线作业,重庆西南大学17年秋季1056《计算机基础》在线作业(参考复习资料)...
  9. Visual Basic 6 -VS6SP6 - SP6 for Windows 11
  10. 素人小学渣PMP一次通过心得(报班篇),11月考试同学请留步