赞
踩
如果把广告主圈出来的那 10w 用户称为种子用户(「seed users」),那么我们可以把需要额外提供的一批相似的用户称之为 「look-alike users」。我们把这种基于种子用户进行相似人群扩展的过程称之为 「look-alike modeling」。所以,look-alike 并不是某种特定的算法,而是一类建模方法的统称。
笔者自己总结比较常规的技术路线是四条:
结合业务来看,也有一些场景/活动促销非常特殊,需要结合时点,需要单独建模,可见[1.1.6]
策略中心年货节投放海豹项目,通过大数据+算法的手段,对A品牌的目标人群进行分析,建立人群优选算法模型,挖掘品牌目标潜客。品牌A的年货节实际投放效果,算法优选人群相比基于业务经验使用规则圈选的人群,在“O->IPL”人群关系加深率指标上好47%,显示了人群优选算法的有效性。
业界相关方案主要与程序化广告中人群定向相关,方法基本都是Look-alike人群扩散,具体有以下几种:
根据项目目标,我们制定了“种子人群聚类细分+聚类人群扩散”和“多方向人群扩散+人群分类优选”的两种方案。由于聚类分群属于无监督学习且分群效果不容易评估,因此选择后者优先实施。
方案整体流程如下图所示:
训练集的正负样本,分别从品牌已购人群和其他品牌的人群中采样得到。从中训练的分类模型,可以较好的区分品牌目标人群和全网其它人群(大都和目标人群相距较远),但对区分和品牌目标人群相距不远的扩散人群则并非同样有效。
因此,直接使用传统的分类指标,只能评估模型在训练集上的效果,不能准确评估其在扩散人群上的分类效果,需要设计新的评估指标。
PredictTA TopNPrecision指标由此而来,表示优选的TopN人群中品牌目标人群的占比,该指标越大说明模型预测效果越好。我们通过对比该指标在不同模型上使用不同topN值的值,验证了它的一致性;并设计NewTA topN Recall指标,即优选人群在之后一段时间品牌新增目标人群的占比,验证了它的正确性。
上图中,紫色框表示品牌目标人群即种子人群,蓝色框表示模型优选出的TopN人群,它与种子人群有小部分交集,交集占蓝色框的比例即为PredictTATopN Precision。绿色框表示一周内品牌实际新增人群,与蓝色框的交集为预测准确的人群,交集占绿色框的比例即为NewTA topN Recall。
a. 正样本选择:对于线上市场份额大的品牌而言,直接用品牌已购人群即可。但对新品牌或者线上市场份额小的品牌,已购人群可能很小,这时就需要对正样本进行扩充,比如加入兴趣人群、加入与品牌定位相似的其它品牌的人群。
b. 负样本选择:默认从全网其它品牌的人群中随机采样,但发现全网人群中特征缺失的情况比较多,负样本集离扩散人群比较远,因此实验了从全网其它品牌的已购人群中采样,PredictTA TopN Precision(N=300万)指标绝对值有0.8%的提升。
a. 数值型特征离散化。年购物天数、近30天订单数等特征进行等距离散,提高模型稳定性和效果。
b. 枚举型特征值筛选。汽车型号、收货省份等特征长尾分布非常明显,筛选出与目标品牌相关的特征值。
c. 多值特征处理。偏好品牌、偏好类目这样的特征,一个用户可以同时有多个特征值。以品牌A品牌为例,我们在b步筛选的基础上,对比了只保留偏好值最大的特征、只保留品牌最相关的特征、保留品牌相关的多个特征3种不同的处理方法,效果如下:
d. 特征编码。主要采用one-hot编码方式。
e. 稀疏特征embedding。对于类目id,品牌id这种高维高稀疏性的特征,直接将其作为分类模型的特征会影响最终的模型效果,为此,我们借鉴word embedding的思路,将用户过去一段时间内对类目(或品牌)的行为序列作为doc,将类目(或品牌)本身作为word,基于全网活跃用户的行为序列(doc集合)训练类目(或品牌)的embedding表示。具体而言,我们将类目(或品牌)编码为100维的低维稠密向量,并将其作为预测特征用于模型训练。
a. LR模型。使用逻辑回归作为baseline的算法,除了模型简单容易理解外,还有个好处是可以得出特征和特征值的重要性。
b. RF模型。对随机森林模型的实验效果并不理想,在相同的样本和特征上Precision和AUC指标均比LR低,且特征重要性结果只能到特征粒度不能到特征值粒度,因此不再使用。
c. PS-SMART。基于PS架构的GBDT算法模型,决策树弱分类器加上GBM算法,具有较强的非线性拟合能力,在应用中相比其它两种算法模型效果更好。因此选择PS-SMART作为最终的算法模型,并对损失函数、树的个数深度、正则系数进行调优。
此次品牌投放需求临近春节,与年货的相关性很大。虽然可以用最新的样本数据训练日常的目标人群优选模型,但人群扩散方向和相关特征并非针对年货场景而挖掘的,因此不能有效捕捉出于屯年货动机的消费需求,需要针对年货场景单独建立一个人群模型进行预测。
样本选择:根据投放时间的农历日期,选取去年当日前1个月有行为的用户做样本。其中以去年当日到元宵节期间转化到品牌PL状态的用户为正样本,随机采用同等数量的其他用户为负样本,训练年货人群模型。
模型训练:基于日常人群优选模型的经验,同样采用PS-SMART算法进行模型训练、优化、及特征重要性分析。
模型预测:圈选投放日期前1个月对品牌主营类目及相关年货类目有行为的用户,使用年货人群模型进行预测,去除预测分数小于0.5的用户,根据拉新目标去除品牌现有IPL人群。
6.2 无历史反馈数据
品牌人群优选模型,由于没有品牌投放历史,不能从用户的历史投放反馈中来学习品牌人群特征。尤其是不能获取大量直接的负样本,只能以随机人群来代替,在样本选择上还有很大的提升空间。
6.3 无历史属性特征
年货人群模型和时间紧密相关,但由于存储周期的原因,只能获取用户去年的行为特征,而无法获取去年的属性和偏好特征,只能用近期的属性和偏好特征来代替,在特征实效性上也有较大提升空间。
6.4 重要的稀疏特征
模型使用的特征中有较多的稀疏特征,这些特征的特征值呈长尾分布,全部使用会引入很多噪声影响模型效果,只选高频特征又会丢失较多信息,为此我们采用特征值的TGI和TA浓度两个指标综合筛选,达到保留相关特征值、减少噪音和信息丢失的目的。
6.5 有效的评估指标
也是由于无历史反馈数据,导致用于优选的扩散人群与训练模型的人群分布有较大差异,单纯的AUC、Precision等指标不能准确衡量优选模型在扩散人群上的效果,为此我们设计并验证了PredictTA TopN Precision评估指标,有效指导了模型的优化。
文章来源:财报背后的强劲增长 | 揭秘淘宝如何进行目标用户的挖掘【技术人必看!】
用户增长平台的目标是希望能构建面向全域运营人员的全维度用户智能洞察分析体系,帮助运营高效触达目标人群。现有运营基于业务经验,将业务需求转化为一系列标签,根据标签筛选出符合条件的目标人群,该方法涉及到的数据链路较长,无法及时支持业务投放。在保证潜在人群与目标人群相似性的前提下,帮助各个垂直业务的运营同学自动化的实现保量提效的投放目标。本文主要介绍在此背景下的相似人群挖掘算法中通用特征体系若干特征处理方法。
一般进行投放时,先通过种子人群找到扩展人群,其后将扩展人群作为运营触达的目标用户,当有多个种子人群时,可以先找到各个种子人群的扩展人群,然后取各个种子人群的扩展人群的交集作为最终投放的目标用户。
使用的数据:
根据用户基础特征和已有的标签体系。利用 GBDT 算法将没有标签的用户全部打上标签。
将标签进行向量化处理,可以用 Label2Vec(类似word2vec)方法处理后得到用户标签的向量化信息,在模型效果上有 0.5% 左右的提升。
将上述步骤中得到的向量做拼接,得到表示每个用户的多特征向量集(User Vector Set,UVS)。最后的特征输出表达了用户的社交关系、用户属性、发出的内容、感兴趣的内容等混合特征向量。
将全量用户的多特征向量集进行聚类,然后提取每个类别的中心向量和以用户 ID 作为主键以离线形式存储,当运营人群上传种子人群后,采取同样的方式计算得到种子人群的若干类别中心向量。
覆盖度
由于相似人群挖掘属于无监督学习,且模型效果无法通过单纯的 AUC、Precision 等指标准确评估,所以需要设计新的评估指标来有效指导模型的优化。
覆盖度指标由此而来,对种子人群进行随机采样,切分为 A、B 两个人群, A 人群通过相似人群挖掘算法得到扩散后的人群 C ,覆盖度 =B∩C/B ,覆盖度表示扩人群中人群 B 的占比,考验的是算法通过人群 A 对人群 B 的“恢复”能力,具体实验中通过将种子人群进行 5 倍扩散后根据相似人群的覆盖度是否有提升来对模型进行迭代优化。
相似度
扩展人群相似度概念的提出主要有以下几点原因:
人群相似度计算步骤:
人群相似度基于扩散人群与种子人群间的距离计算,能够表征扩散人群与种子人群的相似程度,运营通过设置固定的人群相似度阈值,能够直接获得潜在人群的规模并进行下一步的分析或者营销活动。
参考:
PALM:实时 Look-alike 算法在微信看一看中的应用
RALM: 实时 look-alike 算法在推荐系统中的应用
《五个工业风满满的 Look-alike 算法》
微信看一看团队在 KDD2019 上发表的一篇论文,文章在 look-alike 方法基础上,针对微信看一看的应用场景设计了一套实时 look-alike 框架,在解决长尾问题的同时也满足了资讯推荐的高时效性要求。
Look-alike 在广告领域的应用已经很完善,也有很多方式。可以把 look-alike 相关的研究分成两个方向:
但是对于我们的推荐场景,有一些问题:
在我们的场景下,如果还用广告领域的经典的 look-alike,是无法解决的。
如果要对每个候选集建模,采用 regression-base 的方法,如每分钟都要对新加进来的候选集做建模,包括积累种子用户、做负采样、训练,等模型收敛后离线预测 target user 的相似分,这对于线上的时效性是不能接受的。
① 模型可总结为 user-users 的 model。回想下经典的 CTR 预估模型,是 user2item 的 point-wise 的处理流程建模。User、item、label,我们做的最大的变化,是借鉴了 look-alike 的思想,把 item 替换成种子用户。用种子用户的用户特征,代替 item 的行为特征。所以模型从 user2item 的 model,变成 user2user 的 model。
② 完善的 seeds representation。用种子用户代替 item 行为特征。这样面临的问题是:怎样更好地表达一个人群。这个 seeds representation,是我们研究中的核心步骤
③ real-time。最终目标是部署在线上,实时预测种子用户群体相似度,需要是能够实现 real-time 的框架。
线上需要实现实时预测,系统实际部署到线上,需要整套系统架构。简单介绍下 RALM 的配套体系。
Look-alike 有多种类型,包括基于相似计算的 「Similarity-based」,基于回归模型预测的 「Regression-based」,基于标签相似性的 「Approximation-based」,基于用户相似网络的 「Graph-based」,基于 attention 优化的 「Attention-based」等。
Weighted Criteria-based Algorithm 是由广告科技公司 Turn 构建的一套 Approximation-based 算法,发表于 ACM 2015,该算法主要是通过计算相关标签进行人群扩散,其从相似性、新奇性和质量分三个角度综合评估标签对。
相似性公式:
新奇性的计算公式:
还要定义质量分 q,其主要包括 CTR、CVR、ROI,这个可以自己的特定场景自己定义。
我们对上述三种指标进行加权相乘:
取 log,加上权重得到最终的评估结果,然后我们便算出了标签之间的分数,并可以利用相似标签进行人群扩展。
Look-alike 有多种类型,包括基于相似计算的 「Similarity-based」,基于回归模型预测的 「Regression-based」,基于标签相似性的 「Approximation-based」,基于用户相似网络的 「Graph-based」,基于 attention 优化的 「Attention-based」等。
Yahoo Look-alike Model 是 Graph-based,其结合了 Similartiy-based 和 Regression-based 方法,系统架构如下:
主要包含四个部分:
Look-alike 有多种类型,包括基于相似计算的 「Similarity-based」,基于回归模型预测的 「Regression-based」,基于标签相似性的 「Approximation-based」,基于用户相似网络的 「Graph-based」,基于 attention 优化的 「Attention-based」等。
Linkedin 在 KDD 16 上发表了他们的 look-alike 系统,其架构如下图所示:
大致分为线上和线下两部分,分别称为 「Campaign-Agnostic Expansion」 和 「Campaign-Aware Expansion」。
Linkedin 将每个实体建模为一个多域的结构化 doc(structured multi-fielded document),并提取四种类型的字段,包括:n-grams/词典、标准化命名的数据类型(standardized,公司名、行业名等)、派生数据类型(derived,互联网公司可以派生出网络开发、软件开发等)和相近实体(proximities,基于用户和公司交互的网络确定其他相关公司)。举个例子:
Linkedin 将用户和公司分别进行上述实体建模,然后将用户关注的公司作为正样本,没关注的公司作为负样本,并用 LR 模型进行训练。
PS:会不会出现极端情况,导致召回量不够。
Look-alike 有多种类型,包括基于相似计算的 「Similarity-based」,基于回归模型预测的 「Regression-based」,基于标签相似性的 「Approximation-based」,基于用户相似网络的 「Graph-based」,基于 attention 优化的 「Attention-based」等。
Pinterest look-alike 于 KDD 19 发表了他们的 look-alike 模型,其大致分为两部分基于 LR 的分类模型和基于 Embedding 的相似搜索的模型。
Pinterest 的baseline 是用 LR 模型去做个分类模型,种子样本为正样本,随机选取非种子样本为负样本,然后训练一个分类模型去给所有用户打分排序。
Pinterest 探索的新方法,大致分为两块:
首先是计算用户的特征向量,其基于 StarSpace 的方法进行训练(Pair-wise):
得到用户特征向量后,利用 LSH 对用户进行映射,然后基于种子用户的个数进行投票选出哪些区域,并取区域内用户作为扩展用户。
下方为离线计算:
来源于DataFun-2021的讲座分享《网易云音乐广告算法实践》
用户向量建模业务背景
问题:新广告投放冷启动
Lookalike拓展相似人群的几种方式:
基于用户向量表示召回相似用户,计算种子用户的向量表示与候选用户的相似度,基于相似度打分来召回相似用户。
如何获得用户向量?
(1)输入用户侧特征
(2)进行模型predict,得到用户侧DNN的最后一个隐层输出作为用户向量embedding。
如何衡量候选用户与种子人群的相似度,措施:
爱奇艺的广告业务场景下,先后探索实现了基于标签选择和基于机器学习的Lookalike算法,以下是这两种方法的简单介绍:
通过对用户观影、搜索行为的深度挖掘,爱奇艺构建了丰富的用户画像体系,每个用户都拥有数以万计的标签,包括基础属性、兴趣偏好等。我们可以对种子用户进行画像分析,挑选出种子用户中表现显著的标签进行人群扩展。例如,分析某化妆品牌种子用户,发现性别<女>、年龄<18-25>、爱购物、喜爱观看时尚节目这些标签非常显著,可以从全站用户中寻找更多具备相同标签的用户提供给广告主作为扩展人群。
算法实现上我们参考了Yahoo的一篇论文[1],文中提出了一种对用户标签打分的方法,从标签覆盖用户和种子用户的相似度、新颖度及标签质量三个维度对所有标签进行打分排序,最后将TOP-N的标签所覆盖的用户作为扩展结果。三个维度具体含义如下:
该方法的优点是原理简单,易于实现,有一定的解释性。缺点是调参复杂,需要反复线上实验,且按标签得分顺序召回粒度偏粗,无法从多个标签维度综合比较新用户和种子用户的相似度。
针对标签选择算法存在的问题,我们尝试用有监督的机器学习算法来解决Lookalike问题。将种子用户作为正样本,目标是预测活跃用户为正例的概率。具体实现包含以下步骤:
a) 正负样本划分
进行有监督学习遇到的第一个问题是缺少负样本,种子用户是正样本,其余用户是无标注样本。这和文本分类里的PU-Learning问题[2]类似,我们借鉴了相关思想,结合不同的场景,分别使用两种方法生成负样本:
b) 模型选择
在模型选择上,常用的分类模型都可以用于这一场景,例如LR、GBDT、FM等。具体到广告的业务场景中,由于我们希望模型具备较强的解释性,方便向广告主说明扩展人群特点,所以选择了LR作为线上使用的模型。
另外,由于扩展人群存在用户复现率的问题,相较普通投放缩小了广告触达的用户范围,可能导致订单缺量,为了避免缺量,最终的扩展人群除了考虑模型预测概率和广告订单预订量外,还加入了用户的历史访问频率进行综合排序。
c) 特征工程
在特征工程方面,除了爱奇艺DMP拥有的用户基础人口属性、观影偏好、搜索偏好、商业兴趣等数据外,我们还探索了用户在广告、行业等维度的行为特征(例如,用户对不同行业广告的反馈、广告对用户的新鲜度等),并取得了不错的效果。
来自datafun《OPPO商业化-从定向差异化到智能化再到去定向化演化实践》
来自公众号文章:打造哈啰自动化增⻓算法闭环(上)
精准定向,在哈啰这边它有两种模式
如何无监督选出负样本:
PU- Learning是怎么做的。一开始我们用的是最传统的TSA算法,也就是间谍样本技术。我们首先会在正样本中挑选出一些,假装它是一个负样本,混在未知样本的池子里,相当于人为提高一个正负样本区分的难度,然后在未知样本和正样本中选出来一些间谍样本,假装它是一个负样本,和正样本在一块训练一个分类模型,而这个分类模型我们是希望尽量把负样本中的未知间谍样本,也就是那部分正样本和真正的负样本给区分开来。
一旦分类器建立之后,我们就用第一步的分类器来给所有样本打一个分,把其中分低的作为真正的负样本。然后再建第二个样本池子,在这样反复的迭代过程中,直到我们把间谍样本完全识别出来,做到一个收敛情况。通过这种方法,我们就能把未知样本中真正的负样本给识别出来。
一旦分类器建立之后,我们就用第一步的分类器来给所有样本打一个分,把其中分低的作为真正的负样本。然后再建第二个样本池子,在这样反复的迭代过程中,直到我们把间谍样本完全识别出来,做到一个收敛情况。通过这种方法,我们就能把未知样本中真正的负样本给识别出来。
后面我们又做了一些改进,因为传统TSA算法会有几个问题。第一个问题是你正负样本划分的阈值,它其实是一刀切的,并不是一个合理的值。所以我们用EM算法把分布给聚类起来,学到了它真正的正负样本的阈值。这其实也是对正样本进行了数据增强,因为正样本在我们这边非常少。而另一个改进点,我们一开始用的 PU- Learning基准模型其实是GBM, GBM套着GBM,时间长了一定会实现信息茧房效应。所以我们在第一步和第二步的模型后面进行了一个区分,第二步模型改成DeepFM,通过GBM和DeepFM的交叉迭代的学习,减少信息茧房的问题。
刚刚讲的是第一种方式——行业包,即在一个大的池子中捞出一部分精准人群。另一种方式是LookAlike,这是更传统的一种方式。我们用的技术是Graph Embedding,通过用户之间的行为或者某种关联给用户作为点,用户有行为关联的建立一个边,最后把用户的Embedding给学习出来,从而通过这种向量,用相似度的计算能把用户的人群扩大。
Graph Embedding现在已经相对成熟,但是在哈啰的主要挑战是这个图怎么构建。因为它和传统电商不同,最重要的是识别出强的行为,怎么把用户之间的边给连接起来。
第一种我们会用时空,真实用户在出行中的时空空间上的关联给它建立图,比如说同一个地块,同一个时间段,两个不同的用户发生了同类行为,如给单车开关锁,这样它就能连一个边,但这种行为还不够强。我们参考了电商领域的行为构建方式,我们在想是不是我们整个APP所有的事件,所有的物料的行为都可以用来建图,于是我们在首页进行了探索。
这里有一个图,比如说上面的icon,中间的banner,还有下面的种种其他的营销物料,其实在不同资源位置以及每一个物料,它都有一个物料ID,同时它也是某个业务推出来的物料,这三者的结合就能唯一确定一个item是什么东西。用户在我们整个首页点的所有item的一个序列,通过这种序列也可以来构造用户之间的边。
我们的技术模型选用的是EGES,因为哈啰还是一种偏工具的APP,而且行为确实没有像电商的购买行为这么强,所以SideInfo对我们来讲就会更加重要。
同时哈啰的用户量还是很大的,当然我们选的是近几天活跃的用户作为我们的向量池子来扩展,非活跃用户的话也就给刨掉了。如果是全量的话,几亿的用户算下来计算的性能耗不起。当时的向量引擎选的是Milvus,一开始我们也实验过其他向量引擎,但对比下来Milvus的性能是最好的。我们在几千万用户以及几十维向量这样的规模下,可以做到小时级别的全量用户的向量化。Milvus线上的查询也能达到近实时查询的程度,最终的实验效果通过向量的相似度进行量级的放大。我们可以扩大人群的规模10-1000倍不等,同时保证ROI相比人工策略一直是提升的。当然放大规模越大,提升幅度也会越小。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。