织物是由ML,Vectors和GraphQL提供动力的开源搜索引擎

2021-04-08 21:06:09

Bob Van Luijt'技术的职业生涯于15岁开始,建立网站,帮助人们在线销售牙刷。没有多少15岁的孩子那样做。显然,这对van Luijt足够一开始就开始达到技术趋势的交汇。

Van Luijt继续研究艺术,但无论如何,全职工作全职。 2015年,当谷歌介绍了其randBrain算法时,搜索结果的质量跳起来。这是一个流域时刻,因为它引入了搜索机器学习。一些人注意到,包括van luijt,他看到了商机并决定将其带到群众。

Google' S Rankbrain机器学习改善了用户的搜索结果吗?人们在宣布的时候想知道。作为ZDNet'他自己的eileen brown指出:是的,并且由Rankbrain提供的结果将变得更好,因为它学会了我们想要提出的东西。

对于Van Luijt,这是一个" aha"片刻。就像其他人在技术上工作一样,他必须处理许多非结构化数据。在他的话语中,相关数据是一个问题。即使是结构化数据,数据集成也很难做到。当您有不同来源的非结构化数据时,它变得非常具有挑战性。

Van Luijt在Rankbrain上阅读并计算它使用字矢量化来推断查询中的关系,然后尝试呈现结果。矢量是机器学习模式如何理解世界的方式。例如,人们看到图像,机器学习模型以向量的形式看到图像表示。

向量是一个很长的数字列表,可以被认为是几何空间中的坐标。三维载体 - 即表格的载体(x,y,z) - 对应于人类熟悉的空间。但是,多维向量也存在,这使事情复杂化:

"有许多尺寸,但要绘制一张精神照片,你可以在那里说出三个维度。现在问题是,它'很好,你可以使用矢量来识别照片中的模式,然后说,是的,它,它'猫,或者没有,它不是猫。但那么,如果你想这样做是一个十万张照片或百万张照片怎么办?然后你需要一个不同的解决方案,你需要有一种方法来看待空间并找到类似的东西。"

这是谷歌用rancebrain进行了文本。 van luijt很兴趣。他开始尝试使用自然语言处理(NLP)模型。他甚至必须直接问谷歌和#39;他们是否会建立一个B2B搜索引擎解决方案?自他们的回复是"没有,"他举行了编织。

NLP机器学习模型输出矢量:它们将单个单词放在矢量空间中。编织背后的想法是:如果我们参加文件,那么是什么 - 电子邮件,一个产品,一个帖子,什么 - 看看描述它的所有单词并计算那些单词的向量。

这将是文档位于向量空间中的位置。然后,如果你问,例如:与时尚最有关的出版物?搜索引擎应查看矢量空间,并找到像时尚等出版物,因为靠近"时尚"在这个空间。

这是在编织的核心。此外,织物中的数据以图形格式存储。当图表中的节点位于找到时,用户可以进一步遍历并在图中找到其他节点。

它并不是它不是它不能在传统数据库中存储向量。它是,人们这样做。但经过一定的一点,它变得不切实际。除了性能,复杂性也是一个障碍。例如,在大多数情况下,在大多数情况下,人们没有刺激矢量化如何发生的细节。

编织具有许多内置的矢量仪。有些是通用目的,有些是针对网络安全或医疗保健等特定领域对的。模块化结构使人们也能够插入自己的矢量化器。

编织也适用于流行的机器学习框架,如Pytorch或Tensorflow。但是,有一个捕获:此时,如果您培训模型,或者使用由编织提供的模型,you and#39;重新陷入困境。

如果模型以影响其生成向量的方式的方式更改,则编织将必须重新索引其数据以工作。这目前尚未得到支持。 Van Luijt提到了当前用例中不需要,但他们正在研究支持这一点的方法。

作为一个启动,半技术,Van Luijt公司在编译时,正在展望牵引市场。目前,零售和FMCG行业对他们运作良好,Metro AG是一个突出的用例。

地铁的挑战是如何在市场上找到新的机会。通过将数据与他们的CRM和开放街道地图相结合,帮助他们帮助他们帮助他们。如果存在业务存在的位置无法与CRM中的客户相关联,则表示机会。

跨行业,van Luijt指出,问题在根级别总是相同的:非结构化数据需要与内部结构的东西有关。图表是众所周知的,以帮助利用杠杆连接。但事实证明,即使无法找到连接可以生成业务价值,因为地铁使用情况举例说明。

Van Luijt是一种坚定的信徒,用于利用连接的图表 - 或缺乏。堆叠数据仓库和数据湖泊和Lakehouses中的数据,并且有价值。但是,从数据中的连接中获取价值,它'他指出了最有意义的图形模型。

然后,问题变成了:我们将如何让人们访问这一点?给予人们很多能力,所以他们可以做到和#34;巨大的东西," Van Luijt说,像Sparql这样的图形查询语言可能有意义。

但是如果你想让人们才能访问图形,所以他们有一个非常短的学习曲线,GraphQL变得有趣,他继续添加:"如果他们看到sparql,那么大多数开发人员都是不熟悉的,如果他们看到sparql,他们开始出汗,他们感到紧张。如果他们看到graphql,他们就像,'嘿,我明白了这一点。这是有道理的。'"

在那里'它的另一个达到graphql:周围的社区。有许多图书馆可用,因为编织使用GraphQL,也可以使用这些库。 Van Luijt描述了使用GraphQL作为用户体验(UX)决定的决定 - 要访问API的UX应该是平滑的。

编织也支持模式的概念。当实例开始运行时,API端点可用,用户需要执行的第一件事是创建类属性架构。它可以像它需要的那样简单或复杂,也可以导入现有模式。

当涉及到涉及向量的局限性以及使用开源时,Van Luijt具有非常务实的看法。在他之前引用加里马斯库斯和雷莫尼,"你可以' t cram一个整个$&amp的含义;#*句子成一个$!#&矢量"

这是真的,但如果你可以获得使用载体的实际结果,这是否重要?不多,争论范罗伯特。问题是试图解决的问题正在寻找东西。因此,如果相似性搜索在使用载体的情况下找到有好处的工作,那就是'足够好。他继续添加的想法,是将基于矢量化的远程搜索从数据科学问题转变为工程问题。

在涉及开源时采取了相同的务实方法。人们选择使用开源的原因很多。为了编织,开源或相当开放的核心,被选为透明客户和用户的机制。

也许令人惊讶的是,Van Luijt指出的编译不一定正在寻找贡献者。很高兴,但是开源的主要目的是能够审核。当客户要求他们的专家审计编织时,开源是这样的。

编织可以作为软件服务和本地提供。反击传统智慧,似乎大多数卵利用户都对内部部署感兴趣。

然而,在实践中,这一通常意味着他们自己的项目在一个主要的云提供商中,从编织团队提供服务。 作为团队和产品展示,可以调用朝向自助服务模型的转变。