解读微信个性化广告的推荐算法和工程技术

百家 作者:InfoQ 2017-11-28 03:54:04
嘉宾|陈功
编辑|雨多田光

一觉睡醒,突然看到朋友圈里某可乐的广告,心里想着“这是什么新花样?”,公众号里读着文章,文末发现竟然有很精致的可跳转广告。找人问了一下,发现大家的广告竟然是不一样的,又回想了一下,发现每个人收到的广告是跟自己平时的内容偏好比较相关的……上面的场景,相信很多人都经历过,一方面大家很好奇,另一方面,大家知道这就是广告,而且就是以微信官方形式给出的广告,但是就是无从了解这背后的情况。

12 月 8-11 日 ArchSummit 全球架构师峰会即将在下周五北京举行,大会邀请了腾讯微信广告引擎负责人陈功前来分享《微信社交广告核心架构与图计算存储》,在此之前,我们对其进行了一番专访,先让读者较为全面地去了解“社交广告”。以下内容由采访整理而成,演讲大纲可识别下方二维码进一步了解。

社交广告是什么

目前国内外存在着很多的社交网站平台,广告外观样式也多种多样,但是其上的广告并不能都称作为社交广告。我们在做社交广告时候,会坚持两点,一个是产品形态上要不断融入 社交元素。

另一个就是广告引擎中要结合关系链 融入社交推荐的体系架构。微信广告引擎目前的应用场景主要是在 朋友圈 与 公众号 中。在公众号中,上下文场景不同,策略上会有不同的侧重。

下面具体说说它在微信环境下的表现。

产品形态上,最直接最直观的就是可以 针对广告进行点赞,评论和转发。这个也是微信广告作为原生广告,和其他 feeds 内容一样具备的属性。但是对广告,它们的意义却十分大,直接影响了广告的效果以及推荐系统的设计。

另外,我们也在广告样式上不断融入社交的元素。比如最近在灰度的 @广告主互动的功能,用户可以直接在评论区和广告主进行互动,这种创新的形式也让广告大大地增强了社交的属性,因为你对广告主的提问,以及广告主对你的回复,好友都是可以看到的,从而会进一步引起更多人感兴趣参与。

社交推荐系统上,之前我在 QCon 上有过一个介绍,主要是首次将微信广告大体系给大家做一个介绍,以及阐述我们思考的角度。而这次在 ArchSummit 上,我将会更注重从推荐系统本身的设计上深入讲解。

社交广告系统与效果广告系统

先从传统的效果广告系统来讲。社交广告系统与效果广告系统的区别要从 产品 和 推荐系统 两个角度来看。这里主要从系统角度说说关键技术的区别。

传统的效果广告最主要的技术是 预估用户点击广告的概率,也就是 pctr,然后根据广告的出价计算一个 ecpm 来排序。

而社交广告,以朋友圈里的广告为例,首先它的定位与格调就决定了广告主不可能只关注点击量,更多的大品牌客户在朋友圈中对产品进行宣传,这个阶段关注点在于它的品牌的传播是怎么样的。那么它们的品牌效应该拿什么来衡量?我们的优化目标又需要多关注什么?这里其实就是想说两者的 目标就不一样。

其次,社交关系的引入,对用户的行为会造成什么样的影响,如何将影响融入到推荐系统,这才是关键。之前我们认为用户的点击概率可以通过相似人群的行为来做出预估,而在社交广告场景之下,用户的行为也受到了社交关系的实时影响,这种影响的重要性与突发性,都是不能低估的。之前,单纯靠提升点击率来提升效果,天花板是很低的,而社交关系的引入,给我们打开了另一个大门。

更进一步,社交关系不仅仅影响单次的行为预估,在整个宏观层面,它又涉及到了 传播学,如何控制社交关系的传播也是直接影响广告效果的关键点,而这些是传统效果广告也不会考虑的。

融入社交元素带来的也不仅仅是广告直观效果上的提升。我们也会通过用户行为去衡量用户体验,当有社交元素融入的时候,用户对广告的态度、浏览行为,以及后续的行为都是有明显变化的。

目前国内外都有专门的数据机构在研究品牌广告效果的衡量,社交元素的融入也是能够明显提升品牌影响力的。那么,如何通过广告引擎去量化它们、提升它们也是一个关键区别。

个性化广告

微信社交广告系统是有针对性地给用户去展示广告内容的,也就是个性化推荐。

首先在给用户推荐之前,当然是要有一个精准的 用户画像 去刻画用户,腾讯在这方面很擅长的,因为有众多的产品线,有强大的登录体系等。

腾讯社交与效果广告部有专门负责用户画像的团队,在用户的基础定向、商业兴趣上都有大量的投入,最终都会在我们的投放入口服务广告主。更进一步,我们也建设了用户的 社交图谱,为社交广告引擎提供更有力的数据支持。

当有了用户画像,之后就是 广告推荐引擎 该做事情了。微信的广告推荐引擎大的层面分为三层:检索,粗选,精选。许多公司都是类似这个结构,但是差异主要在其中算法与工程实现。

不同的算法决定了不同的工程设计,比如微信广告社交数据很重要,就会衍生出对应的 图存储架构。我们在做推荐的时候,主要从三个维度去考虑,分别是用户个人的行为、好友的影响,以及更大圈子的影响。

另一方面,为了保证精准个性化,我们也在用户体验上下了很大的功夫。我们不会一直给用户插入过量的广告来提升收入,而是在排序的时候有一个用户体验的门槛限制,如果不满足,即使一整天,用户都是有可能收不到一条广告的。

用户体验也是分为两个层面,一个是用户本身的行为,比如对广告不感兴趣,或者沉默。另一个就是当用户体验受损时,会对我们平台造成多少潜在的损失。

实现社交广告系统的挑战

在实现社交广告系统的时候,主要会有两个方面的挑战。

算法上,社交网络理论的研究已经有很多年了,我们如何在它上边将广告引入,融合到推荐系统中,这个之前我们是没有可以借鉴的经验的,只能自己去摸索。

具体做了之后,在优化的时候,如何衡量效果是一个关键问题,社交算法实验与传统的流量 ABTest 实验有很大的区别,所以实验系统也是要演进的。此外,当我们在做社交传播优化时候,这和传统的合约保量控制方法是相冲突的,那么如何平衡好合约保量与社交传播,也是其中主要的技术点。

工程上,需要配合社交推荐算法。微信海量用户注定了海量的数据,尤其是社交这种关系数据量更是大,所以核心的技术点是如何高效地对这些数据进行存储与读取。

随着新产品形态发布,除了广告 feeds 下面如何高效显示互动数据,还有共同游戏好友数,推荐系统如何快速获取多度好友数据等等,这些都是工程架构的核心技术点。

而大家关心的“消息推送”,这是一个我们经常被问到的问题,会被问什么时间推送给用户。这里也和大家说下收到广告的原理。

微信广告系统并不是基于事先计算好,然后定时推送的模式。而是基于用户在朋友圈 实时行为动态 产生内容给到用户的。这在策略与架构体系上也是有明显区别的。

策略上,社交关系行为往往具有突发性,定时推送没法考虑用户社交关系。架构上,定时推送一个用户发送一次,系统负担并不大,而如果是基于用户实时行为动态决定接收广告的时机,这会带来很大的计算量,所以也要有能够支撑这些情况的良好的架构设计。

嘉宾介绍

陈功,2011 年加入腾讯微信,现任微信广告引擎业务负责人,平时带领团队主要负责广告策略设计,机器学习在计算广告中的应用,以及大规模分布式系统的设计与开发。个人对算法和工程十分感兴趣。

***

推荐即将在下周五开幕的 ArchSummit 全球架构师峰会。

2017 年在架构领域发生了很多大事,Kubernetes 结束容器编排之争、Kafka 发布 1.0、Serverless 逐渐发力、边缘计算要取代云计算、Service Mesh 蓄势待发。另外人工智能为业务赋能,也给架构带来了新的挑战。

我们希望用 100+ 分享来总结过去的实践,也展望面向未来的架构,献给聊聊架构的读者。我们还请来了王坚博士,让他来分享一下对技术的思考。

大会完整演讲目录,可识别下方二维码或点击 阅读原文 了解,期待和你一同进步!

关注公众号:拾黑(shiheibook)了解更多

[广告]赞助链接:

四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

公众号 关注网络尖刀微信公众号
随时掌握互联网精彩
赞助链接