tl;dr
从根本上讲,我正在寻找合理的方法来实现标签组之间的相似性等级,其中标签组是2到9个标签。类似于对词汇量为20万个单词的2到9个单词句子的相似性进行排名,只是单词顺序无关紧要。
我有一组标记的图像,我想实现几个搜索功能:
- 相似的图像
- 相似但不同的图像
其中相似性仅基于标签。
找到相同标签的图像并没有那么难,但在那之后,我有点不知所措,无法找到最好的方法。我们有几十万个标签,上面没有元数据,所以我们不知道"Outlook"与"Microsoft"、"Windows"或"电子邮件"有关,因此无法理解标记为"Microsoft,Excel,条形图"的图像与标记为"Excel,Spreadsheet"的图像和标记为"Visio,Bar Graph"的图像之间的相关性差异。
对于"相似的图像",我们希望将"Microsoft,Excel,条形图"与"Visio,条形图"相匹配,而对于"相似但不同的图像"我们希望将"Microsoft,Excel、条形图"与"Excel,Spreadsheet"相匹配。
我目前最好的猜测是把标签当作文本处理,然后把它们扔到Solr中。另一方面,也许可以采用不同类型的数据库,如Neo4j。
关于如何向前迈出几步,有什么建议吗?我并不期待一个完整的解决方案,但如果能提出一个通用方法的建议,我将不胜感激。
额外信贷:
更困难的是,当标签被分配给图像时,它们被指定为"主要"或"次要",当然我们希望考虑到这一点。
更新
让我们重复这个问题。
- 输入数据由标签集=字符串集(以及指向相关图像资源的指针)组成
- 字符串只是字符序列,没有其他可用的语义信息
- 然而,字符串的权重分为"主要"(权重较高)和"次要"(权重较低)
这意味着搜索必须仅依赖于集合(和字符串)的某些相似性度量。
此类措施的例子有:
- Jaccard相似性
- 骰子相似性
- 特维尔斯基相似性
- 余弦相似性
2010年的这篇论文:一种基于协作权重模型的加权标签相似性度量将其中的几个(和其他)应用于标签问题,并展示了如何包括权重。这应该很有帮助,IMHO。
另一个(更简单)的应用可以在2013年的这篇论文中看到:使用Jaccard系数进行关键词相似性。
关于问题中的示例
对于
"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年的论文中讨论了各种指标外,我发现对你选择的方法没有太多帮助(你对它的限制很大)。
但我想把我在这个话题上的小搜索步骤放在网上,因为它会把你的问题放在上下文中。
其他人去哪里
研究界似乎正朝着这些方向发展:
- 使用关于提供标签的用户的附加信息(大众分类,社交标签)
- 利用语义元数据(本体,语义相似性)
- 利用视觉图像内容(基于内容的视觉信息检索)
民俗,社交标签
参见2009年的一篇论文:评估社会标记的紧急语义的相似性度量。
代替传统的通过比较图像的图形数据来定义相似性的方法
I = { (x, y, colour) }
在某种程度上(基于内容的图像检索、按图像内容查询和根据内容的视觉信息检索ravest semantics),就像您想要的那样。
他们的基本模型由用户为资源分配的标签组成,比较所谓的大众分类的元组
F = { (user, resource, tag) }
可以通过不同的方法将其缩小到(资源、标签)元组的情况,以在用户上聚合,从而产生不同的相似性度量。
语义相似性
有趣的是使用语义相似性,例如Jiang Conrad,但遗憾的是,你的标签没有语义元数据(本体例如),这让你只能坚持单词字符串表示的相似性。
从2008年起,本文《本体论在改进图像检索和注释中的应用》再次支持本体论的使用,但我认为它对各种方法进行了很好的讨论。
Folksonomies,基于人民的智慧。Flickr就是一个很有代表性的例子。这种方法克服了手动注释,但标签使用中的不一致性可能会使搜索整个数据集
与基于内容的视觉信息检索相结合
上面的两篇论文都引用了2006年的一篇论文《使用紧急语义增强导航以进行协作标记》。
然而,单独使用标签搜索和浏览数据库显然具有其局限性。首先,人们在标记时会犯错误,比如拼写错误,或者使用错误的标签进行意外标记。第二,没有解决方案处理同音异义,即区分一个词的不同含义。第三同义词或不同语言只能通过显式标记数据来处理所有条款
这些作者将社交标签与最初提到的基于内容的图像检索相结合。
还有一个环节:协作标记。