前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浅谈推荐系统中的样本拼接

浅谈推荐系统中的样本拼接

原创
作者头像
RK
修改2022-08-05 14:40:22
7250
修改2022-08-05 14:40:22
举报
文章被收录于专栏:推荐系统杂谈推荐系统杂谈

样本拼接要做什么?

  样本拼接原理上其实非常简单,就是将推荐在线服务给的特征快照先暂存起来,等待道具曝光后根据收集到用户对此道具的一系列交互行为(点赞、收藏、转发等)给原本只有特征的推荐记录拼接上标签

Key-Value is All You Need

  有开发经验的朋友大概一眼就看出了:所谓的拼接,本质上就是KV的增查改。这里连主动删除都不是必须的,将超出时间窗口的数据统一淘汰掉就可以。这个KV操作的难点在于数据量很大,准确来说是特征的数据量很大。不过和标签不同,特征在整个拼接过程中只需要增查,并不涉及修改,于是可以通过将其从KV核心DB分离来改善性能。另外,推荐系统中道具的总数量远远少于用户,而且除了库存之类的易变特征外,大部分道具特征更新频率很低,每天打一个包就可以。由于每条推荐记录都包含多个道具,插入稳定道具特征很可能会带来大量的冗余数据,从后台导入道具特征包是更合理的选择。道具特征包在拼接窗口内会存在多个版本,是否真的能够减少总存储空间还要看具体业务场景。

  要获得理想的性能,KV单元需要使用本地SSD作为存储介质,那意味着每个单元的承载能力是比较有限的。不过这里的推荐系统本来就是同时服务很多用户的,可以根据根据用户ID分流任务到多个KV单元处理。在拼接同时原始数据也要备份到HDFS,在KV单元出现异常时方便利用备份数据进行重建。

真的这么简单吗?

  理想情况下,收集到的用户的行为应该是存在清晰脉络的,而实际上这过于奢侈。且看如下案例:

  用户浏览了A道具,很喜欢,因为比较贵就先点了收藏;接下来他又浏览了B道具,觉得不错,不过和A道具比还是差那么一点意思;再后面他看C道具的图片毫无吸引力,直接跳过;最后他浏览了D道具,感觉还是B道具好,倒回去下单了B道具;又过了一天,他用过B道具后有点后悔,从搜藏里捞出A道具并下了单。

  假定采集的标签分别是浏览和下单,那么从上帝视角可以知道这次推荐对应的真实样本应该是A11、B11、C00、D10。可是数据科学家并没有上帝视角,此时只能名侦探附体,使用一定的策略去尽可能还原真相了。策略和具体业务场景紧密相关,超出了本文“浅谈”的定位,就不再继续展开了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 样本拼接要做什么?
  • Key-Value is All You Need
  • 真的这么简单吗?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档