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

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

摘要: 用户画像(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,一经查实,立即删除!

相关文章

asp.net应用程序_如何在ASP.NET中为聊天应用程序构建键入指示器

asp.net应用程序by Neo Ighodaro由新Ighodaro 如何在ASP.NET中为聊天应用程序构建键入指示器 (How to build a typing indicator for your chat app in ASP.NET) A basic understanding of ASP.NET and jQuery is needed to follow this tutorial.要学习本教程,需要…

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的介绍。 …

java nginx 例子_Java及nginx实现文件权限控制代码实例

我们知道,使用nginx作为文件下载服务器,可以极大地降低对后端Java服务器的负载冲击,但是nginx本身并不提供授权控制,因此好的方案是由后端服务器实现权限控制,最好的方式是直接复用应用的认证体系,最大化的…

leetcode934. 最短的桥(dfs+bfs)

在给定的二维二进制数组 A 中,存在两座岛。(岛是由四面相连的 1 形成的一个最大组。) 现在,我们可以将 0 变为 1,以使两座岛连接起来,变成一座岛。 返回必须翻转的 0 的最小数目。(可以保证答…

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

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

Java实现点击导出excel页面遮罩屏蔽,下载完成后解除遮罩

一、问题场景 最近在做数据统计功能&#xff0c;需求是导出大数据量的excel&#xff0c;时间间隔较长&#xff0c;大概需要十秒左右&#xff0c;点击导出后&#xff0c;页面没有做任何处理&#xff0c;用户也不知道是否正在导出&#xff1b;如果没有做交互上的限制&#xff0c;…

pbs 支持 java_Linux下Java安装与配置

安装以JDK1.6.0_43为例下载jdk-6u43-linux-x64.bin&#xff0c;http://www.oracle.com/technetwork/java/javase/downloads/index.html增加可执行权限 chmod x jdk-6u43-linux-x64.bin&#xff0c;执行 ./jdk-6u43-linux-x64.bin 生成目录jdk1.6.0_43拷贝到/usr/share下&#x…

使用Chatkit构建Node.js命令行聊天应用程序

by Hugo雨果 使用Chatkit构建Node.js命令行聊天应用程序 (Build a Node.js command-line chat application with Chatkit) Building chat in your app can be pretty complex. Yet, with Chatkit, implementing fully-featured chat is nothing but a few lines of code.在您的…

java 毫秒转分钟和秒_Java程序将毫秒转换为分钟和秒

Java程序将毫秒转换为分钟和秒在上面的程序中&#xff0c;您将学习如何在Java中将毫秒分别转换为分钟和秒。示例1&#xff1a;将毫秒分别转换为分钟和秒import java.util.concurrent.TimeUnit;public class Milliseconds {public static void main(String[] args) {long millis…

Andrew Ng机器学习之一 导论

监督学习与无监督学习 监督学习&#xff08;Supervised Learning) Ng的原文是&#xff1a; We gave the algorithm a data set that the "right answers" were given. 即给定了一个正确结果的集合供算法学习&#xff0c;强调了需要实现准备好正负样本喂给机器。 无监…

leetcode994. 腐烂的橘子(bfs)

在给定的网格中&#xff0c;每个单元格可以有以下三个值之一&#xff1a; 值 0 代表空单元格&#xff1b; 值 1 代表新鲜橘子&#xff1b; 值 2 代表腐烂的橘子。 每分钟&#xff0c;任何与腐烂的橘子&#xff08;在 4 个正方向上&#xff09;相邻的新鲜橘子都会腐烂。 返回直…

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…

datax底层原理_Datax 插件加载原理

Datax 插件加载原理插件类型Datax有好几种类型的插件&#xff0c;每个插件都有不同的作用。reader&#xff0c; 读插件。Reader就是属于这种类型的writer&#xff0c; 写插件。Writer就是属于这种类型的transformer&#xff0c; 目前还未知handler&#xff0c; 主要用于任务执行…

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

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

JavaScript正则表达式快速简单的指南

Interested in learning JavaScript? Get my ebook at jshandbook.com有兴趣学习JavaScript吗&#xff1f; 在jshandbook.com上获取我的电子书 正则表达式简介 (Introduction to Regular Expressions) A regular expression (also called regex for short) is a fast way to w…

leetcode104. 二叉树的最大深度(dfs)

给定一个二叉树&#xff0c;找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例&#xff1a; 给定二叉树 [3,9,20,null,null,15,7]&#xff0c;3/ \9 20/ \15 7 返回它的最大深度 3 。代码 class Soluti…

[解读REST] 3.基于网络应用的架构

链接上文[解读REST] 2.REST用来干什么的&#xff1f;&#xff0c;上文中解释到什么是架构风格和应该以怎样的视角来理解REST&#xff08;Web的架构风格&#xff09;。本篇来介绍一组自洽的术语&#xff0c;用它来描述和解释软件架构&#xff1b;以及列举下对于基于网络的应用来…

js判断对象还是数组

1.对于Javascript 1.8.5&#xff08;ECMAScript 5&#xff09;&#xff0c;变量名字.isArray( )可以实现这个目的 var a[]; var b{}; Array.isArray(a);//true Array.isArray(b)//false 2.如果你只是用typeof来检查该变量&#xff0c;不论是array还是object&#xff0c;都将返回…

mysql 除去列名打印_sql – 使用beeline时避免在列名中打印表名

在beeline中使用hive时使用简单的select查询我想在列名中返回没有表名的表作为默认值.例数据CREATE TABLE IF NOT EXISTS employee ( eid int, name String,salary String, destination String)COMMENT Employee detailsROW FORMAT DELIMITEDFIELDS TERMINATED BY \tLINES TERM…