1

我有一个真正的问题。

我有一个架构如下的数据库:

物品

  • ID
  • 描述
  • 其他垃圾

标签

  • ID
  • 姓名

item2tag

  • item_id
  • tag_id
  • 数数

基本上,每个项目最多被标记为 10 件事情,数量不等。items2tag中有50,000个项目和50,000个标签,大约有500,000个条目。给定一个项目,我想找到“最相似”的项目。

“最相似”是指具有最相似标签组合的项目......如果某件事“酷”是“有趣”的两倍,我想找到所有其他几乎“酷”的东西两次就像他们“有趣”一样。当然,这应该适用于 10 个标签,而不仅仅是 2 个。

有任何想法吗?

4

2 回答 2

1

好吧,您可以查看线性代数为每个项目提供一个维度向量,然后计算项目之间的距离以找到最接近的项目,但即使是小型数据集,这也相当复杂。

这就是 Google 提出 Map Reduce 的原因。这可能是你最好的选择,但即便如此,它也不是微不足道的。

-亚当

于 2008-11-25T07:40:56.037 回答
0

鉴于您将项目标签关系表示为向量,您所拥有的是最近邻搜索的一个实例。您可以在Collaborative Filtering领域找到指针。

于 2008-11-25T12:02:32.263 回答