如何实现这个推荐算法?

时间:2011-04-03 16:39:19

标签: algorithm recommendation-engine

我读过的大多数推荐算法文章都集中在用户评价项目的Netflix模型上。我想做的是略有不同(我认为)。

让我们说相反,我想创建一个网站,向用户展示两张汽车图片。然后,用户可以选择他们更喜欢哪辆车。用户可以像他/她喜欢的那样多次重复这个过程,但希望随着他们的继续,图片会变得越来越精致,以满足用户的喜好。

您将如何实施此算法?似乎一种可能的方式只是实现ELO排名算法并使用这些结果的顺序作为“评级”,但是存在严重的缺陷,因为多个项目不能被给予最大评级(用户可以如果能够对物品本身进行评级,那就已经完成了。)

对我来说似乎更有希望的另一种方法是预先确定每辆车的一般属性(例如颜色,车身类型,2门对4门等)并使用它们来了解属性的一般概念每个用户都喜欢并提出建议。

2 个答案:

答案 0 :(得分:1)

我会捅这个。

假设每辆车都有一组属性。如果这组属性被编码为矢量,一种可能的推荐方法是使用自组织映射(SOM)。 SOM的基本要点是输入向量的分类器。如果使用表示不同输入类别的输入向量训练SOM,SOM将开始将其存储向量聚类为更类似于每类输入。请注意,不保留原始输入向量。为了训练具有输入矢量的SOM,拾取当前在SOM中的最佳矢量,然后该矢量周围的区域变得更像输入。当然,请参阅维基百科http://en.wikipedia.org/wiki/Self-organizing_map

那么这如何适用于这种情况呢?好吧,一个SOM可以用来训练人们喜欢的图像,一个人可以接受他们喜欢的图像训练。即使没有他们喜欢的单一风格,群集也应该围绕他们喜欢/不喜欢的汽车形成。然后看看他们是否喜欢一辆没有被他们挑选过的汽车,那就是找出它与喜欢和不喜欢的团体相匹配的程度。请注意,在这种情况下,最好匹配彼此不相似或更不可能同时受欢迎的汽车。

当这个人第一次加入该网站时,允许他们立即从蝙蝠中挑选一些喜欢和不喜欢的东西来播种SOM可能是有利的。

祝你好运!

答案 1 :(得分:0)

Maby回答有点太晚,但你可能想检查一下this。这是关于麻省理工学院教授认为5星评级,像评级等不起作用,他提出了一种算法,可以按照你的建议(Car A或Car B)成对使用输入。 算法非常复杂,但可以在链接上找到。