Mahout 基于内容的推荐

数据挖掘 Python 推荐系统 apache-mahout
2022-01-24 17:28:25

是否可以使用 Mahout 获得类似产品的推荐?

例如:

我有具有以下属性的电影数据集

电影名称、演员 1、演员 2、女演员 1、女演员 2、导演、主题、语言

现在给定一个 Movie_name,系统应该根据属性推荐前 3 部相似的电影。

这可以使用 Mahout 来完成吗?如果是怎么办?

1个回答

通常,这是使用spark-rowsimilarity算法完成的——它是一类基于内容的推荐。但是,执行此操作的实际过程非常简单。以下是步骤:

  1. 对于每部电影,将您的分类变量转换为列。假设 actor_1 有 Brad Pitt、Daniel Craig 和 Vin Diesel 出演不同的电影。这将变成三列,其中 1 表示每个演员都有哪些电影。您的电影矩阵将如下所示:

    Movie Name, Has_Brad_Pitt, Has_Daniel_Craig, Has_Vin_Diesel, ...
    MI-6      ,     1        ,       0         ,     0         , ...
    Fast&Furios,    0        ,       0         ,     1         , ...
    Casino Royale,  0        ,       1         ,     0         , ...
    
  2. 现在,要找到电影的相似度得分,您只需计算两个向量的叉积。值越高,它们就越相似。

这可以通过spark-rowsimilarity算法一次性完成。您可能需要在编码分类变量方面做一些工作。