前端学堂
学有所用

用户行为分析多渠道归因

在每一个行业中,效果评估都是决策过程中一个重要的部分。输入产出比是一个显而易见的度量,但是由于只是单个指标,有可能导致次优化的决策。同时在在线广告领域,难以衡量整体的表现,单一指标难以考虑到各个在线广告活动的联合效果,因此为了理解线上营销活动的影响,一个多渠道的归因模型是必须要考虑的[3]。

由于广告的定(出)价是基于点击或者展示次数的,因此理解每次action的价值是非常重要的。由于各个投放的渠道的性质不同,需要了解各个渠道的营销效果。由于一般情况下,用户发起的在搜索引擎上的交互带来的结果要优于其它渠道的结果,而由于各种原因,用户一般不太愿意点击各种横幅广告,虽然这些用户有可能会认同广告实际传播的信息,因此准确评估横幅广告的效果也是非常重要的。

简介

按照Google Analytics对于归因分析模型的说法:an Attribution Model is a rule, or set of rules, that determines how credit for sales and conversions is assigned to touchpoints in conversion paths

即归因分析模型是“将最终销售转化结果分配功劳或者贡献到用户转化路径各个触点(Touch Point)上的一系列规则”,也就是分配贡献值给各个触点。转化指的是用户支付订单或者其它行为,触点可以指访问渠道来源:例如百度,搜狐,优酷,Bing,也可以指在线推广类型,例如横幅广告,邮件,文字链接,搜索关键词,视频广告等等。从广告主的角度出发,触点可以指一次活动中一个或多个广告代理商投放的多个渠道。

常见的归因分析模型包括:

  • 最后一次点击:用户购买之前最后一个触点获取所有贡献值
  • 第一次点击:用户访问路径上的第一个触点获取所有贡献值
  • 线性模型:用户访问路径上的所有触点平分贡献值
  • 时间衰减模型:用户访问路径上更早的触点获取更多的贡献值

转化贡献计算

归因分析最重要的应用就是计算各个推广渠道的转化贡献,在此基础之上计算推广渠道的输入产出比,并进一步进行预算的分配。假设有如下数据,start表示开始,null表示未转化(一般指未购买),conversion表示转化成功:

user1访问路径:start->bing->baidu.com->conversion
user2访问路径:start->sougou.com->null
user3访问路径:start->bing->ipinyou.com->conversion
user4访问路径:start->baidu.com->so.com->conversion

根据最后一次点击模型和以上示例数据计算可得到:

  • baidu.com    0.33
  • ipinyou.com    0.33
  • so.com    0.33

在不同的渠道和营销活动间重新分配预算时,一个正确的归因模型非常重要[14]。归因模型的选择很大程度上决定了转化率计算结果,最近调查表明,54%的广告主表明在使用最后一次点击归因模型,而42%的广告投放人员不确定如何选择合适的归因方法和模型[9]。

[30]中提出了一个好的归因模型应当有以下特点:

  • 公平
    • 按照渠道对于转化影响力得能力进行奖励
  • 数据驱动
    • 利用每个营销活动得触点和转化数据来建立模型
  • 可解释性
    • 能够被各相关方接纳

最后一次点击是最广泛采用的归因分析模型[22],最后一次点击归因建立在用户是否购买产品和用户查看点击该产品广告次数无关的假设之上,此假设在很多情况下并不准确[10],已经证明在很多情况最后一次点击模型并不准确[2][8]。[24]中的数据表明,在30天内,40%的转化事件发生之前存在超过一次的点击行为:

最后一次点击模型会鼓励DSP将预算着重分配在一些客户历程中处于最后阶段的一些触点,例如重定向或者叫二次营销用户[21],这些用户实际上已经表明了对产品的兴趣,同时该模型低估Email、Display广告,高估搜索引擎的贡献值。而且推广渠道因为属性和目的的不同,并不能脱离用户整个的转化路径来单独进行计算[3]。

第一次触点模型驱使DSP尽可能地进行目标客户是新客户的营销活动,例如品牌营销活动[21]。线性归因模型可能用在以下场景:广告商的目的是维持用户访问路径的各个触点的关注度。此外对于最后一次点击、第一次点击和线性模型而言,实际上都是需要人工确定分配规则的算法, 因此需要一种以数据驱动的(Data-Driven)、更准确的归因算法。

马尔可夫链

如果将各推广渠道视为系统状态,推广渠道之间的转化视为系统状态之间的转化,可以用马尔科夫链表示用户转化路径[4]。[4]中提出的马尔科夫图归因模型反映了用户点击路径和访问历程的序列特征,同时也为分析渠道之间的相互影响作用提供了一种可行方法,[4]中的作者验证了,在四种类型的点击数据上(travel,two fashion retail,luggage retail),高阶马尔科夫模型相比启发式(第一次点击和最后一次点击)和简单的逻辑回归而言,在转化事件的预测上有提高,同时能够达到复杂逻辑回归相同的水平,同时在同一数据集交叉检验得到的移除效应的方差处于将校范围内,[4]中作者因此认为用(高阶)马尔可夫链来分析用户转化历程是合适的。这种方法能够利用到单个用户的轨迹数据,同时没有对渠道性质或客户决策过程作任何假设,因此通用性比较高[32]。

预测准确度

移除系数方差

马尔可夫链表示系统在t+1时间的状态只与系统在t时间的状态有关系,与系统在t-1,t-2,…,t0时间的状态无关,平稳马尔可夫链的转化矩阵可以用最大似然估计,也就是统计各状态之间的转化概率计算得到。用马尔科夫链图定义渠道推广归因模型:

1、状态集合,定义为 banner,text,keyword,link,video,mobile,unknown 7种推广类型加上start,null,conversion 3种系统状态

2、稳定状态下的转化矩阵,通过某公司web网站20天的原始click数据,同时包括转化和未转化的用户点击路径,计算(利用Spark+Python,详见代码示例)得到如下状态(按照投放广告类型划分)转化矩阵

移除效应

渠道的移除效应定义为:移除该状态之后,在start状态开始到conversion状态之间所有路径上概率之和的变化值。通过计算各个渠道的移除效应系数,根据移除效应系数在总的系数之和之中的比例得到渠道贡献值。移除效应实际上反映的是移除该渠道之后系统整体转化率的下降程度[4][16]。

通过以下示例可以了解移除效应的计算过程[5]

移除节点C1之前

移除节点C1之后

在以上系统中,总体转化率是33.3% (0.667 * 0.5 * 1 * 0.5 + 0.333 * 1 * 0.5.) ,移除节点C1后整体转化率是 16.7% (0.333 * 1 * 0.5.) ,节点C1的移除效应系数是 0.5 ( (0.333 – 0.167) / 0.333) ),同理计算节点C2和C3的移除效应系数是1,通过移除效应系数计算得到转化贡献值:

  • C1:0.5 / (0.5 + 1 + 1) = 0.2 * 1 conversion = 0.2
  • C2:1 / (0.5 + 1 + 1) = 0.4 * 1 conversion = 0.4
  • C3:1 / (0.5 + 1 + 1) = 0.4 * 1 conversion = 0.4

在计算如图2所示的转化矩阵中各渠道的移除效果时,利用该矩阵构造有向图(Directed Graph),每次移除一个节点node(i)之后,通过计算从节点start到节点conversion的所有非重复路径(Simple Path[17][18])的累乘权重系数之和来计算节点node(i)移除效应系数[6],重复此步骤,计算出所有非start和非conversion节点的移除效应系数,在计算出所有节点的移除效应系数之后,通过归一化计算每个渠道的转化贡献值。

按照最后一次点击模型、线性模型和一阶马尔科夫链模型计算得到的web端各渠道推广贡献值如下图所示:

其中马尔可夫链归因模型相比最后一次点击模型而言,在百度的转化率归因上要小,而在so.com和sogou.com的转化率归因上,马尔可夫链归隐模型的计算结果要比最后一次点击模型要大,在实际数据中也反映了这种情况:一部分的转化订单最后一次点击来源百度,但是之前的点击来自其它垂直类或者DSP渠道。

在转化率计算的过程中,需要注意的几点包括:

  • 丢弃掉那些来源不明的渠道,例如渠道为Unknown的,无法将贡献分配到这些渠道上
  • 丢弃那些来自书签或者内部渠道的访问记录,这种情况下数据采集到的日志显示该渠道为Direct或者Internal[27]
  • 将第一次购买和第二次及以上的购买行为的转化路径分别进行分析,很明显这两部分的购买行为有很大不同
  • 当利用一阶马尔可夫链进行计算时,一个访问路径中相邻的两个渠道可以缩减为一个,也就是可以在路径中去掉重复渠道。例如路径为C1 → C2 → C2 → C2 → C3,可以精简为C1 → C2 → C3[27]。因为不管在C2中重复多少次,都会最终落到C3渠道上。去掉重复路径的结果是将会得到稍微不同的转化矩阵,但是通过移除效应计算得到贡献值仍然相同。
  • 将那些没有成单(未成功转化)的路径也考虑进来。这样的话模型将正面渠道和负面渠道两方面的信息都包含在内,对业务有一个更加全面的了解。

渠道效率分析

在分配每个营销渠道的贡献之后,可以计算每个渠道的转化效率。例如总的转化单数是10000,通过将总转化单数乘以渠道的转化贡献,计算出每个渠道的贡献单数(conversions)之后,再通过将每个渠道投入的预算除以conversions,能够得到每个渠道的效果付费成本Cost Per Action(CPA),通过CPA来比较每个渠道的效率。


在计算出每个渠道的CPA之后,在控制其它渠道投入预算不变的情况下,可以计算特定渠道的投入与产出(也就是转化成单数)之间的关系,一般情况下,转化成单数越高时,获得同等产出的边际成本越大,只不过每个渠道的系数不一样。

[14]中提出在最后一次点击归因模型和多渠道归因模型的基础上,利用两种模型分别计算每次投放活动在该渠道的转化率,渠道的输入产出比通过计算每次投放活动带来的的总收益与该渠道转化率的乘积之和除以在该渠道投放的总金额进行计算,在计算R(i)也就是输入产出比之后,确定每个渠道投放金额上限(在已有的投放金额上适当增加),使用如下图所示的线性规划模型进行广告预算的分配。

ROI计算公式

预算分配

其中,Sj代表各个渠道的预算上限,Bi代表要进行优化的每个渠道的预算,Ri为每个渠道通过转化率计算出来的输入产出比,B为预算总和。在[14]论文作者进行的12天在线实验中,相等规格预算,四种相同的投放渠道,但是利用到的是不同的预算分配方法,通过多渠道归因分析为基础的预算分配策略,在eCPA、eCPC和ROI上优于最后一次点击归因模型为基础的分配策略。

Bidding优化

在效果广告中,点击率预测和转化率预测是两大核心问题[25]。DSP帮助广告主管理营销活动并优化广告出价行为。大部分的广告主关心的是营销活动如何促使用户采取广告主期望的行为,例如注册服务或者进行购买,所以一般采用的出价模型是Cost Per Click(CPC)或者Cost Per Action(CPA)。在实时竞价广告中,用户访问一个网页的同时通常会进行广告曝光,供给方将竞价的请求通过Ad Exchange发送给各个DSP,DSP将会负责出价的计算,最终所有DSP中的第二高出价会被作为最终的广告出价成本。

如果以CPA的模式进行结算,在每次竞价广告中出价的预期值(Expected Value Bidder)等于广告主的出价乘以估算的转化率。为了提高出价策略的效率,一个研究方向是预测转化率。

如果用 θ 表示广告的转化率,r表示转化产生的价值,那么现有的出价则基于[21]

DSP通常利用上下文(包括域名,网页内容,关键词,时间日期,地理位置,天气,语言,操作系统,浏览器)和用户的行为数据(包括搜索,浏览,购买历史,职业,收入,情绪?等)数据来计算点击率和出价。如果一个用户在第一次广告展示之后进行了点击,在接下来的竞拍中,一个理性的竞价策略应当考虑到之前广告对转化的贡献,从而降低第二次广告出价,因为转化贡献值很难再有大的提升。而现有的基于价值的出价策略由于没有追踪用户的点击行为,同时也没有预测广告点击行为对转化的贡献演化过程[25]。

[34]中认为最后一次触点归因模型能够在一定程度上提升CPA的效率,但是也提出了—————————。[23]中提出了一种基于lift-based的出价策略。转化率的lift指的是用户在观看广告之后转化率的提升程度为Δθ,r表示转化产生的价值,则相应的出价为:

由于转化率等于该触点在整个流程中的贡献比例

所以实际上转化率的lift出价对应的是在多渠道(触点)归因模型下分配给该触点的价值

lift-conversion-rate

而如果实际应用中采用最后一次点击归因模型的话,对于最后一个触点而言,P(attribution | conversion) = 1,实际上又回到了Value-based出价模型,可以说Value-based是Lift-based的一种特殊形式。

Value-based出价策略将预算集中在高转化率用户上,但是这些用户已经很可能将要完成转化,进一步的提高出价并不能提升转化率。Lift-based出价策略将预算根据转化率分配在各个触点上,能够更多地影响可能进行转化的用户,[23]的作者证明了Lift-based出价策略能够比Value-based出价策略带来为广告主更多的转化,而采用Lift-based的一个关键之处是采用合理的多渠道归因模型,当采用最后一次点击归因模型时,将会导致DSP产生高CPA[23]。

[25]中进一步提出了一种基于指数衰减的归因模型并嵌入到bidding过程中来进行竞价优化,其中δ是最后一次点击到完成转化的时间间隔,X为上下文环境,S为是否完成转化,指数衰减因子为λ,λ反映的是用户在点击之后完成转化的概率随着时间下降的速度,利用最大对数似然率来估计该值,在实际中[25]的作者提出利用L-BFGS优化方法计算对应的损失函数最小值来估计λ的值[33]。

上式中实际上将转化贡献抽象为点击和转化行为之间的时间间隔的函数。当发生第二次点击时,第二次点击的边际转化贡献为:

也就是说DSP根据点击的边际转化贡献来进行出价(是从数据中学习到归因模型的参数并将其结合到竞价过程中(Attribution-aware Bidder)):

上式中的第一项代表的是点击之后的转化率,如果没有前一次点击,δc为0,上式中的第二项变为1,出价则与Value-based模式一致。而在发生一次点击行为之后,第二次点击的出价随着时间的增长大幅下降。在实际计算中,在每个用户的每一次转化中,上式中的第二项都需要单独进行计算。

Attribution Aware Bidder

离线评估

如下图所示,基于最后一次点击归因模型的出价在一次点击之后的出价会大幅增长,基于第一次点击归因模型的出价则在点击之后出价会下降,基于指数下降的归因模型则在点击之后迅速将出价降到最低,然后在接下来的时间内平稳地提升出价。

从用户的角度出发,采用基于转化提升的竞价模型,能够使得用户避免接收同一广告主的广告,能够为DSP平台的展示提供广告多样性。对于广告主而言,对于一个给定的预算,[25]的作者在离线验证中观测到基于时间衰减归因的竞价算法在投放了更少的广告的同时(Win Rate下降),评价指标得到提升。

访问行为分析

计算各渠道的贡献价值、分析渠道之间的相互影响是归因分析的两个最重要目标[4]。如图2所示,53.7%的用户在第一次访问中是通过横幅广告链接访问web网站,说明横幅广告推广类型在引起用户注意、开启用户转化漏斗方面的重要性。12.6%的用户在通过文字链接访问web网站后,会通过搜索引擎关键词访问web网站。14%的用户在通过搜索首位结果访问web网站后,在下一次访问中通过搜索引擎关键词访问web网站。

如图5所示,在来源渠道为关键词搜索的贡献值上,一阶马尔可夫链模型下的贡献值最小,因为一部分用户第一次访问先通过文字链接或搜索左侧首位进行访问网站,最后再通过搜索关键词跳转到网站直接购买。而在无线投放渠道来源上,一阶马尔科夫链模型下的贡献值最大,反映的是用户通过移动广告知晓产品,最后通过web渠道访问网站并进行购买(准确地说是通过移动端访问web网页,这种行为有点奇怪,待进一步考证),因此在马尔可夫链模型下的贡献值相比最后一次点击模型下的贡献值要大。

改进方向

数据源

现有的数据源包括通过埋点采集的用户访问行为数据,这一部分数据中不包括例如用户未点击的横幅广告展示记录数据,造成的影响是将会低估横幅广告的贡献值。因此改进方向之一是需要将的未产生点击行为的广告展示记录纳入数据源。而且保险类电商成单用户的转化路径都比较短,相比于常规方法而言,基于一阶马尔科夫链的归因模型不会展示出太大的差异。

访客识别

存在这样一种情况,访客在渠道A进行了第一次点击,当他第二次点击之前清除了Cookie或者跨设备进行访问,这种情况下两次访问的访客ID不一致,如果不能识别两条记录是同一访客,造成的影响是分析此用户的转化行为时,会丢失第一次访问的贡献,同时第二次访问(假设完成转化)的贡献被放大。因此准确识别跨设备的用户或者关联清除了Cookie之后的用户的不同访问记录显得非常重要。

高阶马尔可夫链

高阶马尔可夫链表示系统在t+1时刻的状态不但依赖于t时刻也依赖与t-1,t-2…时刻的状态。有研究表明[7]用户访问行为并不能严格地用一阶马尔科夫链表示,同时高阶马尔可夫链在转化率预测上能够提供更高的准确度[4],也能够在分析渠道之间的相互影响作用提供基础。在高阶马尔可夫链的计算过程中,不能删除一个访问路径上两个相邻重复的渠道。

代码示例

https://github.com/zhouyonglong/MarketingAnalytics/blob/master/multichannel_advertising_attribution.py

https://github.com/zhouyonglong/MarketingAnalytics/blob/master/exponential_decay_attribution_based_bidding.py

转载原文:https://zhouyonglong.wordpress.com/2017/02/20/multi-channel_attribution/#remove

参考资料

[1]Marketing attribution comes of age Real-life insights from advertisers

[2]Measuring ROI Beyond the Last Advertisement

[3]Analyses of Online Advertising Performance Using Attribution Modeling

[4]Mapping the Customer Journey: A Graph-Based Framework for Online Attribution Modeling

[5]http://analyzecore.com/2016/08/03/attribution-model-r-part-1/

[6http://networkx.readthedocs.io/en/latest/reference/generated/networkx.algorithms.simple_paths.all_simple_paths.html

[7https://www.researchgate.net/publication/241624113_Are_web_users_really_Markovian

[8]Attributing Conversions in a Multichannel Online Marketing Environment An Empirical Model and a Field Experiment

[9]Marketing Attribution: Valuing the Customer Journey

[10]The Multiple Attribution Problem in Pay-Per-Conversion Advertising

[11]http://www.lunametrics.com/blog/2015/12/03/the-value-of-google-analytics-data-driven-attribution/

[12]https://ranjanicnarayan.com/2017/04/22/understanding-marketing-attribution-algorithms-why-the-pain-may-not-be-worth-the-gain-in-the-long-run/

[13]A Nested Hidden Markov Model for Internet Browsing Behavior

[14]Multi-Touch Attribution Based Budget Allocation in Online Advertising

[15]Budget Optimization for Online Advertising Campaigns with Carryover Effects

[16]Mining Advertiser-specific User Behavior Using Adfactors

[17]https://en.wikipedia.org/wiki/Path_(graph_theory)

[18]Algorithms in C, Part 5: Graph Algorithms

[19]Media Exposure through the Funnel A Model of Multi-Stage Attribution

[20]Analyses of Online Advertising Performance Using Attribution Modeling

[21]Display Advertising with Real-Time Bidding and Behavioural Targeting

[22]Causally motivated attribution for online advertising

[23]Lift-Based Bidding in Ad Selection

[24]https://drive.google.com/file/d/0BwF-hgLDpCD6Z0VUSGJFQ2UtNDA/view

[25]Attribution Modeling Increases Efficiency of Bidding in Display Advertising

[26]http://research.criteo.com/criteo-attribution-modeling-bidding-dataset/

[27]http://www.yittoo.com/blog/index.php/2016/05/13/large-scale-ml-ctr-prediction/

[28]http://analyzecore.com/2017/05/31/marketing-multi-channel-attribution-model-r-part-2-practical-issues/

[29]Real-Time Bidding A new frontier of computational advertising research

[30]Real-Time Bidding based Display Advertising Mechanisms and Algorithms

[31]Optimal Real-Time Bidding for Display Advertising

[32]Putting Attribution to Work – A Graph-Based Framework for Attribution Modeling in Managerial Practice

[33]https://docs.scipy.org/doc/scipy/reference/optimize.minimize-lbfgsb.html#optimize-minimize-lbfgsb

[34]Beyond the Last Touch : Attribution in Online Advertising

赞(0) 打赏
一分也是爱,觉得好请我喝杯咖啡吧!前端学堂 » 用户行为分析多渠道归因

一分也是爱,觉得好请我喝杯咖啡吧!

支付宝扫一扫打赏

微信扫一扫打赏