推荐系统学习笔记之一——综述

  教材:《推荐系统 技术、评估与高效算法》。

  

推荐系统(Recommender System,RS)

    1、概念及出现原因。

    2、服务人群。

    3、功能。

    4、数据来源。

    5、现有技术。

    6、评估方法。

 

1、概念及出现原因

     推荐系统是一种向目标用户建议可能感兴趣物品的软件工具和技术 。如,建议用户购买什么物品、听什么音乐以及浏览什么网页等等。

  推荐系统起源于人的依赖性:人们在做事情作决策的时候总是依赖于别人的建议。比如,结婚生小孩听长辈的建议,找个番听舍友的建议,听一首歌看网友的建议等等。

 推荐系统正是将这种“我们大脑转换建议的过程”由计算机来实现。

 

2、服务人群

   推荐系统主要服务于缺乏经验和能力的用户,他们通常无法从大量可供选择的物品中选取处感兴趣的物品。比如当代,我们常常无法从海量的移动端推送的内容中选择有价值的阅览(信息过载)。

   我相信未来的推荐系统,一定是真正服务于个体或群体,将用户真正感兴趣的、有价值的东西放在用户面前。

 

3、功能

  那么,推荐系统再具体,又应该有什么功能呢?

  Herlocker等人的一篇论文(Evaluting collaborative filtering recommender systems(2004))定义了推荐系统能够实现的11个常见的功能,其中一些通过被认为是推荐系统的核心任务:

    发现一些好的物品  :RS预测用户对物品的喜欢程度,推荐喜欢程度高的。

    发现所有好的物品 :推荐所有能满足用户需求的物品。(与上一条不同的地方在于,推荐的全面性,比如在医疗领域,不能只推荐一些,要全部,要严谨郑重。)

    情境中的注解 :在给定的情境中(比如一个物品列表中),我们需要根据用户的长期偏好来确定这些物品的重要性。

    推荐系列产品 :这个思路是将物品的序列作为一个令用户满意的整体推荐出去,而不是关注于产生单一的推荐。(比如,推荐一本数据挖掘的书时,顺带一本推荐系统的书)

     搭配推荐 :提供一组完美搭配的物品。例如,旅游计划可能由某个特定区域的景点、住宿、节日等组成,从用户的角度看,需要的是整套方案而不是单一的去哪里旅游。

      闲逛 : 在这项任务中,用户知识简单地浏览目录而并不带有强烈的购买意图。(感觉差不多就是现在抖音、资讯类的打法了。)

     发现可信的推荐系统 : 有些用户不信任推荐系统,于是抱着试试看的态度取尝试推荐结果。这种任务中,系统需要提供特定的功能让用户测试系统的行为。

    完善用户画像 : 这需要用户向RS提供自己喜好的信息。(目前,一般资讯类的app都会在注册时填一堆的喜好。)

    自我表达 : 有些用户可能不关心系统提供的推荐结果,更关心自己的表达。

    帮助他人:有些用户乐于贡献信息,让社区能从他们的贡献中获得益处、

    影响他人 :有些用户的主要目的是显示的影响其他用户购买特定的产品。也有一些恶意用户可能利用系统来促进或抑制某些物品的销售。(恶意营销)

   自我表达、帮助他人、影响他人,这些功能的实现方式应该都是通过 评论评价 来实现的。

 

4、数据来源

  一些推荐技术(如协同过滤)所使用的领域知识少,只需要User-Item的评分矩阵。

  而另一些推荐技术则依赖于更多的知识。比如用户的身份特征、物品描述等。

  对于所需要的数据,RS一般将其分为三类:物品、用户、事务。

  物品: 物品是被推荐的对象集。

             在物品这里有个复杂度的概念,复杂度越低且价值越小的物品,越容易构建推荐系统。

             复杂度低且价值小的物品:新闻、网页、书籍、音乐、电影。

             复杂度高和价值达的物品:数码相机、手机、电脑等等。

  用户: 为了使推荐结果和人机交互个性化,推荐系统需要使用一系列的用户信息,这些信息如何组合使用取决于使用何种推荐技术。如在协同过滤(UserCF)中,用户被建模为一个简单的列表,一个包含对若干物品评分记录的列表,而在基于人口统计学的RS中,年龄、性别和职业等等社会统计学特征都会作为用户模型的属性。

         在一定意义上,RS可以被看作一个建立并使用用户模型来产生推荐的工具。

  事务: 我们通常将一个事务看作用户和RS进行交互的一条记录。 它一般就是原始数据。

 

5、现有技术

    推荐系统的实现技术多种多样,具体种类如下:

    基于内容(content-based):系统向用户推荐他们过去感兴趣类似的物品。

   协同过滤(collaborative filtering):这种方法是找到与用户有相同品味的用户,然后将相似用户过去喜欢的物品推荐给该用户。                 

    基于人口统计学(demographic):我们假设不同的人群应该产生不同的推荐。许多网站采用基于人口统计学且简单而有效的个性化解决方案。

    基于知识(knowledgr-based):基于知识的系统根据特定的领域知识推荐物品。这些知识是关于如何确定物品的哪些特征能够满足用户需求和偏好,以及最终如何确定物品对用户是否有用。

    基于社区(community-based) : 这种推荐系统依赖于用户朋友的偏好,这种技术在业界有种流行的表述“告诉我你的朋友是谁,我将知道你是谁”。

    混合推荐系统 (hybrid recommender system):混合着用。如协同过滤存在冷启动问题(面对新用户新物品没法推荐),而基于内容的方法没有这种限制。

 

6、评估方法

  一般在机器学习或数据挖掘问题中,我们对回归问题、分类问题都有一些一般化的衡量方法,比如准确率、召回率、精确率、AUC等,但是对于推荐系统RS来说,发展到今天,RS领域内人研究者发现光是这些单纯的指标已经不再具有太大的参考价值,它们并不能对用户的满意度、接受率做出准确的评价。

  推荐系统的测评分为三种:离线测评、在线测评和用户调查。

  在准确率之外,也有其他大量特性:覆盖率、冷启动、置信度、可信度、新颖性、风险度和惊喜度等。

 

 

推荐系统是ML/DM中发展了许多年的领域,在工业界的应用已经极其广泛,比如单纯的ML,在这方面有太多太多东西值得我们投入时间去学习,应用。

你可能感兴趣的:(推荐系统)