2.1 推荐系统范式
推荐系统的目标是为用户推荐可能喜欢的标的物,这个过程会涉及用户、标的物两个重要要素,我们可以根据这两个要素跟标的物的不同关联形式生成不同的推荐产品形态,即所谓的不同范式(paradigm,数学专业的读者不难理解范式的概念,如果不好理解可以将范式看成具备某种相似性质的对象的集合),这里每种推荐产品形态就是一种推荐范式。以笔者构建推荐系统的经验来看,可以将推荐系统总结为如下5种范式,这5种范式可以应用到产品的各种推荐场景中,后面会用视频APP来举例说明各种范式的具体应用场景。
范式1:完全个性化范式
完全个性化范式就是为每个用户提供个性化的推荐,这是粒度最细的一种推荐范式,精确到了每个用户。常见的“猜你喜欢”就是这类推荐,可以用于进入首页的综合类“猜你喜欢”推荐,进入各个频道(如电影)页的“猜你喜欢”推荐。图2-1是电视猫首页的兴趣推荐,用于为每个用户提供不一样的个性化推荐。
图2-1 电视猫首页兴趣推荐
范式2:群组个性化范式
群组个性化范式首先会将用户分组(根据用户的兴趣,将兴趣相似的用户归为一组),并为每组用户提供一个个性化的推荐列表,同一组用户的推荐列表一样,不同组用户的推荐列表不一样。
这里举一个在笔者公司利用范式2做推荐的例子。我们在频道页三级列表中,会根据用户的兴趣对列表做个性化重排序,将与用户更匹配的节目放到前面,提升节目点击转化,但是在实现时,为了节省存储空间,会先对用户聚类,同一类用户兴趣相似,针对他们的列表的排序是一样的,但是不同类的用户其列表是完全不一样的。图2-2所示的“战争风云”标签中,右边展示的节目集合总量不变,只是不同组的用户看到的排序不一样,排序是根据与用户的兴趣匹配度高低来降序排列的。
图2-2 电视猫频道页列表的个性化重排序
范式3:完全非个性化范式
完全非个性化范式是指为所有用户提供完全一样的推荐,这种推荐就是对所有用户统一对待,没有任何个性化成分。比如各类排行榜业务就是这种推荐范式。排行榜既可以作为首页上的一个独立的推荐模块,方便用户发现新热内容,也可以作为“猜你喜欢”推荐中新用户冷启动的默认推荐,图2-3是当用户未输入搜索关键词时搜索模块中给出的热门内容,也是采用该范式的例子。其实人工编排的推荐也属于完全非个性化推荐范式,只不过是人工进行的推荐,而排行榜则是通过算法来自动实现的。
图2-3 当用户无任何输入时电视猫搜索页面给出的排行榜推荐
范式4:标的物关联标的物范式
标的物关联标的物范式是指为每个标的物关联一组相关或者相似的标的物,作为用户在访问标的物详情页时的推荐,每个用户看到的关联推荐的标的物都是一样的。
当用户浏览一部电影时,可以通过关联相似的电影,为用户提供更多的选择空间(图2-4就是电视猫电影详情页关联的相似影片)。还可以在用户退出播放某个节目时,推荐用户可能还喜欢的其他节目。针对短视频,可以将相似节目做成连播推荐列表,用户播放当前节目结束时直接连播相似节目,提升节目分发与用户体验。
图2-4 电视猫电影的相似推荐就属于标的物关联标的物推荐范式
范式5:笛卡儿积范式
在笛卡儿积范式中,每个用户跟每个标的物的组合产生的推荐结果都不相同。以图2-4来说,不同用户在同一个视频的详情页看到的推荐结果都不一样。该范式跟范式4类似,只不过不同用户在同一个节目下推送的关联节目不一样,该范式会结合用户的兴趣,给出更匹配用户兴趣的关联节目。
用户数和标的物的数量往往都是巨大的,由于每个用户跟每个标的物的组合推荐结果都不一样,因此没有足够的资源可以事先将所有的组合推荐结果计算并存储下来,一般是在用户触发推荐时实时计算推荐结果并呈现给用户,计算过程也要尽量简单,确保在亚秒级就可以算完。比如利用用户的播放历史,过滤掉用户已经看过的关联节目,就是一种最简单的基于笛卡儿积范式的推荐。
下面通过图2-5来说明这5种范式,让读者有一个直观形象的理解。
图2-5 推荐算法的5种范式
总之,推荐系统不是孤立存在的对象,它一定要整合到具体的业务中,在合适的产品交互流程中触达用户,通过用户触发推荐行为。所以,推荐系统需要嵌入到用户使用产品的各个流程(页面)中。当用户访问首页时,可以通过综合推荐(范式1)来给用户提供个性化推荐;当用户访问详情页时,可以通过相似节目(范式4)提供相似标的物推荐;当用户进入搜索页尚未输入搜索内容时,可以通过热门推荐给用户推送新热节目(范式3)。这样在用户浏览的各个页面都有推荐,让推荐系统无处不在,才会使产品显得更加智能。所有这些产品形态基本上都可以用上面介绍的5种范式来囊括。