数据库管理-第159期 Oracle Vector DB AI-10(20240311)

数据库管理159期 2024-03-11

  • 数据库管理-第159期 Oracle Vector DB & AI-10(20240311)
    • 1 其他distance函数
    • 2 实例演示
      • 使用其他函数寻找最近向量点
      • 函数变体
      • 简写语法
    • 总结

数据库管理-第159期 Oracle Vector DB & AI-10(20240311)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Associate: Database(Oracle与MySQL)
国内某科技公司 DBA总监
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、认证技术专家、年度墨力之星,ITPUB认证专家,OCM讲师
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭。

写了些其他的东西,又休息了几天,今天继续。
在前面我演示了vector_distance()的默认算法方式,即Euclidean Squared(欧几里得平方)。本期我将演示其他的distance函数。

1 其他distance函数

在Oracle AI Vector Search中还有其他几种类型的distance函数:

  • Cosine Similarity(余弦相似度)
  • Dot Product(点积)
  • Manhattan Distance(曼哈顿距离)
  • Hamming Distance(汉明距离)

在vector_distance()函数中,默认为EUCLIDEAN,指定其他distance函数则使用一下方法:

  • vector_distance(v1, v2, EUCLIDEAN);
  • vector_distance(v1, v2, COSINE);
  • vector_distance(v1, v2, DOT);
  • vector_distance(v1, v2, MANHATTAN);
  • vector_distance(v1, v2, HAMMING);

2 实例演示

本节内容仍使用上一期的VT2表,使用向量点(16,4)进行演示,不同的函数结果略有不同:

使用其他函数寻找最近向量点

Cosine Similarity
我们不关心实际距离,而是关心距离最小的行的ID

SELECT id, vsize, shape, color
FROM   vt2
ORDER  BY vector_distance( vector('[16, 4]'), v, COSINE)
FETCH FIRST 4 ROWS ONLY;

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Euclidean Similarity
我们不关心实际距离,而是关心距离最小的行的ID

SELECT id, vsize, shape, color
FROM   vt2
ORDER  BY vector_distance( vector('[16, 4]'), v, EUCLIDEAN)
FETCH FIRST 4 ROWS ONLY;

image.png

Dot Product
我们不关心实际距离,而是关心距离最小的行的ID

SELECT id, vsize, shape, color
FROM   vt2
ORDER  BY vector_distance(vector('[16, 4]'), v, DOT)
FETCH FIRST 4 ROWS ONLY;

image.png

Manhattan
我们不关心实际距离,而是关心距离最小的行的ID

SELECT id, vsize, shape, color
FROM   vt2
ORDER  BY vector_distance(vector('[16, 4]'), v, MANHATTAN)
FETCH FIRST 4 ROWS ONLY;

image.png

Hamming
我们不关心实际距离,而是关心距离最小的行的ID。还要注意的是,搜索的结果与我们之前使用其他函数看到的结果不同

SELECT id, vsize, shape, color
FROM   vt2
ORDER  BY vector_distance( vector('[16, 4]'), v, HAMMING)
FETCH FIRST 4 ROWS ONLY;

image.png

函数变体

distance函数还有一些其他的变体写法:

  • L1_DISTANCE(v1, v2) = MANHATTAN distance
  • L2_DISTANCE(v1, v2) = EUCLIDEAN distance
  • COSINE_DISTANCE(v1, v2) = COSINE similarity
  • INNER_PRODUCT(v1, v2) = DOT product

L1_DISTANCE
我们不关心实际距离,而是关心距离最小的行的ID

SELECT id, vsize, shape, color
FROM   vt2
ORDER  BY L1_DISTANCE(vector('[16, 4]'), v)
FETCH FIRST 4 ROWS ONLY;

image.png

L2_DISTANCE
我们不关心实际距离,而是关心距离最小的行的ID

SELECT id, vsize, shape, color
FROM   vt2
ORDER  BY L2_DISTANCE(vector('[16, 4]'), v)
FETCH FIRST 4 ROWS ONLY;

image.png

COSINE_DISTANCE

SELECT id, vsize, shape, color
FROM   vt2
ORDER  BY COSINE_DISTANCE( vector('[16, 4]'), v)
FETCH FIRST 4 ROWS ONLY;

image.png

INNER_PRODUCT

SELECT id, vsize, shape, color
FROM   vt2
ORDER  BY INNER_PRODUCT(vector('[16, 4]'), v)
FETCH FIRST 4 ROWS ONLY;

image.png

简写语法

distance函数还有一些简写写法:

  • v1 <-> v2 = Euclidean distance
  • v1 <=> v2 = Cosine similarity
  • v1 <#> v2 = Negative dot product

v1 <-> v2

SELECT id, vsize, shape, color
FROM   vt2
ORDER  BY vector('[16, 4]') <-> v
FETCH FIRST 4 ROWS ONLY;

image.png

**v1 <=> v2 **

SELECT id, vsize, shape, color
FROM   vt2
ORDER  BY vector('[16, 4]') <=> v 
FETCH FIRST 4 ROWS ONLY;

image.png

v1 <#> v2

SELECT id, vsize, shape, color
FROM   vt2
ORDER  BY vector('[16, 4]') <#> v 
FETCH FIRST 4 ROWS ONLY;

image.png

总结

本期针对不同写法的不同distance函数。
本系列内容预计还有2-4篇,分别为其他vector函数,一个相对复杂的demo演示以及与PGVector的对比。
老规矩,知道写了些啥。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/274044.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java中 常见的开源树库介绍

阅读本文之前请参阅------Java中 树的基础知识介绍 在 Java 中&#xff0c;有几种流行的开源树库&#xff0c;它们提供了丰富的树算法和高级操作&#xff0c;可以帮助开发者更高效地处理树相关的问题。以下是几种常见的 Java 树库及其特点和区别&#xff1a; JTree 特点…

CSS3的一些常用语句以及解释

margin和padding position static 该关键字指定元素使用正常的布局行为&#xff0c;即元素在文档常规流中当前的布局位置。此时 top, right, bottom, left 和 z-index 属性无效。 relative 该关键字下&#xff0c;元素先放置在未添加定位时的位置&#xff0c;再在不改变页面…

iconfont 字体应用

1、登录 打开阿里图标 https://www.iconfont.cn/ 2、选择心仪的图标制作 iconfont 字体。 3、图标全部选择入库之后&#xff0c; 点右上角的购物车。 添加到项目&#xff0c;是方便管理图标字体的。 也可以直接下载代码的 4、下载到本地之后&#xff0c;把里面的 iconfont.…

2024护网面试题精选(一)

0x00.基础漏洞篇 00-TOP10漏洞 1.SQL注入 2.失效的身份认证和会话管理 3.跨站脚本攻击XSS 4.直接引用不安全的对象 5.安全配置错误 6.敏感信息泄露 7.缺少功能级的访问控制 8.跨站请求伪造CSRF 9.实验含有已知漏洞的组件 10.未验证的重定向和转发 01-SQL注入漏洞 …

【IEEE列表会议】IEEE第三届信息与通信工程国际会议国际会议(JCICE 2024)

会议简介 Brief Introduction 2024年第三届信息与通信工程国际会议国际会议 (JCICE 2024) 会议时间&#xff1a;2024年5月10日-12日 召开地点&#xff1a;中国福州 大会官网&#xff1a;JCICE 2024-2024 International Joint Conference on Information and Communication Engi…

Humanoid-Gym 开源人形机器人端到端强化学习训练框架!星动纪元联合清华大学、上海期智研究院发布!

系列文章目录 前言 Humanoid-Gym: Reinforcement Learning for Humanoid Robot with Zero-Shot Sim2Real Transfer GitHub Repository: GitHub - roboterax/humanoid-gym: Humanoid-Gym: Reinforcement Learning for Humanoid Robot with Zero-Shot Sim2Real Transfer 一、介…

flink实战--Flink任务资源自动化优化

背景 在生产环境Flink任务资源是用户在实时平台端进行配置,用户本身对于实时任务具体配置多少资源经验较少,所以存在用户资源配置较多,但实际使用不到的情形。比如一个 Flink 任务实际上 4 个并发能够满足业务处理需求,结果用户配置了 16 个并发,这种情况会导致实时计算资…

Qt 绘制中的视口(setViewport)和窗口(setWindow)

重点 &#xff1a; 1.绘制&#xff08;QPainter&#xff09;可以设置视口&#xff0c;视口下设置窗口&#xff0c;而绘制的构件是以窗口为坐标系进行绘画。 2.先根据绘图设备的物理坐标系的矩形位置&#xff0c;设置视图视口setViewport&#xff0c;然后在以视口为区域去设置…

reids设计与实现(一)——数据结构

文章目录 1. 前言2. redis 动态字符串2.1. 字符串的数据结构&#xff1a;2.2. 剖析&#xff0c;length&#xff1b;2.3. 剖析&#xff0c;free&#xff1b;2.3. 使用c字符串函数&#xff1b; 3. redis 链表4. 字典5. 跳跃表6. 整数set&#xff08;intset&#xff09;6.1. 升级&…

弹性盒子布局 Flexbox Layout

可以嵌套下去 1.display 属性 默认行排列 <style>.flex-item{ height: 20px;width: 10px;background-color: #f1f1f1;margin: 10px;}</style> </head> <body> <div class"flex-container"><div class"flex-item">1&l…

maven项目引入私有jar,并打包到java.jar中

私有jar存放位置 maven依赖 <dependency><groupId>com.hikvision.ga</groupId><artifactId>artemis-http-client</artifactId><version>1.1.10</version><scope>system</scope><systemPath>${project.basedir}/s…

[LeetCode][426]【学习日记】将二叉搜索树转化为排序的双向链表——前驱节点pre 和 当前节点cur 的使用

题目 426. 将二叉搜索树转化为排序的双向链表 将一个 二叉搜索树 就地转化为一个 已排序的双向循环链表 。 对于双向循环列表&#xff0c;你可以将左右孩子指针作为双向循环链表的前驱和后继指针&#xff0c;第一个节点的前驱是最后一个节点&#xff0c;最后一个节点的后继是第…

[Unity3D]--更换天空盒子

我们原来的天空盒子是这样的。 感觉不是特别满意&#xff0c;想换一个更好看的。 去资源商店找个好看的 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 例如这个 然后在Window>Rendering>Lighting里的环境选项里更换材质 更换&#xff1a; ​ …

【React】AntV G6 - 快速入手

环境 react&#xff1a; ^18next: 14.1.0antv/g6: ^4.8.24 安装 npm install antv/g6# or pnpm add antv/g6# or yarn add antv/g6使用 模拟数据 const data {nodes: [ // 节点信息{id: "node1",data: {name: "Circle1"}},{id: "node2",d…

OpenCV开发笔记(七十七):相机标定(二):通过棋盘标定计算相机内参矩阵矫正畸变摄像头图像

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/136616551 各位读者&#xff0c;知识无穷而人力有穷&#xff0c;要么改需求&#xff0c;要么找专业人士&#xff0c;要么自己研究 红胖子(红模仿)的博…

vscode设置setting.json

{ // vscode默认启用了根据文件类型自动设置tabsize的选项 "editor.detectIndentation": false, // 重新设定tabsize "editor.tabSize": 2, // #每次保存的时候自动格式化 // "editor.formatOnSave": true, // #每次保存的时候将代码按eslint格式…

【鸿蒙 HarmonyOS 4.0】Web组件

一、介绍 页面加载是Web组件的基本功能。根据页面加载数据来源可以分为三种常用场景&#xff0c;包括加载网络页面、加载本地页面、加载HTML格式的富文本数据。 二、加载网页 2.1、加载在线网页 Web组件的使用非常简单&#xff0c;只需要在Page目录下的ArkTS文件中创建一个…

开源好用的所见即所得(WYSIWYG)编辑器:Editor.js

文章目录 特点基于区块干净的数据 界面与交互插件标题和文本图片列表Todo表格 使用安装创建编辑器实例配置工具本地化自定义样式 今天介绍一个开源好用的Web所见即所得(WYSIWYG)编辑器&#xff1a; Editor.js Editor.js 是一个基于 Web 的所见即所得富文本编辑器&#xff0c;它…

蓝牙系列十二:协议栈ATT层分析

ATT层是一个非常重要的层&#xff0c;定义了各种属性、属性的操作方法&#xff0c;但是这些属性有什么作用&#xff0c;能给用户提供什么服务&#xff0c;它并不知道。 下面这个图是BLE协议各层跟医院的各个科室的类比图&#xff1a; 跟医院类比&#xff0c;ATT层就是化验室&a…

数据治理实践——金融行业大数据治理的方向与实践

目录 一、证券数据治理服务化背景 1.1 金融数据治理发展趋势 1.2 证券行业数据治理建设背景 1.3 证券行业数据治理目标 1.4 证券行业数据治理痛点 二、证券数据治理服务化实践 2.1 国信证券数据治理建设框架 2.2 国信证券数据治理建设思路 2.3 数据模型管理 2.4 数据…