如何建立一个简单的推荐系统?

时间:2009-01-31 17:03:12

标签: c# asp.net database algorithm database-design

如何构建简单的推荐系统?我已经看到了一些算法但实现起来很困难我希望它们是实用的描述来实现最简单的算法吗?

我有这三张桌子

        Users
  userid      username
   1            aaa
   2            bbb

        products
  productid        productname
     1                laptop
     2                mobile phone
     3                car

      users_products
  userid        productid
    1                1
    1                3
    3                2
    2                3

所以我希望能够为每个用户推荐商品,具体取决于他们购买的商品和其他用户的商品

我知道它应该像计算用户之间的相似之处,然后看看他们的产品,但是如何完成并存储在数据库中,因为这需要一个像这样的表

      1    2   3   4   5   6 << users' ids
 1)   1   .4  .2  .3  .8  .4
 2)  .3    1  .5  .7  .3  .9
 3)  .4   .4   1  .8  .2  .3
 4)  .6   .6  .6   1  .4  .2
 5)  .8   .7  .4  .2   1  .3
 6)   1   .4  .6  .7  .9   1
 ^
 ^
users'
 ids

那么用户之间的相似性如何计算? 这个复杂的数据如何存储在广告数据库中? (它需要一个包含每个用户列的表)? 感谢

5 个答案:

答案 0 :(得分:10)

您希望如何实际存储建议是一个完全与人们如何实际实施推荐引擎无关的问题。我把它留给你的数据库架构。关于推荐。

你说“简单”,所以Pearson相关系数可能是你需要阅读的东西。

计算这样的东西很简单。 Conceptexample code

答案 1 :(得分:7)

也许阅读"Programming Collective Intelligence"会对您有所帮助。

答案 2 :(得分:0)

该表可以存储在三列

user_left user_top correlation

(我没有确定相关性的经验)

答案 3 :(得分:0)

您肯定不需要每个用户都有一个列。您需要一个相关矩阵,这是真的,但实际的数据库表是不必要的。相反,你可以把它作为

table: user_correlation_matrix
columns: user1_id user2_id correlation_factor

答案 4 :(得分:0)

我在Joe Celko的一本书中看到了这一点。我相信这是Here。我目前无法访问我的。尝试前往附近的巴恩斯&amp;贵族或边界并检查出来。一旦我有权访问并跟进,我就会挖掘它。