一、概述:
1.定义
帮助用户快速发现有用信息的工具,不需要用户提供明确的需求,而是通过分析用户的历史行为给用户的兴趣建模
2.重要模块
用户建模模块、推荐对象建模模块、推荐算法模块
二、推荐算法
比如:规则算法、基于内容的算法、协同过滤的算法等,见下图:
三、评测指标
1.用户满意度:
用户调查获得用户满意度主要是通过调查问卷的形式,是最重要的指标
2.预测准确度
①评分预测(RMSE+MAE):
预测用户对物品的评分行为成为评分预测,评分预测模型通过对用户的历史物品评分记录进行建模,进而得到用户的兴趣模型,然后使用该模型预测用户未见过商品的评分,一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算
RMSE:均方根误差
MAE:平均绝对误差,对系统要求更加的苛刻
②TopN推荐:
预测准确率指标一般是精确率(precision)和召回率(recall),通过推荐模型得到的推荐列表与用户在实际场景中(测试集)的行为列表进行对比。
③覆盖率:
一个推荐系统对物品长尾的发掘能力,推荐系统所有推荐出来的商品集合数.占总物品集合数的比例.如果所有的物品都出现在推荐列表中,并且出现的次数都差不多,那么推荐系统发掘长尾的能力就很好.
用信息熵和基尼系数来定义覆盖率.
信息熵定义覆盖率: 其中是物品的流行度除以所有物品流行度之和
基尼系数定义覆盖率:
④多样性:
所有物品之间的不相似性
用户推荐列表的多样性:
推荐系统整体的多样性:
⑤AUC曲线:
ROC曲线下与坐标轴围成的面积,关心正负样本之间的分数高低
⑥健壮性:
任何一个能带来利益的算法系统都会被人攻击,这方面最典型的例子就是搜索引擎(作弊和反作弊斗争)。推荐系统目前也遇到了同样的作弊问题,而健壮性指标衡量了一个推荐系统抗击作弊的能力。
最著名的作弊方法:行为注入攻击
算法健壮性的评测主要利用模拟攻击
在实际系统中,提高系统的健壮性,除了选择健壮性高的算法,还有以下方法:
- 设计推荐推荐系统时尽量使用代价比较高的用户行为
- 在使用数据前,进行攻击检测,从而对数据进行清理
四、召回:
召回层: 快速的筛选,保证相关物品的召回率
排序层: 精准的排序结果
1.多路召回策略:
2.Embedding召回:
将稀疏的向量(如one-hot编码)表示转换成稠密的向量,Embedding相当于是对one-hot做了平滑
主流的Embedding技术:
- text embedding
- image embedding
- graph embedding
常见的text Embedding的技术有: - 静态向量:word2vec, fasttext, glove
- 动态向量:ELMO, GPT, BERT