0%
3.5k 字 11 分钟

Lookalike 技术调研

What

基本上所有的互联网公司都有其广告投放平台,这是给广告主投放广告的一个页面。广告主可以通过广告提交页面提交自己的广告需求,后台会给广告主圈定一部分潜在用户,这个就是我们称为Lookalike的模块。
lookalike 不是某一种特定的算法,而是一类方法的统称,这类方法综合运用多种技术,最终达到目的。

How

第一种就是显性的定位,广告主根据用户的标签直接定位
比如说通过年龄、性别、地域这样的标签来直接圈定一部分用户进行投放。这个时候我们的技术支持就是后台的用户画像的挖掘。

第二种做法,通过一个机器学习的模型,来定位广告主的潜在用户
广告主提交一批客户名单,我们称之为种子用户,它作为机器学习的正样本。负样本我们会从非种子用户,或者是说平台会积累历史的一些相似的广告作为负样本,这个问题就转化为一个二分类的模型,正负样本组成学习的样本,训练模型之后,利用模型结构对活跃用户进行打分,最后得到广告主需要的目标人群。

通过机器学习方法定位目标人群

各大厂的做法

对于特征和模型算法,不同的公司各有差异:特征取决于公司有哪些数据;在模型算法上,Facebook 和Google对外公布的说法就是一个预测模型,Yahoo发表过几篇论文,详细介绍过它的算法,比如LR,Linear SVM,GBDT都有尝试,论文里面提到的是GBDT的效果比较好。下图列出了不同公司的做法,供大家参考

吐槽 google 和 非死不可的 predict model 怕不是用了深度学习? 私以为 两家公司 节操没这么高。

各大厂做法

需要哪些特征

  1. 行为结果数据
    所谓行为结果数据是已经采取了具体行动的数据,例如购买数据,入资数据等。
  2. 行为意向数据
    所谓行为意向数据是倾向于采取某种行为的人群数据,最典型的是搜索引擎的数据,一般来说消费者在做最终的购买决策之前,往往会通过搜索引擎了解产品周边的一些相关信息,相关搜索关键字数据可以定位到一个有强购买倾向的人。这也是很多广告主投入较多预算在SEM上的原因。但这种数据一般很难从搜索引擎侧获取,购买关键字的成本也越来越高。一般来说,通过行为意向数据来寻找人群,转化率会比较高,因为行为意向人群往往已经达到了转化前的最后一步的关键时刻,此时对意向人群进行营销,效果往往很明显。但同时广告主也面临一定的风险,因为这时客户可能已被别的竞品在更早的环节进行了影响,转化成本也相应提高。
  3. 行为偏好数据
    对于大多数第三方DMP平台来说,主要还是通过这一类数据来帮助广告主找到潜在的人群,从业务逻辑来说,具有某种偏好或者属于某种类型的人群往往会更倾向于购买某款产品,对于这部分数据的学习也能促成最终的转化。而且行为偏好数据会保证广告主在潜在客群覆盖规模和精准度之间达到一个很好的平衡,因此也是广告主普遍选用的一种数据。
  4. 行为模式数据
    所谓行为模式是指通过分析消费者的行为与时间、空间的关系,以及一系列行为之间的时间和空间序列关系,总结出的具有一定一致性意义的行为表现,通过这些一致性模式预测相关行为。行为模式数据往往应用于场景营销,但是由于加工行为模式的数据计算复杂度较高,同时对分析的实时性要求也很高,因此目前还处在探索和优化阶段,实际的应用落地不多。

应用tips

  1. 结合聚类算法一起使用
    有时候客户提供过来的种子人群成分是非常复杂的,往往是参杂了大量子类人群的总和,如果直接拿这些种子人群进行lookaLike,则相当于把人群的特征进行了弱化,最终找出来的相似人群特征会变得不明显。例如某奢侈品牌,他们的一方种子人群中包含2类,一类是真正有钱的人群,平时开豪车住别墅的,另外一类是普通的城市小白领,他们往往攒好几个月的工资进行一次消费。这2种人群必须先通过聚类算法区分出来,然后再输入lookaLike算法去扩大。
  2. 在什么媒体上用
    LookaLike算法选出的人群最终是在媒体的流量人群中实现触达,因此媒体自身流量对最终lookaLike算法落地的效果影响非常大,例如我们做过的某次营销案例,选取某DSP做为精准营销的落地媒体,在整个4周的营销过程中,最终选取的精准人群只有2%曝光成功。(一方面由于该DSP媒体流量均为长尾流量,而我们选取的目标人群为金融类目标人群,该DSP对目标人群覆盖率低,另外由于低价策略,竞价成功率低也导致了最终触达的精准人群规模比较小。)最终我们分析了这2%成功曝光的人群,发现他们也是Lookalike算法相似度相对较低的,也就是说最相似的那部分目标人群在该媒体上并没有出现和竞得。
    因此为了保证lookaLike算法落地的效果,选取与广告主自身产品相对匹配的目标媒体以及合适的出价都非常重要。
  3. 根据效果数据优化lookaLike算法
    一旦精准营销活动开始后,就可以回收消费者对营销的反馈数据做为正样本来对lookaLike算法进行优化。通过TalkingData对大量历史投放数据的分析,动态优化lookaike算法可以极大的提升算法的转化效果:在同样选取相似度TOP100w样本进行精准投放的情况下,每日优化样本库组相比较不优化组在一周的投放周期内,可提升激活率180%以上。样本库优化的周期可以根据效果数据回收的量级、媒体的技术支持能力、以及DMP平台自身的数据更新周期综合决定,建议每1-2日更新目标用户群。

一些实际例子

利用用户画像,给用户打标签,利用相同标签找到目标人群

实例:美的豆浆机通过Youmi DSP进行了Look-alike人群扩展投放
有米广告取得美的家电第一方消费者数据,涵盖浏览、购买行为等ID信息。通过导入Youmi DMP进行全库记录匹配,找到个体的在线历史大数据。经由人群分析模型,有米洞察到美的用户的个性倾向特征,通过标签算法挖掘,将数据库中拥有高相似画像的人群列为一类精准用户。根据标签模型,得出这些用户具有较多且重合的“健康”“时尚”“亲子”“女性”“中高收入”“一二线城市”等细分人群画像。

分析:利用用户画像给用户打上各类标签。根据种子人群分析大部分种子用户具有的标签特征 例如:家庭女性、30-40岁、已婚,未生小孩,健康。那么对于一个标签为:上班族,30-40岁、已婚,未生小孩,健康 女性就是其目标人群。

利用分类算法来实现的:种子人群为正样本,候选对象为负样本,训练分类模型,然后用模型对所有候选对象进行筛选。

显然候选样本并发所有的样本都是负样本,所有这是一个典型的PU learning问题
PU learning:Positive and unlabeled learning

利用社交网络进行人群扩散:利用好友关系,将种子人群标签传给社区中的好友,从而实现人群扩散

实现

  1. 数据准备
      ① 获得用户的属性(User Profile),如性别、年龄、学历、职业、地域、能力标签等;
      ② 根据项目内容和活动内容制定一套受众标签(Audience Label);
      ③ 提取用户之间的关注关系,微博之间的转发关系;
      ④ 获取微博message 中的文本内容;
      ⑤ 获得微博message 中的图片内容。

  2. 用户标签特征处理
      ① 根据步骤1 中用户属性信息和已有的部分受众标签系统。利用GBDT 算法(可以直接用xgboost)将没有标签的受众全部打上标签。这个分类问题中请注意处理连续值变量以及归一化。
      ② 将标签进行向量化处理,这个问题转化成对中文单词进行向量化,这里用word2vec 处理后得到用户标签的向量化信息Label2vec。这一步也可以使用word2vec在中文的大数据样本下进行预训练,再用该模型对标签加以提取,对特征的提取有一定的提高,大约在0.5%左右。

  3. 文本特征处理
      清洗整理步骤1 中提取到的所有微博message 文本内容,训练doc2vec 模型,得到单个文本的向量化表示,对所得的文本作聚类(KMeans,在30 万的微博用户的message 上测试,K 取128 对文本的区分度较强),最后提取每个cluster 的中心向量,并根据每个用户所占有的cluster 获得用户所发微博的文本信息的向量表示Content2vec。

  4. 图像特征
      将步骤1 中提取到的所有的message 图片信息进行整理分类,使用预训练卷积网络模型(这里为了平衡效率选取VGG16 作为卷积网络)提取图像信息,对每个用户message 中的图片做向量化处理,形成Image2vec,如果有多张图片则将多张图片分别提取特征值再接一层Max Pooling 提取重要信息后输出。

  5. 社交关系建立(node2vec 向量化)
      将步骤1 数据准备中获得的用户之间的关系和微博之间的转发评论关系转化成图结构,并提取用户关系sub-graph,最后使用node2vec 算法得到每个用户的社交网络图向量化表示。下图为社交关系化后的部分图示。

社交关系向量化

fully connected layers,FC
将步骤2345 得到的向量做拼接,经过两层FC,得到表示每个用户的多特征向量集(User Vector Set, UVS)。这里取的输出单元个数时可以根据性能和准确度做平衡,目前英特实现的是输出512 个单元,最后的特征输出表达了用户的社交关系、用户属性、发出的内容、感兴趣的内容等的混合特征向量,这些特征向量将作为下一步比对相似性的输入值。
  分别计算种子用户和潜在目标用户的向量集,并比对相似性。英特使用的是余弦相似度计算相似性,将步骤6 得到的用户特征向量集作为输入x 和y,代入下面公式计算相似性。


注意:余弦相似度更多是从方向上区分差异,而对绝对的数值不敏感,因此没法衡量每个维度值的差异。这里要在每个维度上减去一个均值或者乘以一个系数,或者在之前做好归一化。

  1. 受众扩展
      ① 获取种子受众名单,以及目标受众的数量N;
      ② 检查种子用户是否存在于UVS 中,将存在的用户向量化;
      ③ 计算受众名单中用户和UVS 中用户的相似度,提取最相似的前N 个用户作为目标受众。

  最后将以上步骤串联起来,形成流程图。

Lookalike 算法流程图

在以上步骤提取完特征后,英特使用一个两层的神经网络做最后的特征归并提取,算法结构示意图如下

Lookalike 算法结构示意图
其中FC1 层也可以替换成Max Pooling,Max Pooling 层具有强解释性,也就是把用户特征群上提取的最重要的特征点作为下一层的输入,读者可以自行尝试,这里限于篇幅问题就不做展开了。

来自Youtube & google

深度候选人生成模型 + 分布式打分模型
使用的是分类方式,将客户分成可能的N类,选取打分最高的类
引入DNN 的好处在于大多数类型的连续特征和离散特征可以直接添加到模型当中。

ref:

Deep Neural Networks for YouTube Recommendations
Audience Expansion for Online Social Network Advertising
微信广告推广的
综述类型的