0

我有一个非常具体的推荐问题。

假设我有 3 种类型的值/实体 - 项、属性、值。有N个项目,A属性和B值。每个项目都有一些属性值对。例子:

项目#1
2374-23783
8455-5783
744-2438

项目#2
5435-23783
8455-54654
544-9778

...

现在,给定一个“匿名”项目,比如 Item#x,上面有 3-4 个示例属性值对,我想获得针对特定属性的建议。例子:

项目
#x
5435-23783 544-9778
744-2438

8455-?? (获得推荐)

现在,直觉 - Item#x 中属性 8455 的推荐值可能是 54654。您会看到属性 5435 和 744 在 Item#2 中的值与在 Item#x 中的值相同。因此,8455 的值很可能与 Item#2 中 8455 的值相似。

问题:

  1. 你认为哪种模型最适合这个问题?我应该使用什么方法?协同过滤 - 但如何?显然,简单地将所有属性值对转储到数据集中并获取建议并不能满足我的需求。

  2. 您也可以添加任何特定于实现的细节吗?马豪?米利克斯?机器学习/推荐库?

4

2 回答 2

0

任何机器学习方法都可以完成这项工作。例如,您可以使用贝叶斯网络,因为这些条件项-属性-值出现是很自然的。

在不知道您关心什么的情况下添加特定于实现的细节是不现实的。你最关心什么?性能、准确性还是可扩展性?

于 2013-06-28T18:44:26.460 回答
0

看来您不需要任何机器学习,只需要检索。最直接的方法是创建一个特征向量,其中每个维度都是一个属性。

向量位置和属性:

Position #0, property 2374
Position #1, property 8455
Position #2, property 744
Position #3, property 5435
Position #4, property 544

为每个项目填写向量值。

Item #1 is represented as [23783,  5783, 2438,     ?,    ?]
Item #2 is represented as [    ?, 54654,    ?, 23783, 9778]
Item #x is represented as [    ?,     ?, 2438, 23783, 9778] 

项目#x 与项目#2 具有最常见的值,项目#2 的位置#1 是54654。基本上,您会找到与具有您感兴趣的位置值的项目的最佳交集。如果您想要几个属性的值,它会变得更有趣只能通过几个项目来建议,但你还没有谈到数据的性质。

于 2013-06-29T01:20:26.287 回答