【第六章:项目实战之推荐/广告系统】1.推荐系统基础与召回算法-(3)推荐数据基础准备

部署运行你感兴趣的模型镜像

第六章:项目实战之推荐/广告系统

第一部分:推荐系统基础与召回算法

第三节:推荐数据基础准备

在推荐系统中,数据是核心。召回算法、排序算法以及广告投放策略的效果,最终都依赖于高质量的基础数据。因此,推荐系统的数据准备环节尤为关键。


一、推荐系统中的数据类型

推荐系统常用的数据类型主要包括 用户行为数据物品(商品/内容)特征数据用户特征数据、以及上下文数据

  1. 用户行为数据(User Behavior Data)

    • 描述用户与物品之间的交互行为。

    • 常见字段:

      • user_id:用户唯一标识

      • item_id:物品唯一标识

      • behavior_type:行为类型(浏览、点击、收藏、购买等)

      • timestamp:行为发生时间

    • 示例:

      user_iditem_idbehavior_typetimestamp
      10012001click2025-10-17 09:35
      10012002buy2025-10-17 09:40
  2. 物品特征数据(Item Feature Data)

    • 描述物品自身属性,如类别、价格、品牌等。

    • 示例:

      item_idcategorybrandprice
      2001手机苹果6999
      2002手机小米3999
  3. 用户特征数据(User Feature Data)

    • 描述用户的静态或动态特征,如性别、年龄、兴趣标签等。

    • 示例:

      user_idgenderageinterest_tags
      100128游戏, 科技, 手机
      100224美妆, 电影, 旅行
  4. 上下文数据(Context Data)

    • 推荐发生的环境信息,如时间、地点、设备类型等。

    • 示例:

      user_iddevicehourlocation
      1001iOS9上海
      1002Android14北京

二、推荐系统数据准备流程

数据准备主要包括 数据采集 → 数据清洗 → 数据构建 → 特征工程 四步。

1. 数据采集
  • 来源:

    • 日志系统(用户点击、浏览、购买行为)

    • 数据库(商品信息、用户注册信息)

    • 第三方数据(兴趣标签、社交行为)

  • 注意:

    • 数据量巨大,需要考虑 分布式存储(如 HDFS、ClickHouse)

    • 数据实时性要求不同,推荐召回通常用 离线批量数据,广告推荐可能要求 实时流数据

2. 数据清洗
  • 目的:保证数据质量,去除异常、重复、缺失值

  • 常见方法:

    • 去重:同一用户同一行为重复记录

    • 异常值处理:价格为 0 或负数

    • 缺失值填充:如性别缺失可用 未知 填充

3. 数据构建
  • 将原始日志数据转化为模型可用的数据

  • 关键操作:

    • 构建 用户-物品交互矩阵
      示例:

      user_iditem_2001item_2002item_2003
      1001101
      1002010
      • 1 表示有行为,0 表示无行为

    • 构建 负样本(用于训练推荐模型)

      • 对于显式反馈(购买/评分)数据,负样本可以随机选取未交互物品

      • 对于隐式反馈(点击/浏览)数据,负样本采样策略更重要

4. 特征工程
  • 用户特征

    • 人口统计信息(年龄、性别)

    • 历史行为统计(点击次数、购买频率)

  • 物品特征

    • 类别、价格区间、品牌

    • 物品热门度(点击量、购买量)

  • 交互特征

    • 用户-物品历史行为次数

    • 最近一次行为时间距当前时间的间隔

  • 上下文特征

    • 时间、地点、设备类型

    • 节假日、促销活动标记


三、推荐数据构建示例(Python)

下面是一个简单示例,展示如何从日志数据构建用户-物品交互矩阵:

import pandas as pd

# 原始行为日志
logs = pd.DataFrame({
    'user_id':[1001,1001,1002,1003],
    'item_id':[2001,2002,2002,2003],
    'behavior_type':['click','buy','click','click']
})

# 将行为映射为评分(简单策略)
behavior_map = {'click':1, 'buy':3}
logs['rating'] = logs['behavior_type'].map(behavior_map)

# 构建用户-物品矩阵
user_item_matrix = logs.pivot_table(index='user_id', columns='item_id', values='rating', fill_value=0)
print(user_item_matrix)

输出示例:

item_id200120022003
user_id
1001130
1002010
1003001

四、总结

  • 数据是推荐系统的基础:无论是召回还是排序,模型的性能依赖于高质量、完整的数据。

  • 数据类型丰富:用户行为、物品特征、用户特征、上下文信息缺一不可。

  • 数据处理流程系统化:采集 → 清洗 → 构建 → 特征工程,每一步都直接影响模型效果。

  • 实践中重点

    • 构建用户-物品交互矩阵

    • 负样本采样策略

    • 特征工程优化

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值