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