1 推荐系统简介
推荐系统可以说是机器学习和深度学习应用最广泛的领域,而且预期未来会更加流行和深入。它本质上是为用户和商品或服务之间建立一种连接,帮助用户更高效地享受到服务。
从用户的角度看,用户的个人偏好(兴趣)、历史行为、用户个人属性、用户关系网络等等都可以被称为 “用户信息”;从商品或服务角度看,名称、属性、标签、内容等等都是 “商品信息”;另外,在具体的场景中,用户的选择可能受时间、地点等一系列环境信息影响,这类信息被称为 “场景信息/上下文信息”。
由此,借用王喆老师的描述,可以得出推荐系统要处理的问题形式化定义:对于某个用户 U,在特定场景 C 下,针对商品构建一个函数,预测用户对特定候选商品 I 的效用,并据此对候选商品排序得到推荐列表的问题。定义中的函数在推荐系统中一般被称为 “推荐系统模型”。
2 推荐系统架构
提到 “系统”,那自然是个有机整体,其中一般会包括多个组成部分。推荐系统从大的层面来看主要包括两个方面:
数据和信息: 用户、场景、商品信息的定义、组成是什么?如何获取信息?如何处理、更新信息?如何传输、存储信息?
模型和算法: 如何选择模型、算法?如何训练?如何更新?如何评估?如何部署推理?
大概的整体架构如下:
3 推荐系统的评估(指标)
我们需要一些指标进行评价我们的推荐系统到底怎么样.
3.1 用户偏好/满意度
评价系统好坏最直接的方法是让用户投票,选择票数高的。或者也可以通过一些间接指标来衡量,比如购买率、停留时长、转化率等。
使用这种方法有一个注意事项:
该方法假定用户的权重一致,这在实际中很难应用,因为每个人的喜爱是一样的,有些人可能喜欢这个推荐系统,但是有些人不喜欢这个推荐系统(千人千面)
3.2 预测准确率
即根据推荐模型预测用户偏好的准确性。具体包括:评级准确性、使用准确性和排名准确性。
(1) 评级准确性:
即预测用户评级(评级高的自然可以推荐)——》这里是什么意思?
(实现用户的物品喜好偏好——》评级,然后再根据偏好实现相应物品的推荐)
(2) 使用准确性:
这种情况预测的不是用户具体Item的偏好,而是用户可能是使用的Item。
(大概是预测用户可能喜欢那些物品?)
(3) 排序准确性:
此时关注的是相对顺序,而不是绝对值。有两种方法:一种是定义好一组 Item 的顺序,让系统来预测正确的顺序,然后评估接近程度;另一种是评估系统排序对用户的效用。
(4) 覆盖率:
覆盖率是用来描述一个推荐系统对物品长尾的发掘能力,一个简单的定义可以是:推荐系统所有推荐出来的商品集合数占总物品集合数的比例。