用户id生成规则_阿里/网易/美团/58用户画像中的ID体系建设
前言
在《标签构建过程中,如何快速盘点业务及数据需求?》梳理完标签画像体系的业务需求后,索隆开始了对画像体系的整体设计,其中首要遇到的就是用户ID体系的打通相关的问题。
公司各业务线ID繁多,数据割裂,如何才能尽可能关联更多的数据,以准确的描绘出一个用户的画像呢?
接下来我们来看看索隆通过对界内科技巨头:阿里、网易、美团、58的调研分析,来一步步建立自己公司的ID-Mapping体系的过程。
1、阿里OneID
阿里巴巴作为一家包含多条业务线的公司,如电商、金融、广告、文化、教育、娱乐、设备和社交等领域,数据区域包含国内、国外;数据场景包含线上的人货场钱、线下的人货场钱位置等数据,以及物流、用餐、咨询、影视、出行、阅读、音乐和健康等相关数据。
ID类型包含phone、PC cookie、IMEI与IDFA、淘宝账户、支付宝账户、邮箱等。
而对于每个BU来说,他们知道的只是这个客户的片面属性,在开展营销活动时,只是针对一个手机号或一个邮箱做营销,但背后不能识别出来一个自然人、一个公司。
为打破数据孤岛,创造更大的数据价值,阿里使用OneData作为核心方法论。
OneData体系包含:
1.OneModel:数据资产构建与管理
2.OneID:实体打通和画像
3.OneService:逻辑化服务
OneID基于超强ID识别技术链接数据,高效生产标签;业务驱动技术价值化,消除数据孤岛,提升数据质量,提升数据价值。
而ID的打通,必须有ID-ID之间的两两映射打通关系,通过ID映射关系表,才能将多种ID之间的关联打通,完全孤立的两种ID是无法打通的。
打通整个ID体系,看似简单,实则计算复杂,计算量非常大。假如某种对象有数亿个个体,每个个体又有数十种不同的ID标识,任意两种ID之间都有可能打通关系,想要完成这类对象的所有个体ID打通需要数亿次计算,一般的机器甚至大数据集群都无法完成。
大数据领域中的ID-Mapping技术就是用机器学习算法类来取代野蛮计算,解决对象数据打通的问题。基于输入的ID关系对,利用机器学习算法做稳定性和收敛性计算,输出关系稳定的ID关系对,并生成一个UID作为唯一识别该对象的标识码。
2、网易ID-Mapping
网易产品线有网易云音乐、网易邮箱、网易新闻、网易严选等,不同应用上有不同的ID,如yanxuanid、oaid、musicid、phone、email、idfa、imei等。
要想标识唯一ID,网易采用的思路及方案为:
结合各种账户、各种设备型号之间的关系对,以及设备使用规律等用户数据,采用规则规律、数据挖掘算法(连通图划分+社区发现)的方法,判别账户是否属于同一个人。
ID-Mapping过程中,常遇到的问题及对应方案如下:
问题一:用户有多个设备信息。
解决方案:定义相关的阈值进行关联。社区发现当前应用于营销场景,暂未用于风控或用户运营场景,因为这种方式会把一些异常的账号关联在一起,且会存在仅登录使用过一次的设备信息。
问题二:设备过期,一般是2年半左右时间。
解决方案:设定衰减系数,对单用户多设备加大衰减力度。
备注:通常一人多设备对应的场景有,借用朋友设备、设备脏数据、刷号等。
3、58 ID-Mapping
58业务场景丰富,其产品线包含58同城、赶集、安居客、中华英才网、转转、58到家等。
在这种多用户、多业务线、多子公司的情况下,用户数据种类繁杂,构建画像的数据来自于日志、简历库、帖子库、用户信息库、商家库、认证信息库等数据源,其中仅日志就涉及到58、赶集、安居客等各个子产品的PC/M/APP日志。
如何将众多数据源串联起来是构建用户画像面临的第一个问题,如下是58构建的ID-Mapping模型图。
从图中可以看出,不同业务线所拥有的ID标识不一:
58同城:wuser、wbdid、wimei
58赶集:guser、gbdid、gapud、gimei
安居客:kimei
其中可以通过telep、bidua、appua、imei、idfa关联起来,由此建立不同ID之间的关联映射关系,就是ID-Mapping的过程。
4、美团ID-Mapping
美团与大众点评进行了合并,那同一个用户在两个APP上有不同的身份标识,美团要怎样进行唯一标识呢?
我们来看看美团和大众点评的账号体系。美团采用手机号、微信、微博、美团账号的登录方式;大众点评采用的手机号、微信、QQ、微博的登录方式;其交集为手机号、微信、微博。最终,对于注册用户账户体系,美团采用了手机号作为用户的唯一标识。
5、总结
从上述案例可看出,ID-Mapping有三种常见方法:
1.基于账号体系
企业中最常用的是基于账号体系来做ID的打通,用户注册时,给到用户一个uid,以uid来强关联所有注册用户的信息。
2.基于设备
那对于未注册用户可以通过终端设备ID精准识别,包含Android/iOS两类主流终端的识别。通过SDK将各种ID采集上报,后台利用的ID关系库和校准算法,实时生成/找回终端唯一ID并下发。
3.基于账号&设备
结合各种账户、各种设备型号之间的关系对,以及设备使用规律等用户数据,采用规则规律、数据挖掘算法的方法,输出关系稳定的ID关系对,并生成一个UID作为唯一识别该对象的标识码。
6、实践
1.梳理业务及数据现状
由于公司包含租住、生活服务等多条业务线,不同业务的用户标识不一;数据来源各不相同,数据散落在各业务表中,ID标识包含phone、邮箱、神策ID、cuid、IMEI、idfa等。
2.明确建设目标
ID-Mapping体系的建立,旨在打破数据孤岛,将更多用户的数据关联起来,形成全域用户画像,帮助营销人员进行精细化营销。
3.制定项目计划
第一阶段:基于用户账号体系,用phone关联注册用户的ID,维护一个ID映射库,统计注册用户线上线下行为数据。
第二阶段:基于设备,用device ID关联未注册用户的ID,统计未注册用户的行为数据。
第三阶段:基于账号&设备,采用数据挖掘算法做ID映射。
4.按计划进行
接下来要做的就是按计划开展项目。这个过程中,注意要点在于,基于公司的数据现状出发,一步步实施;梳理清楚底层数据表中的ID标识;理清楚各ID之间的关系图,便于做映射。
说在最后:
整个ID体系建设完成后,接下来会开始标签设计的篇章~
用户id生成规则_阿里/网易/美团/58用户画像中的ID体系建设相关推荐
- 阿里云centos服务器rdp远程桌面规则_阿里云服务器使用教程 新手用户的好帮手...
云服务器越来越成为企业及个人用户开展网络业务的首选了,阿里云服务器ECS因其起步较早,用户数量已经是国内第一,全球五强的大云服务商了.虽然阿里云对于用户来说很熟悉了,但阿里云服务器的使用方法,相信还有 ...
- java 唯一id生成算法_唯一ID生成算法剖析
在业务开发中,大量场景需要唯一ID来进行标识:用户需要唯一身份标识:商品需要唯一标识:消息需要唯一标识:事件需要唯一标识-等等,都需要全局唯一ID,尤其是分布式场景下. 唯一ID有哪些特性或者说要求呢 ...
- java vo命名规则_阿里java开发手册中命名规约解读之DO/BO/DTO/VO/AO
前言 在阅读<阿里巴巴Java开发手册>时,看到命名规则中有这样一条 虽然知道这些是根据Java对象的角色所分配名称的后缀,但是没有弄清楚分别是什么意思,日常开发中也没有使用到. 网上查找 ...
- java 唯一id生成算法_分布式全局唯一ID生成方案之snowflake算法
已有的方案: 可大致分为: 完全依赖关系/非关系型数据库递增的方案 完全不依赖数据源作为生成因子的UUID 半依赖数据源作为生成因子的snowflake 为什么推荐snowflake? 这个问题,可以 ...
- Hibernate之ID生成规则
id生成: hibernate内不可使用的id生成器可见代码 使用@GeneratedValue 1 正对不同的数据库可以同时使用 @Id @GeneratedValue(strategy = Gen ...
- java流水号生成规则_流水号生成规则
流水号生成规则,时间戳+手机号加密16位: 生成时间戳:Time.java import java.text.SimpleDateFormat; import java.util.Date; /** ...
- 万网 mysql 用户 存在那个表里_会计核算软件备案报告表中的数据库名称和数据库版本如何填写...
会计核算软件备案报告表中的数据库名称和数据库版本如何填写以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 会计核算软件备案 ...
- 记录用户转成超级用户的文件名字_一分钟了解Linux用户
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...
- 服务器唯一id生成规则
在使用hashCode的时候,发现会出现相同id,虽然几率很小.虽然发现并不是hashCode的原因,而是其他逻辑的问题. 但是还是试着自己写了一个id生成器,有些id是int的,比如说任务id:有些 ...
最新文章
- 【博客话题】我与Linux的不解情缘
- 一个简单的jQuery例子,动态添加表格和删除
- 201771010126 王燕《面向对象程序设计(Java)》第十六周学习总结
- Winform下的键盘事件
- ora-12154问题处理
- select count mysql_mysql select count 与 select count 两个执行效率怎样
- node.js使用cluster实现多进程
- 计算机数据库相关法规,法律法规数据库-详细页
- FineReport帆软报表的安装
- 十三、PS 基本操作
- 中国科学院大学2015年数学分析高等代数考研试题
- 物联网碎片化的一些思考
- bigbluebutton视频直播服务器调用接口
- Revel框架的搭建与部署教程
- A股动量策略有效性验证
- cf 1450 F	 The Struggling Contestant
- TensorFlow RunTime(TFRT) 小试
- 软考中级哪个科目比较容易考?
- 如何提取matlab中某一行一列的数据
- 【迁移学习】特征空间相同、概率分布不同的概念
热门文章
- “大数据杀熟”成网络热词,科技公司信任危机到来?
- kubernetes1.8.4安装指南 -- 5. 证书生成
- HOL中的四种排序,Order By、Sort By、Distribute By、Cluster By
- 利剑无意之JAVA面试题(三)
- 无法打开虚拟机,获取该虚拟机的所有权失败。 主机上的某个应用程序正在使用该虚拟机。
- 【IDEA】推荐一些好用的IDEA插件
- Java 开发环境配置 win10
- netty系列之:使用UDP协议
- kafka_rebalance过长问题排查
- Codeup-问题 C: 货币系统