【问题标题】:Finding similar images via tags通过标签查找相似图像
【发布时间】:2014-03-31 21:10:18
【问题描述】:

tl;博士

从根本上说,我正在寻找合理的方法来实现标签组之间的相似度等级,其中标签组是 2 到 9 个标签。类似于对词汇量为 200,000 个单词的 2 到 9 个单词句子的相似度进行排序,除了单词顺序无关紧要。


我有一组标记图像,我想实现几个搜索功能:

  1. 类似图片
  2. 相似但不同的图像

相似度仅基于标签。

找到具有相同标签的图像并不难,但在那之后,我不知道最好的方法是什么。我们有数十万个标签,但没有元数据,因此我们不知道“Outlook”与“Microsoft”或“Windows”或“Email”相关,因此无法理解标记图像的相关性差异“Microsoft,Excel,条形图”到标记为“Excel,电子表格”的图像与标记为“Visio,条形图”的图像。

对于“相似图像”,我们希望将“Microsoft,Excel,Bar Graph”匹配到“Visio,Bar Graph”,而对于“相似但不同的图像”,我们希望匹配“Microsoft,Excel,Bar Graph” " 到 "Excel,电子表格"。

目前我最好的猜测是将标签视为文本并将它们放入Solr。另一方面,也许另一种类型的数据库,如 Neo4j,将是要走的路。

关于如何向前迈出几步有什么建议吗?我并不期待一个完整的解决方案,但对于一般方法的建议将不胜感激。

额外积分:

为了让事情变得更加困难,当标签被分配给图像时,它们被指定为“主要”或“次要”,我们当然希望考虑到这一点。

【问题讨论】:

  • 恕我直言,这是一个有效的问题。为什么这被否决了三次?
  • 你能澄清一下你想到的“相似图像”与“相似但不同的图像”的情况吗?除此之外,我认为问题很明显。
  • “相似”图像是红色汽车与其他红色汽车相似。 “相似而不同”是红车对蓝车,而不是红车。

标签: image search tags


【解决方案1】:

更新

让我们重复这个问题。

  • 输入数据由标签集 = 字符串集(以及指向相关图像资源的指针)组成
  • 字符串只是字符序列,没有其他可用的语义信息
  • 但是,字符串的权重分为“主要”(较高权重)和“次要”(较低权重)

这意味着搜索必须完全依赖于集合(和字符串)的某种相似性度量。

此类措施的示例如下:

这篇 2010 年的论文:A weighted tag similarity measure based on a collaborative weight model 将其中几个(和其他)应用于标签问题,并展示了如何包含权重。这应该会有所帮助,恕我直言。

在 2013 年的这篇论文中可以看到另一个(更简单的)应用程序:Using of Jaccard Coefficient for Keywords Similarity

关于问题中的例子

对于"Similar images",我们希望将"Microsoft, Excel, Bar Graph" 匹配到"Visio, Bar Graph"

由于一个标签 ("Bar Graph") 对两组标签都是通用的,因此会有一些相似之处。

而对于"Similar but different images",我们希望将"Microsoft, Excel, Bar Graph" 匹配到"Excel, Spreadsheet"

又是一个共同的标签 ("Excel")。但是系统如何知道"Visio" 与集合"Microsoft, Excel, Bar Graph""Spreadsheet" 更相似? 那将需要语义信息。我不知道如何解决这个问题。

旧零件

除了下面 2009 年论文中对各种指标的讨论之外,我发现对您选择的方法没有什么帮助(您限制了很多)。

但我想在此处保留我在此主题上的小搜索步骤,因为它将您的问题置于上下文中。

别人去哪里

研究界似乎朝着以下方向发展:

  • 使用提供标签的用户的附加信息(folksonomies社会标签
  • 利用语义元数据(本体语义相似度
  • 利用视觉图像内容(基于内容的视觉信息检索

Folksonomnies、社会标签

请参阅 2009 年的这篇论文:Evaluating Similarity Measures for Emergent Semantics of Social Tagging

而不是通过比较图像的图形数据来定义相似度的传统方法

I = { (x, y, colour) }

在某种程度上(基于内容的图像检索按图像内容查询基于内容的视觉信息检索),这些作者按照您的意图使用标签中的信息(收获语义)。

他们的基本模型由用户为资源分配的标签组成,比较所谓的folksonomy的元组

F = { (user, resource, tag) }

可以通过不同的方法缩小到您的(资源、标签)元组的情况,以对用户进行聚合,从而产生不同的相似性度量。

语义相似度

有趣的是semantic similarity的使用,例如江康拉德,但是很遗憾,您的标签没有语义元数据(ontology 例如),这让您坚持使用单词的字符串表示的相似性。

同样,2008 年的这篇论文The Use of Ontologies for Improving Image Retrieval and Annotation 支持使用本体,但我认为它很好地讨论了各种方法。

Folksonomies,社会标签系统,依赖于 人民的智慧。一个有代表性的例子是 Flickr。 com。这种方法克服了如此多的耗时 手动注释,但标签使用的不一致可能难以 搜索整个数据集合。

结合基于内容的视觉信息检索

以上两篇论文都引用了这篇论文 Augmenting Navigation for Collaborative Tagging with Emergent Semantics 从 2006 年开始。

然而,单独使用标签来搜索和浏览数据库显然有 它的局限性。首先,人们在标记时会犯错误,例如拼写错误, 或使用错误的标签意外标记。二、没有解决办法 处理同音异义,即区分单词的不同含义。第三, 同义词或不同语言只能通过显式标记数据来处理 包含所有条款。

这些作者将社交标签与最初提到的基于内容的图像检索结合起来。

另一个链接:collaborative tagging

【讨论】:

  • 谢谢。为了简化一点,我现在对图像数据本身完全不感兴趣,因为我想将它重用于其他内容类型。标签是精选的(从图书馆中提取),因此我们不必担心拼写不一致,并且可以忽略同音异义问题。从根本上说,我正在寻找合理的方法来实现标签组之间的相似度等级,其中标签组是 2 到 9 个标签。类似于对 2 到 9 个单词句子的相似度进行排序,只是单词顺序无关紧要。
  • O'Reilly 出版的 Tony Segaran 的书Collective Intelligence 是关于 Python 中给出的示例代码的实用介绍,其中第 2 章涉及推荐和相似性。练习2是一个标签推荐问题。
  • 集合的相似度度量是 Jaccard 相似度。请参阅 Haralambos Marmanis 和 Dmitry Babenko 的书Algorithms of the Intelligent Web,第 3 章。他们对推荐系统的阐述附带了 Java 代码示例。
  • 这个2012 paper by Anna Wilbik and James M. Keller 展示了Jaccard metric 的实际应用。他们将它与fuzzy logic 集合结合起来。
  • 对于你问题的最后一部分:给更重要的标签更高的权重,见weight function
猜你喜欢
  • 2015-07-19
  • 1970-01-01
  • 2012-08-25
  • 1970-01-01
  • 1970-01-01
  • 2017-07-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-10
相关资源
最近更新 更多