- 参考链接:
LHUC
- LHUC(Learning Hidden Unit Contributions),最早应用于语音识别中
- LHUC的基本思路是在语音识别中,用一个网络建模说话者的特点,这个网络输出用于修改主网络上的隐藏向量,其模型结构见下图(参考自PPNET参考链接:推荐模型简介之快手PPENT - Shard Zhang的文章 - 知乎):
PPNet
- 快手2019年将LHUC的思想使用到推荐系统中,并将该方法命名为PPNet(Parameter Personalized Net),据说2019年全量后取得了很不错的收益
- 推荐系统中的一般的LHUC结构图(参考自PPNET参考链接:推荐模型简介之快手PPENT - Shard Zhang的文章 - 知乎):

- 快手的PPNet结构图如下:
如上图3所示,PPNet的左侧是目前常见的DNN网络结构,由稀疏特征(sparse features)、嵌入层(embedding layer)、多神经网络层(neural layer)组成
右侧是PPNet特有的模块,包括Gate NN 和 只给Gate NN作为输入的id特征。其中uid,pid,aid分别表示user id,photo id,author id。即bias embedding
左侧的所有特征的embedding会同这3个id特征(uid,pid,aid)的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的强化学习场景等 - 快手PPNet实现的几个核心点:
- 输入Gate NN的特征是包含了所有特征的,包括左边主塔的输入特征和用户ID特征等
- Gate NN的梯度不影响左侧的embedding特征(embedding不接受Gate NN的反向梯度)
- 问题:左边的MLP是否接受来自Gate NN的梯度呢?
- 回答:从论文PEPNet: Parameter and Embedding Personalized Network for Infusing with Personalized Prior Information中看是可以接受的,当然真实场景中,训练时可以尝试测一下不同方案
PEPNet
- PEPNet(Parameter and Embedding Personalized Network),包含EPNet和PPNet两个核心逻辑:
- EPNet(Embedding Personlized Network):主要用于做不同场景(domain)的个性化
- PPNet(Parameter Personlized Network):做用户维度的个性化,详情见上文
- 详细框架图如下:
- 特点:多场景、多任务、千人千模