我学习的推荐引擎,我通过定义谷歌新闻如何为这可能是他们感兴趣的新闻,基于协同过滤生成用户建议paper去了。他们提到用于在Google新闻中生成推荐的算法?
一个有趣的技术是Minhashing。我经历了它的所作所为,但我很确定我所拥有的是一个模糊的想法,而且我很可能错了。下面是什么我可以做出来的: -
- 收集一套所有新闻项目。
- 定义用户的散列函数。该散列函数返回该用户查看的新闻项目中的第一项的索引,在列表中全部为新闻项目。
- 收集,说这样的值“n”的数量,并代表一个含此值列表的用户。
- 基于这些列表之间的相似计数,我们可以计算用户之间的相似性为普通物品的数量。这减少了大量的比较。
- 基于这些相似性度量,用户划分为不同的簇。
这正是我想可能是。在步骤2中,不是定义一个常量散列函数,而是以一种方式改变散列函数,使其返回不同元素的索引。因此,一个散列函数可以返回用户列表中第一个元素的索引,另一个散列函数可以返回用户列表中第二个元素的索引,依此类推。所以哈希函数的性质满足minwise independent permutations条件,这听起来像是一种可能的方法。
谁能请确认是否是什么,我认为是正确的?或者Google新闻推荐的最小化部分以其他方式发挥作用?我不熟悉推荐的内部实现。任何帮助非常感谢。
谢谢!
非常感谢应答。这说得通。考虑到我们多次重复该算法,我们可以通过比较两个用户的哈希值列表来计算两个用户的相似度,这将使我们能够衡量两个用户在某个位置上达成一致的次数。 我还有一个问题是,如何定义桶?为了把一个特定的人放入桶中,我们需要将这个人与其他人关联起来?他们只是将用户与桶中的* 1 *用户进行比较,因为该桶中的所有其他用户大多都是相似的? 再次感谢。 – Siddhant 2010-04-29 14:25:14
一个桶被定义为“在随机排列下的前2-4个项目具有相同散列值的人群”。 因此,不需要将人员间的比较放入桶中。喜欢和散列表,每个人被直接送到一个桶。 我还没有阅读整篇论文,但我假设他们然后使用共享存储区中的每个用户来帮助确定建议。桶的整个目标是使“每个用户”足够小。 – mathmike 2010-04-29 15:51:40