如何构建电影推荐系统? [关闭]

Posted

技术标签:

【中文标题】如何构建电影推荐系统? [关闭]【英文标题】:How to build a movie recommender system? [closed] 【发布时间】:2011-07-12 07:42:34 【问题描述】: 最好的方法是什么? 使用了哪些算法?他们的优势和劣势是什么? 为什么当前的电影推荐系统无法提供好的推荐?

【问题讨论】:

可能webmasters.stackexchange.com 更适合这个答案 “为什么大多数电影推荐系统都很糟糕?”听起来不像是一个编程问题。也许我对 webmasters.stackexchange.com 的看法不对 这根本不是一个可以回答的问题。请不要将其转储到其他网站。 @Wooble 仅仅因为您不知道答案并不会使这个问题无法回答。如果它不适合 Stack Overflow,我可以理解。我不明白为什么,毕竟这是一个算法问题。 @melhosseiny - 这个问题太宽泛了。仔细阅读 NetFlix 奖项和分类系统,然后提出有针对性的问题。这个问题类似于问:“我希望我的电脑用英语与我交谈。我该怎么做?” 【参考方案1】:

这是一个非常开放的问题,涉及很多不同的概念。

作为初步讨论点,请考虑k-nearest neighbor algorithm。它广泛用于类似于电影选择器的问题。该算法的一个大问题是,在决定使用多少维度来分割特征空间并选择每个维度的属性时,人工输入会增加价值,而不是复制另一个维度的值。

与k-NN算法直接相关的是cluster analysis的字段。当您为在更分散的异常值中具有聚集的信息绘制数据点时,您可以直观地看到聚集点中存在某种相似性。您可能可以轻松地将一些分散的异常值与一个或另一个簇进行分组,但是在可以与两个或多个竞争簇匹配的簇之间会有许多点。解决这种困境的唯一方法是向数据点添加更多维度参数,以便将那些未提交的异常值吸引到一个块中。 (点击链接可查看成组数据的精美图片。)

这个简短的介绍引出了下一个概念:Pattern Recognition。这门学科是数学密集型的,是理论计算科学、统计学、人工智能、机器学习和千里眼等领域大量研究的主题。最后一个是半笑话,但它指出了您问题的症结所在:计算机如何预测您将来会做什么?简短的回答是它不能。较长的答案试图解释为什么你的品味和情绪在看似随机的时间以看似随机的方向变化。一个好的模式识别系统可能会挑选出 20 部你真正喜欢的电影,然后从你完全讨厌的其他 20 部电影中推荐另一部。系统哪里出错了?是在算法实现中,为您的特征空间维度选择参数的初始选择,还是因为其他人使用您的 Netflix 帐户订购“Howard the Duck”,你的个人资料变得一团糟? “巡航”和“海滩”?

“模式识别”的***页面列出了许多不同的算法和方法。您可以从那里开始阅读,以更好地了解个人的优势和劣势。您也可以尝试在 Theoretical Computer Science 堆栈中提出这个问题,以获得长发答案。

【讨论】:

【参考方案2】:

BellKor 的一支队伍赢得了Netflix Prize。因此,可以说,这种方法可能是最好的方法。

要对这些推荐系统的工作原理进行高级、直观的解释,请考虑以下情况。我每周看两次星球大战。现在,如果你要向我推荐一部我喜欢的电影,你会选择哪部电影?哈里森福特的电影?科幻电影?也许是 80 年代制作的电影?

推荐系统背后的重要理念是,他们越了解你喜欢什么(即什么类型、演员等),他们就能提供更好的推荐。

但是,如果您的喜好相互矛盾(例如,您喜欢《拯救大兵瑞恩》但也喜欢关于和平主义者的电影),那么很难向您推荐一部电影。

总之,很多推荐算法都需要知道:

    你喜欢什么:这包括知道在录制你喜欢的电影时使用什么功能集。例如。电影的类型是什么,电影中有哪些演员,等等。 哪些电影与您喜欢的电影相似。这涉及根据您在上一步中使用的功能集找到一个好的相似度指标。

【讨论】:

以上是关于如何构建电影推荐系统? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

6. 基于TFRS构建电影推荐系统

用Hadoop构建电影推荐系统

Keras深度学习实战(31)——构建电影推荐系统

如何构建推荐系统

使用 Python 构建电影推荐系统

使用 Python 构建电影推荐系统