王树森推荐系统公开课 排序05:排序模型的特征

发布于:2025-05-28 ⋅ 阅读:(25) ⋅ 点赞:(0)

排序特征

用户画像(User Profile)

  • 用户ID(在召回、排序中做embedding)。常embedding为32维64维向量
  • 人口统计学属性:性别、年龄。
  • 账号信息:新老、活跃度…… 新老用户的使用习惯差别会很大。
  • 感兴趣的类目、关键词、品牌。

物品画像(Item Profile)

  • 物品ID(在召回、排序中做embedding)。
  • 发布时间(或者年龄)。像明星出轨、电商打折这种强时效的信息,往往只会流行几天时间。
  • GeoHash(经纬度编码)、所在城市。
  • 标题、类目、关键词、品牌……
  • 字数、图片数、视频清晰度、标签数…… 这些属性反映出笔记的质量,笔记的点击和交互指标和这些属性相关。
  • 内容信息量、图片美学…… 笔记发布时用模型给笔记打分,这些分数可以作为排序的特征。

用户统计特征

  • 用户最近30天(7天、1天、1小时)的曝光数、点击数、点赞数、收藏数…… 通过不同的时间粒度可以反映出用户的实时兴趣、短期兴趣、中长期兴趣。
  • 按照笔记图文/视频分桶。(比如最近7天,该用户对图文笔记的点击率,对视频笔记的点击率。) 分别做统计可以反映出用户对两类笔记的偏好。
  • 按照笔记类目分桶。(比如最近30天,用户对美妆笔记的点击率、对美食笔记的点击率、对科技数码笔记的点击率。) 这些统计量可以反映用户对哪些类目感兴趣。

物品统计特征

  • 笔记最近30天(7天、1天、1小时)的曝光数、点击数、点赞数、收藏数…… 通过不同的时间粒度可以反映出笔记在不同时期的受欢迎程度。如果一篇笔记的短期点击率下降严重,那么不应该给这篇笔记更多的流量。
  • 按照用户性别分桶、按照用户年龄分桶…… 统计不同性别、不同年龄段的用户对该笔记的点击率等指标。
  • 作者特征:发布笔记数、粉丝数、消费指标(曝光数、点击数、点赞数、收藏数),这些特征反映了作者的作品质量。显然,如果一位作者之前发布的笔记质量很高,那么他发布的新笔记质量很高的概率更大。

场景特征

  • 用户定位GeoHash(经纬度编码)、城市。 需要用户给平台位置权限。这些信息对召回和排序都有用,因为用户可能对自己附近发生的事感兴趣。
  • 当前时刻(分段,做embedding)。 在不同的时间段想看的东西不同。
  • 是否是周末,是否是节假日。 有些信息用户在周末或节假日更感兴趣。例如旅游景点、美食。
  • 手机品牌、手机型号、操作系统。

特征处理

离散特征:做embedding。
  • 用户ID、笔记ID、作者ID。
  • 类目、关键词、城市、手机品牌。
连续特征:做分桶,变成连续特征。
  • 年龄、笔记字数、视频长度。 比如把年龄变成年龄段、独热编码或者embedding。
连续特征:其他变换。
  • 曝光数、点击数、点赞数等数值做 l o g ( 1 + x ) log(1+x) log(1+x)。 这些有长尾效应(少数笔记数值很大,绝大多数的笔记书记很小)的数值会很大,直接用原始数值梯度会很大,效果很差。
  • 转化为点击率、点赞率等值,并做平滑处理

特征覆盖率

  • 很多特征无法覆盖 100% 样本。
  • 例如年龄,很多用户不填写年龄,那么年龄的覆盖率就远小于 100%。
  • 例如很多用户设置隐私权限,app 无法获得用户的地理定位,因此场景特征有缺失。
  • 做特征工程时,要想办法提高特征覆盖率,可以让精排模型更准确。

数据服务

在特征缺失时,要想想用什么默认值取填充特征。
推荐系统用到了三个数据源,分别是用户画像物品画像统计数据。这些数据源都存储在内存数据库中,排序服务器会取出相应的数据喂给模型,在训练出点击率、点赞率、收藏率这些指标。

排序流程

在这里插入图片描述
用户画像对服务器压力较小,因为只针对一位用户。物品画像的服务器压力非常大,因为有成百上千篇笔记。统计数据动态是因为用户、物品的点赞率等指标都是变化很迅猛的。取完特征后对特征打包,交给 TensorFlow 服务器打分。


网站公告

今日签到

点亮在社区的每一天
去签到