偏好匹配算法


12

我正在研究这个副项目,我需要在其中构造以下问题的解决方案。

我有两组人(客户)。集团A打算购买,集团B打算出售确定的产品X。该产品具有一系列的属性x_i,我的目标是促进之间的交易A,并B通过匹配他们的喜好。主要思想是指出A对应B产品的每个成员,其产品更适合其需求,反之亦然。

问题的一些复杂方面:

  1. 属性列表不是有限的。买方可能会对非常特殊的特性或某种设计感兴趣,这在人群中很少见,我无法预测。先前无法列出所有属性;

  2. 属性可以是连续的,二进制的或不可量化的(例如:价格,功能,设计);

关于如何解决此问题并以自动化方式解决它的任何建议?

如果可能的话,我也希望参考一些其他类似的问题。


很棒的建议!与我思考问题的方式有很多相似之处。

映射属性的主要问题是产品描述的详细程度取决于每个购买者。让我们以汽车为例。产品“汽车”具有很多属性,包括性能,机械结构,价格等。

假设我只想要便宜的汽车或电动汽车。好的,这很容易映射,因为它们代表了该产品的主要功能。但是,例如,假设我要一辆配备双离合变速器或氙气大灯的汽车。嗯,数据库中可能有许多具有此属性的汽车,但我不会要求卖方在有人发现它们之前先将其详细信息填写到他们的产品中。这样的程序将要求每个卖方填写一个复杂,非常详细的表格,仅尝试在平台上出售其汽车。就是行不通。

但是,我仍然面临的挑战是在搜索中尽可能详细地进行匹配。因此,我的思维方式是映射产品的主要方面(可能与每个人都相关的方面),以缩小潜在卖方的类别。

下一步将是“优化搜索”。为了避免创建过于详细的表格,我可以要求买卖双方写明其规格的自由文本。然后使用一些单词匹配算法来查找可能的匹配项。尽管我知道这不是解决问题的适当方法,因为卖方无法“猜测”买方的需求。但是可能会让我靠近。

建议的加权标准很好。它使我能够量化卖方满足买方需求的水平。但是,缩放部分可能是个问题,因为每个属性的重要性因客户端而异。我正在考虑使用某种模式识别,或者只是要求购买者输入每个属性的重要性级别。

Answers:


9

我的第一个建议是在适当的映射功能的帮助下以某种方式将不可量化的属性映射到数量。否则,只需将它们排除在外。

其次,我认为您无需假设属性列表不是有限的。一种标准而直观的方法是将每个属性表示为向量空间中的单个维。这样,每个产品都只是该空间中的一个点。在这种情况下,如果要动态添加更多属性,只需要将乘积矢量重新映射到新的特征空间(带有附加尺寸)中。

通过这种表示,卖方是具有产品属性的特征空间中的一个点,而买方是具有偏好属性的同一特征空间中的一个点。然后的任务是找出给定卖方点的最相似买方点。

如果您的数据集(即购买者/卖方的数量)不是很大,则可以使用借助kd树实现的最近邻方法来解决此问题。

对于超大型数据,可以采用IR方法。通过将每个属性视为一个单独的术语,并将术语权重设置为属性值,对一组卖方(即产品属性)建立索引。在这种情况下,查询是一个买方,该买方也在术语空间中被编码为具有适当术语权重的查询向量。检索步骤将返回前K个最相似的匹配项列表。


赖特 这里的主要问题是尺寸的数量,即我需要使用的详细程度。您能否向我澄清“ IR方法”。
RD

1
IR,我的意思是信息检索。您可能会认为集合中的文档(卖方)和查询(买方)都是嵌入术语(属性)空间中的向量。就像我说的那样,这种方法需要预设数量的维度才能使用。
Debasis 2014年

7

如所建议的,疯狂。首先,如果我错了,请纠正我:

  • 每个独特产品只有几个功能;
  • 没有最终功能列表,客户可以在其产品中添加新功能。

如果是这样,构建完整的产品功能表可能会在计算上花费很大。最终数据表将极为稀疏。

第一步是缩小要匹配的客户(产品)列表。让我们构建一个二部图,其中卖方将是类型1节点,买方将是类型2节点。每次买卖双方引用相似的产品功能时,都要在他们之间建立优势,如下图所示:

图形

使用上图,对于每个唯一卖方的产品,您只能选择对与该产品相匹配的功能感兴趣的买方(可以过滤至少一个常见功能,与所有功能匹配或设置阈值水平)。但是可以肯定的是,这还不够。下一步是比较特征值,如卖方和买方所述。有很多变体(例如,k-Nearest-Neighbors)。但是,为什么不尝试使用现有图形解决这个问题呢?让我们为边缘添加权重:

  • 对于连续功能(例如价格):

    price_weight

  • 用于二进制和不可量化的功能-只是逻辑上的双条件:

    feature_weight

这里的主要思想是将每个要素缩放到间隔[0, 1]。此外,我们可以使用特征系数来确定最重要的特征。例如,假设价格是某些稀有功能的可用性的两倍重要:

adj_w_1

adj_w_2

最后的步骤之一是简化图形结构,并将许多边减少为一条边,权重等于先前计算的每个特征权重之和。通过这种简化的结构,每对客户/产品对都只能具有一个边缘(没有平行边缘)。因此,要为精确卖方找到最佳交易,您只需选择具有最大加权边的关联买方。

未来的挑战:在第一步中引入一种廉价的边缘加权方法:)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.