机器学习:推荐算法
学习目标
要求:
了解推荐算法的基本概念
掌握推荐算法的类别
掌握基于协调过滤的推荐算法
了解其他常见的推荐算法
基本概念
推荐算法是一种基于用户行为、偏好、物品特征等数据,通过特定的数学模型和计算方法,为用户提供个性化物品推荐的技术。
其目的是在信息过载的情况下,帮助用户更高效地发现感兴趣的物品,同时也能帮助商家或平台提高用户的参与度和转化率。
类别
- 基于内容的推荐算法:
根据物品的内容特征(如文本描述、标签、属性等)来计算物品之间的相似度,为用户推荐与他们之前喜欢的物品在内容上相似的其他物品。
- 协同过滤算法:
利用用户与物品的交互数据(如评分、点击、购买等),找到与目标用户兴趣相似的其他用户(邻居),或者找到与目标物品相似的其他物品,然后基于邻居的行为或相似物品的信息为目标用户进行推荐。
- 基于图结构的推荐算法
利用图模型来进行推荐的方法,它将用户和物品表示为图中的节点,通过分析图中节点之间的关系来生成推荐结果。
- 混合推荐算法:
将多种不同的推荐算法进行组合,综合利用它们的优势,以提高推荐的准确性和多样性。
基于协调过滤的推荐算法
协同过滤算法主要基于用户行为数据,如用户对物品的评分、点击、购买等操作,发现用户之间或物品之间的相似性,然后利用这些相似性为用户提供个性化推荐。
其核心假设是:过去行为相似的用户,在未来对物品的偏好也可能相似;或者用户对相似物品的偏好具有一致性。
基于协调过滤的推荐算法,可分为 基于用户的协调过滤 和 基于内容的协调过滤。
关键步骤:
| 基于用户的协同过滤 | 基于物品的协同过滤 | |
| 数据收集 | 收集用户对物品的显式评分数据(如用户对电影的打分)或隐式行为数据(如用户的浏览记录、购买记录等) | |
| 相似度计算 | 常用欧氏距离、余弦相似度、皮尔逊相关系数等计算用户之间的相似度,如余弦相似度通过计算两个用户评分向量夹角余弦值衡量相似程度,夹角越小,余弦值越大,用户越相似 | 常用杰卡德相似系数等,根据用户对不同物品的共同评分情况计算物品之间的相似性,如物品 A 和 B 的杰卡德相似系数等于同时喜欢 A 和 B 的用户数量除以喜欢 A 或 B 的用户总数 |
| 邻居选择 | 依据相似度结果,选与目标用户相似度高的若干用户作为邻居 | 为目标物品找与其相似度高的若干物品作为邻居 |
| 推荐生成 | 根据邻居用户对物品的评分或偏好,为目标用户推荐邻居喜欢但目标用户未接触的物品,按评分预测值或推荐得分排序 | 当用户对某物品感兴趣时,依据相似物品的流行度、用户对相似物品的历史评分等,推荐与其相似的其他物品 |
| 优点 | 1. 不需要对物品进行内容分析,适用于文本、图像、音频等各种类型物品,只要有用户行为数据即可推荐 2. 能够发现用户的潜在兴趣,为用户推荐新颖物品 3. 具有较好的个性化推荐效果,能根据用户独特行为模式进行个性化推荐,推荐结果更符合个人偏好 |
1.准确性较高:基于用户对物品的实际行为数据计算相似度,能较好地捕捉物品之间的真实关联,推荐结果相对准确。 2.推荐结果可解释性强:用户容易理解推荐的物品与自己已喜欢的物品之间的关系。 3.稳定性较好:物品的特征相对稳定,不像用户的兴趣可能会频繁变化,基于物品的协同过滤算法在不同时间点的推荐结果相对稳定,不会出现较大波动。 |
| 缺点 | 1. 数据稀疏性问题:实际中用户行为数据稀疏,大部分用户只对小部分物品评分或操作,导致相似度计算不准确,影响推荐效果 2. 冷启动问题:新用户或新物品因缺乏足够行为数据,难以计算与其他用户或物品的相似度,无法有效推荐 3. 可解释性相对较差:用户难以理解推荐某些物品的原因,可解释性不如基于内容的推荐算法 |
1.数据稀疏性问题:同基于用户的协同过滤一样,在实际应用中,用户行为数据往往是稀疏的,这会导致物品之间的相似度计算不准确,影响推荐效果。 |
计算相似度的方法:
- 欧式距离

- 余弦相似度

- 皮尔逊相关系数

- 杰卡德相似系数

其他常见的推荐算法
基于图结构的推荐算法:
原理
将用户 - 物品的交互数据构建成一个二分图,图中的节点分为用户节点和物品节点,边表示用户与物品之间的交互关系,如用户对物品的评分、购买、浏览等行为。通过在这个图结构上进行分析和计算,挖掘出用户与物品之间的潜在关联,从而为用户推荐可能感兴趣的物品。
关键步骤
- 图构建:根据用户 - 物品的交互数据,创建用户 - 物品二分图。每个用户和物品都对应图中的一个节点,当用户与物品之间存在交互时,就在相应的用户节点和物品节点之间建立一条边。边的权重可以根据交互的强度来设置,例如用户的评分高低、购买次数等。
- 节点嵌入:将图中的节点(用户和物品)映射到低维向量空间中,以便于计算机进行处理和分析。常用的方法有基于深度学习的图嵌入算法,如 DeepWalk、Node2Vec 等。这些算法通过在图上进行随机游走,生成节点的序列,然后利用自然语言处理中的词向量模型(如 Word2Vec)来学习节点的向量表示。
- 相似度计算:在得到用户和物品的向量表示后,可以使用各种相似度度量方法来计算用户与物品之间的相似度,如余弦相似度、欧式距离等。相似度越高,表示用户对该物品的潜在兴趣越大。
- 推荐生成:根据用户与物品的相似度,为每个用户生成一个推荐列表。通常会选择相似度较高的若干物品作为推荐结果,并按照相似度得分进行排序。
优缺点
| 优点 | 缺点 |
| 能够捕捉复杂关系:图结构可以很好地表示用户与物品之间的复杂交互关系,以及物品之间的关联关系,从而更全面地挖掘用户的兴趣和偏好。 可扩展性强:可以方便地融入其他信息,如用户的属性信息、物品的内容信息等,通过将这些信息也表示为图中的节点和边,进一步丰富图的结构,提高推荐的准确性。 适应性好:对于不同类型的数据和应用场景具有较好的适应性,无论是评分数据、行为数据还是其他类型的数据,都可以通过合适的方式构建图结构并进行推荐。 |
计算性能:图构建、节点嵌入及相似度计算计算量大,处理大规模数据时算法效率低、系统响应慢 可解释性:模型内部计算复杂,虽图结构直观,但推荐结果解释性不如简单算法,用户难理解推荐原因 数据适配: 存在数据稀疏问题,用户 - 物品交互数据稀疏使节点连接少,影响节点嵌入与相似度计算,降低推荐效果 |
基于关联规则的推荐算法:
通过分析用户行为数据,发现物品之间的关联规则,例如 “购买了商品 A 的用户通常也会购买商品 B”,然后根据这些规则为用户进行推荐。
基于模型的推荐算法:
利用机器学习或深度学习模型,如矩阵分解、神经网络等,对用户和物品的数据进行建模,学习用户的偏好模式和物品的特征表示,从而进行推荐。以矩阵分解为例,它将用户 - 物品评分矩阵分解为用户特征矩阵和物品特征矩阵,通过这两个矩阵的乘积来预测用户对未评分物品的评分,进而进行推荐。
基于知识的推荐算法:
利用关于用户和物品的领域知识、本体知识等来进行推荐。例如,根据用户的年龄、性别、职业等信息以及物品的功能、适用场景等知识,为用户推荐合适的物品。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)