用户画像标签数据开发之标签相似度计算

目录

0. 相关文章链接

1. 什么是标签相似度计算

2. 案例场景

3. 数据开发


注:此博文为根据 赵宏田 老师的 用户画像·方法论与工程化解决方案 一书读后笔记而来,仅供学习使用

0. 相关文章链接

用户画像文章汇总

1. 什么是标签相似度计算

根据标签之间的相关关系进行聚类也是画像开发中经常遇到的一 类问题。如何结合业务背景对标签进行有效聚类,不同的公司或业务背景有不同的处理方式。这篇博文通过一个案例来介绍如何通过对用户身上的标签构建“同现矩阵”的方式对标签进行聚类。

2. 案例场景

        同现矩阵是指标签和标签之间的关联程度,这种关联程度由用户 身上的标签所决定。这里的同现是指标签同时出现,即一个用户被打 上A标签的同时被打上B标签。如果有很多用户同时被打上A、B标签, 那么A、B标签之间可能潜在某种相关性(如下图所示)。

A类标签打上标签人数(A类)B类标签打上标签人数(B类)同时打上AB标签人数A所签相关性
标签A120标签B14055/sqrt(20><40)
标签A220标签B2405...
标签A330标签B3306...
标签A430标签B4306...
标签A540标签B5503...
标签A640标签B6408...

        从上图中可以看到,当前有四个用户和四个标签,每个用户身 上都被打上了一些标签。但标签B和标签C在多个用户身上同时出现, 因此可以初步认为标签B和标签C存在一定程度上的相关性。举个人们 熟知的“啤酒和尿布”的例子,一家超市发现很多用户在消费中同时 购买了啤酒和尿布,于是将尿布和啤酒摆在一起出售,发现这两种商 品的销量双双增加了。该场景中这两种商品/标签同时出现在很多用户 的身上,那么我们可以初步认为这两种商品/标签存在一定程度上的相 关性。

        在本案例中,用户在某医疗产品上的行为轨迹给其带来诸多标签, 按标签的类型可以划分为医生、医院、科室、疾病、药品等不同种 类。现在需要对疾病标签聚类到其对应的科室下面。

        根据同现矩阵的方法,对4.5节创建的用户行为特征库中数据进行 深度挖掘,根据用户行为之间的相关性,对疾病标签进行聚类。

用户行为特征库表结构设计如下:

CREATE TABLE 'dw.cookiefeatureeventappend'(
    cookie_id string COMMENT 'cookie_id',
    tag_id string COMMENT '标签 id',
    tag_name string COMMENT '标签名称',
    tag_type_id string COMMENT '标签类型 按业务线来划分标签',
    act_num string COMMENT '行为次数',
    act_name string COMMENT '事件名称 如点赞/打赏/加购/点击/收藏/浏览等行为'
)
COMMENT '用户行为特征库'
PARTITIONED BY (data_date string COMMENT '数据日期')
;

3. 数据开发

首先从用户行为特征库中抽取某一时间段内被打上“疾病”类型 标签的用户明细数据,明细数据中包含了用户id、疾病标签等关系信息:

然后继续抽取同一时间段内被打上“科室”类型标签的用户明细数据:

然后计算“疾病”类标签下每个疾病标签对应的用户人数:

然后计算“科室”类标签下每个科室标签对应的用户人数:

最后计算同时被打上疾病类和科室类标签的用户人数的同现矩阵(如下图):

脚本逻辑如下:

        用余弦相似度函数计算两两标签之间的相关性。余弦相似度函数 通过空间中两个向量夹角的余弦值来衡量两个个体差异的大小,余弦值越接近1,表明两个向量的相似性越大。在本场景中举一个简单例 子:某疾病标签被打在了10000个用户身上,某科室标签被打在了 20000个用户身上,有5000个用户的身上同时有该疾病标签和科室标 签,则该疾病和科室之间的相似度为5000/sqrt(10000X20000)。脚本逻辑如下:

        筛选出与每个疾病标签相关性最大的科室标签,即将该疾病标签 归类到相关性最大的科室下面。通过row_number()方法筛选出权重 最大的科室标签置顶,逻辑执行如下:

最后可以看到,在小批量的测试数据中将疾病标签归类到对应科 室下面的效果还是比较准确的(如下图):


注:再次声明,此博文为根据 赵宏田 老师的 用户画像·方法论与工程化解决方案 一书读后笔记而来,仅供学习使用

注:其他相关文章链接由此进 -> 用户画像文章汇总


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电光闪烁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值