什么是推荐系统

b站、快手、抖音怎么给你推荐你感兴趣的视频让你点“亿”点就是一小时?网易云、QQ音乐怎么生成你的每日推荐以及专属歌单?淘宝如何在你浏览的时候不断刺激你点开下一个商品?这些都是生活中推荐系统的应用,利用用户的偏好并进行相关推荐。

推荐系统应用的场景

· 电子商务

· 电影与视频平台

· 音乐平台

· 阅读平台

· 基于位置的服务,比如美团会申请获得用户的地址信息以方便推荐附近的酒店

· 社交网络,比如微信的视频号会在还有浏览之外出现一个红点

· 个性化广告,比如b站的主界面会推送一些个性化的广告

推荐类型

· 主页推荐
基于用户的兴趣进行推荐,每个人看到的都不同,比如淘宝的主界面、b站的主界面

· 条目推荐
在打开某个物品界面之后的推荐,比如在一本书的界面下方会推荐与之相关的书籍或者该店铺的其他书籍

推荐系统的架构

召回

根据用户的部分特征,从海量的物品库中快速找到部分用户感兴趣的物品,这是因为工业中需要在很短的时间内从亿级别单位的物品中迅速推荐一部分给用户。

排序

对于候选集,按照一定的规则进行打分排序,选取TopN进行推荐。这里候选集可能是不同来源的多个召回队列。比如矩阵分解的特征,用户的标签,社交网络推荐

【技术博客】推荐系统(一)简要介绍-Mo 动态

传统的推荐系统算法

itemCF

找到与目标用户兴趣相似的用户集合,找到这个集合中用户喜欢的且没有发生过行为的物品推荐给目标

userCF

计算物品的相似度,根据物品的相似度以及用户的历史行为生成推荐列表

隐语义模型

对于用户-物品矩阵,我们可将其分解为用户特征矩阵以及物品特征矩阵这两个维数较小的矩阵,然后根据用户的特征以及物品的特征计算用户对于物品的偏好程度进行推荐

基于图的模型

得到用户-物品的二分图,假设一个点从用户出发,那么它的轨迹就是用户-物品-用户-物品-用户-...-物品,该点最终以较高概率到达用户更偏好的物品上

数据类型

推荐系统中最重要的就是用户对于物品的行为数据,可分为显式反馈以及隐式反馈。前者包括用户对于视频的评分、购买商品、加入购物车等,后者包括用户的浏览记录等。

一条数据往往包括以下几个部分,用户ID、物品ID、行为类别,行为内容、行为权重、时间戳。行为类比如是购买、观看,行为内容比如是评论的文本,行为权重比如是浏览时长、打分分数。

常用模型评估标准

· 用户满意度 通过问卷或者在线实验获得,在电子商务中,如果用户对推荐物品产生点击行为,则表明他们是满意的

· 准确度 准确度是一个推荐算法预测用户行为的能力。因为该指标可以离线计算,方便了学者进行研究。在离线数据集中建立模型,并计算预测行为与测试集实际行为的重合度。

· 覆盖率 覆盖率描述一个推荐系统对于长尾物品的推荐能力,除了热门的物品之外,我们希望推荐系统能够推荐更多。

· 多样性 多样性描述了推荐系统对于不同兴趣领域推荐的能力,如果视频网站只推荐某一种类型的电影,用户就不会开心。

· 实时性 新闻第二天就鲜有问津,外卖新出的饭菜更值得推荐,在购买羽毛球后应该立刻给用户推荐羽毛球拍。

数据集

· https://tianchi.aliyun.com/dataset/dataDetail?dataId=46

· https://tianchi.aliyun.com/dataset/dataDetail?dataId=649

· https://grouplens.org/datasets/movielens/

前两个数据集来自阿里妈妈,类型为user ID, item ID, item's category ID, behavior type and timestamp,其中 behavior type 包括页面浏览、购买、加入购物车、对于物品的喜爱值。一共有987994个用户,4162024个物品,9439个物品类目,100,150,807条数据。

第三个来自推荐系统最经典的数据集,即Movielens。以其中1MB的ml-latest-small被广泛应用的ratings为例,包含用户ID,电影ID,用户对于电影的打分以及时间戳。

这篇只是做一个简要的介绍,在之后我会继续更新推荐系统的文章,欢迎大家来关注!!!
【技术博客】推荐系统(一)简要介绍-Mo 动态