Tìm cặp tương đồng bằng LSH

Băm nhạy cảm theo tính cục bộ (locality-sensitive hashing, LSH) chỉ xác minh cặp cùng thùng (bucket); cặp đạt ngưỡng có thể bị bỏ sót.

Giải thuật nền tảng của Khoa học dữ liệu

Học kỳ 1 · Năm học 2026–2027

Trường Đại học Công nghệ · Đại học Quốc gia Hà Nội

Tiên quyết và quy ước

Nhắc lại: Jaccard của hai tập hữu hạn, không rỗng là $\mathrm{SIM}(A,B)=|A\cap B|/|A\cup B|$.

Nhắc lại: hoán vị $\pi$ chọn đều, dùng chung cho hai tập, cho $\Pr[h_\pi(A)=h_\pi(B)]=\mathrm{SIM}(A,B)$.

Nhắc lại: cột $c$ của $\mathrm{SIG}$ cỡ $n\times C$ là chữ ký của $S_c$; $\widehat s$ là tỷ lệ hàng trùng.

Ký hiệu: $C$ tài liệu với tập $S_1,\ldots,S_C$; cặp $(c,d)$ viết với $c<d$; $s=\mathrm{SIM}(S_c,S_d)$.

Ký hiệu: ngưỡng $t\in[0,1]$; số thập phân dùng dấu phẩy; góc đo bằng radian.

Mục tiêu học tập

  1. Lập khóa dải (band), dựng thùng, khử lặp, xác minh cặp ứng viên trên ma trận chữ ký.
  2. Tính xác suất thành ứng viên; chọn số dải $b$, số hàng $r$ theo ngưỡng $t$.
  3. Kiểm tính nhạy cảm của một họ băm; tính cận sau phép ghép AND và OR.
  4. Chạy họ chọn tọa độ, siêu phẳng, chiếu có dịch; nêu giả thiết của từng bảo đảm.
  5. Chọn biểu diễn, họ hàm, bước xác minh cho thực thể, vân tay, bản tin.

Nội dung

  1. Bài toán tìm cặp tương đồng
  2. Phân dải chữ ký MinHash
  3. Khoảng cách và họ nhạy cảm
  4. Các họ băm theo độ đo
  1. Ứng dụng tìm cặp tương đồng
  2. Tổng kết và tự kiểm tra
  3. Bài tập vận dụng

Đọc trước: Leskovec, Rajaraman, Ullman, Mining of Massive Datasets (MMDS), ấn bản 3, Chương 3, §§3.4–3.8, tr.91–122.

Vấn đề trung tâm

Nhu cầu: tìm cặp $s\ge t$ trong $10^6$ tài liệu, không xét từng cặp.

  • Xét cặp trùng một dải; ít bỏ sót cặp gần.
  • AND rồi OR, hàm độc lập: cặp gần gần $1$, cặp xa gần $0$.
  • Hamming, góc, Euclid: họ băm riêng.
  • Ba ứng dụng đổi biểu diễn hoặc họ hàm.
  • Chưa giả thiết phân bố tương đồng: xấu nhất xét mọi cặp.

Ví dụ: kho một triệu tài liệu

$C=10^6$ tài liệu; chữ ký $n=250$ thành phần, 4 byte mỗi thành phần.

Tính dung lượng chữ ký, số cặp và thời gian khi mỗi cặp mất $1\,\mu\mathrm{s}$.

Dung lượng chữ ký: $10^6\cdot250\cdot4=10^9$ byte

Số cặp: $\binom{10^6}{2}=499\,999\,500\,000$

Tổng thời gian: $499\,999{,}5$ giây, khoảng $5{,}79$ ngày.

Kết luận: chữ ký $10^9$ byte vừa bộ nhớ; số cặp vẫn tăng bậc hai.

Bài toán tìm cặp tương đồng

Đầu vào: các tập $S_1,\ldots,S_C$ hữu hạn, không rỗng; $\mathrm{SIG}$ cỡ $n\times C$; ngưỡng $t\in[0,1]$.

Đầu ra: mọi cặp $c<d$ có $\mathrm{SIM}(S_c,S_d)\ge t$.

Chữ ký tạo khóa dải, sinh cặp ứng viên duy nhất rồi xác minh trên tập gốc.

Lưu ý: cặp đạt ngưỡng ngoài tập ứng viên là cặp bỏ sót (false negative); nó không được xác minh.

Câu hỏi về bài toán tìm cặp

Nhắc lại: $S_1=\{a,d\}$, $S_4=\{a,c,d\}$; cột chữ ký hai hàng của cả hai là $(1,0)$.

Câu hỏi:

  1. Với $C=10^5$ tài liệu, $1\,\mu\mathrm{s}$ mỗi cặp: tính số cặp, tổng thời gian và số lần giảm so với $C=10^6$.
  2. Với $t=2/3$: tính $\widehat s$, $s$ của cặp $S_1$, $S_4$; xác định đại lượng quyết định cặp đạt ngưỡng.

2.Phân dải chữ ký MinHash

Muốn chỉ xác minh một phần nhỏ các cặp, phải gom các cột giống nhau vào cùng thùng.

Khóa dải · Cặp ứng viên · Xác minh · Đường cong S · Chi phí phát cặp

Dải, khóa dải và cặp ứng viên

Nhu cầu: chữ ký vừa bộ nhớ nhưng còn $\binom C2$ cặp.

Ví dụ. Cột 2 và 4 cùng bộ $(0,2,1)$ ở dải đầu.

Trực quan. Cột càng tương đồng càng dễ trùng ít nhất một dải.

Chữ ký được chia thành b dải, mỗi dải r hàng; mỗi dải tạo khóa gồm số dải và tuple.
  • Chia $n=br$ hàng thành $b$ dải, $r$ hàng.
  • Trùng dải: cùng bộ $r$ giá trị có thứ tự (tuple).
  • Trùng ít nhất một dải: cặp ứng viên (candidate pair).

Ví dụ: năm cột, dải ba hàng

Dải đầu của chữ ký $n=12$, $b=4$, $r=3$; xác định các cặp trùng dải.

Dải đầuCột 1Cột 2Cột 3Cột 4Cột 5
Hàng 110002
Hàng 232122
Hàng 301311

Kết luận: cột 2, 4 là cặp ứng viên; cột 2, 5 trùng hai hàng nhưng chưa trùng dải.

Ví dụ: bốn tập đặc trưng

$S_1=\{a,d\},\quad S_2=\{c\},\quad S_3=\{b,d,e\},\quad S_4=\{a,c,d\}$

Hàng$S_1$$S_2$$S_3$$S_4$
11301
20200

$b=2,\quad r=1,\quad t=2/3$

Lập khóa dải, thùng, tập ứng viên và kết quả.

Khóa của cột $c$ ở dải $j$ là $(j,\text{tuple})$; mỗi dải một bảng thùng.

Ví dụ: bốn tập đặc trưng, thùng của dải 1

Giá trị ở dải 1 của tài liệu 1, 2, 3, 4 là $1$, $3$, $0$, $1$.

Khóa dải 1Tài liệuCặp phát
$(1,(1))$1, 4$(1,4)$
$(1,(3))$2không có
$(1,(0))$3không có

Kết luận: dải 1 phát đúng một cặp $(1,4)$; thùng đơn không phát cặp.

Ví dụ: bốn tập đặc trưng, hợp qua hai dải

Khóa dải 2Tài liệuCặp phát
$(2,(0))$1, 3, 4$(1,3)$, $(1,4)$, $(3,4)$
$(2,(2))$2không có

Dải 1 đã phát $(1,4)$; số lượt phát trước khử lặp là $Q=1+3=4$.

$\mathcal C=\{(1,3),(1,4),(3,4)\}$

Số cặp phân biệt là $K=|\mathcal C|=3$.

Kết luận: cặp $(1,4)$ phát hai lần nhưng chỉ xác minh một lần.

Ví dụ: bốn tập đặc trưng, xác minh

Giữ cặp có Jaccard gốc ít nhất $t=2/3$.

CặpGiaoHợpJaccardKết quả
$(1,3)$$\{d\}$$\{a,b,d,e\}$$1/4$Loại
$(1,4)$$\{a,d\}$$\{a,c,d\}$$2/3$Giữ
$(3,4)$$\{d\}$$\{a,b,c,d,e\}$$1/5$Loại

Cặp dưới ngưỡng vẫn thành ứng viên gọi là ứng viên giả (false positive).

Kết luận: kết quả là $\{(1,4)\}$; $(1,3)$ và $(3,4)$ là ứng viên giả.

Thuật toán: phân dải và xác minh

Đầu vào: $\mathrm{SIG}$ cỡ $n\times C$; $b,r$ nguyên dương, $n=br$; các tập $S_1,\ldots,S_C$ hữu hạn, không rỗng; ngưỡng $t\in[0,1]$.

Khóa dải

$k_{j,c}=\bigl(j,\mathrm{SIG}_{(j-1)r+1:jr,\,c}\bigr)$

Tập ứng viên là $\mathcal C=\{(c,d):c<d,\ \exists j:\ k_{j,c}=k_{j,d}\}$.

Đầu ra: $\{(c,d)\in\mathcal C:\ \mathrm{SIM}(S_c,S_d)\ge t\}$.

Thuật toán: phân dải và xác minh

B ← từ điển rỗng; CAND ← tập rỗng
với j = 1,…,b và c = 1,…,C:
    z ← bản sao SIG[(j−1)r+1 : jr, c]
    k ← (j, z)
    nếu k chưa có trong B: B[k] ← []
    B[k].append(c)
với mỗi danh sách L trong B:
    với mỗi c < d thuộc L: CAND.add((c,d))
OUT ← tập rỗng
với mỗi (c,d) trong CAND:
    nếu SIM(S_c,S_d) ≥ t: OUT.add((c,d))
trả OUT

Vết chạy

${b=2,\ r=1}$

$bC=8$ lượt chèn

$Q=4$ lượt phát cặp

$K=3$ lần kiểm Jaccard

1 cặp kết quả

Tính đúng: phân dải và xác minh

Mệnh đề. Với $\mathrm{SIG}$ cố định, đầu ra là các cặp $s\ge t$ của $\mathcal C$.

Bất biến: danh sách khóa $(j,z)$ bằng tập cột đã chèn ở dải $j$ có tuple $z$.

BướcLập luận
Khởi tạoChưa có khóa mang $j$, chưa chèn cột nào.
Duy trìTạo danh sách nếu khóa mới; nối cột vào.
Kết thúcChung danh sách khi và chỉ khi chung khóa.

Tính đúng: phân dải và xác minh

Vòng phát cặp xét mọi danh sách; CAND khử lặp nên bằng $\mathcal C$.

Vòng xác minh giữ đúng các cặp của $\mathcal C$ có Jaccard ít nhất $t$ (Mệnh đề 06.5).

Điều kiện dừng: các vòng lặp duyệt tập hữu hạn.

Trường hợp biên: $C<2$ hoặc thùng dưới hai phần tử không phát cặp.

Lưu ý: cặp ngoài $\mathcal C$ không được xác minh dù đạt ngưỡng.

Xác suất trùng một dải

Nhu cầu: tính đúng chỉ xét cặp trong $\mathcal C$; cần xác suất cặp vào $\mathcal C$.

Giả thiết: cặp tập cố định có Jaccard $s$; các MinHash lý tưởng chọn đều, độc lập.

Ví dụ. $s=0{,}8$, $r=5$: năm hàng cùng trùng với xác suất $0{,}8^5=0{,}32768$, không trùng dải $0{,}67232$.

Gọi $E_i$ là biến cố hai cột trùng ở hàng $i$ của dải; $\Pr(E_i)=s$.

$\Pr(E_1\cap\cdots\cap E_r)=s^r$

Xác suất thành ứng viên

Định lý. Nếu các dải dùng những MinHash độc lập thì cặp có Jaccard $s$ thành ứng viên với xác suất

$P_{b,r}(s)=1-(1-s^r)^b$

Chứng minh. Không dải nào trùng với xác suất $(1-s^r)^b$; lấy biến cố bù.

Ví dụ. Với $b=20$, $r=5$, cặp $s=0{,}8$ bị bỏ sót với xác suất khoảng $0{,}00036$ (Định lý 06.7).

Đường cong S và chọn số dải

Xác suất ứng viên theo Jaccard thật của cấu hình 20 dải 5 hàng và 10 dải 10 hàng, cùng 100 hàng.

Đường cong S (S-curve) với $b=20$, $r=5$: nghiệm một nửa $s_{1/2}\approx0{,}509$; xấp xỉ $(1/b)^{1/r}\approx0{,}549$.

Tại $s=0{,}8$: cấu hình $b=20$, $r=5$ bỏ sót khoảng $0{,}036\%$, cấu hình $b=r=10$ khoảng $32\%$.

Kết luận: chọn $b,r$ để $s_{1/2}\approx(1/b)^{1/r}$ gần $t$; thấp hơn $t$ để ít bỏ sót, cao hơn $t$ để ít ứng viên giả.

Chi phí: phân dải và xác minh

Mô hình: $\mathrm{SIG}$ và tập gốc đã sắp xếp nằm trong bộ nhớ chính; mỗi mã tài liệu một từ máy.

Tuple dài $r$ tốn $O(r)$; bảng băm kỳ vọng $O(1)$; $u_{j,z}$ là số mã tài liệu trong thùng $(j,z)$.

BướcSố lầnChi phí mỗi lầnĐóng góp
Dựng thùng$bC$$O(r)$ kỳ vọng$bC\cdot O(r)=O(nC)$
Phát và khử lặp$Q=\sum_{j,z}\binom{u_{j,z}}2$$O(1)$ kỳ vọng$Q\cdot O(1)=O(Q)$
Xác minh$K=|\mathcal C|$$T_J(c,d)$$\sum_{(c,d)\in\mathcal C}T_J(c,d)$

Thời gian kỳ vọng $O(nC+Q+\sum T_J)$, $T_J$ là thời gian tính Jaccard (Mệnh đề 06.11).

Chi phí: bộ nhớ và trường hợp xấu nhất

Bộ nhớ phụ $O(nC+K)$, ngoài $\mathrm{SIG}$ và tập gốc đầu vào.

Kỳ vọng (Mệnh đề 06.13): ${\mathbb E[K]=\sum_{c<d}P_{b,r}(s_{cd})}$, ${\mathbb E[Q]=b\sum_{c<d}s_{cd}^r}$.

Xấu nhất, mọi cột chung thùng ở mọi dải:

$Q=b\binom C2,\qquad K=\binom C2$

Kết luận: phân dải không giảm bậc hai vô điều kiện; $Q$, $K$ phụ thuộc phân bố tương đồng.

Câu hỏi về phân dải

Câu hỏi: $S_1=\{a,d\}$, $S_2=\{c\}$, $S_3=\{b,d,e\}$, $S_4=\{a,c,d\}$

Hàng$S_1$$S_2$$S_3$$S_4$
11301
20200
  1. Với $b=1$, $r=2$, $t=2/3$: tính $Q$, $K$ và tập kết quả.
  2. Viết $P_{2,1}(s)$, $P_{1,2}(s)$; tính tại $s=1/4$ và $s=2/3$.
  3. Giải thích vì sao vết chạy với hai hàm cố định không chứng minh được hai công thức đó.

3.Khoảng cách và họ nhạy cảm

Muốn dùng phân dải ngoài Jaccard, phải có độ đo, họ băm hợp với độ đo và phép ghép tách cặp gần, cặp xa.

Tiên đề khoảng cách · Bốn độ đo · Họ nhạy cảm · AND, OR

Độ đo khoảng cách

Nhu cầu: phân dải dùng MinHash nên chỉ phục vụ Jaccard trên tập.

Hai điểm (2,7) và (6,4), chênh lệch tọa độ 4 và 3; đoạn thẳng nối hai điểm dài L₂ = 5.

Ví dụ. $x=(2,7)$, $y=(6,4)$; độ lệch theo hai trục là $4$ và $3$.

Tổng độ lệch: $4+3=7$.

Độ dài đoạn thẳng: $\sqrt{4^2+3^2}=5$.

Độ lệch lớn nhất: $\max(4,3)=4$.

Kết luận: cùng hai điểm, ba độ đo cho ba giá trị.

Độ đo khoảng cách và chuẩn vector

Định nghĩa. Khoảng cách trên miền $X$ là hàm $d:X\times X\to\mathbb R_{\ge0}$ thỏa, với mọi $x,y,w$:

$d(x,y)=0\iff x=y$; $\quad d(x,y)=d(y,x)$;

$d(x,w)\le d(x,y)+d(y,w)$.

Chuẩn $L_q$ trên $\mathbb R^D$, với $q\ge1$:

$\|x-y\|_q=\Bigl(\sum_{i=1}^D|x_i-y_i|^q\Bigr)^{1/q},\qquad\|x-y\|_\infty=\max_i|x_i-y_i|$

Nhận xét. Ba độ đo của ví dụ hai điểm là $L_1$, $L_2$ (Euclid), $L_\infty$.

Khoảng cách Jaccard

Định nghĩa. Trên tập hữu hạn, không rỗng, khoảng cách Jaccard là $d_J(A,B)=1-\mathrm{SIM}(A,B)$.

Mệnh đề. $d_J$ là khoảng cách trên các tập hữu hạn, không rỗng (Mệnh đề 06.15).

Theo định lý MinHash, $d_J(A,B)=\Pr[h(A)\ne h(B)]$; ví dụ $d_J(S_1,S_4)=1/3$.

$\{h(A)\ne h(W)\}\subseteq\{h(A)\ne h(B)\}\cup\{h(B)\ne h(W)\}$

$d_J(A,W)\le d_J(A,B)+d_J(B,W)$

Chứng minh. Bao hàm biến cố rồi chặn hợp; không cần độc lập.

Khoảng cách góc

Định nghĩa. Với $x,y\ne0$, khoảng cách góc trên các hướng (vector đơn vị) là ${\theta(x,y)=\arccos\dfrac{x\cdot y}{\|x\|_2\|y\|_2}\in[0,\pi]}$.

Ví dụ. $x=(1,2,-1)$, $y=(2,1,1)$:

Đại lượngGiá trị
Tích vô hướng và chuẩn$x\cdot y=3$, $\|x\|_2=\|y\|_2=\sqrt6$
Góc$\cos\theta=1/2$, $\theta=\pi/3=60^\circ$

Lưu ý: độ tương đồng cosin (cosine similarity) là $\cos\theta=1/2$; khoảng cách góc là $\pi/3$.

Khoảng cách chỉnh sửa

Định nghĩa. Khoảng cách chỉnh sửa (edit distance) là số lần chèn, xóa ký tự ít nhất biến $x$ thành $y$.

Ví dụ. abcde → acfdeg: xóa b, chèn f, chèn g.

Mệnh đề. Với chèn và xóa, $d(x,y)=|x|+|y|-2L$, $L$ là độ dài dãy con chung dài nhất (Mệnh đề 06.19).

Dãy con chung dài nhất, không cần liên tiếp, là acde, nên $d=5+6-2\cdot4=3$.

Khoảng cách Hamming

Chỉ số12345
$x$10101
$y$11110
So sánhTrùngKhácTrùngKhácKhác

Khoảng cách Hamming là số vị trí khác nhau của hai vector cùng chiều:

$d_H(x,y)=\sum_{i=1}^D\mathbf1[x_i\ne y_i]=3$

Ký hiệu: $\mathbf1[E]$ bằng 1 khi $E$ đúng, bằng 0 khi $E$ sai.

Họ băm nhạy cảm theo tính cục bộ

Nhu cầu: với MinHash, $d_J\le0{,}3$ cho trùng ít nhất $0{,}7$, $d_J\ge0{,}6$ cho trùng nhiều nhất $0{,}4$; cần hai cận ấy cho độ đo khác.

Định nghĩa. Với $0\le d_1<d_2$, $0\le p_2<p_1\le1$, họ $\mathcal H$ là $(d_1,d_2,p_1,p_2)$-nhạy cảm (locality-sensitive family) nếu với mọi $x,y$:

${d(x,y)\le d_1\ \Rightarrow\ \Pr[h(x)=h(y)]\ge p_1}$

${d(x,y)\ge d_2\ \Rightarrow\ \Pr[h(x)=h(y)]\le p_2}$

Xác suất lấy theo cách chọn $h$, cùng $h$ cho hai đối tượng; miền giữa không được bảo đảm (Định nghĩa 06.22).

Cặp gần có xác suất trùng ít nhất p1, cặp xa có xác suất trùng không quá p2, miền giữa không được bảo đảm.

Ví dụ: họ MinHash theo Jaccard

Theo định lý MinHash, $\Pr[h(A)=h(B)]=1-d_J(A,B)$.

Nếu $d_J\le0{,}3$ thì xác suất trùng ít nhất $0{,}7$.

Nếu $d_J\ge0{,}6$ thì xác suất trùng nhiều nhất $0{,}4$.

Vậy họ MinHash là $(0{,}3;\ 0{,}6;\ 0{,}7;\ 0{,}4)$-nhạy cảm.

Kết luận: họ MinHash là $(d_1,d_2,1-d_1,1-d_2)$-nhạy cảm với mọi $0\le d_1<d_2\le1$ (Hệ quả 06.23).

Phép ghép đồng thời

Nhu cầu: với $p_1=0{,}8$, $p_2=0{,}4$, cặp xa vẫn trùng với xác suất $0{,}4$; cần hạ $p_2$ về gần $0$.

Ví dụ. Họ $(0{,}2;\ 0{,}6;\ 0{,}8;\ 0{,}4)$-nhạy cảm (Ví dụ 3.19), $r=4$: $0{,}8$ và $0{,}4$ thành $0{,}4096$ và $0{,}0256$.

Định nghĩa. Phép ghép đồng thời (AND) chọn $r$ hàm độc lập, nhận cặp khi cả $r$ hàm trùng.

$g(x)=(h_1(x),\ldots,h_r(x)),\qquad\Pr[g(x)=g(y)]=p^r$

Mỗi hàm trùng với xác suất $p$; họ mới là $(d_1,d_2,p_1^r,p_2^r)$-nhạy cảm.

Phép ghép ít nhất một

Nhu cầu: sau AND 4, cặp gần chỉ trùng với xác suất $0{,}4096$.

Ví dụ. $b=4$ đưa $0{,}8$ và $0{,}4$ thành $0{,}9984$ và $0{,}8704$.

Định nghĩa. Phép ghép ít nhất một (OR) chọn $b$ hàm độc lập, nhận cặp khi ít nhất một hàm trùng.

Không hàm nào trùng với xác suất $(1-p)^b$; lấy biến cố bù:

$1-(1-p)^b$

Họ mới là $(d_1,d_2,1-(1-p_1)^b,1-(1-p_2)^b)$-nhạy cảm (Mệnh đề 06.26).

Ví dụ: hai thứ tự ghép trên 16 phép thử

Họ $(0{,}2;\ 0{,}6;\ 0{,}8;\ 0{,}4)$-nhạy cảm, 16 phép thử độc lập; tính cận theo hai thứ tự ghép.

Thứ tựBiến đổi xác suấtCận gầnCận xa
AND 4 → OR 4$F(p)=1-(1-p^4)^4$0,8784970,098535
OR 4 → AND 4$G(p)=[1-(1-p)^4]^4$0,9936150,573952

Lưu ý: cận biến đổi từ $p_1$, $p_2$, không là xác suất của mọi cặp.

Kết luận: AND rồi OR cho $0{,}88$ và $0{,}10$; OR rồi AND nhận cặp xa tới $0{,}57$.

Phân dải như phép ghép AND rồi OR

Mười sáu phép thử chia bốn nhóm AND; phép OR hợp cặp của bốn nhóm.

AND $r$ rồi OR $b$: tính $br$ giá trị, tạo $b$ tuple, tra $b$ bảng, hợp cặp.

Với họ MinHash, $p=s$ nên $F(s)=1-(1-s^4)^4=P_{4,4}(s)$ (Nhận xét 06.27).

Kết luận: số phép thử đo chi phí tính hàm; kích thước thùng quyết định $Q$.

Câu hỏi về độ đo và phép ghép

Câu hỏi:

  1. Áp dụng AND 2 rồi OR 2 cho họ MinHash $(0{,}3;\ 0{,}6;\ 0{,}7;\ 0{,}4)$; tính hai cận mới.
  2. So độ chênh $p_1-p_2$ trước và sau phép ghép.
  3. Tính khoảng cách chỉnh sửa (chèn, xóa) giữa abc và bca.
  4. Tính góc giữa $(1,1,0)$ và $(1,0,0)$.

4.Các họ băm theo độ đo

Muốn tìm cặp gần theo Hamming, góc hoặc Euclid, phải có họ băm mà xác suất trùng giảm theo khoảng cách.

Thuật toán chung · Chọn tọa độ · Siêu phẳng · Chiếu có dịch

Thuật toán: tìm cặp với họ nhạy cảm

Đầu vào: đối tượng $x_1,\ldots,x_C$; độ đo $d$; họ $\mathcal H$ là $(d_1,d_2,p_1,p_2)$-nhạy cảm; $b,r$ nguyên dương.

Đầu ra: các cặp $c<e$ trong tập ứng viên có $d(x_c,x_e)\le d_1$.

chọn h[j][i] từ H độc lập, j = 1,…,b, i = 1,…,r
với j = 1,…,b và c = 1,…,C:
    k ← (j, h[j][1](x_c), …, h[j][r](x_c))
    nối c vào B[k]
CAND ← mọi cặp c < e chung một danh sách của B
OUT ← {(c,e) ∈ CAND : d(x_c, x_e) ≤ d1}
trả OUT

Bảo đảm: cặp có $d\le d_1$ thành ứng viên với xác suất ${\ge1-(1-p_1^r)^b}$; cặp có $d\ge d_2$ với xác suất ${\le1-(1-p_2^r)^b}$ (Mệnh đề 06.26).

Họ băm chọn tọa độ

Nhu cầu: tìm vector gần theo Hamming; vector có $D$ thành phần rời rạc, ví dụ $x=10101$, $y=11110$.

Hàm chọn tọa độ $I\in\{1,\ldots,D\}$ là $h_I(x)=x_I$.

Chỉ số $I$12345
$h_I(x)$10101
$h_I(y)$11110
Cùng giá trị bămCóKhôngCóKhôngKhông

Kết luận: có $D-d_H(x,y)=5-3=2$ chỉ số cho cùng giá trị băm.

Tính nhạy cảm của họ chọn tọa độ

Giả thiết: $I$ đều trên $\{1,\ldots,D\}$, cùng $I$ cho mọi vector.

Có đúng $D-d_H(x,y)$ chỉ số thuận lợi:

$\Pr[h_I(x)=h_I(y)]=\frac{D-d_H(x,y)}D=1-\frac{d_H(x,y)}D$

$D=5,\quad d_H(x,y)=3\quad\Rightarrow\quad \Pr=2/5$

Với $0\le d_1<d_2\le D$, họ chọn tọa độ là $(d_1,d_2,1-d_1/D,1-d_2/D)$-nhạy cảm (Mệnh đề 06.29).

Lưu ý: ghép AND hoặc OR cần chỉ số độc lập, lấy có hoàn lại.

Hàm băm dấu theo siêu phẳng

Nhu cầu: góc chỉ phụ thuộc hướng, $\theta(x,2x)=0$; phép thử phải cho cùng giá trị với $x$ và $2x$.

Pháp tuyến $v\ne0$ xác định siêu phẳng (hyperplane) qua gốc $\{x: v\cdot x=0\}$.

Hàm băm dấu theo $v$ là $h_v(x)=\operatorname{sign}(v\cdot x)$, với $\operatorname{sign}(0)=+1$.

Pháp tuyến vuông góc mặt phân chia, hướng vào nửa không gian có dấu dương.

${x=(3,4,5,6)}$, ${y=(4,3,2,1)}$, ${v_1=(1,-1,1,1)}$:

${v_1\cdot x=10}$, ${v_1\cdot y=4}$: cùng giá trị băm $+1$.

Trực quan. Nhân $x$ với số dương không đổi dấu của $v\cdot x$.

Tính nhạy cảm của họ siêu phẳng

Giả thiết: $x,y\ne0$ tạo góc $\theta\in[0,\pi]$ (radian); pháp tuyến $v$ đẳng hướng (isotropic).

Hai miền pháp tuyến tách hai vector, tổng góc 2 theta trên vòng tròn 2 pi.

Hai cung hướng tách $x$ và $y$, mỗi cung rộng $\theta$:

$\Pr[h_v(x)\ne h_v(y)]=\frac{2\theta}{2\pi}=\frac\theta\pi$

$\Pr[h_v(x)=h_v(y)]=1-\frac\theta\pi$

Cặp $(1,2,-1)$, $(2,1,1)$: $\theta=\pi/3$ nên ${\Pr[h_v(x)=h_v(y)]=2/3}$.

Kết luận: với $0\le d_1<d_2\le\pi$, họ siêu phẳng là $(d_1,d_2,1-d_1/\pi,1-d_2/\pi)$-nhạy cảm (Định lý 06.32).

Ví dụ: chữ ký dấu của hai vector, ba pháp tuyến

$x=(3,4,5,6)$, $y=(4,3,2,1)$; chữ ký dấu (sketch) là dãy dấu theo các pháp tuyến. Xác định chữ ký theo ba pháp tuyến.

Pháp tuyến$v_i\cdot x$$v_i\cdot y$Dấu của $x$, $y$
$v_1=(1,-1,1,1)$104+, +
$v_2=(-1,1,-1,1)$2−2+, −
$v_3=(1,1,-1,-1)$−44−, +

Tỷ lệ bit khác là $\widehat p_{\ne}=2/3$.

Lưu ý: ba pháp tuyến $\pm1$ cố định không có phân phối đẳng hướng.

Ước lượng góc từ chữ ký dấu

Chữ ký dấu $m$ bit dùng $m$ pháp tuyến độc lập, chung cho mọi vector.

Quy tắc ước lượng. $\widehat\theta=\pi\widehat p_{\ne}$, vì $\Pr[h_v(x)\ne h_v(y)]=\theta/\pi$ (Thuật toán 06.33).

Với ba pháp tuyến của ví dụ: $\widehat\theta=2\pi/3$, tức $120^\circ$; góc thật $\theta\approx38{,}05^\circ$.

Kết luận: lệch xa vì chỉ có ba bit và pháp tuyến không đẳng hướng.

Ví dụ: ba điểm trên trục thứ nhất

Nhu cầu: khoảng cách Euclid phụ thuộc độ lớn; băm dấu bỏ mất độ lớn.

$z_1=(1,2,3)$, $z_2=(0,2,4)$, $z_3=(4,3,2)$; trục thứ nhất; $a=1$; mã thùng là tọa độ thứ nhất chia $a$, lấy sàn.

ĐiểmTọa độ chiếuKhoảng chứaMã thùng
$z_1$1$[1,2)$1
$z_2$0$[0,1)$0
$z_3$4$[4,5)$4

Kết luận: ba mã khác nhau nên trục này chưa tạo cặp.

Họ chiếu có dịch ngẫu nhiên

Nhu cầu: biên cố định tách hai điểm gần: với $a=1$, hình chiếu $0{,}99$ và $1{,}01$ có mã thùng $0$ và $1$.

Trục hình chiếu chia khoảng độ rộng a, biên ka trừ delta; hai hình chiếu có khoảng cách ell.

Trên $\mathbb R^D$: $u$ là vector đơn vị chọn đều trên mặt cầu đơn vị; $a>0$.

$\delta$ chọn đều trên $[0,a)$, độc lập với $u$.

$h_{u,\delta}(x)=\left\lfloor\frac{u\cdot x+\delta}{a}\right\rfloor$

Lưu ý: cùng $(u,\delta)$ cho mọi điểm; mã thùng $k$ ứng với khoảng ${[ka-\delta,(k+1)a-\delta)}$.

Xác suất chung thùng khi cố định hướng

Bổ đề. Cố định $u$ và đặt $\ell=|u\cdot(x-y)|$; $\delta$ đều trên $[0,a)$. Khi đó

$\Pr_\delta[h(x)=h(y)\mid u]=\max(0,\,1-\ell/a)$

Ý nghĩa: hình chiếu càng gần, càng dễ chung thùng; còn phải lấy trung bình theo $u$ (Bổ đề 06.35).

Chứng minh: xác suất chung thùng khi cố định hướng

Trường hợp $0\le\ell<a$: vị trí biên nằm giữa hai hình chiếu chiếm độ dài $\ell$ trong chu kỳ $a$.

Do $\delta$ đều, hai điểm khác thùng với xác suất $\ell/a$.

Trường hợp $\ell\ge a$: hai hình chiếu không cùng nằm trong một khoảng nửa mở rộng $a$.

Gộp hai trường hợp được $\max(0,1-\ell/a)$.

Tính nhạy cảm của họ chiếu hai chiều

Định lý. $u$ đều trên đường tròn đơn vị, $\delta$ đều độc lập: họ chiếu trong $\mathbb R^2$ là $(a/2,\,2a,\,1/2,\,1/3)$-nhạy cảm (Định lý 06.36).

Chứng minh. $\rho=\|x-y\|_2$; $P$ là trung bình theo $u$ của ${\max(0,1-\ell/a)}$.

Cặp gần, ${\rho\le a/2}$: ${\ell\le\rho}$ nên ${P\ge1-\rho/a\ge1/2}$.

Cặp xa, ${\rho\ge2a}$: chung thùng cần ${\rho|\cos\phi|<a}$, nên ${\phi>\pi/3}$.

Đoạn nối hai điểm dài rho tạo góc nhọn phi với trục u; hình chiếu dài ell bằng rho nhân trị tuyệt đối cos phi.

$\phi$ đều trên $[0,\pi/2]$ vì $u$ đều trong mặt phẳng:

$P\le\frac{\pi/2-\pi/3}{\pi/2}=\frac13$

Chi phí: chữ ký theo ba họ

Mô hình: vector đặc $D$ chiều; mỗi số một từ máy; mỗi phép tính tốn thời gian hằng.

BướcSố lầnPhép tính mỗi lầnĐóng góp
Tính hàm chọn tọa độ$Cm$1 lần đọc$O(Cm)$
Tính hàm siêu phẳng$Cm$$D$ nhân, $D-1$ cộng, 1 so sánh$O(CmD)$
Tính hàm chiếu có dịch$Cm$$D$ nhân, $D$ cộng, 1 chia, 1 sàn$O(CmD)$

Tổng: $Cm$ lượt tính hàm; tham số chung $m$ chỉ số hoặc $O(mD)$ từ (Mệnh đề 06.38).

Kết luận: thùng, $Q$, $K$ như thuật toán tổng quát, $m=br$.

Câu hỏi về các họ theo độ đo

Câu hỏi:

  1. Với $x=11001$, $y=10011$: tính xác suất trùng của một hàm chọn tọa độ và của AND 2, chỉ số độc lập.
  2. Tính xác suất cùng dấu của $x=(1,0)$, $y=(-1,1)$ dưới pháp tuyến đẳng hướng.
  3. Với $a=2$, $u$ cố định, $\ell=0{,}5$: tính xác suất chung thùng theo $\delta$.
  4. Với $a=2$, $u$ đều trên đường tròn đơn vị: nêu cận xác suất chung thùng của cặp có $\|x-y\|_2=5$ trong $\mathbb R^2$.

5.Ứng dụng tìm cặp tương đồng

Muốn áp dụng khung tìm cặp cho hồ sơ, vân tay và bản tin, phải chọn lại biểu diễn hoặc họ hàm.

Đối sánh thực thể · Họ ba ô cho vân tay · Shingle theo từ dừng

Đối sánh thực thể

Nhu cầu: đối sánh thực thể (entity resolution): hai nguồn, mỗi nguồn $10^6$ hồ sơ; chấm điểm mọi cặp cần $10^{12}$ lần.

Ba hàm khóa: tên, địa chỉ, điện thoại trùng hoàn toàn.

Khớp tên, địa chỉ hoặc điện thoại sinh ứng viên; hợp cặp trước khi chấm điểm và xác minh.

Cặp ứng viên trùng ít nhất một khóa: OR trên ba hàm cố định.

Kết luận: không áp được $1-(1-p)^b$; cặp không trùng khóa nào bị bỏ sót chắc chắn.

Họ băm ba ô cho vân tay

Nhu cầu: so ảnh vân tay; mỗi ảnh là tập ô lưới chứa điểm đặc trưng (minutia).

Ba ô được chọn trước khi xét ảnh; ảnh có đủ ba ô vào thùng chung, mỗi ảnh thiếu ô có thùng riêng.
  • Hàm $f$ gồm ba ô chọn ngẫu nhiên trước khi xét ảnh.
  • Ảnh có đặc trưng ở cả ba ô vào thùng chung.
  • Ảnh còn lại vào thùng đơn riêng.

Kết luận: hai ảnh va chạm theo $f$ khi cả hai có đủ ba ô.

Ví dụ: xác suất va chạm của hàm ba ô

Giả thiết: một ô có đặc trưng với xác suất $0{,}2$; các ô độc lập.

Giả thiết: cùng ngón, ô có ở ảnh này thì có ở ảnh kia với xác suất $0{,}8$.

Cặp ảnhMột ôBa ô
Khác ngón$0{,}2^2=0{,}04$$q_F=0{,}04^3=0{,}000064$
Cùng ngón$0{,}2\cdot0{,}8=0{,}16$$q_T=0{,}16^3=0{,}004096$

Kết luận: một hàm nhận cặp cùng ngón với xác suất khoảng $1/244$ (Mệnh đề 06.42).

Phép ghép trong đối sánh vân tay

Giả thiết: va chạm theo các hàm khác nhau được coi là độc lập (giả định của MMDS).

Cấu trúcSố hàmNhận cặp khác ngónBỏ sót cặp cùng ngón
OR 10241024$0{,}0634$$0{,}0150$
AND 2 nhóm OR 10242048$0{,}00402$$0{,}0297$

$P_F=\bigl[1-(1-q_F)^{1024}\bigr]^2,\qquad 1-P_T=1-\bigl[1-(1-q_T)^{1024}\bigr]^2$

Kết luận: AND giảm cặp khác ngón khoảng 16 lần, bỏ sót tăng gấp đôi; số hàm khác nhau.

Bản tin gần trùng

Nhu cầu: một bản tin đăng lại nhiều trang, kèm quảng cáo khác nhau.

Cần cặp trang cùng văn bản gốc.

Văn xuôi có nhiều từ dừng (stop word) hơn quảng cáo.

Định nghĩa. Shingle theo từ dừng là một từ dừng cùng hai từ tiếp theo.

Ý nghĩa: shingle tập trung ở phần bản tin.

Ví dụ: shingle theo từ dừng

Từ dừng I, that, you, for, your; liệt kê shingle.

“Buy Sudzo.” không có từ dừng nên không có shingle.

“I recommend that you buy Sudzo for your laundry.”

Bốn shingle xác định: “I recommend that”, “that you buy”, “you buy Sudzo”, “for your laundry”.

Kết luận: shingle bắt đầu bằng “your” còn phụ thuộc từ kế tiếp chưa cho.

Câu hỏi về đối sánh thực thể và vân tay

Câu hỏi: hai hồ sơ “Bob S. Jomes” và “Robert Jones Jr.” cùng địa chỉ, khác điện thoại.

  1. Xác định khóa làm cặp thành ứng viên và bước quyết định cùng người.
  2. Dùng OR 512 với $q_F$, $q_T$ đã có và giả định độc lập của MMDS.
  3. Tính xác suất nhận cặp khác ngón và bỏ sót cặp cùng ngón.

Câu hỏi về shingle theo từ dừng

Câu hỏi: với từ dừng I, that, you, for, your, liệt kê các shingle có đủ hai từ theo sau.

“The report said that you should wait for your turn.”

6.Tổng kết và tự kiểm tra

Muốn trả lời bài toán kho một triệu tài liệu, phải nêu giả thiết, bảo đảm và chi phí của từng kết quả.

Giả thiết không được bỏ · Bỏ sót và ứng viên giả · Chi phí · Tài liệu đọc

Kết quả và giả thiết không được bỏ

Kết quảGiả thiết không được bỏCông thức
Tính đúng$\mathrm{SIG}$ cố định; so khóa $(j,\text{tuple})$ đầy đủ$\{(c,d)\in\mathcal C:s\ge t\}$
Xác suất ứng viênMinHash độc lập trong và giữa các dải$P_{b,r}(s)=1-(1-s^r)^b$
Họ nhạy cảmCùng $h$ cho hai đối tượng$\Pr[h(x)=h(y)]\ge p_1$; $\le p_2$
Phép ghépHàm độc lập$p^r$; $1-(1-p)^b$
Ba họ cơ sở$I$ đều; $v$ đẳng hướng; $u$, $\delta$ đều, $D=2$$1-d_H/D$; $1-\theta/\pi$; $(a/2,2a,1/2,1/3)$
Vân tayÔ độc lập; va chạm qua các hàm độc lập (giả định MMDS)$q_F$, $q_T$; $1-(1-q)^b$
Khóa thực thểHàm khóa cố địnhKhông có xác suất bỏ sót

Thuật toán, bảo đảm và chi phí

Thuật toánĐầu vàoBảo đảmChi phí
Phân dải và xác minh$\mathrm{SIG}$, $b$, $r$, $t$Đúng trên $\mathcal C$; bỏ sót với xác suất $(1-s^r)^b$$O(nC+Q+\sum T_J)$ kỳ vọng
Tìm cặp với họ nhạy cảmĐối tượng, $\mathcal H$, $b$, $r$Cặp gần: xác suất $\ge1-(1-p_1^r)^b$$Cbr$ lần tính hàm, cộng phân dải
Chữ ký chọn tọa độVector $D$ thành phần rời rạc, $m$Trùng với xác suất $1-d_H/D$$O(Cm)$
Chữ ký dấuVector khác 0 trong $\mathbb R^D$, $m$Cùng dấu với xác suất $1-\theta/\pi$$O(CmD)$
Chữ ký chiếu có dịchĐiểm trong $\mathbb R^D$, $a$, $m$$(a/2,2a,1/2,1/3)$-nhạy cảm khi $D=2$$O(CmD)$

Câu trả lời cho vấn đề trung tâm

  1. Phân dải $b=20$, $r=5$, MinHash độc lập: cặp $s=0{,}8$ bị bỏ sót với xác suất $\approx0{,}00036$.
  2. AND 4 rồi OR 4, hàm độc lập: cận $0{,}8$ và $0{,}4$ thành $0{,}88$ và $0{,}10$.
  3. Hamming $1-d_H/D$ (chỉ số đều); góc $1-\theta/\pi$ (pháp tuyến đẳng hướng); Euclid $(a/2,2a,1/2,1/3)$ khi ${D=2}$; chữ ký $O(Cm)$, $O(CmD)$.
  4. Vân tay OR 1024, giả định độc lập: nhận cặp khác ngón $0{,}0634$, bỏ sót $0{,}0150$.
  5. Giả định: ngoài $N$ cặp gần, mọi cặp có $s\le0{,}1$; $P_{20,5}(0{,}1)\approx2\cdot10^{-4}$, nên ${\mathbb E[K]\le N+10^8}$.
  6. Khi $N\ll10^8$, thời gian xác minh kỳ vọng không quá khoảng $100$ giây ($1\,\mu\mathrm{s}$ mỗi cặp) thay cho $5{,}79$ ngày.

Câu hỏi tự kiểm tra

Câu hỏi: trả lời và nêu kết quả đã dùng.

  1. $\mathrm{SIG}$ hai hàng $(2,1,2,0)$, $(1,1,1,1)$; $b=2$, $r=1$: tính $Q$, $K$, nêu cặp phát lặp.
  2. Với $b=10$, $r=4$: tính $(1/b)^{1/r}$ và $P_{b,r}(s)$ tại $s=0{,}8$, $s=0{,}3$.
  3. Giữ $r$, tăng $b$: xác định ảnh hưởng tới số cặp bỏ sót và tới $K$.

Câu hỏi tự kiểm tra

Câu hỏi: trả lời và nêu kết quả đã dùng.

  1. Viết bộ tham số họ MinHash với $d_1=0{,}2$, $d_2=0{,}5$, rồi sau AND 2.
  2. Họ siêu phẳng, gần $\theta\le\pi/6$, xa $\theta\ge\pi/2$: tính $p_1$, $p_2$, cận sau AND 2 rồi OR 2.
  3. Kho ảnh vector thực 128 chiều, cần cặp góc nhỏ: chọn họ, nêu chi phí chữ ký $m$ bit.

Nguồn và tài liệu đọc

Nguồn: Leskovec, Rajaraman, Ullman (2020), Mining of Massive Datasets, ấn bản 3, Chương 3, §§3.4–3.8, tr.91–122.

Sách và trang chiếu của các tác giả: http://www.mmds.org.

Nguồn: Stanford CS246 (2026), LSH I và LSH II; Datar, Immorlica, Indyk, Mirrokni (2004), SoCG, §3.2.

Ghi chú bài giảng

Bài 07 dùng LSH lọc ứng viên, so với chỉ mục đồ thị HNSW và lượng tử hóa tích (PQ).

7.Bài tập vận dụng

Nhu cầu: áp dụng phân dải, phép ghép, ba họ băm và mô hình vân tay vào bảy bài của MMDS Chương 3.

Đường cong S · Tầng ghép · Chọn tọa độ · Chữ ký dấu · Vân tay

Bài tập: bảng giá trị đường cong S

Câu hỏi: tính $P(s)=1-(1-s^r)^b$ với $s=0{,}1;\ 0{,}2;\ \ldots;\ 0{,}9$ cho ba cấu hình:

$(r,b)=(3,10),\quad(6,20),\quad(5,50)$

Lập bảng 9 hàng × 3 cột xác suất.

Lưu ý: dùng máy tính cho lũy thừa; chỉ làm tròn kết quả cuối.

Nguồn: MMDS, Bài 3.4.1, tr.96.

Bài tập: nghiệm một nửa của đường cong S

Câu hỏi: với ba cấu hình trong bảng, tìm $s$ để $P(s)=1/2$ và so với xấp xỉ $(1/b)^{1/r}$.

$(r,b)$Nghiệm của $P(s)=1/2$$(1/b)^{1/r}$
$(3,10)$
$(6,20)$
$(5,50)$

Ghi phép biến đổi giải $s$ và điền bảng.

Nguồn: MMDS, Bài 3.4.2, tr.96.

Bài tập: xác suất qua nhiều tầng ghép

Câu hỏi: $p$ là xác suất trùng của một MinHash; các hàm độc lập. Viết xác suất sau mỗi chuỗi ghép:

(a) AND 2 rồi OR 3.

(b) OR 3 rồi AND 2.

(c) AND 2, OR 2, AND 2.

(d) OR 2, AND 2, OR 2, AND 2.

Nguồn: MMDS, Bài 3.6.1(a–d), tr.108.

Bài tập: hàm chọn tọa độ trên bốn vector

Câu hỏi: họ gồm sáu hàm $h_i(x)=x_i$, $i=1,\ldots,6$.

$\mathrm A=000000,\quad\mathrm B=110011,\quad\mathrm C=010101,\quad\mathrm D=011100$

Xác định các hàm làm từng cặp AB, AC, AD, BC, BD, CD thành ứng viên.

Lập sáu tập chỉ số.

Nguồn: MMDS, Bài 3.7.1, tr.113.

Bài tập: chữ ký dấu của ba vector

Câu hỏi: $v_1=(1,1,1,-1)$, $v_2=(1,1,-1,1)$, $v_3=(1,-1,1,1)$, $v_4=(-1,1,1,1)$.

$x=(2,3,4,5)$, $y=(-2,3,-4,5)$, $z=(2,-3,4,-5)$.

  1. Tính chữ ký dấu của ba vector.
  2. Với mỗi cặp, tính góc ước lượng từ chữ ký và góc thật.

Quy ước: $\operatorname{sign}(0)=+1$.

Nguồn: MMDS, Bài 3.7.2, tr.113–114.

Bài tập: thùng chiếu trên ba trục

Câu hỏi: $z_1=(1,2,3)$, $z_2=(0,2,4)$, $z_3=(4,3,2)$; ba hàm chiếu trên ba trục; khoảng ${[ka,(k+1)a)}$, $k\in\mathbb Z$.

  1. Gán thùng khi $a=1$.
  2. Lặp lại khi $a=2$.
  3. Tìm các cặp ứng viên trong mỗi trường hợp.

Nguồn: MMDS, Bài 3.7.5(a–c), tr.114.

Bài tập: hai cấu trúc ghép cho vân tay

Câu hỏi: mỗi ô có điểm đặc trưng với xác suất $0{,}2$.

Giả thiết: cùng ngón, ô có ở ảnh này thì có ở ảnh kia với xác suất $0{,}8$.

Mỗi hàm chọn ba ô trước; va chạm qua các hàm coi là độc lập (giả định MMDS).

(a) OR 2048: tính xác suất nhận cặp khác ngón và bỏ sót cặp cùng ngón.

(b) So với AND hai nhóm OR 1024 độc lập.

Nguồn: MMDS, Bài 3.8.2(a,b), tr.121.