1、推荐系统目的

推荐系统是通过分析提取出用户的历史偏好数据,并结合用户之间的偏好关系以及项目与项目的相似程度,推测出目标用户可能喜欢的物品并将其推荐给用户。

2、推荐系统解决的问题

信息超载现象。
信息超载(Information overload)指信息接收者或处理者所接收的信息远远超出其信息处理能力。

3、主流的推荐算法

主要分为四类,即基于内容推荐、协同过滤推荐、基于深度学习推荐以及混合推荐。这里放上思维导图分类更为直观。

java 个性化智能推荐算法 算法个性化推荐概念_算法

4、总结各个算法的思想(算法步骤)

  1. 基于内容推荐算法
    【算法思想】
    通过收集购买信息,依据其中项目的相关信息选择内容上相似的项目,作为最终结果,其中项目特征信息主要包含其标签、评论、属性等。

【算法步骤】
Step 1: 抽取该用户的一些特征用来表征这个物品。
Step 2: 根据用户的历史行为数据信息学习出用户感兴趣的物品特征,即构造用户偏好文档。
Step 3: 得出的用户偏好文档和待推荐物品的特征(推荐项目文档),确定出关联性最大的一组物品作为推荐列表并将其推荐给用户。

【注】用户偏好文档和推荐项目文档使用关键字表示项目的特征,即TF-IDF技术(NLP)
————————————————————

【TF-IDF基本思想】

关键字k在文档D中出现次数越多,表示k对文档D的重要性越大,则越能通过k来表达文档D的语义。

【定义】

设文档集中所含有的文档数为 N,文档集中含有关键字 ki的文档数为 ni,fij表示关键字 ki在文档 dj中出现的次数,ki在文档 dj中的词频 TFij定义为:

java 个性化智能推荐算法 算法个性化推荐概念_机器学习_02

  1. 协同过滤推荐算法
    【思想】根据与目标用户的兴趣偏好相似的最近邻的偏好来进行推荐。
  • 基于内存的协同过滤:通过用户-项目评分信息,针对目标用户估计对某一项目的评分。
  • 基于模型的协同过滤,通过目标用户的历史偏好搭建用户模型并据此进行推荐。
2.1 基于用户的协同过滤(基于内存)

【基本思想】
通过海量的用户历史行为数据挖掘出他们对物品的偏好程度,并通过计算找到与目标用户历史兴趣偏好相似的邻居用户组。通过邻居用户组的历史偏好数据,估计目标用户对邻居用户所偏好的物品的评分,进而找出评分最高的物品并将其推荐给目标用户。

【算法步骤】

  1. 相似度计算用户之间的相似度,得到相似度矩阵。
  2. 通过相应的算法来估算评分。
2.2 基于物品的协同过滤推荐算法(基于内存)

【主要思想】
通过所有的用户对物品 评价,发现物品之间的相似度,从而基于用户的历史偏好数据将相类似的物品推荐给目标用户。
【算法步骤】
基于物品的协同过滤方法首先计算各个项目之间的相似程度,根据目标用户评过分的项目,预测对某一特定项目的评分。

2.3 基于模型协同过滤推荐

java 个性化智能推荐算法 算法个性化推荐概念_推荐算法_03

  1. 基于深度学习推荐算法
    【基本思想】
    通过结合底层特征从数据中挖掘特征,形成更密集的高层语义的抽象,从而解决了传统机器学习中手动设计特征的问题。
  2. 混合推荐算法
    【基本思想】结合多种算法的优点混合在一起,成为一种新的推荐算法解决存在的问题。

5、常存在的问题及解决方案

  1. 冷启动问题
  • 用户冷启动:即如何向新进入系统的用户进行项目的推荐问题,新用户刚进入推荐系统的时候,系统并没有他的历史偏好及行为信息;
  • 物品冷启动:即处理如何将加入推荐系统的新物品推荐给可能对其感兴趣的用户;
  • 系统冷启动:即如何在新建立的网站上开发个性化推荐系统,此时网站上的用户数量和用户偏好都很少,只有部分商品的信息。

【解决方案】
1) 向用户提供如排行榜、热门名单等非个
性化推荐,待收集到一定的用户偏好信息时,再
通过个性化推荐向用户提供更为精确的结果。
2) 利用用户在进入网站时的注册信息来进
行推荐:如用户的性别、年龄、职业等做粗粒度
的个性化推荐;
3) 经用户授权后通过用户的网络社交平台
的账号进行登陆,导入用户在社交工具上的好友
数据,再将用户的好友喜欢的物品推荐给用户;
4) 通过用户偏好物品对用户进行推荐:需
要用户在登录时对一些物品给予意见,并收集用
户对这些物品的反馈,然后向用户推荐和这些物
品相类似的物品;
5) 专家作用:在出现系统冷启动问题时,
可以引入专家的知识,通过一定的方式在短时间
内建立起物品的相关度表

  1. 稀疏性问题
  1. 采用降维技术进行矩阵压缩是一种有效
    的解决方案。如采用奇异值分解去除噪音用户和
    项目以降低用户-项目评分矩阵的维数。
  2. 利用潜在语义索引技术将两个用户投影
    到一个低维的空间。
  3. 国内外学者对基于物品的 top- N推荐算
    法进行了改进,在预测时一方面考虑物品的 K个
    近邻,另一方面还考虑了此物品的影响集。另外,
    引入其他数据源,如用户的社交数据,用户之间
    的人际关系、用户所参加的群组等。基于这些社
    交数据进行推荐,在解决数据稀疏性问题上作出
    了一定的贡献。
  1. 可扩展性问题

6、加入了基于图的推荐算法

研究表明相比传统的推荐算法,将图结构与推荐算法进行融合在 推荐准确性、多样性和可扩展性等方面有更好的效果。

基于信任的方法,就是将社交网络融入其中,可以缓解冷启动问题。我们身处在基于图的世界,因此,社交网络可以看作是一个图,有基于二部图的推荐算法。之前看的那篇融合信任与随机游走的基于信任游走模型,这篇可以再阅读一下!