搜狗图片搜索中的识图猜词和关键词抽取
这篇文章主要介绍了如何通过关键词抽取技术来提升搜狗图片搜索中的识图猜词效果。识图猜词即用户上传一张图片或图片地址,得到与其对应最相关的实体关键词。
随着深度学习的不断发展,图像处理已成为人工智能领域中比较成熟的技术,识图猜词便是其中之一。最早能追溯到2011年前后推出的识图搜索产品,具备以图搜图的功能,可以获得不同尺寸的原图或相似图片,有了这些数据,再结合NLP的相关技术,获得图片对应的实体关键词并非难事。目前线上采用的方法已经取得了一定的效果,但仍然有提升空间。
识图可以从技术层面和产品层面来理解。技术层面指的是“找原图”,即找到图片的内容要一模一样;产品层面可以理解为“识别图片”,指从互联网上找到与图片相关的所有信息,包括“找原图”、“找相似图或相似人脸”、“找图片对应的实体”,识图猜词对应最后一种。
前端获取一张图片后,首要任务是对输入图片进行特征提取,获得特征点位置、提取点数、召回使用点数、排序使用点数等信息。然后根据这些信息进行图像检索,从海量的数据中找到与之匹配的图片,并对图片进行粗粒度排序,设定比较小的匹配阈值,拿到TOP N的结果,这一步也可称之为图片召回,是整个识图框架中最耗费资源的。接着在TOP N集合中进行细粒度排序,查看有没有错误匹配的情况,并设定较高的匹配阈值。最后返回TOP M的结果给前端进行展示。
有了识图技术作为基础保障,获得图片对应的实体信息就比较容易了。获取途径主要有三个方面:利用图像识别技术对上传图片进行细粒度分类,包括识别花卉、猫、狗的种类和人脸识别;在召回相同图片的基础上,利用NLP技术对相应的文本进行关键词抽取,得到实体词;利用“找相似图”功能,对召回的相似图片进行粗粒度分类,起到兜底作用。
关键词抽取是获取实体词的重要途径。目前的线上方法主要依赖规则给出细粒度抽取结果,如词性、书名号、人名、动物、植物。其次根据预先定制好的类别,利用SVM对文本进行分类给出粗粒度结果。现有方法已经取得了一定的效果,但仍然有提升空间。
优化关键词抽取的方法有三种,出于保证效果和时间上的考虑,选择了第三种,并且在此之前已经有关键词抽取方面的技术积累。需要注意的是,链接中基于LambdaMART的关键词抽取方法是针对单文档的,而我们召回的相同图片通常不止一张。可以有两种方法解决问题,一种是将多文档的文本域结合成一个,另一种是将多个单文档的输出结果进行投票,进而得到最优的关键词。
如何将关键词抽取方法和线上的方法进行合理的融合呢?最简单的想法就是对两者的结果直接求交,进而提高准确率,但这种方法往往会损失一部分召回率。我们的目标是在提高准确率的同时,再提高些召回率,起码不要损失召回,这样才能够直观上体验到优化的效果。
分别对两种方法进行效果摸底,发现基于排序的方法要优于现有方法。解决方案就是以排序方法为主,线上方法为辅进行优化。具体来说,以排序方法给出的结果作为候选关键词,融入线上方法的结果和规则对候选关键词进行重排序,再加上基于SVM的方法兜底。
这种解决方法实现起来简单有效,优化后效果的对比图如下:
优化后的胜出率在新一轮的评测中提升了13%,在采用成本较低方法的情况下,能够得到可观的收益是我们愿意看到的。另一方面,识图猜词的后续优化仍存在一定的空间,例如采用多文档融合的关键词抽取技术等。结合最近的工作,方法固然重要,但工程实现更为重要。
继续阅读:搜狗图片搜索中的识图猜词和关键词抽取随着深度学习的不断发展,图像处理已成为人工智能领域中比较成熟的技术,识图猜词便是其中之一。最早能追溯到2011年前后推出的识图搜索产品,具备以图搜图的功能,可以获得不同尺寸的原图或相似图片,有了这些数据,再结合NLP的相关技术,获得图片对应的实体关键词并非难事。目前线上采用的方法已经取得了一定的效果,但仍然有提升空间。
识图可以从技术层面和产品层面来理解。技术层面指的是“找原图”,即找到图片的内容要一模一样;产品层面可以理解为“识别图片”,指从互联网上找到与图片相关的所有信息,包括“找原图”、“找相似图或相似人脸”、“找图片对应的实体”,识图猜词对应最后一种。
前端获取一张图片后,首要任务是对输入图片进行特征提取,获得特征点位置、提取点数、召回使用点数、排序使用点数等信息。然后根据这些信息进行图像检索,从海量的数据中找到与之匹配的图片,并对图片进行粗粒度排序,设定比较小的匹配阈值,拿到TOP N的结果,这一步也可称之为图片召回,是整个识图框架中最耗费资源的。接着在TOP N集合中进行细粒度排序,查看有没有错误匹配的情况,并设定较高的匹配阈值。最后返回TOP M的结果给前端进行展示。
有了识图技术作为基础保障,获得图片对应的实体信息就比较容易了。获取途径主要有三个方面:利用图像识别技术对上传图片进行细粒度分类,包括识别花卉、猫、狗的种类和人脸识别;在召回相同图片的基础上,利用NLP技术对相应的文本进行关键词抽取,得到实体词;利用“找相似图”功能,对召回的相似图片进行粗粒度分类,起到兜底作用。
关键词抽取是获取实体词的重要途径。目前的线上方法主要依赖规则给出细粒度抽取结果,如词性、书名号、人名、动物、植物。其次根据预先定制好的类别,利用SVM对文本进行分类给出粗粒度结果。现有方法已经取得了一定的效果,但仍然有提升空间。
优化关键词抽取的方法有三种,出于保证效果和时间上的考虑,选择了第三种,并且在此之前已经有关键词抽取方面的技术积累。需要注意的是,链接中基于LambdaMART的关键词抽取方法是针对单文档的,而我们召回的相同图片通常不止一张。可以有两种方法解决问题,一种是将多文档的文本域结合成一个,另一种是将多个单文档的输出结果进行投票,进而得到最优的关键词。
如何将关键词抽取方法和线上的方法进行合理的融合呢?最简单的想法就是对两者的结果直接求交,进而提高准确率,但这种方法往往会损失一部分召回率。我们的目标是在提高准确率的同时,再提高些召回率,起码不要损失召回,这样才能够直观上体验到优化的效果。
分别对两种方法进行效果摸底,发现基于排序的方法要优于现有方法。解决方案就是以排序方法为主,线上方法为辅进行优化。具体来说,以排序方法给出的结果作为候选关键词,融入线上方法的结果和规则对候选关键词进行重排序,再加上基于SVM的方法兜底。
这种解决方法实现起来简单有效,优化后效果的对比图如下:
优化后的胜出率在新一轮的评测中提升了13%,在采用成本较低方法的情况下,能够得到可观的收益是我们愿意看到的。另一方面,识图猜词的后续优化仍存在一定的空间,例如采用多文档融合的关键词抽取技术等。结合最近的工作,方法固然重要,但工程实现更为重要。