让机器读懂用户——大数据中的用户画像

让机器读懂用户——大数据中的用户画像

摘要: 用户画像(persona)的概念最早由交互设计之父Alan Cooper提出:“Personas are a concrete representation of target users.” 是指真实用户的虚拟代表,是建立在一系列属性数据之上的目标用户模型。随着互联网的发展,现在我们说的用户画像又包含了新的内涵——通常用户画像是根据用户人口学特征、网络浏览内容、网络...

作者:杨杰 网易邮件事业部大数据工程师

用户画像的含义

用户画像(persona)的概念最早由交互设计之父Alan Cooper提出:“Personas are a concrete representation of target users.” 是指真实用户的虚拟代表,是建立在一系列属性数据之上的目标用户模型。随着互联网的发展,现在我们说的用户画像又包含了新的内涵——通常用户画像是根据用户人口学特征、网络浏览内容、网络社交活动和消费行为等信息而抽象出的一个标签化的用户模型。构建用户画像的核心工作,主要是利用存储在服务器上的海量日志和数据库里的大量数据进行分析和挖掘,给用户贴“标签”,而“标签”是能表示用户某一维度特征的标识。具体的标签形式可以参考下图某网站给其中一个用户打的标签。

 

用户画像的作用

提取用户画像,需要处理海量的日志,花费大量时间和人力。尽管是如此高成本的事情,大部分公司还是希望能给自己的用户做一份足够精准的用户画像。

那么用户画像有什么作用,能帮助我们达到哪些目标呢?

大体上可以总结为以下几个方面:

1. 精准营销:精准直邮、短信、App消息推送、个性化广告等。

2. 用户研究:指导产品优化,甚至做到产品功能的私人定制等。

3. 个性服务:个性化推荐、个性化搜索等。

4. 业务决策:排名统计、地域分析、行业趋势、竞品分析等。

用户画像的内容

用户画像包含的内容并不完全固定,根据行业和产品的不同所关注的特征也有不同。对于大部分互联网公司,用户画像都会包含人口属性和行为特征。人口属性主要指用户的年龄、性别、所在的省份和城市、教育程度、婚姻情况、生育情况、工作所在的行业和职业等。行为特征主要包含活跃度、忠诚度等指标。

除了以上较通用的特征,不同类型的网站提取的用户画像各有侧重点。

以内容为主的媒体或阅读类网站,还有搜索引擎或通用导航类网站,往往会提取用户对浏览内容的兴趣特征,比如体育类、娱乐类、美食类、理财类、旅游类、房产类、汽车类等等。

社交网站的用户画像,也会提取用户的社交网络,从中可以发现关系紧密的用户群和在社群中起到意见领袖作用的明星节点。

电商购物网站的用户画像,一般会提取用户的网购兴趣和消费能力等指标。网购兴趣主要指用户在网购时的类目偏好,比如服饰类、箱包类、居家类、母婴类、洗护类、饮食类等。

消费能力指用户的购买力,如果做得足够细致,可以把用户的实际消费水平和在每个类目的心理消费水平区分开,分别建立特征纬度。

另外还可以加上用户的环境属性,比如当前时间、访问地点LBS特征、当地天气、节假日情况等。

当然,对于特定的网站或App,肯定又有特殊关注的用户纬度,就需要把这些维度做到更加细化,从而能给用户提供更精准的个性化服务和内容。

 

用户画像的生产

用户特征的提取即用户画像的生产过程,大致可以分为以下几步:

1. 用户建模,指确定提取的用户特征维度,和需要使用到的数据源。

2. 数据收集,通过数据收集工具,如Flume或自己写的脚本程序,把需要使用的数据统一存放到Hadoop集群。

3. 数据清理,数据清理的过程通常位于Hadoop集群,也有可能与数据收集同时进行,这一步的主要工作,是把收集到各种来源、杂乱无章的数据进行字段提取,得到关注的目标特征。

4. 模型训练,有些特征可能无法直接从数据清理得到,比如用户感兴趣的内容或用户的消费水平,那么可以通过收集到的已知特征进行学习和预测。

5. 属性预测,利用训练得到的模型和用户的已知特征,预测用户的未知特征。

6. 数据合并,把用户通过各种数据源提取的特征进行合并,并给出一定的可信度。

7. 数据分发,对于合并后的结果数据,分发到精准营销、个性化推荐、CRM等各个平台,提供数据支持。

 

下面以用户性别为例,具体介绍特征提取的过程:

1.提取用户自己填写的资料,比如注册时或者活动中填写的性别资料,这些数据准确率一般很高。

2. 提取用户的称谓,如文本中有提到的对方称呼,例如:xxx先生/女士,这个数据也比较准。

3. 根据用户姓名预测用户性别,这是一个二分类问题,可以提取用户的名字部分(百家姓与性别没有相关性),然后用朴素贝叶斯分类器训练一个分类器。过程中遇到了生僻字问题,比如“甄嬛”的“嬛”,由于在名字中出现的少,因此分类器无法进行正确分类。考虑到汉字都是由偏旁部首组成,且偏旁部首也常常具有特殊含义(很多与性别具有相关性,比如草字头倾向女性,金字旁倾向男性),我们利用五笔输入法分解单字,再把名字本身和五笔打法的字母一起放到LR分类器进行训练。比如,“嬛”字的打法:『 女V+罒L+一G+衣E = VLGE 』,这里的女字旁就很有女性倾向。

4. 另外还有一些特征可以利用,比如用户访问过的网站,经常访问一些美妆或女性服饰类网站,是女性的可能性就高;访问体育军事类网站,是男性的可能性就高。还有用户上网的时间段,经常深夜上网的用户男性的可能性就高。把这些特征加入到LR分类器进行训练,也能提高一定的数据覆盖率。

数据管理系统

用户画像涉及到大量的数据处理和特征提取工作,往往需要用到多数据来源,且多人并行处理数据和生成特征。因此,需要一个数据管理系统来对数据统一进行合并存储和分发。我们的系统以约定的目录结构来组织数据,基本目录层级为:/user_tag/属性/日期/来源_作者/。以性别特征为例,开发者dev1从用户姓名提取的性别数据存放路径为 /user_tag/gender/20170101/name_dev1,开发者dev2从用户填写资料提取的性别数据存放路径为 /user_tag/gender/20170102/raw_dev2。

从每种来源提取的数据可信度是不同的,所以各来源提取的数据必须给出一定的权重,约定一般为0-1之间的一个概率值,这样系统在做数据的自动合并时,只需要做简单的加权求和,并归一化输出到集群,存储到事先定义好的Hive表。接下来就是数据增量更新到HBase、ES、Spark集群等更多应用服务集群。

 

应用示例:个性化推荐

以电商网站的某种页面的个性化推荐为例,考虑到特征的可解释性、易扩展和模型的计算性能,很多线上推荐系统采用LR(逻辑回归)模型训练,这里也以LR模型举例。很多推荐场景都会用到基于商品的协同过滤,而基于商品协同过滤的核心是一个商品相关性矩阵W,假设有n个商品,那么W就是一个n * n的矩阵,矩阵的元素wij代表商品Ii和Ij之间的相关系数。而根据用户访问和购买商品的行为特征,可以把用户表示成一个n维的特征向量U=[ i1, i2, ..., in ]。于是U*W可以看成用户对每个商品的感兴趣程度V=[ v1, v2, ..., vn ],这里v1即是用户对商品I1的感兴趣程度,v1= i1*w11 + i2*w12 + in*w1n。如果把相关系数w11, w12, ..., w1n 看成要求的变量,那么就可以用LR模型,代入训练集用户的行为向量U,进行求解。这样一个初步的LR模型就训练出来了,效果和基于商品的协同过滤类似。

这时只用到了用户的行为特征部分,而人口属性、网购偏好、内容偏好、消费能力和环境特征等其他上下文还没有利用起来。把以上特征加入到LR模型,同时再加上目标商品自身的属性,如文本标签、所属类目、销量等数据,如下图所示,进一步优化训练原来的LR模型。从而最大程度利用已经提取的用户画像数据,做到更精准的个性化推荐。

 

点评:

用户画像是当前大数据领域的一种典型应用,也普遍应用在多款网易互联网产品中。本文基于网易的实践,深入浅出地解析了用户画像的原理和生产流程。

精确有效的用户画像,依赖于从大量的数据中提取正确的特征,这需要一个强大的数据管理系统作为支撑。网易大数据产品体系中包含的一站式大数据开发与管理平台 – 网易猛犸,正是在网易内部实践中打磨形成的,能够为用户画像及后续的业务目标实现提供数据传输、计算和作业流调度等基础能力,有效降低大数据应用的技术门槛。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394070.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

activeMQ在文件上传的应用

本次试验主要用到了activeMq和上传插件uploadify的知识,感谢以下两篇文章的作者。 1.http://itindex.net/detail/47160-java-jquery-%E4%B8%8A%E4%BC%A0 2.http://blog.csdn.net/jiuqiyuliang/article/details/47160259 本文中不再提供activeMq和uploadify的介绍。 …

谢烟客---------Linux之DNS服务系统的基础知识

DNS Domain Name Server1)C/S架构&#xff1a;SOCKET通信IP PORT2&#xff09;应用层协议&#xff1a;资源子网BIND Berkerley Information Name DomainDNS由来1&#xff09;统一名字&#xff0c;自己维护 <自己查询>解析: 基于key查找value: 查询数据库(二维关系的表: …

ES6对象的扩展

1.属性简写表示 2.方法简写表示 属性与方法简写&#xff1a; 3.属性名表达式 ES6允许字面量定义对象时&#xff0c;用方法二&#xff08;表达式&#xff09;作为对象的属性名&#xff0c;即把表达式放在方括号内。 4.Object.is()比较两个值是否严格相等 转载于:https://www.cnb…

Spring Cloud项目MVN编译 -- Non-resolvable import POM

最近利用闲余时间&#xff0c;打算搭建一套基于Spring Cloud G版的微服务架构(Spring boot 2.1.0)&#xff0c;一顿操作之后,IDEA也没有提示什么错误,自认为微服务搭建完毕。启动项目前&#xff0c;习惯性的Maven -clean了一下&#xff0c;我去&#xff0c;IDEA里面的Maven Pro…

mysql windows身份验证_SQL Server 2005 怎么就不能用Windows身份验证方式登录呢?

SQL Server 2005 自从装到我的电脑上始终无法使用Windows身份验证的方式登录,由于使用用户名和密码登录还算顺畅,所以一直忽略了这SQL Server 2005 自从装到我的电脑上始终无法使用Windows身份验证的方式登录,由于使用用户名和密码登录还算顺畅,所以一直忽略了这个问题,直到又有…

NOIP2011 铺地毯

题目描述 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限&#xff09;铺上一些矩形地毯&#xff0c;一共有n张地毯&#xff0c;编号从 1 到n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设&…

安全专家教你如何利用Uber系统漏洞无限制的免费乘坐?

本文讲的是安全专家教你如何利用Uber系统漏洞无限制的免费乘坐&#xff1f;&#xff0c;近日&#xff0c;根据外媒报道&#xff0c;美国一名安全研究人员发现Uber上存在一处安全漏洞&#xff0c;允许发现这一漏洞的任何用户在全球范围内免费享受Uber乘车服务。据悉&#xff0c;…

java中同步组件_Java并发编程(自定义同步组件)

并发包结构图&#xff1a;编写一个自定义同步组件来加深对同步器的理解业务要求&#xff1a;* 编写一个自定义同步组件来加深对同步器的理解。* 设计一个同步工具&#xff1a;该工具在同一时刻&#xff0c;只允许至多两个线程同时访问&#xff0c;超过两个线程的* 访问将被阻塞…

算法之旅 | 快速排序法

HTML5学堂-码匠&#xff1a;前几期“算法之旅”跟大家分享了冒泡排序法和选择排序法&#xff0c;它们都属于时间复杂度为O(n^2)的“慢”排序。今天跟大家分享多种排序算法里使用较广泛&#xff0c;速度快的排序算法—— 快速排序法 [ 平均时间复杂度为O (n logn) ]。Tips 1&…

springmvd接收参数问题

问题描述&#xff1a; 好久不写博客了&#xff0c;今天遇到一个问题&#xff0c;那就是post请求时&#xff0c;参数接收不到&#xff0c;当时我很纳闷&#xff0c;看代码&#xff1a; 就是这样几个参数&#xff0c;我使用postman请求时无法获取参数&#xff1a; 报错信息&#…

OpenGL中的二维编程——从简单的矩形开始

一、OpenGL的组成 图元函数&#xff08;primitive function&#xff09;指定要生成屏幕图像的图元。包括两种类型&#xff1a;可以在二维、三维或者四维空间进行定义的几何图元&#xff0c;如多边形&#xff1b;离散实体&#xff1b;位图。属性函数&#xff08;attribute funct…

第38天:运算符、字符串对象常用方法

一、运算符 一元操作符 &#xff0c; --&#xff0c; &#xff0c; - 5 -6 逻辑操作符 !&#xff0c; &&&#xff0c; || 基本运算符 , -, *, /, % 关系操作符 >, <, >, <, , , !, ! 赋值 判断 全等 条件操作符 &#xff08;三…

Redux Todos Example

此项目模板是使用Create React App构建的&#xff0c;它提供了一种简单的方法来启动React项目而无需构建配置。 使用Create-React-App构建的项目包括对ES6语法的支持&#xff0c;以及几种非官方/尚未最终形式的Javascript语法 先看效果 这个例子可以帮助你深入理解在 Redux 中 …

python实现软件的注册功能(机器码+注册码机制)

sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId1005269003&utm_campaigncommission&utm_sourcecp-400000000398149&utm_mediumshare 一、前言&#xff1a;目的&#xff1a;完成已有python图像处理工具的注册功能功能&am…

Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App

原文:Win10 UWP开发系列&#xff1a;使用VS2015 Update2ionic开发第一个Cordova App安装VS2015 Update2的过程是非常曲折的。还好经过不懈的努力&#xff0c;终于折腾成功了。 如果开发Cordova项目的话&#xff0c;推荐大家用一下ionic这个框架&#xff0c;效果还不错。对于Cor…

[Swift]LeetCode1035.不相交的线 | Uncrossed Lines

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号&#xff1a;山青咏芝&#xff08;shanqingyongzhi&#xff09;➤博客园地址&#xff1a;山青咏芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;➤GitHub地址&a…

php sql语句过滤,php如何做sql过滤

php如何做sql过滤SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序&#xff0c;而这些输入大都是SQL语法里的一些组合&#xff0c;通过执行SQL语句进而执行攻击者所要的操作&#xff0c;其主要原因是程序没有细致地过滤用户输入的数据&#xff0c;致使非法数据侵入…

Oracle Sql 胡乱记

/Oracle查询优化改写/ --1、coalesce 返回多个值中&#xff0c;第一个不为空的值 select coalesce(, , s) from dual; --2、order by -----dbms_random.value 生产随机数,利用随机数对查询结果进行随机排序 select * from emp order by dbms_random.value; --指定查询结果中的一…

Object Pools 喷泉效果实现

摘录自&#xff1a;http://catlikecoding.com/unity/tutorials/object-pools/ 工程 效果图 工程里面有响应的注释 源码我就不单独放出来了

本地模式运行spark streaming程序(win7安装nc命令通信)

2019独角兽企业重金招聘Python工程师标准>>> 首先在win7上安装nc命令 下载nc程序包&#xff0c;放在c盘目录下&#xff0c;cmd打开命令行&#xff0c;进入nc目录&#xff0c;执行&#xff1a;nc -l -L -p 8888开始监控。再打开一个命令行窗口进入nc目录&#xff0c;…