现代移动互联网充斥着各种各样的信息,如购物、新闻,短视频,直播等等,经常使用户迷失在海量的信息中,无法找到真正感兴趣的内容。
因此推荐算法应运而生,应用于各大领域:“吃”有美团、饿了么等;“穿”有淘宝等;“住”有蛋壳、自如等;“行”有汽车之家等;“娱乐”有抖音、快手等;“旅行”有携程、去哪儿等。
当你打开App,就会有各种的推荐场景映入眼帘,例如:猜你喜欢、为你推荐等。推荐主要是根据用户的历史行为、相似用户、及相似物品等信息,进一步分析用户的消费点进而触达用户。
在工业推荐系统中,推荐系统包含两个步骤:召回和排序。
(1)召回环节:主要根据用户部分特征,从海量的物品库里,快速找回一小部分用户潜在感兴趣的物品。此环节要求速度快。
(2)排序环节:排序环节可以融入较多特征,使用复杂的模型,精准地做个性化推荐。此环节要求精度高。
图1展示了推荐系统的整体架构。
图1 推荐系统框架图
二、召回算法介绍
召回环节是推荐系统中很关键的一个环节,但是大多数召回环节偏向策略型导向,技术含量不高。召回环节一般采用多路召回,随便想到一个策略就可以当做一路召回。图2展示了召回环节的多路召回策略。
图2 召回环节:多路召回策略
召回内容可分为非个性化召回和个性化召回。例如:热门召回、高点击或高转化召回、新物料召回等召回方式是非个性化召回;用户的兴趣标签或物品的标签、及协同过滤等召回方式是个性化的召回。接下来主要介绍一下有点技术含量的个性化召回。
2.1基于内容的协同过滤
以电影推荐为例,我们知道用户对于历史观看过的电影的评分,将原始数据格式转化为评分矩阵,如图3下所示:
图3 原始数据转化为评分矩阵
用户只看过少部分电影,我们想要知道对于未看过的电影,用户可能对其的喜爱程度(打分)是多高。建模的过程就是填充空白项的过程,这样就得到了所有用户对所有电影的评分(喜好程度),然后就可进行个性化推荐。这种协同过滤方法基于场景一般采用UserCF或者ItemCF。
UserCF基于用户的相似度进行推荐,特点是具有较强的社交特性,用户能够快速得知与自己兴趣相似的人最近喜欢的是什么。例如用户A和用户B的兴趣类似,如果用户A对周星驰的电影《功夫》比较感兴趣,则系统更倾向于向用户B推荐该电影。
ItemCF 更适用于兴趣变化比较稳定的应用,用户在一段时间内更倾向于寻找一类物品,这时利用物品相似度为其推荐相关物品是契合用户动机的。例如X电影和Y电影为相关程度较高的搞笑类电影,如果用户A对X电影比较感兴趣,则系统更倾向