WOT讲师冯扬:体系变化与用户建模角度探索微博推荐

原创
开发 前端 架构
51CTO主办的高端技术峰会【WOT2015“互联网+”时代大数据技术峰会】将于11月28日-29日在深圳盛大揭幕,42位业内重量级嘉宾汇聚,重磅解析大数据技术的点睛应用。福利大放送,主办方将邀请更多讲师来到“WOT讲师专访间”,深度解析技术干货。

互联网,特别是移动互联网的到来,用户可以在任何时间、任何地方,任何环境下生产、传播和接收信息,这使得原本相对集中的行为和兴趣变得碎片化和离散。在这样的背景下,微博经历了六年的发展,其系统的架构是怎样演变的?微博中用户的模型、维度、建模又是怎样考虑的?今天由【WOT2015"互联网+"时代大数据技术峰会】特邀讲师、微博推荐开发技术专家冯扬带着我们从体系变化与用户建模角度切入探索微博推荐。 

冯扬,微博推荐开发技术专家。目前,负责新浪微博搭建微博推荐平台与建立针对推荐的用户模型两方面工作。前者是指在微博现有的技术基础和分层架构上,设计微博的标准化推荐架构,搭建推荐平台,解决推荐业务中物料和特征数据接入、推荐计算、模型训练、横向对比等方面的问题;后者是针对微博推荐业务中所需的基础数据,尤其是用户相关的基础数据挖掘,为推荐服务。

【职场经历】

2010年底从北京理工大学博士毕业,专业是信息安全与对抗。

2011年4月走上工作岗位,第一家公司就是新浪微博,从这个时候开始接社交媒体和推荐系统,在这段时间中建立了对微博的业务形态、数据特性、社交媒体的推荐特点和主要技术手段的认识;

2013年的5月离开新浪微博,加入腾讯TEG下的社区搜索部,这个部门是属于腾讯SOSO业务。在这期间主要从事问答社区的推荐系统构建;同年11月,腾讯注资搜狗,并将SOSO业务和技术人员输送给搜狗,随之进入搜狗公司,业务方向保持不变;

2014年9月,在老同事的邀请下,回到新浪微博,加入微博的商业平台及产品部至今。

51CTO:微博推荐发展的过程中遇到过那些体系方向的变化?在微博推荐系统的架构上又经历了怎样的演变?

冯扬:其实微博推荐的发展过程也是一个不断迭代和试错的过程,并且是随着微博自身的发展而演变的。

在初期,大概从2009年微博上线到2011年左右,微博主要集中在用户扩充和业务扩展,无论是从用户数量、UGC内容的产生、用户互动行为、内容传播等方面都处于一个高速的增长阶段。这个时期里面,推荐对于微博来说重要性并不高,推荐也主要是集中在基础数据挖掘和提供方面,这个时候微博推荐还谈不上体系,是作为一个支撑性的团队存在。这个阶段产生了很多的分析方法和基础数据,例如这个阶段已经开始的用户兴趣分析、分类体系构建、二度关系计算、亲密度计算、后来作为Lab_common内核基础的woo,还有解决各种动静态存储问题的db……这个时期可以称作微博推荐的工具型产品时期。

2011年以后到2012年,对于微博来说很特别,因为之前微博一直在社交网络和社交媒体的定位之间摇摆,但是2011年微信出现,并且在随后的9个月内飞速发展,对比微信和微博,最大的区别在于微信是一个对等的两两互相认证的关系网络,而微博则是一个非对等的无相互认证的关系网络,这个区别导致了微信中用户之间的信任度更强,而微博中信息的传播效率更高,很显然微博的媒体属性更强,定位为社交媒体更适合。而对于一个社交媒体而言,用户接收和传播信息更偏向于兴趣而不是信任,推荐的作用显现出来。此时微博推荐的场景也逐渐丰富,出现了许多推荐产品,例如:正文页推荐、话题推荐、感兴趣的人、电影推荐、音乐推荐、热门推荐……甚至在这个时期还尝试了对feed流的改造。推荐技术体系基本形成了“推荐挖掘 + 推荐计算”两个层面:推荐挖掘负责从微博平台中挖掘目标用户和优质物料,包括用户质量评价、传播力计算、亲密度计算、二度关系计算、标签传播、热门微博挖掘、精品微博挖掘……;推荐计算负责物料的推荐和投放,包括构建线上推荐系统、数据存储及访问方案、反馈和效果监控……这个时期可以称作微博推荐的产品群时期。特点是业务和数据多样,推荐系统和产品丰富,但是系统规模都不大,通用性不强。 

从2013年到现在,微博进入了一个相对稳定的时期,以前的爆发式增长放缓,忠实用户也沉淀下来,对微博的使用以及在微博平台上的行为有了相对固定的模式,并且微博从2013年开始提出了商业化的目标,这个时候对微博推荐效率和效果上的要求提高了。在此背景下,如何充分利用现有的流量和用户资源,让信息更高效地传播和让关系更多的缔结成为了微博推荐需要解决的问题。这个时候,我们之前构建的单点分散的推荐产品群就显得不那么合适了,有三个理由:(1)因为分散,有些优质的资源无法充分利用;(2)不同场景不同物料的效果无法比较;(3)系统通用性差,重复性开发任务过多。

首先,我们想到的是分层,先解决第三个问题,诞生了微博推荐系统的三层结构,即:负责数据存储和访问以及基础资源挖掘的数据层,负责在线推荐计算的计算层,负责对外提供接口的应用层。处于各层的研发人员只需要关心各自的任务。例如应用层采用Lua + Ngix架构,开发者只需要关系接口适配就ok了;计算层利用Lab_commom为开发框架,所有的功能都so化,逻辑在各自的模块中完成;数据层基于Redis和Lushan提供动、静态数据存储和访问,并且通过Rin和R9-interface分别解决流式数据的接入和与集群的对接。分层相当于是微博推荐系统的纵向抽象,解决了第三个问题,但是还需要解决前两个。那么我们在分层的基础上对推荐本身进行抽象,将推荐这件事情抽象成 “候选”“排序”“接口”三个部分,在推荐系统的架构设计上,考虑对这三个部分的标准化,令分散的推荐业务接入到标准化的推荐系统中,物料在不同场景下互相竞争,既可以互相比较,也充分利用资源。基于这种思路,我们在分层的基础上设计了新的微博推荐系统架构,由负责候选的Artemis、排序计算的Eros、负责统一推荐接口的Hestia构成。在层次上,Hestia处于应用层,Artemis和Eros处于计算层和数据层,充分利用分层结构的已有技术成果,同时提供标准化的推荐计算和输入输出。目前微博的推荐系统架构已经有了标准化平台化的概念,可以说现在处于平台化阶段。

51CTO:新浪微博中通过属性、兴趣、社交、行为等维度给用户建模,具体是如何做的

冯扬:首先我们来看看微博用户模型的维度划分。属性维度和兴趣维度属于用户画像范畴,区别在于前者刻画用户的静态属性特征,例如想性别、年龄、受教育程度、学校、工作单位……等身份和人口信息,后者用于刻画用户在信息筛选方面的倾向,通常指兴趣标签,这两个维度主要是针对用户的个体角度而言,体现的是用户个性特征;社交维度则是从关系和信息传播的角度来刻画用户,在社交媒体里面用户以及用户之间的社交关系构成了一张网络,信息在这张网络中高速流动,但是这种流动并不是无差别的,信息的起始点,所经历的关键节点以及这些节点构成的关系圈都是影响信息流动的重要因素,社交维度就是要量化这些因素以及其影响程度;行为维度则是通过发现影响用户属性、信息变化的行为因素,分析典型用户群体的行为模式,是一种对用户群体行为的刻画。可以说这么来划分维度,基本上涵盖了从“个体表达”到“关系描述”以及“群体刻画”。

用户属性指相对静态和稳定,用户属性信息的收集和建立主要依靠产品本身的引导、调查、第三方提供等。微博本身就有比较完整的用户注册引导、用户信息完善任务、认证用户审核、以及大量的合作对象等,在收集和清洗用户属性的过程中,需要注意的主要是标签的规范化以及不同来源信息的交叉验证。

用户兴趣则是更加动态和易变化的特征,受到人群、环境、热点事件、行业……等方面的影响,一旦这些因素发生变化,用户的兴趣容易产生迁移,并且,用户的行为(特指在互联网上的行为)多样且碎片化,不同行为反映出来的兴趣差异较大,并且用户具有某方面的兴趣只代表了他愿意接受这方面的信息,并不能代表他具有产生相关内容的能力。那么在兴趣维度,我们主要集中解决四个方面的问题:(1)用户兴趣标签收集:包括从用户自标签、达人或认证标签、公司、学校、微群标签、星座、微博关键词等各个与用户相关的地方收集用户兴趣标签,此外,还利用标签传播去收集用户标签;(2)兴趣标签的权重计算:考虑了不同标签来源的用户质量,标签的传递路径,转发关系,标签的本身是否长尾,以及标签与用户之间的共现关系等等,不同的因素会赋予不同的权重,最后融合为标签权重;(3)时效性:有两个方面的考虑,一个是兴趣随时间衰减,标签权重会叠加上时间衰减,另一个是考虑长短期兴趣,通过设定不同的时间窗口来提取长期兴趣和短期兴趣;(4)从用户兴趣到用户能力:主要采用类似于HITS的方法,将微博中的关注关系当作一种认证,那么被具有某个兴趣标签的用户认证得最多的用户,被认为在这个兴趣标签上具有最强能力。

关系维度上的模型比较多,微博中非对等的社交关系导致微博的关系网络实际上构成了一个有向图,我们遵循着“个体”“关联”“相似”“群体”的思路逐步深入地建立用户关系模型,全面刻画这个关系网络。在“个体”角度,通过PageRank的思想计算用户的传播力,衡量不同用户个体在信息传播过程中的不同重要性;在“关联”角度,利用用户行为和关系类型计算用户之间的亲密度,衡量具有直接关系的用户之间的关系远近程度,相当于计算了有向图上边的权重,并且利用二度关系去拓展用户关系,让本身不存在直接关系的用户间产生关联;在“相似”的角度,主要是基于协同的思想,构建用户关系矩阵,计算用户关注相似性和粉丝相似性,类似于协同过滤中的User-based和Item-based,在不引入用户属性的基础上,仅仅通过用户之间的关系认证来推测用户之间的相似性;在“群体”方面,主要是识别用户关系圈,基于关系网络内部自身的结构,采用图切分的方法,将具有某种紧密关联但不一定两两存在关系的用户划分到一起,形成关系圈。

在行为维度上,一个是针对典型个体行为进行时序分析,另一个是针对典型群体进行统计分析。针对典型个体,追踪该个体在不同成长阶段的行为,分析用户成长的主要影响因素和关键行为;针对群体则是根据用户当前所处的成长阶段将用户按成长程度划分成不同的群体,分析这些群体的行为特征,构成群体行为模式。

51CTO:上述的用户模型应用场景和方式有哪些?做精准推送的时候从那几个角度出发?

冯扬:用户模型主要解决推荐中的“候选”问题,即在什么场景下可以给哪个用户推荐什么物料,应用的方式和场景非常丰富。这里举几个典型的例子:

同公司、同学校、同地区、异性等用户推荐就利用了属性维度的用户模型;将与你具有相同兴趣,或者将具有你兴趣方面能力的用户推荐给你,将你可能感兴趣的微博推荐给你,这些是利用了兴趣维度的用户模型;将你关注的用户的关注推荐给你(关注的关注),是利用了关系维度上的二度关系模型;热门推荐本质上是利用传播力模型去计算微博的热度;将与你具有相似粉丝的用户发布的微博推荐给你,是利用了关系协同里面的粉丝相似性;推荐好友赞过的微博、你错过的微博、以及用户推荐中实时反馈等推荐等,则是由于通过用户行为挖掘,发现活跃用户具有赞同好友观点,阅读过往错过微博,以及下一行为为与上一步行为极其相似的行为模式,基于这些行为模式而设计的推荐场景。

可以看到用户模型在推荐中非常重要,在运用这些维度的模型时,很关键一点是解决不同模型的竞争和融合。先说竞争,在一个推荐场景下,基于不同的用户模型是可以产生不同的候选物料,那么究竟采用哪些候选物料,这就是竞争;此外,对于同一个候选物料,基于各种模型得到的评价可能不一样,在某个模型下评价分值较高,而在另一个模型下评价分值较低,如何对这节评价值进行综合计算,这就是融合。那么无论是竞争还是融合,都可以将其视作一种排序计算,或者作为排序模型的特征。在做精准推荐的时候,出发点还是效果,用转换率评价,就是通常说的CTR(点击率)或RPM(千次达成)。不同的竞争策略和融合方法通过线下的日志回放,线上的AB-Test进行比较,选取效果最优的。

51CTO:新浪微博推荐技术的目标是什么?目前达到了怎样的效果?

冯扬:微博推荐技术的短期目标分为系统和挖掘两个层面,系统方面的目标是平台化,我们正处于这个时期。所谓平台化是指设计泛化的推荐架构体系,抽象推荐中业务无关的步骤,采用通用的模块进行实现,而对于业务相关的步骤,提供标准的数据和业务接入规范、工具和流程,减少业务开发人员的工作量,为算法研究人员提供标准训练集和线上对比环境,为产品人员提供快速直观的效果追踪和策略调整条件;挖掘层面的目标是构建完整的用户模型,搭建自动规范的挖掘计算流程。从推荐效果出发,提升微博的用户价值。

采访最后,冯老师表示,微博推荐技术当前处于平台化时期,已经完成的Artemis、Eros、Hestia都是平台化目标的落地,并正逐渐将已有的微博推荐业务接入到由这三个系统构成的微博推荐平台,用户模型的构建大部分也进入了自动流程搭建的阶段。后续的工作主要在于为适应更多的推荐业务对平台进行完善,用户模型的持续更新和基于模型的二次挖掘,模型的应用以及与平台的结合,技术输出等方面。

51CTO主办的高端技术峰会【WOT2015“互联网+”时代大数据技术峰会】将于11月28日-29日在深圳盛大揭幕,42位业内重量级嘉宾汇聚,重磅解析大数据技术的点睛应用。福利大放送,主办方将邀请更多讲师来到“WOT讲师专访间”,深度解析技术干货。

WOT2015更多访谈

 

责任编辑:王雪燕 来源: 51CTO
相关推荐

2015-12-29 10:32:04

新浪微博广告推荐

2015-07-07 08:58:19

WOT2015新浪微博王传鹏

2016-12-29 10:32:06

2015-09-24 18:08:50

微博架构架构演进架构

2015-03-11 15:08:25

2015WOT峰会应用性能监控与管理

2015-11-13 09:34:04

2013-10-10 09:05:26

新浪微博Redishadoop

2015-03-05 09:42:56

2018-04-02 11:38:46

秦五一

2018-06-15 09:59:02

WOT史扬边缘计算

2016-08-11 10:09:01

Wrtnode罗未WOT大会

2015-03-06 09:52:13

2015WOT峰会开源运维工具研发与实践

2018-05-07 17:54:08

IoT边缘计算

2015-11-24 10:22:08

wot360

2012-10-26 11:12:22

WOT云计算架构师

2015-10-14 18:06:47

大数据测试团队运维

2023-08-31 07:30:09

AIGC代码监测

2017-10-16 10:33:13

数据机器学习房产

2015-06-02 16:16:17

mysql优化mysql读写分离mysql主从复制

2015-03-06 11:18:44

点赞
收藏

51CTO技术栈公众号