Lookalike 算法调研

https://zhuanlan.zhihu.com/p/37400021

难点

A 对目标直接建模 or 迁移学习:长期以 ROI 为目标,短期以 CPA 为目标

B 种子包:各式各样,训练二分类通过AUC评估,与目标不一致

​ 如有条件,先试种子包,如成本在 KPI 下,再用扩散包

​ 种子包注册改为点击转化用户

C 点击转化付费数据:有偏稀疏,广点通/信息流媒体未充分利用

​ 点击 ieg_tdbank::o2_rt_dsl_mobile_click_ios_fdt0

​ 回流 ieg_mms::mas_user_back_adv

​ 注册 ieg_mms::ios_monitor_user_register

D 转化数据延时反馈

E 对付费数据利用

F 对玩家-游戏图数据利用

尝试方向

  1. 用户感兴趣的游戏预测:用户-游戏图的边预测,应用《Link Prediction Based on GNN, NIPS18》 PDF /

  2. 游戏安装预测 App2Vec PDF 改进 CBOW 在 softmax 加入两个 app 使用间隔时长(考虑人均游戏较少问题)

  3. NN 端到端方法:《Comprehensive Audience Expansion based on End-to-End Neural Prediction SIGIR19》 PDF 文中对一个用户多次 DSP 广告曝光 / 点击特征做归一化作为特征,是否购买作为标签(拿不到广点通曝光数据);对比 PU learning 问题的三种采样方法 spy / pre-train / bootstrap;对比 LR / FM / bn_mlp / s_mlp / s_bn_mlp 模型,其中 s_mlp 效果最好

  4. GNN 端到端方法:微信广告 GAT Lookalike Chrisyi 分享,基于共同朋友参与多的广告转化率高假设,微信好友扩散(考虑我们关系网较少)

  5. NE 方法:用户-游戏异构图 MetaPath2vec 作为特征输入(基于相似度方法精度低,只用 NE 做为特征)

  6. PU Learning:种子用户 Lookalike 基础上,持续加入曝光点击用户和未转化用户;利用多渠道曝光点击转化,持续扩散

  7. RTB 优化:跳过 Lookalike,根据 eCPM ( pCVR x pCVR x 1000 x oCPA) 是否大于广告位最低价,决定是否竞价 / 增加 pLTV(user, game) 用于出价

Lookalike

Rule-based

常见于广告平台标签定向,选择年龄、性别、职业、兴趣标签,定向投放。

《Effective audience extension in online advertising SIGKDD15》PDF

Graph-based

《Link Prediction Based on GNN, NIPS18》 PDF 边缘预测:玩过哪些游戏的用户,更容易安装新游戏。

《App2Vec: Vector modeling of mobile apps and applications ASONAM16》 PDF 应用安装预测,改进 CBOW 在 softmax 加入两个 app 使用间隔时长

Similarity-based

UserCF / ItemCF / MF:协同过滤,挑战:数据高维稀疏

Graph Embedding: LINE / GES / Node2vec

YoutubeDNN 召回部分:根据用户观看搜索序列进行NE;把搜索观看视频 emb 作为 DNN 输入,预测观看时长,用 DNN 最后一层作为用户表达,召回距离相近的用户。

《Audience Expansion for Online Social Network Advertising KDD16》PDF LinkedIn 基于用户属性的相似度

《Score Look-Alike Audiences ICDM16》PDF Yahoo! 基于相似度的 LSH 方法:以广告主指标作为优化目标;未转化用户作为负样本;其中局部敏感哈希 LSH ,是一种使特征相近的用户哈希到相同桶的方法。

Regression-based

LR《A Sub-linear, Massive-scale Look-alike Audience Extension System BigMine16》 PDF Yahoo! 1. 构建 “用户-用户相似图” 缩小候选集;2. 针对每个 campaign,特征选择 + LR 模型打分

GBDT

RALM《Realtime Attention-based Look-alike Model KDD19》 PDF 将 lookalike 方法用于实时资讯推荐:通过某 item 的 seed user 计算候选 user 的 lookalike score,以决定是否推荐 item。系统分为两部分 1. 用户表示学习(右); 2. Lookalike 学习(左)

数据特点:user-item 丰富,冷启动 item

img

MLP《Comprehensive Audience Expansion based on End-to-End Neural Prediction SIGIR19》 PDF 是基于 MLP 的端到端方法,对一个用户多次 DSP 广告曝光 / 点击特征做归一化作为特征,是否购买作为标签(拿不到广点通曝光数据);对比 PU learning 问题的三种采样方法 spy / pre-train / bootstrap;对比 LR / FM / bn_mlp / s_mlp / s_bn_mlp 模型,其中 s_mlp 效果最好

最近发表

**《Adversarial Factorization Autoencoder for Look-alike Modeling CIKM19》**Criteo PDF

为了解决 Lookalike 建模时的 implicit constraints、高维稀疏数据问题,提出了 AFA 通过对抗训练学习binary mapping :从高维稀疏数据到二进制地址空间。在 CLM 数据集横向对比 AFA LSH LR GBT FM 等方法,大部分情况 AFA 表现最优,其次是 GBT。

《Finding Users Who Act Alike: Transfer Learning for Expanding Advertiser Audiences KDD19》 PDF

Pinterest 提出的 2-stage embedding-based 方法:1. 利用全局用户数据,训练全局轻量级 embedding 粗排(选择相对 static 特征,保持结果稳定) 2. 针对每个广告,用迁移学习和统计方法得到新的轻量级 embedding。

数据特点:Pinterest 2.5 亿月活用户行为、175 B 的 pin,以及对应的 topic 较丰富。

缺点:没有与其他算法对比

《当 GAT 图神经网络遇上社交推荐 - PlatoDeep在微信朋友圈 Lookalike 广告中应用》 KM

数据特点:用户点击率和互动率,会随着互动好友数的增加而上升

思考:游戏 RTB 广告也是如此?无游戏好友关系是否适用?

在对GAT进行适配的过程中,我们对原算法进行了以下的改造:

  1. GraphSAGE 邻居采样
  2. 节点特征与邻居特征以concat形式拼接
  3. 关系链子图限制(相邻节点的标签应该尽量相同 & 相邻节点的特征应该尽量不相似)
  4. self labeling(分数较高或较低的候选样本,重放回正负样本中,一种 PU-Learning 技巧)

TODO

GAT《Graph Attention Networks ICLR 2018》 PDF

https://zhuanlan.zhihu.com/p/34232818

半监督学习 - PU Learning

问题:给定正样本 P,未标记样本 U,训练二分类器

挑战:负样本不易获取、负样本多样性、负样本动态变化

综述对比

《A Survey on Postive and Unlabelled Learning》 PDF

《An Evaluation of Two-Step Techniques for Positive-Unlabeled Learning in Text Classification》 PDF

简单方法:把未标记样本 U 作为噪声很大的负样本来处理

两步方法

  1. 训练分类器 g,从未标记样本 U 中,寻找可靠负样本 RN

  2. 用 P 和 RN 组成数据集,训练分类器 f

第一步方法:计算可靠负样本

Rocchio

《Relevance feedback in information retrieval 1971》PDF

动机:选择文档向量表示 d\vec d、相似度衡量函数 ff ,对每个 U 中的样本:把与 P 样本相似、与 U 不相似的样本,选入可靠负例 RN。

算法:每个文档 d\vec d 用 IR 分数如 TFIDF 表示;CjC_jjj 类文档集合,cjc_j 是其 prototype vector,则

cj=α1CjdCjddβ1DCjdDCjdd\vec{c_j}=\alpha\frac{1}{|C_j|}\sum_{\vec d \in C_j}\frac{\vec d}{||\vec d||} - \beta \frac{1}{|D - C_j|} \sum_{\vec d\in |D - C_j|} \frac{\vec d}{||\vec d||}

其中 α\alphaβ\beta 是文档集合 Cj|C_j|DCj|D-C_j| 的权重。

测试时,一些相似度函数 f 可以衡量 ddcjc_j 的相似度,分数那高的那一类分配给文档 dd

Rocchio 算法为 P U 分别构建 prototype vector,选择 RN 样本依据:U 中样本与 negative prototype vector 有更高相似分数。

Cosine-Rocchio

  1. 计算 U 中,与 P 余弦相似度高的样本,作为潜在负样本 PN
  2. 应用 Rocchio 分类方法,构建分类器 g,对 P 和 PN 二分类
  3. 用 g 对 U 分类,判别负样本作为可靠负样本 RN

Spy

《Partially supervised classification of text documents ICML02》 PDF

  1. P 全部正样本;U 未标记样本;S 正样本子集
  2. 构建数据集正样本 P - S 和负样本 U + S ,训练二分类器 g
  3. 对 S 应用 g 确定阈值 t;构建 RN (可靠负样本)
  4. 从 U 选取满足条件的样本 g(u)>tg(u) > t

1-DNF

《PEBL: positive example based learning for web page classification using SVM KDD02》PDF

  1. 选择正特征:对比相对 U,在 P 频率更高的特征(文本分类任务中,找词频高的词包)

  2. 选取 RN 可靠副样本:在 U 中找不包含正特征的样本

Naïve Bayesian

  1. 构建训练集 U 和 P,学习 NB 分类器
  2. 对 U 使用 NB 分类器,得到 RN 样本

第二步方法

SVM - based

  1. 构建分类器 f 学习 P RN 二分类
  2. 对 Q 应用 f,若样本判为负例则从 Q 移入 RN
  3. 重复直到收敛,取最终分类器作为结果

EM - Naïve Bayesian

  1. Q (=U-RN) 视为未知类别
  2. 构建 NB 分类器 f,P 作为正例,RN 为负例
  3. Expectation 步:f 对 Q 样本分类
  4. Maximization 步:从 P RN Q 学习新的 f
  5. 迭代 EM 直至收敛,取最后一个分类器作为结果

https://zhuanlan.zhihu.com/p/37575364

模型加权方法

《Learning classifiers from only positive and unlabeled data SIGKDD08》PDF

融入先验类别(Incorporation of the Class Prior):尝试给正样本P和未标记样本U赋予权重,并给出样本属于正标签的条件概率估计。

考虑样本 <x,y,s><x, y, s> 服从分布 p(x,y,s)p(x, y, s),只有 <x,s><x,s> 记录在训练集合,其中 ss 是观察标签、 yy 是实际标签。

假设训练集正样本是从所有正样本随机采样得到,且与特征 xx 无关

p(s=1x,y=1)=p(s=1y=1)=cp(s=1|x,y=1)=p(s=1|y=1)=c

首先训练分类器 g(x)=p(s=1x)g(x)=p(s=1|x) 预测样本被观察为正 s=1s=1 的概率(给定实际标签为正 y=1y=1

p(s=1y=1)=1npxPg(x)p(s=1|y=1)=\frac{1}{n_p} \sum_{x\in P} g(x)

其中 npn_p 是正样本候选集 P 的势(cardinality)

接下来,对每个未标记样本,可以认为是正样本加权 p(y=1x,s=0)p(y=1|x,s=0) 和负样本加权 1p(y=1x,s=0)1-p(y=1|x,s=0) 的集合。

其中正样本加权

p(y=1x,s=0)=1p(s=1y=1)p(s=1y=1)p(s=1x)1p(s=1x)p(y=1|x,s=0)=\frac{1-p(s=1|y=1)}{p(s=1|y=1)}\frac{p(s=1|x)}{1-p(s=1|x)}

至此,通用分类器可以在 <x,s><x,s> 数据集和以上权重训练。代码实现

《Building Text Classifiers Using Positive and Unlabeled Examples ICDM03》DOC

《Towards Positive Unlabeled Learning for Parallel Data Mining: A Random Forest Framework ADMA14》 PDF

一种基于随机森林的 PU 学习方法

《Learning with confident examples: Rank pruning for robust classification with noisy labels UAI17》PDF

图像分类 PU-Learning 问题,Rank Pruning 方法,每次迭代从 U 移除最不可信样本

《Learning with a generative adversarial network from a positive unlabeled dataset for image classification ICIP18》PDF

问题:图像分类 PU-Learning。

效果:在 CIFAR-10 数据集本文 P-GAN 方法比 Rank Pruning 方法更好;在 MNIST 结果一般。(谨慎使用)

回顾 GAN 方法:G 为生成模型,生成假样本;D 为判别模型,判断是真样本和还是 G 生成的假样本。

损失函数:

\min_G \max_D V(D, G)=\mathbb{E}_{x_R\sim p_{data(x_R)}}[\log D(x_R)] \\ + \mathbb{E}_{z\sim p_z(z)}[\log(1-D(G(z)))]

其中 xFx_F 是生成假样本,xRx_R 是真实样本;z 是随机噪声,G(z)G(z) 是从随机噪声生成的假样本。

当判别器 D 无法分辨真样本和 G 生成的假样本时,即 yD0.5y_D \rightarrow 0.5,G 生成的假样本数据分布 pG(xF)p_G(x_F) 接近真样本的数据分布 pdata(xr)p_{data}(x_r),即

p_G(x_F) \xrightarrow[y_D \rightarrow 0.5]{} p_{data}(x_R)

本文方法 Postive-GAN:

image-20200511194025756

《On Positive-Unlabeled Classification in GAN CVPR20》 PDF

问题:针对以往的 Postive-Fake GAN 方法中,D 学习区分真假样本,而忽视部分样本质量逐渐提升、生成样本质量不平衡的问题(假样本中部分太真、部分太假)。

解决:提出 Postive-Unlabeld GAN,D 区分高质量假样本和低质量假样本,使得 G 能够改进低质量样本。

GAN 模型目标函数:

\min_G \max_D V(D, G)=\mathbb E_{x\sim p_{data}} [f_1(D(x))] \\ - \mathbb E_{z\sim p_z}(f_2(D(G(z))))

本文目标函数:

\min_G \max_D V(D, G)=\pi \mathbb E_{x\sim p_{data}} [f_1(D(x))] \\ + max\{0, \mathbb E_{z\sim p_z}(f_2(D(G(z))))\} \\ - \pi \mathbb E_{x\sim p_{data}} [f_2(D(x))]

其中 f1 分类为真的损失函数,f2f2 是分类为假的损失函数,如交叉熵。

效果:STOA,对 LSUN CAT CelebA 等 64x64 数据集,G 能生成高质量假样本。本问方法可结合主流 GAN 框架使用,生成高质量的假样本。

《Training deep neural networks on noisy labels with bootstrapping ICLR15》 PDF

TODO

参考

node2vec

DNN for Yotube Recommendation

DSSM PDF

微信广告 Lookalike 易玲玲 知乎

微信看一看 RALM 知乎

微博广告 Node2vec + DNN https://juejin.im/entry/59b0b5276fb9a024747f26ba

半监督学习 知乎

PU Learning在风控中的应用(理论篇) 知乎

Plato 平台介绍 KM

异构 Network Embedding(一)概述 KM

手把手教你在柏拉图跑 Network Embedding KM

推荐模型中的样本迁移问题 KM

半监督学习方法综述 计算机学报

RTB

手动设置竞价(Manual)

老虎机 Bandit,action 影响回报

上下文老虎机(Contexual Bandit),action 和 contex 都影响回报 知乎 阿里小毛驴

Advantageous Actor-critic (AC A2C A3C) 知乎

连续动作控制(DDPG)

阿里:分布协同多智能体竞价系统(DCMAB)

KDD2012 Bid Optimizing and Inventory Scoring in Targeted Online Advertising 非线性竞价函数 PDF CN

参考

user embedding技术1:用户行为序列建模bert4userembedding

user embedding技术2: Bert 大规模预训练算法

user embedding技术3 – SocialTrans:BERT与GNN的结合

user embedding技术4:Graph Auto-encoder在微信社交网络上的实践

user embedding技术5:GraphSage在微信社交网络上的实践

当图神经网络遇上社交推荐 - PlatoDeep在微信朋友圈广告中应用 KM

GNN 算法框架及其应用概述 KM

本文有帮助?