Chương 2. NÂNG CAO ĐỘ CHÍNH XÁC TRA CỨU ẢNH VỚI XẾP HẠNG ĐA TẠP CẢI TIẾN
2.3. Kỹ thuật xếp hạng trong EMR
Với CSDL vector đặc trưng mức thấp LF=LF1, ..., LFn n D của n ảnh và mỗi vector đặc trưng có D chiều (D=dim(LF)). Tập A=A1, ..., AC Dlà C (C cụm) điểm neo thu được từ thuật toán lvdc-FCM có số chiều là D. Sau khi xây
2 Positive semidefinite (PSD-bán xác định dương): Một ma trận A được gọi là bán xác định dương nếu nó thỏa mãn điều kiện: xTAx≥0 với mọi vector x ≠0.
dựng cấu trúc đồ thị neo với tập các điểm neo là ít biến động [116], kỹ thuật lan truyền và tính toán xếp hạng EMR giữa điểm tra cứu và các điểm trong CSDL được thực hiện thông quan việc giải hàm mục tiêu sau :
2
1 2
0,
1 , 1 1
( ; ) 1 min
2
n i j
ij i i
i j n ii jj i
r r
EMR r Q w r r
D D +
+ =
= − + − →
(2.23)
Để giải hàm mục tiêu trên, trong xếp hạng đa tạp thường lặp giải phương trình:
r t( + =1) Sr t( ) (1+ −)y (2.24) Hoặc giải bằng phương trình đóng r* =(I −S)−1y (2.25) r là vector điểm số xếp hạng.
Q là tập dữ liệu truy vấn
wij là trọng số giữa các điểm i và j.
μ là tham số điều chỉnh.
Dii là tổng trọng số của các liên kết với điểm i. 1
1 def n
ii ij
j
D w
+
=
= (2.26)
0,i [1, 0, 0,...]T
r = =y là vector khởi tạo xếp hạng ban đầu (ri= yi=1 nếu xi là điểm truy vấn).
1/ 2 1/ 2
S=D− WD− (2.27) là ma trận chuyển tiếp của đồ thị, mô tả xác suất chuyển từ một nút đến các nút khác.
I là ma trận đơn vị kích thước n×n,
α: Là một hệ số làm mịn (thường nằm trong khoảng từ 0 đến 1), đại diện cho xác suất một 'bước đi ngẫu nhiên' sẽ tiếp tục di chuyển từ nút hiện tại đến một nút kế bên theo cấu trúc đồ thị.
Vector xếp hạng đa tạp hiệu quả thu được là vector r* =( )ri* 1 i n là kết quả xếp hạng cuối cùng có thứ tự giảm dần theo độ tương tự với Q thu được khi thực hiện lặp giải phương trình (2.24) hoặc tính trực tiếp theo phương trình đóng (2.25).
Trong các pha tra cứu, thông thường các điểm truy vấn có thể có hoặc không có trong CSDL. Và để thuận tiện trong tính toán, trong các trường hợp ta gán In+1 = Q, r0,n+1=1, r0,i =0, i=1,n.
a) Với trường hợp điểm truy vấn có trong CSDL:
Việc tính toán xếp hạng được thực hiện theo phương trình (2.25): Khi đó S biến đổi theo Z như sau: S = D−1/ 2WD−1/ 2 = D−1/ 2Z ZDT −1/ 2 (thay W bằng công thức (2.21)). Và từ công thức (2.26) tính D ta có thể thực hiện việc biến đổi như sau:
1
1 n
T T
ii i j i
j
D z z z v
+
=
= = (2.28) Trong đó zi là cột thứ i của Z và 1
1 n
j j
v z
+
=
= . Như vậy khi tính D ta không cần tính và lữu trữ ma trận W.
Đặt H = ZD−12 , ta có S = H HT khi đó vector xếp hạng dạng đóng cuối cùng r* được tính trực tiếp từ công thức (2.25):
Thay S=HTH vào công thức r* =(I −S)−1y ta có:
( ) 1 1
* T T T 1
n n C
r I H H y I H HH I H y
− −
= − = − − (2.29)
H là ma trận mới được xây dựng dựa vào ma trận Z và ma trận đường chéo D; và kích thước của H là C×n.
Chứng minh công thức (2.29) như sau: Ta kiểm tra (In −H HT )lần của
1 1
T T
n C
I H HH I H
− − −
thì được ma trận đơn vị In. Ta có:
(In −H HT )In −HT HHT −1 IC −1H
( ) 1 1
T T T T T
n C
I H H H H HH HH I H
−
= − − − −
1 1 1
T T T T
n C C
I H H H I HH HH I H
−
= − + − + −
T T
In H H H H
= − +
In
=
Khi tính toán xếp hạng theo phương trình (2.29), phần nghịch đảo (chi phí tính toán phức tạp nhất) chuyển từ ma trận n×n sang ma trận C×C. Nếu C n
, thay đổi này có thể tăng tốc đáng kể việc tính toán xếp hạng đa tạp. Do đó, việc áp dụng phương pháp này cho hệ thống tra cứu theo thời gian thực là khả thi.
b) Khi điểm truy vấn nằm ngoài CSDL: Thông thường trong các hệ thống tra cứu, điểm tra cứu thường không có trong CSDL. Do vậy với một truy vấn mới thì ta thực hiện tính s điểm neo gần kề với điểm truy vấn (theo thuật toán 2.2), sau đó gán trọng số giữa điểm truy vấn và s điểm neo gần kề của nó và hình thành cột mới ZC×(n+1) gọi là zt (hình 2.5).
Hình 2.5. Mở rộng ma trận Z với mẫu mới [116]
Khi đó ta có: Dt = z vtT , ht = z Dt t−1/ 2với ht là cột mới của ma trận H. Để tính nhanh công thức xếp hạng dạng đóng (2.27), ta chỉ quan tâm đến việc tính toán nghịch đảo:
1 1
1
1 n 1
T T
C i i C
i
B HH I h h I
− −
=
= − = − (2.30) Và B’ là của cột ht mới thêm vào được tính như sau:
1
1
' 1
n
T T
i i i i C
i
B h h h h I B
−
=
= + −
(2.31)
Khi n rất lớn và ht rất thưa; ta có thể xem xét ma trận B như nghịch đảo của một ma trận hiệp phương sai. Phương trình (2.31) chỉ ra việc thêm một điểm đơn lẻ sẽ không ảnh hưởng đến ma trận hiệp phương sai của một cơ sở dữ liệu lớn. Nói cách khác, việc tính toán của B có thể được thực hiện ở giai đoạn ngoại tuyến.
Khi đó vector khởi tạo yt ban đầu như sau:
0 1
n
yt
=
(2.32) Với 0n là vector 0 có độ dài n.
Và công thức xếp hạng dạng đóng (2.27) được viết lại như sau:
( 1) 1
1
0
1
T n n
n T t
t
r I H B H h
h B
+
+
= − (2.33)
Trong công thức (2.33) ta tập trung và việc xếp hạng n phần tử đầu của r và được tính:
1
n T
t t
r = −H Bh = Eh (2.34)
Với ma trận E=-HTB được tính ở pha ngoại tuyến. Do vậy việc tính toán xếp hạng theo công thức (2.34) sẽ thực hiện được theo thời gian thực, đảm bảo cho việc tính toán khi điểm truy vấn không có trong CSDL.