05画像应用的落地用户画像最终的价值还是要落地运行,为业务带来实际价值。这里需要开发标签的数据工程师和需求方相互协作,将标签应用到业务中。否则开发完标签后,数据还是只停留在数据仓库中,没有为业务决策带来积极作用。画像开发过程中,还需要开发人员组织数据分析、运营、客服等团队的人员进行画像应用上的推广。对于数据分析人员来说,可能会关注用户画像开发了哪些表、哪些字段以及字段的口径定义;对运营、客服等业务人员来说,可能更关注用户标签定义的口径,如何在Web端使用画像产品进行分析、圈定用户进行定向营销,以及应用在业务上数据的准确性和及时性。只有业务人员在日常工作中真正应用画像数据、画像产品,才能更好地推动画像标签的迭代优化,带来流量提升和营收增长,产出业绩价值。06**某用户画像案例这里通过一个实践案例来将大家更好地带入实际开发画像、应用画像标签的场景中。本节主要介绍案例背景及相关的元数据,以及开发标签中可以设计的表结构样式。在本案例的开发工作中,基于Spark计算引擎,主要涉及的语言包括HiveQL、Python、Scala、Shell等。1. 案例背景介绍某图书电商网站拥有超过千万的网购用户群体,所售各品类图书100余万种。用户在平台上可进行浏览、搜索、收藏、下单、购买等行为。商城的运营需要解决两个问题:一方面在企业产品线逐渐扩张、信息资源过载的背景下,如何在兼顾自身商业目标的同时更好地满足消费者的需求,为用户带来更个性化的购物体验,通过内容的精准推荐,更好地提高用户的点击转化率;另一方面在用户规模不断增长的背景下,运营方考虑建立用户流失预警机制,及时识别将要流失的用户群体,采取运营措施挽回用户。商城自建立以来,数据仓库中积累着大量的业务数据、日志数据及埋点数据。如何充分挖掘沉淀在数据仓库中的数据的价值,有效支持用户画像的建设,成为当前的重要工作。2. 相关元数据在本案例中,可以获取的数据按其类型分为:业务类数据和用户行为数据。其中业务类数据是指用户在平台上下单、购买、收藏物品、货物配送等与业务相关的数据;用户行为数据是指用户搜索某条信息、访问某个页面、点击某个按钮、提交某个表单等通过操作行为产生(在解析日志的埋点表中)的数据。涉及数据仓库中的表主要包括用户信息表、商品订单表、图书信息表、图书类目表、App端日志表、Web端日志表、商品评论表等。下面就用户画像建模过程中会用到的一些数据表做详细介绍。① 用户信息表用户信息表(见表1-2)存放有关用户的各种信息,如用户姓名、年龄、性别、电话号码、归属地等信息。表1-2 用户信息表(dim.user_basic_info)② 商品订单表商品订单表(见表1-3)存放商品订单的各类信息,包括订单编号、用户id、用户姓名、订单生成时间、订单状态等信息。表1-3 商品订单表(dw.order_info_fact)③ 埋点日志表埋点日志表(见表1-4)存放用户访问App时点击相关控件的打点记录。通过在客户端做埋点,从日志数据中解析出来。表1-4 埋点日志表(ods.page_event_log)④ 访问日志表访问日志表(见表1-5)存放用户访问App的相关信息及用户的LBS相关信息,通过在客户端埋点,从日志数据中解析出来。表1-5 访问日志表(ods.page_view_log)⑤ 商品评论表商品评论表(见表1-6)存放用户对商品的评论信息。表1-6 商品评论表(dw.book_comment)⑥ 搜索日志表搜索日志表(见表1-7)存放用户在App端搜索相关的日志数据。表1-7 搜索日志表(dw.app_search_log)⑦ 用户收藏表用户收藏表(见表1-8)记录用户收藏图书的数据。表1-8 用户收藏表(dw.book_collection_df)⑧ 购物车信息表购物车信息表(见表1-9)记录用户将图书加入购物车的数据。表1-9 购物车信息表(dw.shopping_cart_df)3. 画像表结构设计表结构设计也是画像开发过程中需要解决的一个重要问题。表结构设计的重点是要考虑存储哪些信息、如何存储(数据分区)、如何应用(如何抽取标签)这3个方面的问题。不同业务背景有不同的设计方式,这里提供两种设计思路:一是每日全量数据的表结构;二是每日增量数据的表结构。Hive需要对输入进行全盘扫描来满足查询条件,通过使用分区可以优化查询。对于用户标签这种日加工数据,随着时间的推移,分区数量的变动也是均匀的。每日全量数据,即该表的日期分区中记录着截止到当天的全量用户数据。例如,“select count() from userprofile where data=’20180701’”这条语句查询的是userprofile表截止到2018年7月1日的全量用户数据。日全量数据的优势是方便查询,缺点是不便于探查更细粒度的用户行为。每日增量数据,即该表的日期分区中记录着当日的用户行为数据。例如,同样是“select count() from userprofile where data=’20180701’”,这条语句查询的是userprofile表在2018年7月1日记录的当日用户行为数据。日增量数据可视为ODS层的用户行为画像,在应用时还需要基于该增量数据做进一步的建模加工。下面详细介绍这两种表结构的设计方法。① 日全量数据日全量数据表中,在每天对应的日期分区中插入截止到当天为止的全量数据,用户进行查询时,只需查询最近一天的数据即可获得最新全量数据。下面以一个具体的日全量表结构的例子来进行说明。这里userid表示用户id,labelweight表示标签权重,theme表示标签归属的二级主题,labelid表示一个标签id。通过“日期 +标签归属的二级主题+标签id”的方式进行分区,设置三个分区字段更便于开发和查询数据。该表结构下的标签权重仅考虑统计类型标签的权重,如:历史购买金额标签对应的权重为金额数量,用户近30日访问天数为对应的天数,该权重值的计算未考虑较为复杂的用户行为次数、行为类型、行为距今时间等复杂情况。通过表名末尾追加“_all”的规范化命名形式,可直观看出这是一张日全量表。例如,对于主题类型为“会员”的标签,插入“20190101”日的全量数据,可通过语句:insert overwrite table dw. userprofile_userlabel_all partition(data_date= ‘20190101’, theme= ‘member’, labelid=’ATTRITUBE_U_05_001’)来实现。查询截止到“20190101”日的被打上会员标签的用户量,可通过语句:select count(distinct userid) from dw.userprofile_userlabel_all where data_date=’20190101’来实现。② 日增量数据日增量数据表,即在每天的日期分区中插入当天业务运行产生的数据,用户进行查询时通过限制查询的日期范围,就可以找出在特定时间范围内被打上特定标签的用户。下面以一个具体的日增量表结构的例子来说明。这里,labelid表示标签名称;cookieid表示用户id;act_cnt表示用户当日行为次数,如用户当日浏览某三级品类商品3次,则打上次数为3;tag_type_id为标签类型,如母婴、3C、数码等不同类型;act_type_id表示行为类型,如浏览、搜索、收藏、下单等行为。分区方式为按日期分区,插入当日数据。通过表名末尾追加“_append”的规范化命名形式,可直观看出这是一张日增量表。例如,某用户在“20180701”日浏览某3C电子商品4次(act_cnt),即给该用户(userid)打上商品对应的三级品类标签(tagid),标签类型(tag_type_id)为3C电子商品,行为类型(act_type_id)为浏览。这里可以通过对标签类型和行为类型两个字段配置维度表的方式,对数据进行管理。例如对于行为类型(act_type_id)字段,可以设定1为购买行为、2为浏览行为、3为收藏行为等,在行为标签表中以数值定义用户行为类型,在维度表中维护每个数值对应的具体含义。该日增量数据表可视为ODS层用户行为标签明细。在查询过程中,例如对于某用户id为001的用户,查询其在“20180701”日到“20180707”日被打上的标签,可通过命令:select * from dw.userprofile_act_feature_append where userid = ‘001’ and data_date>=’20180701’ and data_date<= ‘20180707’查询。该日增量的表结构记录了用户每天的行为带来的标签,但未计算打在用户身上标签的权重,计算权重时还需做进一步建模加工。标签权重算法详见4.6节的内容。③ 关于宽表设计用户画像表结构如何设计,没有一定要遵循的固定的格式,符合业务需要、能满足应用即可。下面通过两个宽表设计的案例,提供另一种解决方案的思路。用户属性宽表设计(见表1-10),主要记录用户基本属性信息。表1-10 用户属性宽表设计用户日活跃宽表设计(见表1-11),主要记录用户每天访问的信息。表1-11 用户日活跃宽表设计07**定性类画像本书重点讲解如何运用大数据定量刻画用户画像,然而对于用户的刻画除了定量维度外,定性刻画也是常见手段。定性类画像多见于用户研究等运营类岗位,通过电话调研、网络调研问卷、当面深入访谈、网上第三方权威数据等方式收集用户信息,帮助其理解用户。这种定性类调研相比大数据定量刻画用户来说,可以更精确地了解用户需求和行为特征,但这个样本量是有限的,得出的结论也不一定能代表大部分用户的观点。通过制定调研问卷表,我们可以收集用户基本信息以及设置一个或多个场景,专访用户或网络回收调研问卷,在分析问卷数据后获取用户的画像特征。目前市场上“问卷星”等第三方问卷调查平台可提供用户问卷设计、链接发放、采集数据和信息、调研结果分析等一系列功能,如图1-7所示。图1-7 某调研问卷示例(截图自“问卷星”)根据回收的调研问卷,可结合统计数据进一步分析用户画像特征(如图1-8所示)。图1-8 回收的调研问卷(截图自“问卷星”)08**小结**本文主要介绍了用户画像的一些基础知识,包括画像的简介、标签类型、整个画像系统的数据架构,开发画像系统主要覆盖的8个模块,以及开发过程中的各阶段关键产出。初步介绍了画像系统的轮廓概貌,帮助读者对于如何设计画像系统、开发周期、画像的应用方式等有宏观的初步的了解。——本文摘自机械工业出版社华章图书《用户画像方法论与工程化解决方案》
构建用户标签体系