1.1 推荐系统简介
推荐系统是向用户建议有用物品的软件工具和技术。推荐技术实质上是收集各种有用数据,对用户、物品以及上下文这样的三元组进行打分,从而实现物品之间的对比,很方便的得到排序结果。具体怎样的数据算是有用数据,不同的应用场景有不同的理解。比如对于电子商务场景来说,物品的描述、物品的属性、用户的购买历史、用户对于物品的评价、用户之间的联系等等都是有用信息。对于旅游和餐饮相关的场景来说,用户所处的位置、用户的人口统计学信息、酒店的历史评价、用户的查询历史等等都是有用信息。
根据不同用户得到的推荐结果是否有差异,推荐系统可以分为个性化推荐系统和非个性化推荐系统。通常我们研究的推荐技术是适用于个性化推荐系统的推荐技术。非个性化推荐相关的技术经常应用于一些网站或者应用的榜单,或者商业应用的冷启动阶段。
另外,推荐系统中还存在一种被广泛使用的推荐技术,协同推荐。该技术主要是根据相似用户的偏好来为目标用户进行推荐。理论依据是,如果这个活跃的用户以前与一些用户有相似爱好,那么来自这些相似用户的其他推荐应该是相关的,这些推荐也是此活跃用户感兴趣的。不过协同推荐技术需要目标用户已有一定的活动记录,应用已经能够较为准确地找到其相似用户集合,从而对其偏好进行很好的建模。因此,协同过滤技术对于冷启动阶段的推荐有点束手无策。
1.2 推荐系统的功能
推荐系统的功能可以分别从推荐系统的服务提供商以及用户两个方面来进行总结。
首先对于推荐系统的服务提供商,推荐系统主要有如下的一些功能:
- 增加物品销售数量(提高转化率)
- 出售更多种类的物品
- 增加用户满意度
- 增加用户忠诚度
- 更好地了解用户需求
对于推荐系统的用户,推荐系统主要有如下的一些功能:
- 发现一些好的物品
- 发现所有好的物品
- 产品注解(一个电视推荐系统会标识在电子节目菜单中出现的哪些电视节目是值得观看的)
- 推荐系列产品
- 搭配推荐
- 闲逛(有些人逛淘宝、天猫只是为了消磨时间。用户满意度的体现)
- 发现可信的推荐系统(用户忠诚度)
- 自我表达
- 帮助他人
- 影响他人
1.3 数据和知识资源
推荐系统本质上是综合利用各种信息、收集各种数据来对用户、物品以及上下文这样的三元组进行打分。通常推荐系统能够利用的数据主要来自三个方面:物品、用户以及事务。不同领域的推荐系统因为领域的侧重点不同,对于不同来源的数据利用的程度不一样。
- 来自物品的数据:物品是被推荐的对象集。物品具有复杂性和有价值或效用的特定。物品中包含的信息主要是物品的一系列属性和特征。例如,对于电影来说,导演信息和演员信息以及剧情简介是电影十分重要的属性和特征。
- 来自用户的数据:为了实现个性化推荐,推荐系统在推荐的时候会考虑用户的一系列信息,例如,用户的人口统计学信息、用户的社交关系、用户的历史记录等等,这些信息有利于推荐系统对用户的偏好进行建模,从而更好地为用户完成推荐服务。在个性化推荐中,用户模型始终起着关键作用。
- 事务数据:事务是指用户和物品之间的关系。我们一般将一个事务看作用户和推荐系统进行交互的一条记录。通常,评分是推荐系统收集交易数据的最流行的方式。评分包括如下的一些形式:数字评分、序数评价、二元制评价、一元制评价以及关联用户和物品的标签(也就是用户对某些特定物品打的标签,比如针对某一部电影,用户可能的标签有“太长”、“演员演技好”等)等等。
1.4 推荐技术
推荐技术是推荐系统的核心,推荐系统为了识别对用户有用的物品,必须为用户预测出有推荐价值的物品。推荐技术指的是那些针对具体用户,能够预测一些物品的效用性,或者至少对物品的效用性能够进行比较的技术。形式化来说,推荐技术指的是构建一个打分函数f,该函数能够对<用户、物品、上下文>这样的三元组进行打分评估。
通常推荐技术可以分为如下几类:
- 基于内容的推荐技术:系统为用户推荐与他们过去的兴趣类似的物品。
- 协同过滤:找到与用户有相同品味的用户,然后将相似用户过去喜欢的物品推荐给用户。
- 基于人口统计学的推荐技术:这种类型的推荐系统推荐物品时是基于人口统计信息的。
- 基于知识的推荐技术
- 基于社区的推荐技术:主要是利用了用户的社交关系。依赖用户朋友的偏好。
- 混合推荐系统
1.5 应用与评价
推荐系统应用的领域是算法选择的重要影响因素。
对于推荐系统的测评是衡量一个推荐系统的好坏的重要依据,但是对于目前商用的推荐系统进行测评并不是一件很容易的事情。总体来说,推荐系统的测评可以分为三个类别:离线测评、在线测评以及集中的用户研究。离线测评一般是在流行的基准数据集上对推荐系统进行测评,多见于学术研究领域。在线测评是指将推荐系统上线到实际的应用场景,根据真实用户的反馈对系统进行评价,通常这样的测评方式用于对商用推荐系统的测评。不过由于真实场景数据量大,涉及用户多,容易使用户产生不好的体验,在线测评成本比较高。集中的用户研究是当在线测评不可行或者太冒险时采用的一种测评方法,该测评要求一小群用户执行随着系统变化的不同的任务,从而完成对真实场景的模拟。
一般推荐系统的评测指标包括通常的信息检索指标、精准度、覆盖率、冷启动、信心值、可信度、新颖性、风险度、惊喜度等等。不同的推荐系统对不同的特性有自己的偏好,因此对于各评价指标的重视程度也不太相同。
1.6 推荐系统与人机交互
有效的推荐系统需要得到用户的信任。通常信任来自于两个方面:对推荐系统其它用户的信任以及对推荐系统本身的信任。对推荐系统其它用户的信任有利于营造一个良好的社区环境,例如对于小红书中对于知名博主的信任。对推荐系统本身的信任需要推荐系统提供高质量可解释的推荐结果。 通常我们也可以通过提高用户对推荐系统其它用户的信任来提升用户对于推荐系统本身的信任。
推荐系统的解释在推荐系统中扮演着重要的角色,推荐系统可以通过解释实现以下七大功能:透明度、可反馈性、信任、有效性、说服力、高效性、满意度。
另外一种交互模式是会话系统,会话系统主要是解决了传统推荐系统一次性收集所有输入数据,而且只返回一次结果这样的模式带来的问题。基于会话的推荐系统,允许用户和推荐系统进行多次交互,用户可以对推荐系统提供的推荐进行修改和反馈,使得推荐系统能够更好地对用户偏好进行建模,从而返回更高质量的推荐结果。