如何构建基于知识图谱的用户画像

2019-10-23 11:46:04 浏览数 (1)

这篇文章是瓜子内部Tech Talk的笔记,主要介绍如何构建基于知识图谱的用户画像,感谢家帅分享。

一、什么是知识图谱

知识图谱是通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。

这个定义太抽象,来看一个具体的例子。下图描述了关于“姚明” 的简单的用户画像,其中描述了“叶莉”是姚明的妻子

通过搜索引擎检索“姚明的妻子”就能检索出叶莉的先关信息,这就是用户画像在起作用

另外我们检索“姚明”,右边区域能够列出若干相关人物,这也是基于用户画像的推荐功能。

二、应用场景

瓜子二手车的业务主要设计两个实体(角色),“用户”和“车”,主要应用场景包括以下内容

人图谱:

内部:车源匹配客户,推荐和个性化排序,客户分级,售车线索/带看工单分级,客

户维护/召回,投放,风险模型……

外部:(卖家) 推荐新车/二手车以及金融、保险服务, (买家) 金融,保险

车图谱:

内部:检测标准化,车价/残值预估,延保定价,金融风险,保险定价(UBI),市场投

放参考,精准投放

外部:检测标准化(数据/技术输出),评估检测报告,车价/残值预估,金融风险,延

保定价……

三、系统设计

1、技术选型

易拓展

数据来源多,需要解决数据规模和多样性问题。采用HBase MySql Hive/Presto模式进行存储。mysql存储元数据;HBase做数据存储,HBase方便将数据整合到一起;Hive/Presto分析知识图谱。

准实时

数据流:Canal Flume Kafka

Cannal Flume 准实时感知各种各种数据变化;Tracking数据通过Kafka实时获取

计算框架:Spark Spark Streaming

Spark Streaming做实时计算(Storm在初始接入处理批量数据能力较弱);Spark做离线计算

可定制

数据接入可配置

基因(属性标签)可配置

2、系统架构

左边是数据源,通过各种工具进入大数据存储系统(HBase,HDFS,Kafka),Kafka做实时数据流处理,HBase、HDFS做数据备份。计算节点(Spark)清洗,提取属性、标签(复杂属性需要通过一些规则运算,模型实现)。基因放到Hbase,每天向Hive写一遍数据。 可以通过Presto查询。对外提供API服务(检索HBase),加上“调度、匹配、评价、分级”等算法模型,对外提供更丰富的服务

四、具体实现

1、数据模型

数据结构

object VS relation ,采用对象存储(HBase),不采用关系型存储,知识图谱用对象存储方便将实体属性聚合在一起,方便计算

数据格式

复杂行为采用json,方便进行拓展。初期json内容人可以看懂(二进制序列化节省空间,但人看不懂)

基本类型采用bytes,节省存储空间

数据关联

flatten and join ,权衡,平衡存储大小和性能。

身份关联

人车没有统一身份标识,通过各种可能的属性,专门的映射表存储身份标识,进行关联识别。

2、数据清洗

线上Tracking数据不一致。

PC,App,wap 三端数据格式不一致。主要包括数据内容、数据格式、数据单位、数据字典等方面

解决办法

统一埋点规范 推动业务线统一埋点

字典映射 解决不了的历史原因,通过字典映射

异常处理

3、定制化

数据接入可配置

支持线上tracking数据,线下业务数据,第三方数据等

基因可配置

包括逻辑表达式,数据影响力,时间限制,Web UI (通过界面设置),模型自动学习(机器学习)

4、身份识别

没有完善的用户体系,识别用户非常困难,主要通过一下方式进行身份识别

通过guid和设备号统一(保存在浏览器的localStorage)

根据页面预留手机号识别,

根据注册信息识别

线上线下行为识别

此外,还需要进行性能调优,服务质量控制方面的工作,本文不进行详细描述。

最后,贴一张图直观感受一下基因库(用户画像)

0 人点赞