一、什么是推荐系统
随着互联网的发展,信息不断丰富的同时,也带来了信息过载问题。用户在面对海量信息的时候越来越难以区分。搜索引擎能够帮助用户根据关键词来筛选需要的信息,但是当用户无法明确关键词的时候,选择困难症患者就要发愁了。
推荐系统可以通过一定的方式将用户和物品(比如文章、物品、视频、好友信息等)联系起来,从而帮助用户发现他们可能感兴趣的信息。推荐系统需要依赖用户行为数据,并通过应用的个性化页面展示推荐结果,进而提高应用的点击率和转化率。
二、应用场景
在电商领域,比较典型的是亚马逊的个性化推荐系统,被称为“推荐系统之王”。亚马逊有 20%~30% 的销售额来自于推荐系统。主要形式包括个性化推荐列表、相关推荐列表及打包销售等。
个性化推荐列表:将那些和用户喜欢的物品比较相似的物品,或者用户好友喜欢的物品推荐给用户。
相关推荐列表:当用户购买一件物品后,将那些购买此物品的用户也经常购买的其他物品,或者浏览过此物品的用户也经常购买的其他物品推荐给用户。
打包销售:当用户单击某个物品的购买按钮时,将那些其他用户在购买此物品时,连同购买的其他物品推荐给用户。
其他推荐场景和电商推荐原理类似,包括电影和视频网站:爱奇艺、抖音,个性化音乐网站:网易云音乐、豆瓣FM,社交网络:QQ、微博,基于位置的服务:美团、高德,个性化资讯和广告:百度、今日头条等。
三、评测
1. 实验方法
实验方法包括:离线实验、用户调查和在线实验。
- 离线实验
1)通过日志系统获得用户数据并格式化为标准数据集。
2)将数据集切分为训练集和测试集。
3)利用训练集进行模型训练,利用测试集进行预测。
4)通过离线指标评测算法,对测试集的预测结果进行评测。
离线实验不会影响生产系统,不需要用户参与即可实验,速度快,可以测试大量算法,但无法计算商业上关心的指标,和实际情况存在差距。
-
用户调查
用户调查可以获得用户主管感受,但是招募测试用户代价较大,而且用户在测试环境下的行为和真实环境可能有所不同。 -
在线实验
可以通过在线 AB 测试来比较多个算法的差异,并获得真实指标,包括商业指标。但 AB 测试周期较长,一般只测试离线实验或用户调查中表现较好的算法。
2.评测指标
2.1 用户满意度
用户满意度主要是以在线问卷调查的形式获得。也可以通过统计购买率,点击率,停留时长和转化率等指标来衡量。
2.2预测准确度
预测准确度是最重要的离线评测指标。可以将包含用户历史行为记录的数据集切分为训练集和测试集,利用训练集建立用户行为预测模型,利用测试集进行预测,计算测试集的预测行为和真实行为的重合度即为预测准确度。
– 评分预测(预测用户对物品的评分)
评分预测的准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。将测试集中某用户u对某物品i的真实评分记作rui,测评分记作,那么RMSE的定义为:
MAE的定义为:
假设我们用一个列表records存放用户评分数据,令records[i] = [u, i, rui, pui] ,其中 rui 为用户u 对物品i的真实评分,pui 为用户u对物品i的预测评分,下面代码实现了 RMSE 和 MAE 的计算:
def RMSE(records):
return math.sqrt(s