Dailymotion 的 Gladys 和 Samuel 讲解如何使用向量搜索实现基于内容的视频推荐
Demetrios Brinkmann
·2024 年 3 月 19 日

“我们选择的向量搜索引擎是 Qdrant,但我们为什么要选择它?实际上,它满足了我们所有的负载限制和技术需求。它能让我们快速进行近邻搜索。它有一个 Python API,与我们的推荐器标签相匹配。”
– Gladys Roch
Gladys Roch 是 Dailymotion 的一名法国机器学习工程师,致力于视频内容的推荐系统。
“我们没有完全的控制权,而且他们的解决方案成本非常高,但价值却很低。所以之后我们尝试对其他解决方案进行基准测试,结果发现 Qdrant 对我们来说更容易实现。”
– Samuel Leonardo Gracio
Samuel Leonardo Gracio 是 Dailymotion 的高级机器学习工程师,主要从事推荐系统和视频分类工作。
在 Spotify、Apple Podcast、Podcast addicts、Castbox 上收听本期节目。您也可以在 YouTube 上观看本期节目。
主要收获
您是否被旨在为您提供下一个值得狂看的视频内容的推荐系统所吸引?我们绝对是。
准备好揭示让数百万人沉迷的秘密吧,Demetrios 将与 Dailymotion 幕后的智囊团畅聊。本期节目充满了来自 Dailymotion 机器学习工程师的真知灼见,他们正在重塑我们在线发现视频的方式。
以下是您将从本期节目中获得的收获
- 魔法背后的机制:了解强大的视频嵌入过程如何改变游戏规则——从文本元数据到音频信号及其他。
- 多语言理解的力量:发现有助于向全球观众推荐视频、超越语言障碍的工具。
- 打破回音室:了解 Dailymotion 的“视角”功能如何改变用户的发现体验。
- 挑战与胜利:听听 Qdrant 如何帮助 Dailymotion 处理海量视频目录并确保最新内容出现在您的动态中。
- Qdrant 幕后:深入了解 Dailymotion 为何将推荐需求委托给 Qdrant 的能干之手(或者说算法)。
趣闻:您知道 Dailymotion 每天要处理超过 1300 万次推荐吗?这就像每天为希腊的全体人口提供个性化视频播放列表!
节目笔记
00:00 Gladys 和 Samuel 的向量空间对话介绍。
05:07 推荐系统需要向量搜索进行推荐。
09:29 选择向量搜索引擎进行快速近邻搜索。
13:23 视频转录用于可扩展的多语言嵌入。
16:35 转录优先级高于视频标题和标签。
17:46 根据元数据对视频进行策划以确保质量。
20:53 机器学习工程师的 Qdrant 设置概述。
25:25 增强的推荐系统提高了用户参与度。
29:36 推荐系统、A/B 测试、集合别名策略。
33:03 Dailymotion 的新功能使视频视角多样化。
34:58 探索不同视角并排除某些话题。
Gladys 和 Sam 的更多引言
“基本上,我们计算嵌入,然后将它们输入 Qdrant,我们通过流式管道完成此操作,这意味着每当有新视频上传或更新时(例如,如果描述发生变化),嵌入将被计算,然后直接输入 Qdrant。”
– Gladys Roch
“我们基本上会向用户推荐视频,如果其他观看相同视频的用户也观看了其他视频。但问题是,这只适用于我们称之为高信号的视频。也就是说,那些至少有数千次观看和一些互动的视频,因为对于新鲜或小众视频,我们没有足够的互动。”
– Samuel Leonardo Gracio
“但每次我们将新视频添加到 Dailymotion,它都会增长。因此,它可以为我们不太了解的、互动较少的视频提供推荐。所以我们非常高兴,因为它使我们在低信号上的性能大幅提升。我们让点击率(CTR,即推荐点击次数)增加了三倍。因此,借助 Qdrant,我们能够解决冷启动问题。”
– Gladys Roch
“你们有一个非常酷的团队,在遇到困难时帮助我们实现了某些部分,我认为这绝对是我们选择 Qdrant 而不是其他解决方案的原因。”
– Samuel Leonardo Gracio
文字记录
Demetrios:我不知道你们是否意识到自己卷入了什么,但我们又回到了另一期的向量空间对话。我的直播有点卡顿和缓慢,所以我想我们直接开始吧,与来自 Dailymotion 的 Gladys 和 Samuel。感谢两位的加入。能请到你们,我感到非常荣幸。对于所有正在观看的人,请在聊天中提出您的问题和任何其他您想评论的内容。我们喜欢和你们聊天,如果我们需要暂停演示并立即提问,我会在屏幕上出现。但现在,我想你们都有一些屏幕分享想给我们看。
Samuel Leonardo Gracio:是的,没错。所以首先,当然,谢谢邀请。是的,我会分享我的屏幕。我们有一个演示。太棒了。现在应该没问题了。
Demetrios:太棒了。
Samuel Leonardo Gracio:那我们开始吧?
Demetrios:我很乐意。是的,我很兴奋。我想大家也很兴奋。
Gladys Roch:大家好,欢迎来到我们的向量空间对话。我是 Gladys Roch,Dailymotion 的机器学习工程师。
Samuel Leonardo Gracio:我是 Samuel,Dailymotion 的高级机器学习工程师。
Gladys Roch:今天我们将讨论推荐背景下的向量搜索,特别是 Qdrant。这会有点难。我们已经习惯用法语发音 Qdrant,所以这次演示中可能会有些口误,提前抱歉,我们将介绍 Qdrant 以及我们如何将其用于基于内容的推荐系统。所以我们首先会介绍背景,以及为什么我们需要一个向量数据库,以及为什么我们选择了 Qdrant,我们如何使用 Qdrant,以及我们在其中放入了什么,我们对我们建立的管道非常开放,然后我们将介绍结果,以及 Qdrant 如何帮助我们解决了我们遇到的问题。
Samuel Leonardo Gracio:是的。首先,我将大致介绍一下 Dailymotion 的推荐系统。简单介绍一下 Dailymotion,因为你们不都是法国人,所以可能不都知道 Dailymotion 是什么。我们是一个视频托管平台,就像 YouTube 或 TikTok 一样,成立于 2005 年。所以它是一个老牌视频公司,我们每月有 4 亿独立用户。所以用户、视频和观看量都非常多。这就是为什么我们认为它很有趣。Dailymotion 的产品可以分为三个部分。
Samuel Leonardo Gracio:一个部分是原生应用。如您所见,它与其他应用如 TikTok 或 Instagram Reels 非常相似。您有垂直视频,只需滚动即可。我们还有一个网站。Dailymotion.com 是我们的主要产品,也是历史悠久的产品。在这个网站上,您有一个观看页面,例如您可以在 YouTube 上看到的。我们还是一个视频播放器,您可以在大多数法国网站甚至其他国家找到。所以我们几乎到处都有推荐功能,并且针对每个产品都有不同的推荐器。
Gladys Roch:好的,这就是 Dailymotion。但今天我们将重点介绍我们的一个推荐系统。实际上,机器学习工程师团队负责多个推荐系统。但视频对视频的推荐是最古老且使用最多的。它就是您在屏幕上看到的,是您在观看视频时可以在旁边或下方看到的视频推荐队列。为了计算这些建议,我们有多个模型在运行。所以它是一个全局系统。这个推荐对 Dailymotion 来说非常重要。
Gladys Roch:它实际上是一个关键组件。它是受众生成的主要杠杆之一。因此,对于所有通过 SEO 或其他方式访问网站的人来说,这就是我们如何产生更多受众和更多参与度的方式。因此,它在平台的收入流中非常重要。所以,在这方面努力绝对是团队的一个主要议题,这就是为什么我们一直在这个议题上不断发展。
Samuel Leonardo Gracio:好的,那么我们为什么要为这个推荐功能需要一个向量搜索呢?我想我们为此而来。像许多平台和许多推荐系统一样,我们采用了一种基于协同模型的非常常见的方法。所以我们基本上会向用户推荐视频,如果其他观看相同视频的用户也观看了其他视频。但问题是,这只适用于我们称之为高信号的视频。也就是说,那些至少有数千次观看和一些互动的视频,因为对于新鲜或小众视频,我们没有足够的互动。而且我们有一个问题,我认为所有推荐系统都可能遇到,那就是冷启动问题。所以这个冷启动问题实际上是针对新用户和新视频的。所以如果我们没有任何信息或互动,就很难基于这种协同方法推荐任何东西。
Samuel Leonardo Gracio:所以解决这个问题的想法是使用基于内容的推荐。这也是一个经典的解决方案。其思想是,当你有一个非常新的视频时。所以,在这个案例中,视频 A,当没有足够的信息时,一个很好的推荐是推荐一个非常相似的视频,并希望用户也能观看它。因此,当然,我们为此使用了 Qdrant,我们将解释如何使用。是的,这个想法是将所有内容放入向量空间中。所以 Dailymotion 的每个视频都将通过一个嵌入模型。所以对于每个视频,我们将获得一个视频嵌入。
Samuel Leonardo Gracio:我们稍后会描述如何做到这一点,并将其放入向量空间中。之后,我们就可以使用 Qdrant 进行查询,抱歉,Qdrant 进行查询并获取我们将推荐给用户的相似视频。
Gladys Roch:好的,如果我们要用嵌入来表示我们的视频,那么我们就会有一个向量空间,但我们需要能够查询这个向量空间,并且不仅要查询它,还要大规模地在线查询,因为它是一个面向用户的推荐器。所以我们有一些要求。第一个是我们目录中有大量的视频。所以实际上进行精确的近邻搜索是不合理、不现实的。这是一个组合爆炸问题,所以我们不能进行精确的 Knn。此外,Dailymotion 每小时都有新视频上传。所以如果我们可以设法进行 KNN 并预计算它,它将永远不会是最新的,并且每次重新计算以包含所有新视频的成本会非常高。所以我们需要一个能够不断整合新视频的解决方案。
Gladys Roch:而且我们规模很大,每天提供超过 1300 万次推荐。这意味着我们需要一个大型设置来全天检索许多视频的近邻。最后,我们有用户在等待推荐。所以它不仅仅是预计算和存储的,也不仅仅是内容知识。我们正在尝试尽快提供推荐。所以我们有时间限制,我们只有几百毫秒来计算我们将展示给用户的推荐。所以我们需要能够非常快速地检索我们想要推荐给用户的附近视频。所以我们需要能够相当快速地导航我们正在构建的这个向量空间。
Gladys Roch:所以,当然,我们需要向量搜索引擎。这是最简单的方法,能够计算近似近邻搜索并大规模实现。所以很明显,我们选择的向量搜索引擎是 Qdrant,但我们为什么要选择它呢?实际上,它满足了我们所有的负载限制和技术需求。它让我们能够进行快速的近邻搜索。它有一个 Python API,与我们现有的推荐器标签相匹配。对我们来说,一个非常重要的问题是,不仅要将向量的嵌入放入这个空间中,还要将元数据也放进去,以便能够获得更多信息,而不仅仅是视频在这个数据库中的数学表示。实际上,这样做可以使其可过滤,这意味着我们可以检索视频的近邻,但要根据一些限制条件,这对于我们来说非常重要,特别是对于语言限制。Samuel 稍后会更详细地谈论这一点。
Gladys Roch:但我们有一个多语言嵌入,我们需要能够根据语言过滤所有视频,以便为我们的用户提供更强大的推荐。而且 Qdrant 是分布式的,因此具有可扩展性,我们之所以需要它,是由于我刚才谈到的负载。所以这些是促使我们选择 Qdrant 的主要原因。
Samuel Leonardo Gracio:而且他们有一个很棒的团队。
Gladys Roch:所以那是另一个,那将是我们的经验回报。Qdrant 的团队非常好。你们实际上帮助我们搭建了集群。
Samuel Leonardo Gracio:是的。那么我们在 Qdrant 集群中放入了什么呢?我们是如何构建强大的视频嵌入的?我认为这真的很有趣。对我们来说,第一点是要知道视频是关于什么的。这实际上是一个非常棘手的问题。当然,对于平台上传的每个视频,我们都有视频信号,所以有很多帧代表视频,但我们不会将它们用于我们的会议。事实上,我们为什么不使用它们,是因为它们包含大量信息。没错,但不是我们想要的。例如,这里有一个关于勒布朗·詹姆斯采访的视频。
Samuel Leonardo Gracio:但如果你只使用帧,即视频信号,你甚至不知道他在说什么,视频到底是什么。所以我们仍然尝试使用它。但事实上,表示我们视频最有趣的东西是文本元数据。所以文本元数据,我们每个视频都有。所以对于平台上传的每个视频,我们都有一个视频标题、视频描述,这些都是上传视频的人设置的。但我们也有自动检测的标签。所以,例如,对于这个视频,你可能会有勒布朗·詹姆斯,我们还有自动生成的字幕。所以告诉你,我们使用 Whisper 来做,这是一个 OpenAI 提供的开源解决方案,我们正在大规模地做。
Samuel Leonardo Gracio:当视频上传时,我们直接拥有视频转录,我们可以利用这些信息,通过文本嵌入来表示我们的视频,这更容易处理,并且比帧等需要更少的计算量。所以我们面临的另一个问题是,我们需要一个可以扩展的嵌入,因为它不需要太多的计算时间,因为我们有大量的视频,超过 4 亿个视频,而且我们每小时都有许多视频上传,所以它需要扩展。我们的平台也有许多语言,视频中有超过 300 种语言。即使我们是一个法国视频平台,实际上只有三分之一的视频是法语的。大多数视频是英语或其他语言,如土耳其语、西班牙语、阿拉伯语等。所以我们需要一个多语言的东西,这不太容易找到。但我们想出了这种嵌入,它被称为多语言通用句子编码器。它不是最著名的嵌入,所以我认为分享它很有趣。
Samuel Leonardo Gracio:它是开源的,所以每个人都可以使用。它在 Tensorflow Hub 上可用,我想现在在 Hugging Face 上也可用,所以很容易实现和使用。好处是它是预训练的,所以你甚至不必在你的数据上进行微调。你可以,但我认为它甚至不是必需的。当然,它是多语言的,所以它不适用于所有语言。但我们平台上的主要语言仍然有。它侧重于语义相似性。你这里有一个例子,当你有不同的视频标题时。
Samuel Leonardo Gracio:例如,一个关于足球,另一个关于电影。即使你有另一个语言的视频标题,如果它谈论的是同一个话题,它们也会有很高的余弦相似度。这就是我们想要的。我们希望能够推荐我们目录中的每个视频,不取决于语言。而且好消息是它真的很快。实际上,在 CPU 上只需几毫秒,所以很容易扩展。所以这对我们来说是一个巨大的需求。
Demetrios:我们可以插话吗?
Demetrios:有一些问题正在出现,我认为这些问题很有价值。实际上,它可能更适合上一张幻灯片。Sameer 正在问这个问题,实际上,再往后一张。抱歉,关于勒布朗。是的,这实际上是关于你如何理解视频的。Sameer 想知道你是否可以通过放置一些其他标签来引用“破解”理解。
Samuel Leonardo Gracio:啊,你是说从用户的角度来看,就像上传视频的人一样,对吗?
Demetrios:是的,没错。
Samuel Leonardo Gracio:在使用转录之前你可以这样做,但由于我们主要使用转录,并且我们只使用标题,所以标签是自动生成的。因此,这在我们这边。所以标题和描述,你可以随便写。但由于我们有转录,我们知道视频的内容,并且我们嵌入了这些内容。所以标题和描述在嵌入中并不是优先级。所以我想这仍然是可能的,但我们没有这样的用例。事实上,大多数上传视频的人只是想放一个正确的标题,但我想这仍然是可能的。但是,有了转录,我们没有这样的例子。
Samuel Leonardo Gracio:是的,希望如此。
Demetrios:这也很棒。它引出了下一个问题,这是关于,来自 Juan Pablo。对于没有文本和有意义音频的视频,比如 TikTok 或短视频,你怎么办?
Samuel Leonardo Gracio:目前,对于这些视频,我们只使用标题标签、描述和其他视频元数据中的信号。我们还有一个审核团队,他们会观看我们这里推荐最多的视频。所以我们知道我们推荐的视频大多是好的视频。对于那些没有音频信号的视频,我们被迫使用标题标签和描述。所以这些是我们目前风险最大的视频。但我们目前也在研究使用音频信号和帧(但不是所有帧)的方法,但目前我们还没有这个解决方案。对。
Gladys Roch:另外,就像我说的,它不仅仅是一个模型,我们谈论的是基于内容的模型。但如果我们的相似度分数不够高,或者我们对最接近的视频没有足够的信心,那么我们就会默认使用另一个模型。所以它不是一个,而是一个巨大的系统。
Samuel Leonardo Gracio:是的,还有一点,我们正在谈论互动较少的视频,所以它们不是有风险的视频。我的意思是,它们的观看量不多。当调用这个基于内容的算法时,它们很重要,因为它们是非常新的视频,而新的视频会在几分钟内获得大量观看。但是当协同模型重新训练时,它将能够基于内容本身以外的东西推荐视频,它将使用协同信号。所以我不太确定这对我们来说是否是一个真正重要的风险。但即便如此,我认为我们仍然可以在这方面做一些改进。
Demetrios:那么我该去哪里申请在内容团队整天看视频呢?好了,我让你继续吧。抱歉打断了。如果其他人有好的问题。
Samuel Leonardo Gracio:我想在演示过程中提问比较容易回答。所以,是的,抱歉,我刚才说我们有这个多语言嵌入,现在向大家介绍我们的嵌入管道。所以,对于每个上传或编辑的视频,因为你可以随时更改视频标题,我们会向数据流管道发送一个发布/订阅事件。所以这是一个流式作业,对于每个视频,我们将检索。所以文本元数据、标题、描述标签或转录,对其进行预处理以删除一些单词,然后调用模型生成嵌入。然后。所以我们把它放在 bigquery 中,当然,也放在 Qdrant 中。
Gladys Roch:所以我将介绍一下我们的 Qdrant 设置。实际上,所有这些都是由我们的分层 DevOps 团队部署的,而不是我们这些机器学习工程师。所以这是一个概述,我不会深入细节,因为我对所有这些都不熟悉,但基本上,正如 Samuel 所说,我们正在计算嵌入,然后将它们输入 Qdrant,我们通过流式管道来完成此操作,这意味着每当有新视频上传或更新时(例如,如果描述发生变化),嵌入将被计算,然后直接输入 Qdrant。另一方面,我们的推荐器通过 GrPC 入口查询 Qdrant 向量空间。实际上,Qdrant 正在六个使用 ARM 节点的 Pod 上运行。如果您感兴趣,我们有关于我们正在使用的节点类型的具体信息。但基本上,这就是设置。有趣的是,我们目前的推荐堆栈是本地部署的,这意味着它在 Dailymotion 服务器上运行,而不是在 Google Kubernetes Engine 上,而 Qdrant 在 TKE 上运行。
Gladys Roch:所以我们正在从外部查询它。而且,如果您对这个设置有更多问题,我们很乐意将您转介给帮助我们完成此设置的 DevOps 团队。最后是结果。我们之前提到过我们有冷启动问题。所以在 Qdrant 之前,我们在应对这个挑战时遇到了很多困难。我们有一个协同推荐器,它在高级视频上经过训练并表现出色,这意味着视频有很多互动。所以我们可以看到用户喜欢观看什么,他们喜欢一起观看哪些视频。我们还有一个元数据推荐器。
Gladys Roch:但首先,这个协同推荐器实际上也被用来计算冷启动推荐,这并不是它训练的目的,但我们使用一个默认的嵌入来计算冷启动的默认推荐,这导致了许多流行度问题。推荐系统的流行度问题是指你总是推荐同一个非常受欢迎的视频,这就像一个反馈循环。很多人会默认选择这个视频,因为它可能是点击诱饵,然后我们会有很多无效操作。所以它会再次污染协同模型。所以我们显然有流行度问题。而且我们也有这种元数据推荐器,它只专注于非常小范围的受信任所有者和受信任的视频来源。所以它正在工作。它是一个自动编码器,没问题,但范围太小了。
Gladys Roch:通过这个模型可以推荐的视频太少了。而且这两个模型训练的频率非常低,每 4 小时和 5 小时才训练一次,这意味着平台上任何新视频都无法在长达 4 小时内得到适当的推荐。所以这是主要问题,因为 Dailymotion 使用大量的最新视频,我们有很多新闻等等。所以我们需要与时俱进,而这么大的延迟是无法做到的。因此,我们在低信号上的整体表现不佳。所以我们用 Qdrant 解决了这个问题。我们仍然有我们的协同推荐器。从那时起它已经发展了。
Gladys Roch:它实际上计算频率更高,但协同模型现在只关注高信号,它不会计算它不了解的低信号的默认推荐。我们有一个基于 muse 嵌入和 Qdrant 的内容推荐器,它能够在视频上传到平台后立即向用户推荐视频。它现在有一个不断增长的范围,目前有 2000 万个向量。但每次我们向 Dailymotion 添加新视频时,它都会增长。因此,它可以为我们不太了解的、互动较少的视频提供推荐。所以我们非常高兴,因为它使我们在低信号上的性能大幅提升。我们让点击率(CTR,即推荐点击次数)增加了三倍。因此,借助 Qdrant,我们能够解决冷启动问题。
Gladys Roch:我刚才说的,关于新视频、受欢迎度、低性能,我们都解决了,我们对这个设置非常满意。它运行平稳。是的,我想演示就到这里了,至少幻灯片部分是这样。所以我们乐于讨论,如果您有任何关于推荐系统细节的问题,尽管提问。
Demetrios:当大家在聊天中输入所有内容时,我有一些问题,我认为我们应该首先讨论的是,当您查看不同的向量数据库和向量搜索引擎时,您的评估过程是如何进行的?
Samuel Leonardo Gracio:这是一个好问题。首先,您必须知道我们使用 Google Cloud Platform。所以我们做的第一件事就是使用他们的向量搜索引擎,也就是匹配引擎。
Gladys Roch:是的。
Samuel Leonardo Gracio:但是匹配引擎的问题是,实际上我们无法添加 API,首先它不易使用。其次是,我们无法像在 Qdrant 中那样放置元数据,并在查询之前进行预过滤,就像我们现在在 Qdrant 中所做的那样。最重要的是,他们的解决方案是托管的。是的,是托管的。我们没有完全的控制权,而且最终他们的解决方案成本非常高,但提案却很低。所以之后我们尝试对其他解决方案进行基准测试,我们发现 Qdrant 对我们来说更容易实现。我们有非常酷的文档,所以很容易测试一些东西,基本上,至少对于我们的用例,我们没有发现任何缺点。
Samuel Leonardo Gracio:此外,你们有一个非常棒的团队,在遇到困难时帮助我们实现了某些部分,我认为这绝对是我们选择 Qdrant 而不是其他解决方案的原因,因为我们实现了 Qdrant。
Gladys Roch:就像在 2023 年 2 月甚至 1 月一样,Qdrant 相当新,所以文档仍在建设中。所以你通过 Discord 帮助我们设置了集群。所以这真的很棒。
Demetrios:太棒了。那么使用 Qdrant 最不喜欢的部分是什么?
Gladys Roch:是的,我有一个。我发现它一开始并不是一个要求,但对于推荐系统,我们倾向于进行大量的 A/B 测试。你可能想知道 Qdrant 和 A/B 测试有什么关系。它们不相关,但实际上我们能够 A/B 测试我们的集合。所以我们如何计算嵌入?首先我们有一个没有转录的嵌入,现在我们有一个包含转录的嵌入。所以我们想 A/B 测试这个。在 Quellin 上你可以有集合别名,这非常有用,因为你可以让两个集合同时存在于集群上,然后在你的代码中你可以只调用生产集合,然后将别名设置为正确的集合。所以对于 A/B 测试和发布非常有用。
Gladys Roch:当我第一次想做 A/B 测试时,我发现了它。我喜欢这个,它确实存在,我也喜欢它。我喜欢的第二件事是 API 文档,比如那些自动生成的,带有所有示例以及如何在 Qdrant 上查询任何信息。对于一个非 DevOps 人员来说,这真的很好。它帮助我们随时调试我们的集合。所以它非常容易上手。
Samuel Leonardo Gracio:而且产品发展如此之快,几乎每周都有新的功能。我觉得这真的很酷。有一个社区,我想,是的,这真的很有趣,能有这样的人在一个像这样的开源项目上工作,真是太棒了。
Gladys Roch:在准备这次演讲时,我们收到了开发团队的反馈。我们向他们寻求我试图展示的小模式。是的,他们说 Qdrant 的开源社区非常好。它很容易贡献,在 Discord 上非常开放。我想我们曾经在某个时候做过一次经验分享,关于我们最初如何设置集群。是的,他们对它用 Rust 编写的事实非常兴奋。我不知道你是否经常听到这个,但对他们来说,用这种新语言贡献更具鼓励性。
Demetrios:100% 太棒了。那么我最后一个问题是,Dailymotion 的其他产品是否也使用了 Qdrant,是的,我们确实使用了。
Samuel Leonardo Gracio:我有一张幻灯片是关于这个的。
Gladys Roch:我们有幻灯片,因为几周前我们在另一次演讲中介绍了 Qdrant。
Samuel Leonardo Gracio:所以我们没有仅仅为这次演示准备这张幻灯片,它来自另一个演示,但仍然,这是一个很好的点,因为我们目前正在尝试在其他项目中使用它。正如我们在这次演示中提到的,我们主要将其用于观看页面,即 Dailymotion.com,但我们最近也通过一个名为“视角”的功能将其引入了移动应用程序。所以这个功能的目标是能够打破这种垂直的推送算法,让用户有一个按钮来发现新视频。所以当你浏览你的推送时,有时你会看到一个关于电影的视频。你会看到这个名为“视角”的按钮,你将能够看到其他关于同一部电影的视频,但它们会给你另一个观点。所以喜欢这部电影的人,不喜欢这部电影的人,我们使用 Qdrant,抱歉,用于候选生成部分。所以获取相似的视频,并获取谈论相同主题的视频。
Samuel Leonardo Gracio:所以我不会过多谈论这个项目,因为它需要另外 20 分钟或更长的演示。但我们仍然在其他项目中使用它,是的,看看我们能用这个工具做什么真的很有趣。
Gladys Roch:一旦我们设置好向量空间,我们就可以在所有推荐项目中随时查询它。
Samuel Leonardo Gracio:我们还测试了一些搜索。我们实际上正在测试很多东西,但我们还没有实现它。目前我们只有这个“视角”推送和基于内容的 Roko,但我们仍然有很多使用这个向量搜索空间的想法。
Demetrios:我喜欢“换个视角”这个想法。这样就不会像你之前提到的那样,陷入回音室,所有人都说着同样的话。你可以看到是否有其他方面。我能看出这会非常有用。胡安·巴勃罗又回来了,在聊天中提问,你们是否能够使用负面搜索查询来推荐视频,负面的意思是,例如,作为一个用户,我想看某个主题的视频,但我想从视频中排除某些主题。
Gladys Roch:好的。我们目前实际上没有这样做,但我们知道我们可以使用 Qdrant 来设置查询的积极和消极点。所以实际上目前我们只检索近邻的正面视频,并在这些推荐之上应用一些业务过滤器。仅此而已。
Samuel Leonardo Gracio:那是因为我们也有这个协同模型,它是我们的主要推荐系统。但我想我们绝对需要检查一下,也许将来我们会实现它。我们看到了很多关于这方面的文档,我敢肯定它在我们的用例中会运行得非常好。
Demetrios:太棒了。各位,我想今天就到这里了。非常感谢你们前来与我们交流,并向我们介绍你们如何使用 Qdrant,并且非常透明地分享了你们的使用经验。我学到了很多。对于所有正在进行推荐系统工作并对更多信息感兴趣的人,我想他们可以在 LinkedIn 上联系你们。我们已经把你们的资料放到聊天里了,现在让大家尽情享受。所以不要迷失在向量基地中,我们稍后见。
Demetrios:如果有人想做下一次演讲,请联系我。我们一直在寻找精彩的演讲,所以这次非常棒。谢谢大家。
Gladys Roch:谢谢。
Samuel Leonardo Gracio:非常感谢您的邀请,也感谢所有听众。谢谢。
Gladys Roch:再见。