用户画像系列——推荐相关核心标签(偏好类)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 用户画像系列——推荐相关核心标签(偏好类)

一、背景

我们经常在逛购物网站或者刷抖音、听网易云音乐的时候,会有猜你喜欢或者为你推荐这样一个功能,而这依赖的就是用户画像的偏好类标签:比如说明星偏好(喜欢某个明星或者歌手的作品)、类型偏好(比如说:喜欢美妆类、喜欢美食类)


二、偏好标签加工的核心逻辑

偏好类标签一般都是以用户的行为日志进行加工。

比如说:视频类软件(观影日志、评论日志、点赞日志、收藏日志)——内容偏好、类型偏好、明星偏好,电商类(订单日志、浏览日志、收藏日志、加购物日志)——商品偏好、价格偏好、品牌偏好

下面我们以视频类软件为例来详细讲解下偏好类标签的加工逻辑

1.偏好类事实型:主要是根据用户观影数据来计算用户在某个内容或者类型下的观影总时长和最后一次观影时间

上面是一张播放行为表,涵盖了基本的播放行为数据,和一张为tag维表(一个电视剧或者电影会打上非常多的标签,表中只是罗列了3个)

根据上述两张表可以生成如下用户观影tag表,能看到一个电视剧或者电影能很明显的

根据上述表进行计算得到每个用户在每个标签下的观影总时长,该标签下最后一次观影时间

select userid,content_tag,sum(play_time) as total_time,max(last_play_time) as last_play_time from dws_user_play_info_tag group by userid,content_tag

这样每个用户的内容偏好标签即可计算完成

注:当我们想看用户最近半年的观影偏好时,就用用户最近半年的观影数据来进行计算即可,这样就能动态产出用户观影偏好

细心的读者发现打在某个tag上有观影总时长和最后一次观影时间,观影总时长能看出这个用户对于这种tag的内容非常感兴趣,而最后一次观影时间说明最近用户在观看这部分内容。

相当于总时长代表的是一个长期兴趣,而最后一次观影代表的是用户的一个短期兴趣。比如说:用户男性经常观看古装或者美女,但是最近有一个毕竟火的热点视频,该用户也在观看,但这种只能代表用户最近一段时间的兴趣偏好,当过了这段时间就应该选用长期兴趣标签了。

2.偏好类权重型:主要是根据用户观影数据来计算用户在某个内容或者类型下的观影权重,比如说权重越高说明用户对于某个内容更感兴

用户观影权重表

INSERT OVERWRITE TABLE dws_user_play_weight_info PARTITION(dt='${current_date}')
select userid, id, sum(feature_value) as feature_value
from (
select
userid,   --用户id
id,    --电视剧或者电影id
exp(-1 * cast(datediff('${current_date}', dt) / 7 as int) * 7 / (28 * 3 / 2.0))
* 1.0 / ( 1.0 + exp(-0.01 * ( playtime - 400 ))) as weight
from dwd_user_play_info
where dt between '${current_date-28}' and '${current_date}'   ---28天一个周期
union all
-- 4周之前
select userid, id,
exp(-1 * 28 / (28 * 3 / 2.0))* weight as weight --衰减
from dws_user_play_weight_info
where dt='${current_date-29}'
)T2
group by userid, id
having sum(weight) > 0.001
distribute by userid;

注:权重公式系数非常有讲究,主要看是关注最后一次观影时间还是更加关注播放时长,如果更关注时长则时长权重更大,如果更加关注最后一次观音时间则此处系数应该更大。

归一化:直接按照视频id打上标签然后相加权重值明显会超过1,因此需要归一化处理

select userid, tag, weight
from (
select userid, id, weight, row_number() over(partition by userid order by weight desc) as rn
from (
select
userid,
id,
2 / ( 1 + exp(-0.5 * (sum(s1) + sum(s2)) )) - 1 as weight
from (
-- 2. 近期观影
select
A.account_id,
B.tag,
0 as s1,
A.weight * B.weight as s2,
1 as s3
from (
select id, tag, weight  ---weight都为1,后续可给标签加上权重代表该标签重要性较强
from dim_content_tag_info ---内容标签打平之后的表
)B
inner join (select * from dws_user_play_weight_info  ---用户观影权重表
where dt='${current_date}') A
on B.id =A.id
)T1
group by userid, tag
)T2
)T3
where rn <= 50 and weight > 0.01;

三、总结

至此即完成了偏好类标签的处理和加工,应用的话,可以在广告、推荐等多个场景进行应用。比如说:某个用户经常看搞笑视频可以给它推荐搞笑的玩具或者视频等等


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
6月前
|
搜索推荐 数据可视化 数据挖掘
构建精准的目标客户群用户画像构建
构建精准的目标客户群用户画像
464 6
|
存储 SQL 机器学习/深度学习
用户画像标签体系——从零开始搭建实时用户画像(三)
用户画像标签体系——从零开始搭建实时用户画像(三)
2639 0
用户画像标签体系——从零开始搭建实时用户画像(三)
|
4月前
|
算法 搜索推荐
推荐系统,推荐算法01,是首页频道推荐,一个是文章相似结果推荐,用户物品画像构建就是用户喜欢看什么样的文章,打标签,文章画像就是有那些重要的词,用权重和向量表示,推荐架构和业务流
推荐系统,推荐算法01,是首页频道推荐,一个是文章相似结果推荐,用户物品画像构建就是用户喜欢看什么样的文章,打标签,文章画像就是有那些重要的词,用权重和向量表示,推荐架构和业务流
|
6月前
|
存储 搜索推荐 分布式数据库
用户画像标签系统体系解释
用户画像标签系统体系解释
329 1
|
6月前
|
搜索推荐 算法 前端开发
基于用户特征的个性化网络小说推荐系统的设计与实现
基于用户特征的个性化网络小说推荐系统的设计与实现
221 0
|
存储 安全 数据管理
这个“2-3”的数据分类分级方法也许对你很有价值
当前,数据成为企业的生产要素参与分配,数据价值越发显得重要。
这个“2-3”的数据分类分级方法也许对你很有价值
|
图计算 开发者 iOS开发
统一识别-标签聚合| 学习笔记
快速学习统一识别-标签聚合
统一识别-标签聚合| 学习笔记
|
存储 SQL 搜索推荐
如何构建用户画像,给用户打“标签”?2
如何构建用户画像,给用户打“标签”?2
491 0
如何构建用户画像,给用户打“标签”?2
|
存储 SQL 机器学习/深度学习
如何构建用户画像,给用户打“标签”?1
如何构建用户画像,给用户打“标签”?1
616 0
如何构建用户画像,给用户打“标签”?1
|
存储 SQL 缓存
多标签用户画像分析跑得快的关键在哪里?
多标签用户画像分析跑得快的关键在哪里?
172 0