推荐系统是向用户建议有用物品的软件工具和技术。推荐技术实质上是收集各类有用数据,对用户、物品以及上下文这样的三元组进行打分,从而实现物品之间的对比,很方便的获得排序结果。具体怎样的数据算是有用数据,不一样的应用场景有不一样的理解。好比对于电子商务场景来讲,物品的描述、物品的属性、用户的购买历史、用户对于物品的评价、用户之间的联系等等都是有用信息。对于旅游和餐饮相关的场景来讲,用户所处的位置、用户的人口统计学信息、酒店的历史评价、用户的查询历史等等都是有用信息。算法
根据不一样用户获得的推荐结果是否有差别,推荐系统能够分为个性化推荐系统和非个性化推荐系统。一般咱们研究的推荐技术是适用于个性化推荐系统的推荐技术。非个性化推荐相关的技术常常应用于一些网站或者应用的榜单,或者商业应用的冷启动阶段。函数
另外,推荐系统中还存在一种被普遍使用的推荐技术,协同推荐。该技术主要是根据类似用户的偏好来为目标用户进行推荐。理论依据是,若是这个活跃的用户之前与一些用户有类似爱好,那么来自这些类似用户的其余推荐应该是相关的,这些推荐也是此活跃用户感兴趣的。不过协同推荐技术须要目标用户已有必定的活动记录,应用已经可以较为准确地找到其类似用户集合,从而对其偏好进行很好的建模。所以,协同过滤技术对于冷启动阶段的推荐有点一筹莫展。工具
推荐系统的功能能够分别从推荐系统的服务提供商以及用户两个方面来进行总结。性能
首先对于推荐系统的服务提供商,推荐系统主要有以下的一些功能:网站
对于推荐系统的用户,推荐系统主要有以下的一些功能:对象
推荐系统本质上是综合利用各类信息、收集各类数据来对用户、物品以及上下文这样的三元组进行打分。一般推荐系统可以利用的数据主要来自三个方面:物品、用户以及事务。不一样领域的推荐系统由于领域的侧重点不一样,对于不一样来源的数据利用的程度不同。排序
推荐技术是推荐系统的核心,推荐系统为了识别对用户有用的物品,必须为用户预测出有推荐价值的物品。推荐技术指的是那些针对具体用户,可以预测一些物品的效用性,或者至少对物品的效用性可以进行比较的技术。形式化来讲,推荐技术指的是构建一个打分函数f,该函数可以对<用户、物品、上下文>这样的三元组进行打分评估。事务
一般推荐技术能够分为以下几类:资源
推荐系统应用的领域是算法选择的重要影响因素。产品
对于推荐系统的测评是衡量一个推荐系统的好坏的重要依据,可是对于目前商用的推荐系统进行测评并非一件很容易的事情。整体来讲,推荐系统的测评能够分为三个类别:离线测评、在线测评以及集中的用户研究。离线测评通常是在流行的基准数据集上对推荐系统进行测评,多见于学术研究领域。在线测评是指将推荐系统上线到实际的应用场景,根据真实用户的反馈对系统进行评价,一般这样的测评方式用于对商用推荐系统的测评。不过因为真实场景数据量大,涉及用户多,容易使用户产生很差的体验,在线测评成本比较高。集中的用户研究是当在线测评不可行或者太冒险时采用的一种测评方法,该测评要求一小群用户执行随着系统变化的不一样的任务,从而完成对真实场景的模拟。
通常推荐系统的评测指标包括一般的信息检索指标、精准度、覆盖率、冷启动、信心值、可信度、新颖性、风险度、惊喜度等等。不一样的推荐系统对不一样的特性有本身的偏好,所以对于各评价指标的重视程度也不太相同。
有效的推荐系统须要获得用户的信任。一般信任来自于两个方面:对推荐系统其它用户的信任以及对推荐系统自己的信任。对推荐系统其它用户的信任有利于营造一个良好的社区环境,例如对于小红书中对于知名博主的信任。对推荐系统自己的信任须要推荐系统提供高质量可解释的推荐结果。 一般咱们也能够经过提升用户对推荐系统其它用户的信任来提高用户对于推荐系统自己的信任。
推荐系统的解释在推荐系统中扮演着重要的角色,推荐系统能够经过解释实现如下七大功能:透明度、可反馈性、信任、有效性、说服力、高效性、满意度。
另一种交互模式是会话系统,会话系统主要是解决了传统推荐系统一次性收集全部输入数据,并且只返回一次结果这样的模式带来的问题。基于会话的推荐系统,容许用户和推荐系统进行屡次交互,用户能够对推荐系统提供的推荐进行修改和反馈,使得推荐系统可以更好地对用户偏好进行建模,从而返回更高质量的推荐结果。