引言
信息时代到来以后,我们被各种各样海量的信息所淹没,从新闻、广告、电商、直播、短视频等各种涉及这些场景的APP中,大量个性化的信息被推送到我们眼前。例如在使用得物APP购物的过程中,我们也常常会听到这样的问题,为什么会给我推这双鞋/这件衣服?为什么浏览收藏过的商品反复出现在推荐流中?推荐流是怎么猜测我的喜好的?推荐的排序逻辑是怎样的,都考虑了哪些因素?能不能主动增加某些类目的曝光量?这些种种的问题,都和我们的排序模型、排序逻辑有关,下面就让我们来聊聊推荐系统中是如何对商品做排序的。
图1. 得物APP首页推荐瀑布流
推荐系统
首先来简单说一下推荐系统的基本架构,借用youtube论文中的一张图片来说明。推荐系统的核心目标是从我们的总商品库中,为用户挑选出他最感兴趣的一部分商品,从而节省用户时间,也提高平台的转化效率,为交易的顺利进行提供助力。除开一些工程实现部分的细节,整个过程可以大致分为两个阶段,即召回(candidate generation)和排序(ranking),其中召回的任务是从海量商品中选取部分用户“大概率”感兴趣的商品集,而排序则负责将召回选出来的这部分商品仔细分析,按照用户可能感兴趣的程度(probability),从高到低进行排序,展示给用户观看,整个过程在毫秒级的时间内完成。
图2. 引用自论文:Deep Neural Networks for YouTube Recommendations
召回层面的策略和逻辑有很多,也演化了很长一段时间,不过这不是我们今天聊的重点,我们来详细聊聊,当我们拿到了召回结果,大概在一万件以内的规模下,模型是怎样确定他们的先后顺序的,机器怎样自动化地计算出分数来评估用户对他们的感兴趣程度的。
排序模型的发展也有很长一段时间了,从互联网逐渐兴起开始,为用户快速筛选出有价值的信息一直是一件非常核心的事。我们不妨来看看,为了完成这项任务,都经历了哪些演变过程。
先看一个简单例子,一位女性用户来到我们平台,我们可以拿到的信息有她的性别、访问时间、行为历史记录等,假设她之前逛了逛衣服,收藏了一双鞋,最近又在浏览吹风机,而我们的召回候选集中又恰好