这种“嵌套”推荐应该使用什么模型或方法?

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

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

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

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

现在,假设有一个“匿名”项目,比如项目#x,它有3-4个像上面的样本属性值对,我想为一个特定的属性获取推荐。例如:

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

8455-?? (获取推荐)

直觉上,项目#x中属性8455的推荐值可能是54654。你会发现属性5435和744在项目#2和项目#x中的值是相同的。因此,属性8455的值更可能与项目#2中的8455的值相似。

问题:

  1. 你认为解决这个问题的最佳模型是什么?我应该使用什么方法?协同过滤 – 但具体怎么做呢?显然,简单地将所有属性-值对倾倒进数据集并获取推荐并不能满足我的需求。

  2. 你能提供一些具体的实现细节吗?Mahout?Myrrix?机器学习/推荐库?


回答:

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

向量位置和属性:

位置 #0, 属性 2374位置 #1, 属性 8455位置 #2, 属性 744位置 #3, 属性 5435位置 #4, 属性 544

为每个项目填充向量值。

项目 #1 表示为 [23783,  5783, 2438,     ?,    ?]项目 #2 表示为 [    ?, 54654,    ?, 23783, 9778]项目 #x 表示为 [    ?,     ?, 2438, 23783, 9778] 

项目#x与项目#2的值最相似,而项目#2的位置#1的值是54654。基本上,你是找到与你感兴趣的位置值最匹配的项目。如果你想要多个属性的值,而这些值只能由多个项目建议,那么情况会更有趣,但你还没有提到数据的性质。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注