LSH 复习(考试向)

news2024/12/23 15:05:12

LSH Review

  • Overall
  • Minhash Signatures
    • Binary Matrix(bit-vector)
    • Construct MinHash matrix
    • Generate simulated permutations
    • Jaccard similarities
  • Tuning Parameters for rNNS

Overall

hash就是将不同长度规则的文本转化成相同长度的字符串,用这些相同长度的字符串来表示原文本。但是传统 hash存在一个问题是,相同内容的文本会生成相同的 hash,但是相似的文本(可能就是一个字的差别)生成的 hash会有很大的不同。但是我们在做文本相似度时,希望对相似的文本生成相似的 hash,这样我们只需要计算一个个特定长度的 hash值之间相似度,就可以近似得到原文本之间的相似度了,显然传统的 hash算法是做不到这一点的 。

针对这个问题我们就要设计一种hash算法,让相似的文本生成相似的 hash值。

在这里插入图片描述MinHash each set/document into a hash table Only compute Jaccard similarity of any pair of sets in the same bucket

Minhash Signatures

在这里插入图片描述Question

在这里插入图片描述

Binary Matrix(bit-vector)

Universe = {1,2,3,4,5,6,7}
D1 has {1,2,5,6,7}
Hence, D1[1] = D1[2] = D1[5] = D1[6] = D1[7] =1, while D1[3] = D1[4] = 0, so on and so forth.

在这里插入图片描述
(A)Answer

在这里插入图片描述

Construct MinHash matrix

在minhash算法中是怎么生成 hash的呢 可以用如下 3步来简单理解如何生成 hash

  • 将行随机打乱。

  • 行打乱后,针对每个 S1、 S2、 S3看第一个 1所在的行号,这个行号就是这个集合的最小值就是 MinHash Value。

  • 设定 hash的大小,如果是 N,则重复上述步骤,随机进行 N次行打乱, 得到 N个最小哈希值,那么这 N个 MinHash Value组成的集合就是 S1、 S2、 S3 MinHash Signature

所以,MinHash Signature 是 N个 MinHash Value组成的集合

比如,对于红色的第一列随机行号S1来说,D1的一列中D1[n] == 1所对应的行号的集合为{4,2,6,3,5},其中最小的是2,所以D1在S1上的MinHash Value是2,以此类推。
在这里插入图片描述

(B)Answer

在这里插入图片描述

Generate simulated permutations

Question

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Jaccard similarities

Example

在这里插入图片描述

Answer

在这里插入图片描述

Tuning Parameters for rNNS

LSH (Locality Sensitivity Hashing, 局部敏感哈希)算法通过上面的Min Hashing可以将一个大矩阵通过哈希映射压缩成一个小矩阵,同时保持各列之间的相似性,从而降低了复杂度。但是,虽然我们降低了特征复杂度,如果用户非常多的话,我们的计算量依然是非常大的(O(n**2)),如果我们能先粗略地将用户分桶,将可能相似的用户以较大概率分到同一个桶内,这样每一个用户的“备选相似用户集”就会相对较小,降低寻找其相似用户的计算复杂度,LSH就是这样一个近似算法。

LSH的具体做法是在Min Hashing所得的signature向量的基础上,将每一个向量分为几段,称之为band(即每个band包含多行),如下图所示

在这里插入图片描述
每个signature向量被分成了4段,图上仅展示了各向量第一段的数值。其基本想法是:如果两个向量的其中一个或多个band相同,那么这两个向量就可能相似度较高;相同的band数越多,其相似度高的可能性越大。所以LSH的做法就是对各个用户的signature向量在每一个band上分别进行哈希分桶来计算相似度,在任意一个band上被分到同一个桶内的用户就互为candidate相似用户,这样只需要计算所有candidate用户的相似度就可以找到每个用户的相似用户群了。

下面我们对signature向量的分桶概率作一些数值上的分析,以便针对具体应用确定相应的向量分段参数。假设我们将signature向量分为b个band,每个band的大小(也就是band内包含的行数)为r。假设两个用户向量之间的Jaccard相似度为s,前面我们知道signature向量的任意一行相同的概率等于Jaccard相似度s,我们可以按照以下步骤计算两个用户成为candidate用户的概率:

  • 两个signature向量的任意一个band内所有行的值都相同的概率为sr;
  • 两个signature向量的任意一个band内至少有一行值不同的概率为1-sr;
  • 两个signature向量的所有band都不同的概率为(1-sr)b;
  • 两个signature向量至少有一个band相同的概率为1-(1-sr)b,即为两个用户成为candidate相似用户的概率;

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述(A)Answer

在这里插入图片描述
Y – axis: Probability of being a candidate
False Positives: 相似度很低的两个用户被哈希到同一个桶内
False Negatives: 真正相似的用户在每一个band上都没有被哈希到同一个桶内

(B)Answer

在这里插入图片描述
(C)Answer

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

问CHAT:以“重要性”为题写一篇作文

今天小编带大家看看,如何利用CHAT 写一篇作文,那我们来根据要求来问它。 问CHAT :以“重要性”为题写一篇作文,非语言交流的基础”根据下面的提纲来写作文。 1)非言语交际概述。 (暗示:暗示、敏感、情感、非语言) 2)非言语交际的…

Leetcode刷题---搜索插入位置(Java实现二分查找算法)

题目描述&#xff1a; 题解一 class Solution {public int searchInsert(int[] nums, int target) {int i0;while(i<nums.length){if(nums[i]>target){return i;}if(nums[i]<target ){i;}}return i;} }题解二—使用二分查找算法 使用算法前提&#xff1a;数组是一…

52张扑克牌(Python字符串替换)

输入a~d的字母对应扑克牌黑、红、梅、方花色 1~13数字对应扑克牌点数&#xff1b;输出“字母数字”字符串对应的扑克牌花色和点数。 (本笔记适合熟悉Python循环和str字符串处理的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free…

【二叉树经典题目】

根据二叉树创建字符串 本题的关键在于什么情况要省略括号&#xff0c;什么情况不能省略&#xff1a; 左右为空可以省略括号 左不为空&#xff0c;右为空可以省略括号左为空,右不为空不能省略括号 class Solution { public://1.左右为空可以省略括号//2.左不为空&#xff0c;右…

杰林码纠错算法库(lib、dll)以及AWGN信道BPSK信号下的仿真程序(C/C++)

2023年10月30日此次是我最后一次在国内发布纠错算法的测试程序&#xff0c;这个算法2018年左右就出来了第一个版本&#xff0c;部分网络上也能下载到测试程序&#xff0c;尽管以前的版本效率跟不上&#xff0c;而且码率比较固定只能支持0.63。通过几年的努力&#xff0c;我这次…

分享一下怎么做一个同城配送小程序

如何制作一个同城配送小程序&#xff1a;功能特点、使用指南及未来展望 一、引言 随着互联网的快速发展&#xff0c;人们对于生活服务的需求越来越高。同城配送作为连接消费者与商家的桥梁&#xff0c;越来越受到人们的关注。本文将详细介绍如何制作一个同城配送小程序&#…

oracel处理XML时,报ORA-31011、ORA-19202。

原字段为clob&#xff0c; 查询 SELECT XMLTYPE(字段) FROM TABLE_A报错如下&#xff1a; ORA-31011: XML 语法分析失败 ORA-19202: XML 处理 LPX-00217: invalid character 12 (U000C) Error at line 1559时出错 ORA-06512: 在 "SYS.XMLTYPE", line 272 ORA-0651…

3ds Max2022安装教程(最新最详细)

目录 一.简介 二.安装步骤 网盘资源见文末 一.简介 3DS Max是由Autodesk公司开发的一款专业三维建模、动画和渲染软件&#xff0c;广泛应用于影视、游戏、建筑和工业设计等领域。 3DS Max的主要特点和功能包括&#xff1a; 三维建模&#xff1a;3DS Max提供了各种强大的建…

【数据结构】数组和字符串(十一):字符串的定义与存储(顺序存储、链式存储及其C语言实现)

文章目录 4.3 字符串4.3.1 字符串的定义与存储1. 顺序存储2. 链式存储3. C语言实现顺序存储4. C语言实现链式存储代码优化 4.3 字符串 字符串(String)是由零个或多个字符(char)顺序排列组成的有限序列&#xff0c;简称为串。例如 “good morning”就是由12个字符构成的一个字符…

优思学院|制作SPC控制图一定要用Minitab吗?

如果是使用SPC控制图作为一种控制过程变异的工具&#xff0c;无需使用Minitab&#xff0c;用Excel已经相当足够。但无论你使用哪种工具&#xff0c;你都应该要先明白SPC或者控制图工具的目的是什么&#xff0c;以及如何选择合适的控制图&#xff0c;以及如何去解读它等等。 要…

从云到AI到大模型,阿里云始终和谁站在了一起?

引言&#xff1a;云的创新没有减缓 而且在加速深入百行百业 【科技明说 &#xff5c; 热点关注】 【全球云观察 | 每日看点】作为中国最大的云计算厂商&#xff0c;阿里云的产品矩阵覆盖越来越全面&#xff0c;越来越细致&#xff0c;越来越到位。 ​ 在2023杭州云栖大会现场…

如何使用ArcGIS Pro制作带基底三维地图

使用ArcGIS制作三维地形图相信大家都已经比较熟悉了&#xff0c;现在Esri主推的桌面GIS产品是ArcGIS Pro&#xff0c;这里为大家介绍一下ArcGIS Pro制作三维地图的方法&#xff0c;希望能对你有所帮助。 01数据来源 本教程所使用的数据是从水经微图中下载的DEM数据&#xff…

Java体系性能测试进阶必须了解的知识点——GC日志分析

GC定义 GC&#xff08;Garbage Collection&#xff09;是垃圾收集的意思,内存处理是程序员编码容易产生问题的地方&#xff0c;忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃&#xff0c;Java提供的GC功能可以自动监测对象是否需要进行垃圾回收。所以&#xff0c;J…

有质更有智,最低10.88万的哪吒X有多超值?

近期,哪吒汽车可谓是存在感极高,先是官宣娜扎为品牌代言人,再是哪吒X正式上市,更有哪吒GT运动版和官改套件上线等一系列大动作,频频霸榜车圈热搜。近日,首台哪吒X于哪吒汽车嘉兴直营中心交付的消息也在朋友圈刷屏,从正式上市到首台交付,仅仅相隔两天时间,真正实现“上市即交付”…

【pdf密码】PDF没有密码,为什么不能编辑?

打开PDF文件的时候&#xff0c;没有提示带有密码&#xff0c;但是打开文件之后发现没有办法编辑PDF文件&#xff0c;这个是因为PDF文件设置了限制编辑&#xff0c;我们需要将限制取消才能够编辑文件。 那么&#xff0c;我们应该如何取消密码&#xff0c;编辑文件呢&#xff1f…

Linux系统封装ISO镜像(自动安装)

一、准备一个系统 centos7或者centos8都可以;最小化或者桌面版的都可以,自行选择 二、安装自定义镜像工具 yum -y install createrepo mkisofs openssl rsync syslinux三、挂载镜像 创建挂载点 mkdir /mnt/cdrommount /dev/sr0 /mnt/cdrom四、同步 /mnt/cdrom/ 下的文件到 …

分享一下微信小程序里怎么开店

如何在微信小程序中成功开店&#xff1a;从选品到运营的全方位指南 一、引言 随着微信小程序的日益普及&#xff0c;越来越多的人开始尝试在微信小程序中开设自己的店铺。微信小程序具有便捷、易用、即用即走等特点&#xff0c;使得开店门槛大大降低。本文将详细介绍如何在微…

vue-query的使用

vue-query&#xff0c;类似于vuex/pinia&#xff0c;以缓存为目的&#xff0c;但侧重的是对网络请求的缓存。 这是我预想的使用场景&#xff1a;假设在各个页面都需要发起相同的请求&#xff0c;去获取数据&#xff0c;而这种数据在一定时间内不会发生变化&#xff0c;那么这种…

优思学院:从西格玛计算出Cpk与不良率PPM

在品质控制的领域中&#xff0c;Cpk&#xff08;制程能力指数&#xff09;和PPM&#xff08;每百万个中不良品的个数&#xff09;是两个关键的指标&#xff0c;用来评估一个制程的稳定性和一致性。然而&#xff0c;这两者的计算并不简单&#xff0c;特别是当规格中心值与物品量…

openfeign和全局异常

我们在seata中使用openfeign调用服务的时候经常会出现一些问题 (1)在使用openfeign的时候使用到了全局异常,本来feign调用失败会触发降级异常,但是如果加上 全局异常处理器的话可能不会触发,导致降级失败 (2)服务a调用服务b的接口b(),b接口调用出错了,服务b本来应该返回异常,但…