关注并星标
从此不迷路
Jiangmen
From: Google 编译: T.R
如果我们想要在庞大的文献数据库中利用特定的查询文本来精确地匹配标题、作者或者其他机器容易索引的指标,这类任务十分适合利用SQL语言在关系型数据库中进行检索。但我们如果想要查询一些例如“民国时期的诗词”这样更为抽象的概念,仅仅基于简单地度量两个短语间的相同单词数量来判断就变得难以实现了。
举个栗子🌰,在查询“sicence fiction”时会发现它与“future”的相似性高于“earth science”,尽管后一个短语有一个词语查询的短语相同,但“科幻小说”显然与“未来”的相关性更高一些,我们不能简单地看匹配词语的数量来确定抽象语义的相似性。
近年来机器学习极大地促进了计算机理解语言和语义的能力,同时也提高了抽象语言查询的能力。现代机器学习模型已经能够将文本、图像等输入转换为高维空间中的嵌入向量表示,使得相似的输入聚类地更为接近;可以为给定的查询计算出嵌入表示,同时在数据库中寻找与其最为相似的文献嵌入表示。通过这种方式,机器学家将先前抽象并难以细化的查询任务转换为了严格的数学问题。
尽管如此,我们还是要面对计算资源的挑战,如何在数据库中尽可能快地找出与输入嵌入最为接近的嵌入表达呢?庞大的数据库对于穷尽查找几乎是不可能,同时高维度的嵌入表示使得维度缩减也变得十分困难。为了解决这一问题,来自谷歌的研究人员通过压缩数据集向量的方法来加速向量间近似距离的计算,同时提出的新压缩技术大幅度提升了计算的精度!
基于嵌入的检索技术更多的依赖于对于查询语句和数据库内容的语义理解,而不是简单的索引特征检索。在这一技术中,机器学习模型主要用来将查询字段和数据库项目映射到一个矢量嵌入空间中去,这使得嵌入间的距离具有了语义特性,更相似的项目间其距离也应该更接近。
为了得到查询结果,系统首先需要将查询语句映射到嵌入空间中去,随后需要遍历数据库中所有的嵌入结果计算出与查询嵌入最为接近的一个,这就是典型的最邻近搜索问题。度量嵌入向量相似性最为常用的标准是查询向量与数据库中向量的内积,基于这种方法的最邻近搜索则称为最大化内积最邻近搜索 (maximum inner-product search, MIPS)。
由于数据库动辄百万甚至几十亿量级,MIPS常常受到计算瓶颈的制约,穷尽搜索几乎是不现实的。所以我们必须找到一种MIPS的近似算法,在牺牲一定精度的情况下提高检索速度。
很多先进的MIPS解决方案都利用了压缩数据库项目的方法,这使得近似的内积计算可以提升几倍的速度。通常人们使用学习量化的方法来进行压缩,利用数据库训练出一个表示向量的编码本,并利用它来近似表示数据库中的项目。
先前的向量量化机制对数据库中的元素进行量化的目标是最小化每一个向量与其量化后向量的平均距离。虽然这一度量方式很有用,但利用这一目标进行优化的过程并不等同于优化最邻近搜索的精度。本文工作的关键在于更高的平均距离编码也许能够在实际过程中带来更好的MIPS精度。
下面的例子具体阐述了这一思想。如下图所示有两个向量x1和x2需要量化到两个中心c1和c2上。我们的量化目标是最小化量化前后与q的内积。根据内积的几何关系,量化过程与将x投影到q上的过程类似,我们可以比较量化前后x在q上投影的幅度来比较相似性。
上面的例子说明,量化的方向与幅度一样重要!即使c1相较于c2距x1更远,但是c1相对于x1的偏移几乎与x1正交,而相对于c2的位移则几乎与x1平行。MIPS中平行方向上的误差将会造成更大的不良影响,因为这会对内积误差造成更大的影响。左图中使用传统的方法来选择距离每个x最近的中心点进行量化,这会使得两个x之间的大小关系在量化后发生错乱:x1在量化前与q的内积较小,而量化后则变大了!但如果我们将x1量化到c1,x2量化到c2,则这种大小关系则不会被改变。但显然x1量化到c1的距离比到c2的距离更远,那么该如何实现正确的量化呢?
基于这样的观察,研究人员对于与原始向量方向平行的量化误差给予更大的惩罚,得到了各向异性的向量量化结果,即损失函数与方向相关。这种量化方法利用较小内积方向上的量化误差增长换取了在较大内积方向上的精度提升,这一关键的创新是本文性能提升的关键所在。
各向异性向量量化使得ScaNN得以更好地估计内积,并计算出与查询向量最为相近的k个结果。在最邻近搜索基准任务上取得了远超过先前方法的结果,同时在查询速度上是先前报告最快方法的近两倍。目前算法已经开源,可以使用pip便捷地安装,也可以方便地与Tensorflow和numpy集成。
如果小伙伴们想要上手这个技术,代码和论文都已经放出,也许会为你的数据库或检索模型带来不一样的效果提升哦!这一技术目前已经应用于向量相似性搜索库 (ScaNN) 中,如果想要了解更多详细信息,请参看论文和详细的代码实现:
关于我“门”
将门是一家以专注于发掘、加速及投资技术驱动型创业公司的新型创投机构,旗下涵盖将门创新服务、将门技术社群以及将门创投基金。将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。
将门创新服务专注于使创新的技术落地于真正的应用场景,激活和实现全新的商业价值,服务于行业领先企业和技术创新型创业公司。
将门技术社群专注于帮助技术创新型的创业公司提供来自产、学、研、创领域的核心技术专家的技术分享和学习内容,使创新成为持续的核心竞争力。
将门创投基金专注于投资通过技术创新激活商业场景,实现商业价值的初创企业,关注技术领域包括机器智能、物联网、自然人机交互、企业计算。在近四年的时间里,将门创投基金已经投资了包括量化派、码隆科技、禾赛科技、宽拓科技、杉数科技、迪英加科技等数十家具有高成长潜力的技术型创业公司。
如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给“门”:
bp@thejiangmen.com
点击右上角,把文章分享到朋友圈
扫二维码|关注我们
微信:thejiangmen
bp@thejiangmen.com
点击“❀在看”,让更多朋友们看到吧~