当前位置: 首页 > 科技观察

五种工业风十足的look-alike算法

时间:2023-03-12 23:01:05 科技观察

1.引言广告商通常根据用户标签来圈定广告的目标人群。例如,想投奥迪广告的广告主可能会选择北方25-44岁的男性;奔驰在江浙地区可能会选择25-55岁的男性。但受广告主先验知识的限制,选择的目标群体通常很小,无法满足投放要求。比如广告主要定位100万用户,但是通过用户标签只选出了10万用户,那么剩下的90万用户应该怎么选?如果将广告商圈出的这10万用户称为种子用户(“seedusers”),那么我们可以将额外一批需要提供的相似用户称为“look-alikeusers”。我们将这种基于种子用户扩大相似群体的过程称为“相似建模”。因此,look-alike并不是一种特定的算法,而是一类建模方法的总称。2.Look-alikeLook-alike有很多类型,有基于相似度计算的"Similarity-based"、基于回归模型预测的"Regression-based"、基于标签相似度的"Approximation-based"、基于Approximation-based的"Approximation-based"关于用户相似度网络的“Graph-based”、“Attention-based”基于attention优化等等。但是这样划分有些不合理,所以这里打算直接介绍一些经典的look-alike模型。2.1TurnLook-alikeWeightedCriteria-basedAlgorithm是广告技术公司Turn构建的一套基于Approximation-based的算法,发表于ACM2015,三个视角综合评估标签对。相似度计算公式如下:为指示函数,有标签则为1,否则为0;它是用户的数量。但是,这个相似度计算公式可能存在两个问题:1.由于数据稀疏,大部分用户只有少量的标签,所以大部分标签之间的相关性都比较高;标签不是很大就是很小,这样的计算是多余的。因此,作者采用了第二种相似度计算公式:此时,还有一个新奇的计算公式:另外,必须定义质量得分q,主要包括CTR、CVR、ROI,可自行定义在特定场景下。我们对以上三个指标进行加权相乘:取log,加上权重得到最终的评价结果??:然后我们计算标签之间的得分,使用相似的标签来扩大人群。2.2YahooLook-alikeYahooLook-alike模型是基于图的,它结合了基于相似性和基于回归的方法。系统架构如下:主要包括四部分:根据用户之间的相似度构建用户相似度网络,利用LSH对用户进行分桶;roughrecall:与seed用户在同一个bucket中的用户作为候选用户;特征筛选:基于特征IV的特征筛选,挑选出能够代表种子用户的正向特征;精细排序:计算用户得分并排序,返回得分最高的用户集合。用户相似度的定义如下:其中,表示用户的特征向量,权重矩阵为单个特征或特征组合线性相关的重要性,可以根据用户的重要性来构造特征。其时间复杂度为,查找的时间复杂度为。雅虎使用MinHash和LSH来优化和分桶用户。然后系统根据种子用户作为候选集召回同一个桶中的用户。由于不同的广告主关注的用户特征不同,比如K12教育关注年龄,化妆品关注性别,所以需要提前进行特征筛选。考虑到性能和可解释性的原因,雅虎使用信息价值作为特征筛选方法,构建了一个权重矩阵,其中S为广告商提供的种子用户;U是候选用户的集合,可以通过抽样得到,也可以是整个User集合;它是一个积极的特征,表明该特征在种子用户中比其他用户更重要。此时,用户评分方法为:其中,为特征重要度;是特征的二阶度量。Yahoo系统主要采用的是第一个顺序,权重为IV,所以某条广告下的用户评分为:注意这个评分的值是一个实数。如果要计算概率,可以使用sogmoid函数压缩一下。2.3LinkedinLook-alikeLinkedin在KDD16上发布了他们的look-alike系统,其架构如下图所示:大致分为线上和线下两部分,分别称为“Campaign-AgnosticExpansion”和“Campaign-AwareExpansion””。“Campaign-AgnosticExpansion”框架主要使用实体进行扩展。例如,数据挖掘可以扩展到大数据和机器学习。该框架的算法是利用LR模型从历史交互数据中捕捉实体之间的相似性,这种扩展方式可以直接在系统中使用(不需要额外计算)。“Campaign-AwareExpansion”框架使用neighborsearch根据用户属性扩展相似用户。在线和离线都需要用到相似度计算,这里简单介绍一下。Linkedin将每个实体建模为多域结构化文档(structuredmulti-fieldeddocument),提取四种类型的字段,包括:n-grams/dictionary、标准化命名数据类型(standardized、companyname、Industryname等)、衍生数据类型(derived,互联网公司可以衍生出网络开发、软件开发等),以及相似实体(proximity,根据用户与公司交互的网络确定其他相关公司)。例如:实体的结构化文档将被构建为倒排索引库。doc的每个域的属性都有一个特征向量。同域内docs之间的相似度通过cos相似度计算:docs之间的相似度由域相似度线性加权:其中,s为不同域的相似度,w为不同域的权重。Linkedin分别为用户和公司对上述实体进行建模,然后将用户关注的公司作为正样本,没有关注的公司作为负样本,使用LR模型进行训练。PS:会不会有极端情况导致召回不足?2.4TecentLook-alikeRealtimeAttention-basedLook-alikeModel(RALM)是由微信看看团队提出的。它发表于KDD19。它将Attention集成到look-alike方法中,用于实时信息推荐。其系统架构如下图所示:大致分为:“离线训练”、“在线实时预测”和“在线异步处理”,分别对应上图中的下、中、上位置分别。2.4.1offlineLearning“离线训练”部分包括UserRepresentationLearning和Look-alikeLearning。前者用于学习用户特征向量,后者用于根据用户特征向量计算相似度分数。UserRepresentationLearning模块是在YoutubeDNN模型的基础上改进而来的。左边是用户特征,使用了Attention而不是concat。左边是Itemfeatures,然后整体进行SCELoss或者multi-classification来预测用户的下一次点击。训练完成后,左侧取最后一层隐藏层作为用户的特征向量,模型结构如下图所示:Look-alikeLearning模块采用双塔结构,左侧输入所有种子用户的特征向量,右侧输入目标用户的特征向量,其结构如下图所示:这也是RALM能够实现实时计算的主要原因。它将项目特征替换为种子用户特征,从而将用户-项目模型转换为用户-用户模型。因此,Look-alikeLearning模块的关键是表达种子用户群体。假设用户会有自己的个性信息和群体共同信息,那么种子群体可以表示为:个性信息+共同信息。为此,作者分别对LocalAttention和GlobalAttention进行建模,学习了两种embeddings:LocalAttention利用对种子的乘法注意力,提取种子用户群中与目标用户相关的信息,捕获用户的局部信息。GlobalAttention只和种子用户群有关。所有的self-attention方法都是通过矩阵变换乘以seeduser,再乘以seeduser本身来捕捉用户组自身内部的兴趣分布;得到Local&Globalembedding后,加权求和,就是种子用户群的全部信息。但是,我们知道Attention本身的计算量非常大,无法满足模型在线部署的耗时要求。为此,作者通过k-means对种子用户进行聚类,减少Key的数量。完成Look-alikeLearning后,我们可以通过FC存储右边用户的特征向量,提供给在线服务。2.4.2OnlineAsyncheonous在线异步处理,主要处理与在线请求无关的计算,如:根据用户点击日志,更新Item的种子用户列表;计算种子用户的聚类中心并分发给推荐系统;计算全局嵌入。所有这些东西都是定期更新的,不需要实时计算。2.4.3OnlineService在线服务主要拉取种子用户的聚类中心、GlobalEmbedding和userEmbedding,在线实时计算LocalEmbedding,计算最终的相似度。PS:因为RALM有聚类,种子用户的异常点数可能会存在一些问题(当然内部概率已经优化)。2.5PinterestLook-alikePinterestlook-alike在KDD19中发布了他们的look-alike模型,大致分为两部分:基于LR的分类模型和基于Embedding的相似性搜索模型。2.5.1Classifier-basedApproachPinterest的基线是使用LR模型来制作分类模型。种子样本为正样本,随机选取非种子样本为负样本,然后训练一个分类模型对所有用户进行排序。2.5.2Embedding-basedApproachPinterest探索的新方法大致分为两部分:一是训练Embedding,二是基于Embedding和LSH寻找相似用户。首先是计算用户的特征向量,基于StarSpace方法(Pair-wise)进行训练:user:user作为PiarA,concat用户的离散特征+归一化连续特征,经过一层线性激活函数Dense后,输出是用户特征向量;Topic:将Item的Topic作为PairB,通过lookup得到Topic的特征向量;trainingsamples:取用户注册过的Item,将Item的Topic作为PairB;其他随机选取的k个Topic作为负样本,与用户组成样本对;trainingset:以用户注册过的item的Topic为正样本,随机选取的k个Topic为负样本,损失函数为:trainingstop:因为模型最终会被用于为了解决种子用户增殖问题,作者取种子用户和非种子用户,90%的种子用户组成一个集合K。从剩下的10%的种子用户中取出一个,从中取出一个非种子用户。定义相似度:,那么trainingstop的评价标准是:训练好的tensorboard如下图:Modelretraining:使用最新版本的模型周期性(时间较长)重新计算userembedding,主要目的是希望所有用户的兴趣都被转移以捕捉用户行为和用户漂移。(Why?)得到用户特征向量后,用LSH对用户进行映射,然后根据种子用户的数量投票选出哪些区域,将区域内的用户作为扩展用户。当然,每个区域的用户数是不同的,所以种子集s在该区域的修正得分为:其中,是该区域的所有人数,是平滑因子,和。下表是每个地区的人数(绿色是种子用户,红色是非种子用户):下表是投票得分和概率得分的差异,可以看到排名区域发生了变化:作者重复映射m次,得到最终的概率得分:,每个用户的映射结果为,所以用户的最终得分为:。然后,选择得分最高的用户作为扩展用户。可视化结果如下图所示:2.5.3End-To-End系统介绍Pinterest的系统:以下是离线计算:首先离线计算用户的特征向量;然后,根据种子用户的m次映射结果,计算所有区域的Score;此外,对最近访问过Pinterest的用户计算分数,并在排序后设置一个阈值。(采用桶排序,阈值大小根据广告主的需求进行排列,可以满足广告投放的需要);最后,表单用于广告投放;作者在实验过程中发现,Classifier-based和Embedding-based混合使用Blending-based更容易使用:3.Conclusion看的论文都是工业论文。最大的感受就是很实用,工业风十足,尤其是最后一个PinterestLook-alike,细节很多,也很实用。4.参考《Effective Audience Extension in Online Advertising》《A Sub-linear, Massive-scale Look-alike Audience Extension System》《Audience Expansion for Online Social Network Advertising》《Real-time Attention Based Look-alike Model for Recommender System》《Finding Users Who Act Alike: Transfer Learning for Expanding Advertiser Audiences》RALM:微信看看中基于注意力机制的实时相似推荐模型(jianshu.com)