写点什么

40 亿移动设备的用户画像和标签架构实践

  • 2016-11-13
  • 本文字数:5113 字

    阅读完需:约 17 分钟

大家好,我是来自 TalkingData 的王鹏,很高兴在这里和大家一起探讨大数据的应用。

说起大数据的应用可能很多朋友们脑子里边第一映像就是画像,我想从以下几个方面跟大家聊聊画像相关的事情:1、什么是画像;2、画像的用处;3、如何进行用户画像;4 画像应用中的难点。

什么是画像呢?可能大家看到过一些外文资料或者演讲中出现过 profile 一词,其实和画像是一个概念,都是从不同的维度来表达一个人,这些维度可以是事实的,可以是抽象的;可以是自然属性,比如性别、年龄;可以是社会属性,比如职业、社交特征;可以是财富状况,比如是否高收入人群,是否有固定资产;可以是家庭情况,比如是否已经结婚,是否有孩子;可以是购物习惯,比如喜欢网购还是喜欢逛商场;可以是位置特征,比如在哪个城市生活;可以是其他行为习惯。总之,所有大家能想到的描述一个人的特征的都可以算作是画像的范畴,画像其实就是想方设法用数据来描述人的特征

画像有什么用处呢?大家之所以要进行用户画像,就是为了解决业务问题,或者为了拓展一个新用户,或者为了获得一个新订单。想要获得新用户,首先必须知道自己产品定位的用户画像(也就是用户长什么样子,有什么行为特征),而很多产品设计的时候可能由于定位不清晰,对用户的了解不够,导致最后产品上线后效果与预期大相径庭。

这里举一个例子,A 银行的电子支付团队计划与 Uber 公司合作,在春节后以短信推送优惠劵的方式进行营销,选择了多类人群进行投放,其中有“有打车需求且有车”和“有打车需求且无车”两类人群,本以为“有需求且无车”人群的广告触达的营销效果会更好,结果却完全相反,“有需求且有车”人群的广告触达的比例反而最高。这可能映射出无论是开车还是打车,习惯了车反而离不开车。用数据来画像正是帮助企业了解用户和定位产品的最直接的方法。

综上我们可以看到要向更好的解决业务问题,首先必须明确业务目标,而用户画像是帮助企业明确目标客群的重要手段之一。当企业了解了自己的用户都长什么样子以后,接下来的任务就是如何将有类似画像特征人群的潜在用户变成自己的用户,也就是在营销上获新客的过程。所以,从大的框架来看,用户画像承载了两个业务目标:一是如何准确的了解现有用户;二是如何在茫茫人海中通过广告营销获取类似画像特征的新用户。

如果仔细琢磨这两个目标,其实在根源上逻辑是有些相悖的。了解现有用户的画像,需要的是少量、画像特征覆盖度全面的无倾斜的精准样本,这样能更精确的定位产品的用户。而通过画像结果做广告营销获取新用户,在一定程度上需要的是大量的相似样本。量的大小和精准度的不同决定了后续画像模型在应用设计中的不同。

提到用户画像就不得不提到一个词“标签”。标签是表达人的基本属性、行为倾向、兴趣偏好等某一个维度的数据标识,它是一种相关性很强的关键字,可以简洁的描述和分类人群。标签的定义来源于业务目标,基于不同的行业,不同的应用场景,同样的标签名称可能代表了不同的含义,也决定了不同的模型设计和数据处理方式。

举个例子,如果一款卖男装的 app 想在近期做营销,只筛选“男性”和“网络购物”这两个标签进行投放,可能效果并不一定理想。因为“性别(男 / 女)”可能有多种维度,真实性别男女是一种维度,网络购物特征男女是一种维度,性取向男女可能又是另外一种维度。因为网络的发展,你甚至都不知道网络的另一端是不是一个人,更何况是男女呢。想要正确的设计标签模型和计算处理数据,必须了解画像标签应用的场景和目标。

接下来如何进行用户画像呢?这完全取决于业务目标(需要什么样的画像标签)和有什么样的原材料(有什么类型的数据源),基于这两样才能确定使用什么样的模型设计和数据计算处理方式。就像做菜一样,要做一顿美味的晚餐,必须知道客户是想吃中餐还是西餐,配菜都有哪些鱼蛋肉和蔬菜,然后才能确定牛肉是红烧还是煎炸。

仍然以性别(男 / 女)为例,尝试演绎一下刚才的三个场景。

如果业务是征信场景,想知道的是这个人的真实性别(男 / 女),在没有全量真实数据的前提下可以采取如下的方法来处理,可以选取少量真实样本,使用这些真实样本追加一些特征因子,使用 lookalike 算法进行样本扩展,将该少数样本特征扩展到大量或者全量数据。当然,这些数据的准确度取决于样本的均衡程度和算法的质量。

如果业务是网络购物的电商场景,我们先不尝试判断真实购买男装的是否是男性(很多已婚人士是妻子负责网购丈夫的装备),仅仅考虑将来该网络账户实体是否会购买男装的角度考虑,需要的是“男装购买倾向”的标签,可以直接基于所有账户实体以往购买记录来计算处理该标签。

如果是业务场景是 blued(一款同志交友 app)定义的男性又是另外一个特殊群体,基于客户想拓展新客,这里定义的特殊男性群体或许可以定义为“男性同志”标签,而实现该标签可以考虑通过安装了类似同志交友的 app 人群或者以同志人群经常出现的聚集地进行计算处理。

所以说针对不同的行业,不同的应用场景,需要使用不同的数据源进行不同的标签设计和计算。

说起标签,可能每个行业有每个行业的标签体系,各个公司基于自己的数据源和特征不同也设立了不同的标签体系。我认为这些标签都可以归纳为以下几个方面。

  1. 人口属性:包含性别、年龄等人的基本特征
  2. 资产情况:车辆、房产、收入等资产特征
  3. 兴趣特征:阅读资讯、运动健康等兴趣偏好
  4. 消费特征:网上 / 线下消费类别品牌等特征
  5. 位置特征:常驻城市、职住距离等
  6. 设备属性:所使用终端的特性等

要支持以上这些标签的设计和计算,需要多种维度的数据源,从产生维度来看:可以包含 PC 端的数据、移动终端的数据、线下的数据;从数据拥有者来看:可以包含一方客户自己的数据、外部官方渠道的数据、市场采集的数据;从数据类型来看:有社交数据、交易数据、位置数据、运营商数据等。

使用这些不同源的数据,我们如何计算处理业务需要的标签呢?一般都会经过如下几步:

  1. 数据抽取:从不同数据源抽取要计算标签的数据原材料。
  2. 数据标准化:针对抽取的数据将其清洗为标准格式,将其中的错误数据和无效数据剔除。
  3. 数据打通:不同来源的数据有不同的主键和属性,如何将这些数据关联起来是数据打通的关键,比如有设备的 wifi 信息,又有设备的 poi 信息,就可以通过 wifi 将设备终端和 POI 建立起关联。
  4. 模型设计:针对不同的数据内容和业务目标设计不同的规则和算法进行模型的构建,并使用小样本数据来验证模型的可靠性。
  5. 标签计算:在模型可靠性验证的基础上,部署生产运营环境来进行标签计算。

一般标签计算无外乎以上过程,以“大学生”标签为例,假如我们需要针对移动终端人群设计一个大学生标签,而我们并没有每个大学生的入学信息和证件信息,我们该如何操作呢。首先进行业务分析,发现大学生的行为特征,一般大学生都会在大学校园内活动比较多,我们可以将全国 2000 多所高校的位置找到,根据移动终端设备的位置信息来筛选“大学生”人群;另外大学生可能还会使用一些特殊的 app 比如考研类、四六级、超级课程表等这些特殊 app,我们可以通过 app 进行“大学生”人群的筛选。

如果不用算法,就只用规则,我们想找精确的“大学生”人群,可以将位置和 app 行为两个特征叠加使用;如果我们想要扩展样本进行大规模广告投放,可以考虑含有位置、app 行为任意一个特征的人群,同时还可以通过算法进行 lookalike 的扩展样本学习。

注:以上表达的都是数据和标签处理的逻辑过程,实际业务中的数据处理要视具体情况而定。

最后说一说用户画像和标签设计 / 计算中的一些难点

1. 如何定义画像主体?也可以理解为如何唯一标识一个实体?

可以理解真实世界每个人都是一个实体,但是虚拟世界他可能就变身为多个,比如人可能有一个身份 ID,但是可能有多个手机,就对应了多个手机号,多个设备终端 ID,那就对应多个移动终端的使用行为;这多个终端 ID 分别代表了这个实体的不同特征,只有将这个实体拼接起来才能代表完整的画像。一个人可能有多个 qq 号,如果从 qq 行为的角度分析,同样的逻辑。这是终端实体多对一的体现。

反过来也会有一对多的情况,比如就一个家庭用的 ipad,孩子用 ipad 来玩游戏,父亲用 ipad 来查收邮件,母亲用 ipad 来购物,这一个 ipad 代表了多个实体的行为特征,并且无法分拆。所以要想唯一完整的定义一个实体其实很难。所以在业务领域中追求标签的完整性有时候是一个很难达到的目标,反过来应该更多的关注标签的代表性,无论是一对多还是多对一,只要能通过标签筛选出来想寻找的受众群体就可以,即便是家庭公用的 ipad,有游戏标签也表明了家庭中有成员有该方面的兴趣偏好。

2. 如何打通不同源的数据?

pc 端的行为信息、移动终端的行为信息和 TV 端的行为信息,如何将这些信息关联起来?核心问题在于如何将这些终端的唯一标识 ID 打通。TalkingData 的数据体系已经建立了以 TDID 为核心 ID 的关联图谱,TalkingData 的 IDmapping 能力已经实现了跨设备 ID 的关联映射。所以要解决不同源 ID 的打通只要接入一家类似 TalkingData 的数据即可。

感谢大家能如此长时间的听我唠叨,希望这些信息对您的工作能有所帮助。

大家都刚刚跨入大数据的门槛,大数据在各个领域的应用任重而道远,希望同行多多切磋学习,一起前行。

答疑部分

Q1:画像的时候常用的算法有哪些,比如什么类型的标签适合什么类型的算法?怎么评估画像画的好坏?

王鹏:我们除了用常规的算法以外,还有自研的开源算法系统 fregata,基于 spark,支持 10 亿样本 1 亿维度的超大规模运算,无需调参,超高速度。

(点击放大图像)

评估画像的好坏:1、小样本的真实验证;2,在实际的 case 中迭代验证

Q2:画像的标签体系一般怎么设计,还有你们的标签体系如何存储?更便于不同画像标签之间的追溯?

王鹏:画像的体系一般参考你们公司的业务体系来设计。标签的存储也取决于你的服务应用场景:我们的存储有多种:hdfs、vertica、hbase。标签的追溯属于另外一个问题,取决于你的标签的生命周期,有的标签就是最新的,有的标签就是每周每月加工的,有的标签是有时间衰减迭代的。

Q3:标签的确定一般是怎样的?是人工打标签,想业务场景,还是通过自动的算法跑出来?TalkingData 目前又是如何实现的呢?

王鹏:标签的确定,一般是先人工筛选小样本规则,进行验证,规则合理后,在通过算法扩展。

人工和自动是结合的,取决于该标签的具体场景、字典数据的使用、主数据的量等各种因素。

TD 的标签也是结合这二者一起完成的。

Q4:计算标签的具体流程是怎样的 效果如何评估 谢谢 ?

王鹏:计算标签的具体流程我在刚才讲的过程中已经说过了,这里可以再贴一下:

  1. 数据抽取:从不同数据源抽取要计算标签的数据原材料。
  2. 数据标准化:针对抽取的数据将其清洗为标准格式,将其中的错误数据和无效数据剔除。
  3. 数据打通:不同来源的数据有不同的主键和属性,如何将这些数据关联起来是数据打通的关键,比如有设备的 wifi 信息,又有设备的 poi 信息,就可以通过 wifi 将设备终端和 POI 建立起关联。
  4. 模型设计:针对不同的数据内容和业务目标设计不同的规则和算法进行模型的构建,并使用小样本数据来验证模型的可靠性。
  5. 标签计算:在模型可靠性验证的基础上,部署生产运营环境来进行标签计算

效果评估除了刚才说的真实 case 验证以外,还可以考虑外部标签的交叉验证,自有标签的交叉验证,比如:有“已婚”标签的,不可能是“18 岁以下”人群;“已婚”标签的“大学生”人群也应该极少;“大学生”标签的人群“有车”标签的也应该很少。

Q5:在做用户画像时如何解决数据准确性不足的问题,毕竟非 BAT 公司太多,很多数据都不完善,或者说没有准确数据。

王鹏:说到这个问题,谈谈我对大数据的看法:我理解大数据本身不存在所谓的正确性,大数据是用来验证人的先验知识 / 经验的一种工具,这个里边应该考虑的不止是准确性的问题,而是如何能更好的提高你认为的准确率的问题,大数据由于体量大,需要的是数量、时间等多维的迭代,维度的扩展。

讲师介绍

王鹏,TalkingData 数据产品总监 & 数据负责人,负责公司数据架构设计及质量管理,自有数据及第三方数据的收集、处理、加工全过程管理,数据标签和数据市场等产品的管理工作。曾任四维图新数据中心品保部经理、阿里 - 高德地图数据产品事业部数据产品总监等职位。在数据领域有深厚的积淀,对数据应用和数据管理有深刻的见解。

延伸阅读

TalkingData:对移动用户人口属性进行预测,吸引近两千支队伍参加的Kaggle 竞赛作品解析

TalkingData:不空谈 AI 概念,看看大数据孕育智能奇迹如何突破技术上的两大挑战


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-11-13 16:5216746

评论

发布
暂无评论
发现更多内容

阿里云大数据架构师推荐学习的Flink入门与实战

做梦都在改BUG

大数据 flink

Rainbond 结合 Jpom 实现云原生 & 本地一体化项目管理

北京好雨科技有限公司

Kubernetes 云原生 rainbond 企业号 4 月 PK 榜

终于学完阿里架构师推荐413页微服务分布式架构基础与实战笔记

做梦都在改BUG

Java 架构 分布式 微服务

105道Java面试题,认真思考对你面试很有价值

Java你猿哥

Java spring 面试题 java面试 Java面经

开源即时通讯IM框架MobileIMSDK的微信小程序端技术概览

JackJiang

网络编程 IM 即时通信

GreptimeDB v0.2 正式发布 | 50%+ PromQL 兼容、写入性能优化、Dashboard with Playground

Greptime 格睿科技

云原生 时序数据库 PromQL 国产时序数据库

MySQL中,当update修改数据与原数据相同时会再次执行吗?

Java你猿哥

Java MySQL SSM框架 update

阿里云何川:计算巢产品规划与生态策略解读

云布道师

计算巢

迎政策东风,华为云为企业“等保”建设打开想象空间

神奇视野

华为云数据灾备方案,为数据安全铸造铜墙铁壁

神奇视野

华为云数据灾备,助力企业业务极速恢复

YG科技

全栈开发实战|​名片管理系统的设计与实现(SSM + JSP)

TiAmo

管理系统 数据库开发 全栈开发 SQL Server 三周年连更

华为云安全建设安全云生态 保全企业运营安全

神奇视野

MYSQL 主从复制如何保证数据一致性

做梦都在改BUG

Java MySQL 数据库 主从复制

同时斩获7大offer的终极原因,全靠这套Java笔记

程序知音

Java 后端 JVM java面试 Java面试八股文

抛弃丑陋的try-catch,优雅处理异常

Java你猿哥

Java SSM框架 异常处理 try-catch

GrowingIO—UEI模型:万物皆可“事件化”

科技热闻

史上最全499道Java面试题:JVM+分布式+算法+锁+MQ+微服务+数据库

Java你猿哥

Java 架构 算法 JVM 多线程

云原生2.0网关API标准发展趋势

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

MySQL 主键自增也有坑?

江南一点雨

MySQL

综合清理优化工具:MacCleaner PRO激活版

真大的脸盆

Mac Mac 软件 清理工具 系统清理 优化软件

防患于未然,华为云数据灾备解决方案保护企业数据安全

YG科技

手机穿戴设备能力共享,提升丰富交互体验

HarmonyOS SDK

HMS Core

实例分享| anyRTC 部署南京某区城市运行“一网统管”综合调度系统

anyRTC开发者

音视频 指挥调度 融合通信 快对讲 综合调度

selenium源码通读·9 |webdriver/common/desired_capabilities.py-DesiredCapabilities类分析

Python 测试 自动化测试 源码剖析 selenium

华为云数据灾备方案,助力政企数据无忧

神奇视野

Redis布隆过滤器的原理和应用场景,解决缓存穿透

做梦都在改BUG

Java redis 缓存 布隆过滤器

AI 圈新晋顶流:AutoGPT,Star量近8万,远超PyTorch

Openlab_cosmoplat

人工智能 开源社区 autogpt

Mybatis 通过接口实现 sql 执行原理解析

做梦都在改BUG

Java mybatis SQL执行

抵御数据风险、保障业务安全,就看华为云数据灾备

YG科技

React Native 9个好用的开发工具盘点

Onegun

React Native 移动开发 跨端框架

40亿移动设备的用户画像和标签架构实践_架构_王鹏_InfoQ精选文章