Machine learning 使用匹配分数确定正确的特征(机器学习)

Machine learning 使用匹配分数确定正确的特征(机器学习),machine-learning,feature-selection,supervised-learning,Machine Learning,Feature Selection,Supervised Learning,一旦特征可用,我熟悉确定知识库中给定文档集与搜索查询文档(基于余弦距离)的匹配程度。我们将根据特征在向量空间上映射两者 我如何处理相反的情况-我得到了一组文档和多个查询文档的匹配分数,并且必须确定特征(或确定匹配的决策标准)。这将是培训数据,该模型将用于识别与我们的知识数据库相匹配的新项目 搜索查询 我们目前的方法是想出一组特征,看看哪些组合在训练集中获得最好的比赛分数。。。但我们最终会尝试多种组合。有更好的方法吗 这里有一个简单而直接的方法(线性模型)应该可以工作。 如果您正在处理文档和查询,

一旦特征可用,我熟悉确定知识库中给定文档集与搜索查询文档(基于余弦距离)的匹配程度。我们将根据特征在向量空间上映射两者

我如何处理相反的情况-我得到了一组文档和多个查询文档的匹配分数,并且必须确定特征(或确定匹配的决策标准)。这将是培训数据,该模型将用于识别与我们的知识数据库相匹配的新项目 搜索查询


我们目前的方法是想出一组特征,看看哪些组合在训练集中获得最好的比赛分数。。。但我们最终会尝试多种组合。有更好的方法吗

这里有一个简单而直接的方法(线性模型)应该可以工作。 如果您正在处理文档和查询,那么您使用的功能可能是那些标记(或单词)或n-gram或主题。让我们假设这些特性是为了简单

假设您有一个查询文档:

apple iphone6 
您有一组文档及其与上述查询对应的匹配分数: (假设文档是URL的内容)

每查询模型 首先,您需要从匹配的URL中提取单词特征。假设我们得到word和他们的TF/IDF分数:

www.apple.com
apple 0.5
iphone 0.4
ios8 0.1

www.cnet.com/products/apple-iphone-6
apple 0.4
iphone 0.2
review 0.2
cnet 0.2

www.stuff.tv/apple/apple-iphone-6/review
apple 0.4
iphone 0.4
review 0.1
cnet 0.05
stuff 0.05
其次,您可以组合功能分数和匹配分数,并根据每个功能进行聚合:

w(apple) = 0.5 * 0.8 + 0.4 * 0.75 + 0.1 * 0.7 = 0.77
w(iphone) = 0.4 * 0.8 + 0.2 * 0.75 + 0.4 * 0.7 = 0.75
w(ios8) = 0.1 * 0.8 = 0.08
w(review) = 0.2 * 0.75 + 0.1 * 0.7 = 0.22
w(cnet) = 0.2 * 0.75 = 0.15
w(stuff) = 0.05 * 0.7 = 0.035
您可能需要执行一个规范化步骤,将每个
w
除以文档数。现在,您可以按其相关性体面地排列以下功能:

w(apple)=0.77 / 3
w(iphone)=0.75 / 3
w(review)=0.22 / 3
w(cnet)=0.15 / 3
w(ios8)=0.08 / 3
w(stuff)=0.035 / 3
您甚至可以使用这些权重获得线性分类器:

score = w(apple) * tf-idf(apple) + w(iphone) * tf-idf(iphone) + ... + w(stuff) * tf-idf(stuff)
假设现在您有一个新的url,其中检测到以下功能:

ios8: 0.5
cnet: 0.3
iphone:0.2
然后,您可以计算查询“apple iphone6”的匹配分数:

然后,可以使用匹配分数对文档与相同的查询的相关性进行排序

任意查询模型 您可以执行相同的操作来为每个查询构造一个线性模型。假设您的培训数据中有
k
这样的查询和匹配文档,您将得到
k
此类模型;每个模型都是基于一个查询构建的

model(apple iphone6) = (0.77*apple + 0.75iphone + 0.22review + ...) / 3
model(android apps) = (0.77google + 0.5android + ...) / 5
model(samsung phone) = (0.5samsung + 0.2galaxy + ...) / 10
注:在上面的示例模型中,3、5、10是规范化器(与每个查询匹配的文档总数)

现在出现一个新查询,假设它是:

samsung android release
我们剩下的任务是:

  • 查找相关查询
    q1、q2、…、qm
  • 使用查询模型对新文档进行评分和聚合
您首先需要从该查询中提取特征,并且假设您已经缓存了所了解的每个查询的特征。基于任何方法(例如),您都可以找到与“三星安卓版本”类似的top-k查询,它们可能应该是:

similarity(samsung phone, samsung android release) = 0.2
similarity(android apps, samsung android release) = 0.2
总体排名 因此,我们的最终评级为:

0.2*model(samsung phone) + 0.2*model(android apps) =
  0.2* (0.77*apple + 0.75iphone + 0.22review + ...) / 3 + 
  0.2* (0.77google + 0.5android + ...) / 5
通常,在这些信息检索应用程序中,您构建了从特征(单词)到文档的反向索引。因此,最终排名应该能够在顶级文档中非常有效地进行评估

参考文献 有关详细信息,请参考Omid Madani等人中的IND算法

similarity(samsung phone, samsung android release) = 0.2
similarity(android apps, samsung android release) = 0.2
0.2*model(samsung phone) + 0.2*model(android apps) =
  0.2* (0.77*apple + 0.75iphone + 0.22review + ...) / 3 + 
  0.2* (0.77google + 0.5android + ...) / 5