Giới thiệuđặc trưng của đối tượng đa phương tiện văn bản, âm thanh, hình ảnh và video khoảng cách giữa các đối tượng trên cơ sở véctơ đặc trưng Với văn bản: Tổng số chiều véctơ đặc trư
Trang 1K Ỹ THUẬT TÌM KIẾM NÂNG CAO
Bài 8
PGS.TS Đặng Văn Đức dvduc@ioit.ac.vn
Trang 2dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Nội dung
2/42
Trang 31 Giới thiệu
đặc trưng của đối tượng đa phương tiện (văn bản, âm thanh, hình ảnh và video)
khoảng cách giữa các đối tượng trên cơ sở véctơ đặc
trưng
Với văn bản: Tổng số chiều véctơ đặc trưng là tổng số khái niệm
trong các văn bản
Tổng số chiều của biểu đồ màu trong ảnh bằng tổng số bins màu
Với âm thanh: Tổng số chiều bằng tổng số đặc trưng được sử
dụng (tốc độ vượt qua 0, tỷ lệ câm, độ chói ).
Trang 4dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Giới thiệu
véctơ đặc trưng trong CSDL đòi hỏi phải nhanh
Chia không gian đặc trưng thành nhiều vùng nhỏ sao cho việc
tìm kiếm chỉ cần thực hiện trong một hay một vài vùng nhỏ
Truy vấn điểm
Tìm các đối tượng có véctơ đặc trưng đối sánh chính xác với véctơ đặc trưng trong câu truy vấn.
Truy vấn dải (range)
Câu truy vấn được biểu diễn bởi véctơ đặc trưng và khoảng cách dải L Mọi đối tượng có khoảng cách đến véctơ đặc trưng truy vấn <=L là kết quả.
Truy vấn k- láng giềng gần nhất
Câu truy vấn được biểu diễn bởi véctơ đặc trưng và số nguyên k k đối tượng có khoảng cách nhỏ nhất đến véctơ đặc trưng truy vấn là kết quả.
4/42
Trang 5Yêu cầu chung về cấu trúc dữ liệu
tiệm cận truy vấn, bao gồm
Điểm, dải và k-láng giềng gần nhất.
Tìm kiếm, chèn, xóa
Tìm kiếm hiệu quả
Việc tìm kiếm được thực hiện on-line và lặp nhiều lần.
Chèn, xóa
Chèn, xóa thường được thực hiện off-line và có thể theo lô.
Trang 6dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
2 Giảm thiểu không gian tìm kiếm
Lọc bằng phân lớp, thuộc tính có cấu trúc hay từ khóa
Lọc trên cơ sở bất đẳng thức tam giác
Phân cụm dữ liệu
Phương pháp liên quan đến biểu đồ màu
Chỉ số hóa ngữ nghĩa tiềm tàng (LSI)
6/42
Trang 7Lọc bằng phân lớp theo chủ đề, thuộc tính
gắn với dữ liệu đa phương tiện
Có thể lựa chọn các mục dữ liệu thỏa mãn thuộc tính có cấu
trúc, sau đó thực hiện các tìm kiếm phức tạp hơn trên các dữ liệu đã lọc.
Việc tìm kiếm theo đặc trưng phức tạp thực hiện trên chủ đề đã
lựa chọn.
Ví dụ, tìm kiếm ảnh theo hình dạng vùng được thực hiện sau
khi đã lọc theo đặc trưng độ lệch tâm của hình dạng đối tượng.
Trang 8dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Lọc trên cơ sở bất đẳng thức tam giác
metric và thỏa mãn tính chất bất đẳng thức tam giác
Khoảng cách giữa hai đối tượng không thể nhỏ hơn hiệu
khoảng cách giữa chúng tới đối tượng khác.
trong đó, d-độ đo khoảng cách, i, q, k - các véctơ đặc trưng
đặc trưng ta có:
trong đó, m-tổng số đặc trưng sử dụng để đối sánh
) , ( )
, ( )
,
) ,
( )
, ( max
) ,
8/42
Trang 9Các bước áp dụng bất đẳng thức tam giác
hơn tổng số đối tượng n trong CSDL Có thể chọn ngẫu
nhiên
Tính khoảng cách d(i,k j ) giữa mỗi đối tượng i trong CSDL và
véctơ so sánh vừa lựa chọn k j, lưu trữ chúng trong CSDL.
Tính d(q, k j ) giữa câu truy vấn q với mỗi véctơ so sánh k i nói
trên
trước sẽ là kết quả tìm kiếm
| ) , ( )
, (
| max
) (i 1 j m d i k j d q k j
Trang 10Lọc trên cơ sở bất đẳng thức tam giác
trưng i1 đến i8
dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Trong CSDL d(i, k 1 ) d(i,k 2 ) |d(i,k 1 )-d(q,k 1 )| |d(i,k 2 )-d(q,k 2 )| l(i)
Trang 11Mô hình tìm kiếm trên cơ sở phân cụm
tương tự vào cùng nhóm/cụm và việc tìm kiếm chỉ thực hiện trong các cụm liên quan
đặc trưng trong cụm
vấn và từng cụm (đại diện bởi véctơ đặc trưng)
trước là được chọn
trưng trong cụm và k đối tượng gần nhất là kết quả
Trang 12dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Thuật toán phân cụm
Input: O – Danh sách các đối
tượng trong CSDL
Out: T – Cây phân cấp
1 Gán mỗi tài liệu của O vào cụm riêng, tạo lập
danh sách các cụm L (khởi đầu giá trị lá của T):
L = O1, O2, O3, , On-1, On.
2 Tính toán véctơ đại diện của từng cặp phần tử
trong L để tìm ra hai cụm gần nhất {Oi, Oj}.
3 Hủy bỏ Oi và Oj khỏi L.
4 Trộn Oi và Oj để hình thành nút mới Oij trong T,
nó là cha của Oi và Oj trong cây kết quả
5 Lặp lại bước (2) cho đến khi chỉ còn một tập
O8 O4
12/42
Trang 13Tìm kiếm ảnh trên cơ sở màu
sở trình diễn ảnh trong CSDL và trong câu truy vấn bằng lược đồ với n bin màu
được tính toán bởi khoảng cách biểu đồ màu tương ứng
Giảm tổng số bins màu
Chọn tập con của ảnh trong CSDL để tính toán khoảng cách tới
truy vấn Chọn tập con bằng cách nào?
Sử dụng lược đồ ít bin màu để chọn các đối tượng ứng viên
Sử dụng lược đồ đầy đủ để tính khoảng cách giữa câu truy vấn
và các đối tượng ứng viên.
Trang 14dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Tìm kiếm ảnh trên cơ sở màu
Tính màu trung bình của ảnh
P - tổng số pixel trong ảnh
R(p), G(p), B(p) - các thành phần Red, Green và Blue của điểm ảnh p
Khoảng cách Euclidean giữa hai véctơ
Khoảng cách davg bằng khoảng cách nhỏ nhất được tính toán trên biểu
đồ màu đầy đủ.
Vậy, có thể lựa chọn các đối tượng ứng viên trên cơ sở davg trước khi
tính toán khoảng cách với biểu đồ màu đầy đủ.
T avg avg
avg G B R
P
p
B B
P
p
G G
P
p
R R
P
p avg
P
p avg
P
p avg
,
)
(
,
) (
) ,
Trang 15Phương pháp LSI – Latent Sematic Indexing
Trong CSDL tài liệu: Tổng số tài liệu M và tổng số thuật ngữ N là
rất lớn.
Việc chỉ mục các tài liệu sẽ cần ma trận trọng số (MxN) rất lớn
Nếu thư viện có 1 triệu tài liệu với 10 000 thuật ngữ thì cần đến 10GB bộ nhớ lưu trữ.
Khi tìm kiếm: cần ít nhất M phép nhân véctơ N chiều.
Nhóm các Terms tương đồng (cùng phạm trù) để hình thành chủ
đề / khái niệm (Concepts) làm đại diện tài liệu.
Ví dụ, các thuật ngữ pepper, spacy và hot có cùng phạm trù.
Do tổng số khái niệm nhỏ hơn nhiều so với tổng số thuật ngữ, cho nên đòi hỏi ít bộ nhớ lưu trữ hơn và thời gian tính toán sẽ nhanh hơn.
Sử dụng tính chất toán của ma trận term-document (tính toán
ma trận) để xác định các khái niệm.
Trang 16dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Mô hình LSI
16/42
Trang 17Phương pháp LSI
Nhận dạng và tính toán “concepts” bằng cách nào?
Gọi A là ma trận term-doc với M cột (Terms) và N hàng (Docs).
Các phần tử của ma trận là trọng số wi,j được tính từ lược đồ
tf-idf.
Ma trận chuyển vị A T (transpose): Chuyển hàng của A thành cột
của A T
Hai véctơ x, y cùng bậc là trực giao khi và chỉ khi x T y=0.
Ma trận A là trực giao khi và chỉ khi A T xA=I, I là ma trận đơn vị.
Trang 18dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Kỹ thuật SVD (Singular Value Decomposition)
Tách các đặc trưng chủ yếu của ma trận term-doc A T và xấp xỉ
U là ma trận các véctơ riêng nhận từ tính toán AxA T
V T là ma trận các véctơ riêng nhận từ tính toán A T xA
Độ phức tạp thuật toán là O(n 3 ), nếu kích thước ma trận mn
18/42
Trang 19Kỹ thuật SVD (Singular Value Decomposition)
trận A bởi vì S chỉ chứa giá trị số ít lớn nhất
có thể bỏ qua
T s s
s
A
Trang 20dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
V T
N
r r
r
s N
sxN sxs
s Document vectors Term vectors
N s
20/42
Trang 21Chỉ mục và tìm kiếm
q c = V t x q
hàng của U
hơn N nhiều lần)
Trang 22dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
3 Cấu trúc dữ liệu
Hiệu năng hệ thống rất thấp khi phải tải khối lượng dữ liệu quá
Mỗi nút có nhiều cành con.
Tổng số lần xâm nhập đĩa tương ứng với “độ sâu” của cây
Mỗi nút trong và lá của cây có kích thước tương ứng một blốc
I/O dữ liệu.
Một hoặc hai tầng cây nên để thường trú trong bộ nhớ chính để
tăng tốc độ xâm nhập.
22/42
Trang 23Cấu trúc dữ liệu cây B+
một chiều
Gọi n là bậc của cây, tương đương số cành mà một nút có.
Pointer n Key n-1
Pointer n-1 Key 2
Pointer 2 Key 1
Pointer 1
Bản ghi có giá trị khóa lớn hơn giá trị Key n-1
Trang 24dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Ví dụ cấu trúc dữ liệu cây B+
Đến bản ghi 20
Đến bản ghi 60
Root level
Level 1 nodes
Leaf nodes
Ví dụ có nhiệm vụ:
1 Chèn bản ghi với giá trị khóa 30
2 Chèn bản ghi với giá trị khóa 90
3 Hủy bản ghi với giá trị khóa 80
4 Hủy bản ghi với giá trị khóa 70
Nếu cây B+ có bậc n và có N bản ghi thì số lần xâm nhập (đĩa) là O(log n N)
24/27
Trang 25Qui tắc xây dựng cây B+
nhỏ hơn tổng số con trỏ 1 đơn vị
Trang 26dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Ví dụ chèn bản ghi trong cây B+
Chèn bản ghi với giá trị khóa 30
Chèn bản ghi với giá trị khóa 90
(b)
26/42
Trang 27Ví dụ hủy bản ghi trong cây B+
Hủy bản ghi với giá trị khóa 80
Hủy bản ghi với giá trị khóa 70
từ cây (b) trang trước
Trang 28dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Mỗi véctơ đặc trưng có hai chiều (x, y)
Chia không gian đặc trưng D thành các vùng chữ nhật
Mỗi vùng có tổng số véctơ đặc trưng là như nhau
Mỗi vùng được xác định bởi tọa độ góc dưới trái và góc trên phải.
Các vùng không xếp chồng lên nhau nhưng bao phủ toàn vùng đặc trưng.
Mở rộng cây B + để có cây MB +
Thay giá trị khóa bằng chữ nhật
Các con trỏ tại lá sẽ trỏ tới các véctơ đặc trưng trong vùng tương ứng.
28/42
Trang 30dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Cây k-d
Nút có giá trị khóa X,
Con trỏ trái trỏ đến bản ghi có giá trị khóa nhỏ hơn X
Con trỏ phải trỏ đến bản ghi có giá trị khóa lớn hơn X
Mỗi khóa kết hợp với bản ghi dữ liệu
Là cây không cân đối.
Khóa là véctơ k - chiều, gọi các chiều của nó là Dim1, Dim2
Gọi mức của gốc cây là level1, con của nó là level2,
Xây dựng cây:
Cây rẽ nhánh tại level1 trên cơ sở giá trị Dim1
Cây rẽ nhánh tại level2 trên cơ sở giá trị Dim2
Tiếp tục với mọi chiều véctơ sau đó lặp lại.
30/42
Trang 31Cây 2-d
Nếu level(N) là chẵn thì mỗi nút M trong cành rẽ nhánh từ
N.LLINK có tính chất M.XVAL < N.XVAL, mỗi nút P trong cành rẽ
nhánh từ N.RLINK có tính chất P.XVAL N.XVAL.
Nếu level(N) là lẻ thì mỗi nút M trong cành rẽ nhánh từ N.LLINK
có tính chất M.YVAL < N.YVAL, mỗi nút P trong cành rẽ nhánh
nodetype = record INFO: infotype;
0 )
(
P level
N
Nếu N là nút thì mức của N được xác định như sau:
Trang 32dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Xây dựng cây 3-d
(10,13,7), (9,14,8), (20,9,17), (7,13,6), (8,12,7), (6,10,9), (11,8,14), (15,13,11), (10,6,17), (16,12,21), (17,3,15)
(10,13,7) (9,14,8) (20,9,17) (7,13,6)
(8,12,7) (6,10,9)
Trang 33 Hủy và đánh dấu Nil
Nếu nút không phải là lá
Tìm kiếm các nút cần hủy và đánh dấu
Xây dựng lại cây k-d với các nút không bị đánh dấu
Dễ dàng cài đặt
Bản chất là tìm các véctơ đặc trưng với mỗi chiều trong khoảng
nhất định.
Trang 34dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Cây R
liệu là n
Đầu vào tối thiểu của nút là m ≤ M/2.
Mỗi nút lá không phải là gốc chứa từ m đến M bản ghi chỉ số.
Với mỗi bản ghi chỉ số trong lá <E, rid>, E là chữ nhật nhỏ nhất
chứa đối tượng dữ liệu n chiều.
Mỗi nút không phải là lá và không phải là gốc chứa từ m đến M
cành con.
Mỗi đầu vào <E, ptr> trong nút không phải lá, E là chữ nhật nhỏ
nhất chứa các nút con.
Nút gốc có ít nhất 2 cành nếu nó không phải là lá.
Tất cả các lá đều ở cùng mức của cây.
34/42
Trang 35Sử dụng cây R cho dữ liệu điểm
J R7
R2 R6
R4 R5 C
E
K
I
A Q
R1 R2
Trang 36dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Sử dụng cây R cho dữ liệu vùng
R1
R2 R3
R5
R6 R4
P1, , Pk: rtnodetype;
end Cấu trúc của cây R:
36/42
Trang 37Cây R
Nhiệm vụ truy vấn là tìm ra các đối tượng mà nó giao với đối
tượng truy vấn
Đối tượng truy vấn được đại diện bởi chữ nhật bao nhỏ nhất
(MBR – minimum bounding rectangle)
Trang 38dvduc-2005/12 Bài 8: Nâng cao hiệu năng MMDBMS
Cây R
Duyệt cây từ gốc, chữ nhật bao nào mà cần ít mở rộng nhất để
gói đối tượng mới thì sẽ được chọn
Duyệt các cành chữ nhật bao vừa chọn cho đến khi gặp nút lá.
Thực hiện chèn nếu nút lá không đầy
Nếu nút lá đầy:
Bẻ nút lá trước khi chèn
Bổ sung đầu vào mới cho nút cha của nút lá, tiến trình lặp nếu cần cho đến khi gặp gốc cây.
Duyệt các nút không phải là lá có chữ nhật bao cắt MBR của đối
tượng sẽ hủy
Khi gặp nút lá, so sánh MBR với từng đầu vào của nút lá và đầu
vào phù hợp sẽ bị hủy
Việc hủy nút lá có thể đòi hỏi hiệu chỉnh các đầu vào còn lại hay
hủy các nút khác trong các mức cao hơn.
38/42
Trang 394 Kết luận
cấu trúc dữ liệu
ảnh hưởng đến tính toán tìm kiếm
Trang 40Câu hỏi ôn tập
các véctơ đặc trưng (điểm) trong không gian đa chiều Cần tổ chức các véctơ đặc trưng như thế nào để xác
định nhanh các véctơ đặc trưng liên quan đến câu truy vấn mà không phải tìm kiếm tuyến tính toàn bộ không gian đặc trưng?
giác Cho ví dụ
trên cơ sở lược đồ màu
Trang 41Câu hỏi ôn tập
trên cơ sở phân cụm
phương tiện
trị khóa sau: 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110,
120, 130, 140
bản ghi với giá trị khóa 90 từ cây B+ vừa xây dựng trên đây Hãy chỉ ra cây, sau khi chèn và hủy
Trang 42Câu hỏi ôn tập
(chúng cần được chèn theo thứ tự cho trước): (30, 40, 50), (20, 45, 60), (40, 20, 70), (25, 35, 45), (28, 33, 47), (50, 5, 80), (60, 30, 100), (5, 20, 20), (45, 10, 35)
toán tìm kiếm trong cây R để truy vấn theo dải
Trang 43Câu hỏi?