Professional Documents
Culture Documents
Tóm tắt—Nhóm nghiên cứu trình bày PROSECCO, một thuật toán để khai thác
lũy tiến các tập phổ biến từ các bộ dữ liệu (datasets) giao dịch lớn: một thuật toán
khai phá lũy tiến xử lý bộ dữ liệu thành các khối (blocks) và dữ liệu đầu ra
(outputs) - một tập hợp xấp xỉ các dãy phổ biến chất lượng cao, sau khi đã phân
tích từng khối. Những kết quả trung gian này có độ đảm bảo tính gần đúng xác suất
mạnh và dữ liệu đầu ra cuối cùng là tập hợp chính xác của các tập phổ biến. Chúng
tôi sử dụng chiều VC (Vapnik-Chervonenkis, một khái niệm quan trọng từ lý
thuyết thống kê, được định nghĩa là lực lượng của tập hợp lớn nhất bị phá vỡ bởi
thuật toán).
Kết quả đánh giá thử nghiệm của nhóm nghiên cứu về PROSECCO trên các bộ dữ
liệu thực và nhân tạo cho thấy rằng thuật toán tạo ra các kết quả có chất lượng cao,
hội tụ nhanh gần như ngay lập tức. Hiệu suất thực tế của nó thậm chí còn tốt hơn
so lý thuyết đã chứng minh, và nó thậm chí có thể nhanh hơn các thuật toán không
luỹ tiến (non-progressive algorithm) tiên tiến nhất hiện có.
I. INTRODUCTION
Khai phá dữ liệu (Data exploration) là một trong những bước đầu tiên của phân
tích dữ liệu: người dùng thực hiện một nghiên cứu sơ bộ về tập dữ liệu để làm
quen với nó trước khi thực hiện phân tích sâu hơn. Để trở nên có ích, các hệ thống
được sử dụng để khái phá dữ liệu phải có tính tương tác: Có độ trễ nhỏ (500 mili
giây [1]) và độ trễ lớn (6–12 giây [2]) giữa mỗi truy vấn (query) và phản hồi làm
giảm tốc độ truy cập của người dùng.
Các công cụ khai phá dữ liệu, chẳng hạn như Vizdom [3], đạt được tính tương tác
bằng cách hiển thị các kết quả trung gian càng sớm càng tốt sau khi truy vấn đã
được gửi. Chúng cần được cập nhật thường xuyên khi có nhiều dữ liệu được xử lý
hơn, bằng cách sử dụng tổng hợp trực tuyến (online aggregation) [4].
Các kết quả trung gian phải đáng tin cậy, hay nói cách khác, không gây hiểu lầm
cho người dùng, nếu không họ sẽ không thể đưa ra các quyết định sáng suốt. Cụ
thể: 1) chúng phải có kết quả chính xác với xác xuất và tính gần đúng 2) Chúng
cần nhanh chóng đồng quy về các kết quả chính xác, và tương ứng với các kết quả
đó sau khi tất cả dữ liệu đã được xử lý.
Tổng hợp trực tuyến tạo ra các kết quả trung gian đáng tin cậy cho các truy vấn
SQL tương đối đơn giản, nhưng hiện tại kỹ thuật này chưa hỗ trợ các tác vụ khai
phá tri thức phức tạp hơn – một phần quan trọng của thăm dò dữ liệu.
Các thuật toán khai thác dữ liệu hiện có là những ứng cử viên tồi cho giai đoạn
phân tích dữ liệu này. Các thuật toán “batch” phân tích toàn bộ tập dữ liệu trong
một lần duy nhất có thể mất nhiều phút để hoàn thành, do đó làm gián đoạn trải
nghiệm của người dùng. Các thuật toán dòng dữ liệu (streaming algorithms)
thường không đảm bảo đầy đủ về chất lượng của các kết quả trung gian cũng như
sự đáng tin cậy.
Trong nghiên cứu này, nhóm tập trung vào một nhiệm vụ quan trọng của việc khai
thác tập phổ biến [5], [6], nhiệm vụ này yêu cầu tìm kiếm danh sách các hạng mục
đã được sắp xếp có độ phổ biến cao trong tập cơ sở dữ liệu giao dịch. Các ứng
dụng bao gồm phân tích log, lập mô hình tài chính và phân tích giỏ hàng (MBA –
market basket analysis).
Phần dưới cùng của Hình 1 cho thấy sự thiếu tương tác của các thuật toán khai
trình tự hiện có. Sau khi có đã chọn một tập dữ liệu và ngưỡng tần suất tối thiểu để
coi là một tập phổ biến, người dùng khởi chạy một thuật toán khai thác tập phổ
biến không lũy tiến, chẳng hạn như PrefixSpan [6]. Cho đến khi thuật toán kết thúc
(có thể mất nhiều chục giây), sẽ không có phản hồi nào được đưa ra cho người
dùng. Sự chậm trễ như vậy sẽ phá hủy năng suất của phiên thăm dò dữ liệu. Do đó,
việc xây dựng các thuật toán mới là cần thiết để đảm bảo rằng con người tham gia
vào vòng phân tích dữ liệu bằng cách cung cấp thông tin thúc đẩy hành động
thường xuyên nhất có thể.
Đóng góp: Nhóm nghiên cứu mô tả PROSECCO, một thuật toán khai thác tập phổ
biến với kết quả trung gian đáng tin cậy, phù hợp để thăm dò dữ liệu tương tác.
• PROSECCO trả về định kỳ cho người dùng các phép xấp xỉ có chất lượng cao
của tập các kết quả (collection of interest) (xem phần trên cùng một phần của Hình
1). Hành vi luỹ tiến này đạt được bằng cách phân tích tập dữ liệu tăng dần theo các
khối có kích thước do người dùng chỉ định. PROSECCO trích xuất một tập hợp
các tập phổ biến là ứng cử viên từ khối đầu tiên bằng cách khai thác nó ở mức
ngưỡng tần số thấp hơn, tuỳ thuộc vào thuộc tính của khối. PROSECCO thường trả
về tập kết quả đầu tiên sau chưa đầy một giây, do đó giữ người dùng tham gia vào
quá trình thăm dò dữ liệu. Tập các ứng cử viên nói trên được đảm bảo là một siêu
tập hợp (superset) của tập hợp chính xác các tập phổ biến. Tập này được tinh chỉnh
theo tiến độ qua quá trình xử lý khối, với mỗi dữ liệu đầu ra được tinh chỉnh như
một kết quả trung gian. Khi khối cuối cùng đã được phân tích, các tập ứng cử viên
tương ứng với tập hợp chính xác các tập phổ biến. Nhóm nghiên cứu cũng trình
bày một biến PROSEK để trích xuất chuỗi top-k thường xuyên nhất.
• Tất cả các bộ chuỗi ứng cử viên được trả về đều đi kèm với các đảm bảo về xác
suất tường minh liên quan đến chất lượng của chúng. Những đảm bảo như vậy cho
phép người dùng quyết định có nên tiếp tục hoặc dừng xử lý các khối bổ sung.
Nhóm nghiên cứu phân tích sử dụng chiều VC [7] và các kết quả độ phức tạp mẫu
cơ bản từ lý thuyết học thống kê [8]
[9]. Nhóm nghiên cứu chỉ ra rằng chiều thực nghiệm VC của nhiệm vụ khai thác
tập phổ biến được giới hạn trên bởi một số lượng đặc trưng của tập dữ liệu, mà
nhóm nghiên cứu gọi là s-index (Định nghĩa 2), có thể được tính toán trong một
luồng khi các khối được đọc (Thuật toán 2).
• Nhóm nghiên cứu đã tiến hành đánh giá thử nghiệm rộng rãi về PROSECCO trên
bộ dữ liệu thực và nhân tạo. Các kết quả của nhóm nghiên cứu chỉ ra rằng
PROSECCO tạo ra gần như ngay lập tức các phép xấp xỉ của tập hợp thực tế các
tập phổ biến, với chất lượng thậm chí còn cao hơn so với bảo đảm về phân tích lý
thuyết của nhóm. Hơn nữa, PROSECCO sử dụng một số dung lượng bộ nhớ ít hơn
khi so sánh với thuật toán khai thác chuỗi tiên tiến hiện tại là PrefixSpan [6],
Hình 1: Minh họa công cụ phân tích dữ liệu tương tác, trong đó người dùng có thể
gọi hoạt động khai thác tập phổ biến bằng cử chỉ (trái) bằng cách chọn tập dữ liệu
và ngưỡng tần suất tối thiểu. Phản hồi được hiển thị bởi công cụ cho người dùng
rất khác nhau tùy thuộc vào việc thuật toán lũy tiến hay không lũy tiến được sử
dụng để tính toán câu trả lời cho truy vấn đó. Bên trong trường hợp thuật toán
không lũy tiến (phía dưới) công cụ hiển thị hình ảnh động đang tải cho đến khi câu
trả lời chính xác được tính toán sau 40 giây. Với PROSECCO, công cụ có thể hiển
thị (trên cùng) các kết quả được tinh chỉnh dần dần cho người dùng ngay lập tức và
tại các điểm khác nhau với những khoảng thời gian nhất định . Dữ liệu và thời gian
cho ví dụ này được lấy từ các thí nghiệm thực tế.
trong đó kích thước |Si| của tập mục Si là số mục trong nó (ví dụ: |{a, b, c}| = 3).
Một dãy a = (A1, A2, … , Al ) là dãy con của dãy khác b = (B1, B2, … ,Bm) ký hiệu
là a ⊆ b, nếu tồn tại các số nguyên 1 ≤ j 1 < j2 < … jl ≤ m sao cho A1 ⊆ Bj1, A2 ⊆
Bj2, … , Al ⊆ Bjl.
Độ lớn c(s) của s là số dãy con phân biệt của s:
Đại lượng 2||s|| − 1 là cận trên của c(s). PROSECCO sử dụng cận trên mạnh hơn
được giới thiệu sau.
Tập dữ liệu D là một túi hữu hạn các chuỗi. Khi đề cập đến chúng với tư cách là
thành viên của tập dữ liệu, các phần tử của D được biết đến như các giao dịch. Một
dãy s thuộc về một giao dịch τ € D iff s là một dãy con của τ.
Với mọi dãy s thì tần số của s trong D là phân số các giao dịch của D mà s thuộc
về:
Giao dịch cuối cùng là một chuỗi có độ dài |τ| = 3. item-length của nó ||τ|| là 4. Độ
lớn của nó c(τ) là 13 (không phải 24 - 1 = 15 vì có 2 cách lấy ({a}) và ({a}; {b})).
Trong khi chuỗi ({a}) xuất hiện hai lần dưới dạng dãy con của τ, τ là chỉ được tính
một lần để tính tần suất của ({a}), mà là 4/5. Trình tự ({a}; {b}; {c}) không phải là
dãy con của τ bởi vì thứ tự của các tập mục trong chuỗi được chú trọng hơn.
Khai phá tập phổ biến: Gọi S là tập hợp tất cả trình tự được xây dựng với các tập
mục chứa các mục từ I. Cho trước ngưỡng tần số tối thiểu θ ∈ (0; 1], tập FS(D; θ)
của các chuỗi thường trong D w.r.t. θ chứa tất cả và chỉ các chuỗi có tần số ít nhất
θ trong D:
Nhóm nghiên cứu sử dụng є-approxiamtion của FS(D; θ), với є ∈ (0; 1). Về mặt
hình thức, chúng được định nghĩa như sau.
Định nghĩa 1: Cho є ∈ (0; 1). Một є-approxiamtion đến FS(D; θ) là tập hợp B gồm
các cặp (s; fs), trong đó є ∈ S và fs ∈ [0; 1], với các thuộc tính sau:
1) B chứa một cặp (s; fs) với mọi s ∈ FS(D; θ);
2) B không chứa cặp (s; fs) sao cho fD(s) < θ − є;
3) Mọi (s; fs) ∈ B sao cho |fs − fD(s)| ≤ є/2.
Một є-approxiamtion của B là siêu tập của FS(D; θ) (Tính chất 1) và "false
positive" mà nó chứa, hay nói cách khác, các trình tự xuất hiện trong một cặp B
nhưng không xuất hiện trong FS(D; θ), là “gần như” thường xuyên, có nghĩa là tần
số của chúng trong D không thể thấp hơn θ − є (Thuộc tính 2). Ngoài ra, các ước
tính tần số của các dãy trong B đều đồng thời lên đến є / 2, cách xa giá trị chính
xác của chúng (Thuộc tính 3). Nhóm nghiên cứu tập trung vào sai số tuyệt đối
nhưng có thể mở rộng thành sai số tương đối.
B. Kích thước VC và lấy mẫu
Chiều (thực nghiệm) Vapnik-Chervonenkis (VC) [7] là một khái niệm cơ bản từ lý
thuyết học thống kê [9]. Nhóm nghiên cứu đưa ra ở đây các định nghĩa và kết quả
cơ bản nhất, phù hợp với cài đặt của nhóm nghiên cứu và giới thiệu người đọc đến
sách giáo khoa của ShalevShwartz và Ben-David [26] để có phần trình bày chi tiết.
Cho H là một miền rời rạc hữu hạn và R ⊆ 2H là một tập hợp của các tập con của
H. Ta gọi các phần tử của dãy R, và gọi (H; R) một dãy. Cho W ⊆ H, ta nói rằng A
⊆ W là bị phá vỡ bởi R nếu với mọi tập con B ⊆ A của A, tồn tại một phạm vi RB
2 R sao cho A \ RB = B, hãy nói cách khác, nếu:
Chiều thực nghiệm VC EVC(H; R; W) của (H; R) trên W là kích thước của tập con
lớn nhất của W bị phá vỡ bởi R.
Ví dụ: đặt H là các số nguyên từ 0 đến 100 và gọi R là tập hợp tất cả các bộ số
nguyên liên tiếp từ 0 đến 100, tức là,
Gọi W là tập hợp các số nguyên từ 10 đến 25. Chiều VC EVC(H; R; W) của (H; R)
trên W là 2, vì với bất kỳ bộ A = {a; b;c}với, w.l.o.g., a < b < c trong 3 số nguyên
phân biệt thuộc W, không thể tìm thấy một phạm vi R trong R sao cho R∩A =
{a;c}, do đó không có tập 3 kích thước như vậy là bị phá vỡ bởi R, trong khi việc
phá vỡ một tập 2 kích thước là chuyện nhỏ.
Trong thực tế, kích thước tương đối của các phạm vi, hay nói cách khác, số lượng
Chưa xác định. Một người quan tâm đến việc ước tính tất cả chúng với độ chính
xác được đảm bảo từ tập hợp con W của các phần tử ℓ của miền H. Cho φ ∈ (0; 1).
Tập hợp W là một mẫu φ nếu:
Việc sử dụng thuật ngữ mẫu φ để biểu thị một tập hợp như vậy được thúc đẩy bởi
thực tế là nếu:
1) W là một mẫu ngẫu nhiên thống nhất của ℓ các phần tử từ H;
2) Chúng ta có thể tính cận trên của chiều VC của (H; R) trên W thì chúng ta có
thể thu được một giá trị φ sao cho, với xác suất cao đối với sự lựa chọn của W, W
là mẫu φ.
Định lý 1 ([8]): Cho W là mẫu ngẫu nhiên đồng nhất của ℓ các phần tử từ H và đặt
d ≥ EVC(H; R; W). Cho η ∈ (0; 1) và
Sau đó, với xác suất ít nhất là 1 − η (đối với lựa chọn W), W là một φ-mẫu.
Nhóm nghiên cứu sử dụng định lý này trong phân tích của PROSECCO (xem Mục
IV-C) để đảm bảo rằng các đầu ra của các kết quả trung gian đảm bảo chất lượng
mạnh và hội tụ về FS(D; θ).
IV. THUẬT TOÁN
Bây giờ, nhóm nghiên cứu giới thiệu PROSECCO, thuật toán lũy tiến của nhóm
cho tính toán tập hợp các tập phổ biến trong tập dữ liệu.
A. Trực giác và Động lực
PROSECCO xử lý tập dữ liệu theo khối B1,…,B⌠|D|b˥ của mỗi giao dịch với số
lượng b,1, cho một người dùng được chỉ định b. Sau khi đã phân tích khối B i thứ i,
ứng dụng xuất ra một kết quả trung gian là một є-approxiamtion i cho một єi được
tính toán bởi PROSECCO.
Nhờ có sự kết hợp các kết quả trung gian được cập nhật thường xuyên và độ tin
cậy của chúng, sự thăm dò dữ liệu tương tác được kích hoạt: mỗi kết quả trung
gian phải là một phép xấp xỉ chất lượng cao của tập hợp các tập phổ biến, nếu
không người dùng không thể quyết định tiếp tục hay gián đoạn việc xử lý dữ liệu
vì các kết quả trung gian có đã hiển thị những gì họ quan tâm. Đạt được mục tiêu
này không hề đơn giản. Các thuật toán dòng dữ liệu cho việc khai thác tập phổ biến
[21] sử dụng một giá trị cố định, do người dùng chỉ định, được hạ thấp ngưỡng tần
số ξ < θ để khai thác tất cả các khối (ngưỡng ξ tương tự được sử dụng cho tất cả
các khối). Chiến lược này không đủ để đảm bảo kết quả trung gian đáng tin cậy do
1
Với ngoại lệ có thể xảy ra của block cuối cùng. Ngoại lệ này có ít hơn các giao dịch b
các thuật toán này có thể không chứa nhiều tập phổ biến trong toàn bộ tập dữ liệu,
và bởi vì các chuỗi này có thể có tần số trong một khối thấp hơn ξ, dẫn tới tình
trạng bị thiếu trong kết quả trung gian cho khối đó. Kết quả như vậy sẽ đánh lừa
người dùng.
PROSECCO tránh những cạm bẫy này bằng cách cẩn thận khai thác khối ban đầu
ở ngưỡng tần số thấp hơn ξ < θ, được tính toán sử dụng thông tin thu được từ
khối.2 Bằng cách đó, việc khai thác tập giá trị F của các tập phổ biến "ứng cử viên"
là một siêu tập của FS(D; θ) (cụ thể hơn, nó là một є-approxiamtion gần đúng, cho
một giá trị є được tính toán bởi PROSECCO). PROSECCO sau đó tinh chỉnh tập
hợp ứng viên F bằng cách sử dụng bổ sung thông tin thu được từ việc khai thác
từng khối liên tiếp ở ngưỡng tần số thấp của từng khối cụ thể, có phụ thuộc vào dữ
liệu, qua đó cải thiện chất lượng của tập hợp ứng cử viên (tức là, giảm mức độ tăng
dần của є và giảm bớt việc thêm vào giá trị dương tính giả), và cuối cùng hội tụ
chính xác đến FS(D; θ). Việc khiến tính động của ngưỡng ξ hạ thấp và việc phụ
thuộc vào thông tin của khối cụ thể được tính toán bởi thuật toán cho phép
PROSECCO xuất ra kết quả trung gian đáng tin cậy.
B. Mô tả thuật toán
Trước tiên chúng ta cần một số định nghĩa và kết quả sơ bộ.
PROSECCO dựa vào thuộc tính mô tả của các bộ giao dịch mà là một chức năng
của phân phối của năng lực (xem (1)) của các giao dịch trong các bộ. Việc thu
được Độ lớn chính xác c(τ) của một giao dịch τ là rất quan trọng. Thay vào đó,
nhóm nghiên cứu tính cận trên ~c(τ) ≥ c(τ) như sau.
Xét đại lượng 2||τ|| − 1 ≥ c(τ). Số lượng này có thể có cận trên chưa chặt chẽ do nó
thu được bằng cách coi tất cả các tập con của Bag-Union U A∈τA của các tập mục
2
Khi xử lý các khối ban đầu cần có sự chăm sóc bổ sung. Xem Mục IV-D
trong τ như là các chuỗi con khác biệt, nhưng điều đó có thể không phải là trường
hợp này. Ví dụ, khi τ chứa (trong số những tập khác) hai tập mục A và B cũng như
A ⊆ B, chuỗi có dạng s = <C> với C ⊆ A được xem xét hai lần khi thu được giá trị
2||τ|| − 1, ngay khi “được tạo ra” lần 1 từ A và lần 2 từ B. Ví dụ: chuỗi con <{a}> có
thể được “tạo ra” bởi cả tập thứ nhất và thứ hai trong giao dịch cuối cùng từ (3),
nhưng chuỗi đó không được tính hai lần.
Mục tiêu của nhóm nghiên cứu trong việc phát triển cận trên tốt hơn cho c(τ) là
tránh việc đếm thừa các chuỗi con 2|A|−1 của τ ở dạng s như trên. Ở mức độ trực
quan, mục tiêu này có thể đạt được bằng cách đảm bảo rằng các chuỗi con như vậy
chỉ được tính một lần, hay nói cách khác, được “tạo ra” bởi tập mục dài nhất có thể
tạo ra chúng.
Theo thể thức, đặt τ = <Z1,…, Zℓ> là một giao dịch và giả sử để gán lại các tập mục
trong τ bằng cách giảm kích thước, các ràng buộc bị phá vỡ tùy ý, như A 1,…,Aℓ
sao cho |Ai| ≥ |Ai+1|. Nhóm nghiên cứu tính toán cận trên ~c(τ) như sau (theo mã
giả trong Thuật toán 1). Đầu tiên, ~c(τ) được đặt thành 2 ||τ|| − 1, sau đó nhóm đặt A i
vào danh sách L theo thứ tự gán. Miễn là danh sách L chứa nhiều hơn một tập
mục, nhóm lấy tập mục đầu tiên A từ danh sách và tìm bất kỳ tập mục B nào vẫn
còn trong L sao cho B ⊆ A. Với mỗi một tập như B, chúng ta giảm ~c(τ) đi 2 |B| − 1
và loại bỏ B khỏi L. Kết quả sau đây trở nên đơn giản.
Bổ đề 1: Nó cho rằng ~c(τ) ≥ c(τ).
Có nhiều loại chuỗi con khác của τ mà có thể được tính quá mức, nhưng ta cần đạt
được sự đánh đổi phù hợp giữa thời gian cần thiết để xác định các tính năng được
tính quá mức và mức tăng trong cận trên của độ lớn. Việc điều tra các ràng buộc
tốt hơn đối với độ lớn của một giao dịch mà vẫn có thể được tính toán hiệu quả là
một hướng thú vị cho công việc tương lai.
Đưa ra một tập W các giao dịch, nhóm nghiên cứu sử dụng các cận trên č để xác
định một đại lượng đặc trưng của W, mà chúng ta gọi là chỉ số s-index của W.
Định nghĩa 2: Cho trước một tập W các giao dịch, chỉ số s-index của W là số
nguyên d lớn nhất sao cho W chứa ít nhất d giao dịch với cận trên č với khả năng
của chúng ít nhất 2d - 1, và tương tự với bất kỳ hai riêng biệt mà giao dịch có item-
length ít nhất là d, cũng không phải là một chuỗi con (đúng hoặc không đúng) của
giao dịch kia.
Ví dụ, xem xét tập hợp năm giao dịch từ (3). Nó có chỉ số s bằng 4 vì bốn giao
dịch đầu tiên có ~c ít nhất 24 − 1 = 15 (mỗi τ trong số chúng có ~c(τ) = 2kτk − 1),
trong khi giao dịch cuối cùng τ có ~c(τ) = 14. Do việc sử dụng ~c, chỉ mục s được
điều chỉnh cho phù hợp với nhiệm vụ khai thác tập phổ biến. Nó đặc biệt khác với
d-index của tập dữ liệu giao dịch được sử dụng cho tập phổ biến khai thác [23].
Với W, giới hạn trên của chỉ số s d của nó có thể được tínhtheo kiểu phát trực
tuyến như sau (mã giả trong Thuật toán 2).Nhóm nghiên cứu bắt đầu với d = 0 và
tăng dần nó bằng cách tìm tại các giao dịch trong W lần lượt, duy trì tập T của ‘ ≤
d giao dịch với ~c lớn hơn 2d − 1 và của d − ‘ giao dịch với ~c chính xác 2d − 1.
Bây giờ Nhóm nghiên cứu đã sẵn sàng để mô tả PROSECCO. mã giả của nó là
được trình bày trong Thuật toán 3. PROSECCO nhận đầu vào là các tham số sau:
tập dữ liệu D, kích thước khối b 2 N, ngưỡng tần số tối thiểu θ 2 (0; 1] và lỗi xác
suất δ 2 (0; 1).
Thuật toán xử lý tập dữ liệu D khối B1; : : : ; Bβ trong đó β = djDj=be, của b giao
dịch mỗi giao dịch,3 phân tích tập dữ liệu một khối tại một thời điểm. Nhóm
nghiên cứu giả định để hình thành các khối bằng cách đọc các giao dịch trong tập
dữ liệu theo thứ tự đã chọn thống nhất một cách ngẫu nhiên, có thể đạt được, ví dụ:
sử dụng truyền tải chỉ số andomized [27]. Yêu cầu này rất quan trọng cho tính
đúng đắn của thuật toán.
PROSECCO giữ hai số lượng đang chạy:
1) đại lượng mô tả d là giới hạn trên của s-index (xem Định nghĩa 2) của tập hợp
các giao dịch được nhìn thấy bởi thuật toán cho đến bây giờ;
2) một tập F gồm các cặp (s; fs) trong đó s là một dãy và fs € (0;1].
Đại lượng d được khởi tạo với giới hạn trên của s-index của B1, được tính toán
theo kiểu phát trực tuyến bằng cách sử dụng getSIndexBound (Thuật toán 2) khi
B1 được đọc (dòng 2 của Thuật toán 3). Số lượng thứ hai F được phổ biến với trình
tự thường xuyên trong B1 w.r.t. tần số tối thiểu thấp hơn ngưỡng ξ = θ− 2" và tần
số tương ứng của chúng trong Bi (dòng 4 và 5 của Thuật toán 3). Khai thác tập phổ
biến bất kỳ thuật toán, ví dụ: PrefixSpan [6], có thể được sử dụng để lấy tập hợp
này. Nhóm nghiên cứu giải thích biểu thức cho " (dòng 3) trong Phần IV-C.
Sau khi phân tích B1, PROSECCO xử lý các khối B2 còn lại; : : : ; Bβ. Trong khi
đọc từng khối Bi, thuật toán cập nhật d một cách thích hợp sao cho d là cận trên
đến chỉ mục s của bộ sưu tập
giao dịch tại các lô B1; : : : ; Bi. Việc cập nhật d đơn giản nhờ thực tế là
getSIndexBound (Thuật toán 2) là một thuật toán phát trực tuyến, do đó, bằng cách
tuân theo bộ nhớ bộ T (dòng 8 của Thuật toán 2) có thể để cập nhật d khi nhiều
giao dịch được đọc. Tại thời điểm này, PROSECCO cập nhật F theo hai bước (cả
hai đều được triển khai trong hàm updateRunningSet, dòng 11 của Thuật toán 3)
dưới dạng sau:
1) đối với mỗi cặp (s; fs) 2 F, PROSECCO cập nhật fs như
chứa, đối với mỗi chuỗi s 2 S, một tập Rs được định nghĩa là tập các giao dịch của
D thuộc:
Từ (2) dễ dàng thấy rằng với bất kỳ dãy s 2 S nào, độ lớn tương đối của dãy Rs
bằng tần số của s trong D:
Cho một tập con W của D, nó cho rằng
Bổ đề 2: Cho W là tập con của D là mẫu φ của (D; R) đối với φ 2 (0; 1) nào đó.
Sau đó, bộ
Các đặc điểm của bộ dữ liệu được báo cáo trong Bảng I. Để làm cho các bộ dữ liệu
đại diện hơn cho các bộ dữ liệu khổng lồ thường xuyên có sẵn trong môi trường
công ty (và thật đáng buồn không có sẵn công khai), Nhóm nghiên cứu sao chép
từng tập dữ liệu một số lần (từ 5 đến 100). Sự sao chép bảo tồn các phân phối ban
đầu của tần số chuỗi và giao dịch độ dài, vì vậy nó không mang lại lợi thế cho
PROSECCO theo bất kỳ cách nào, cũng như bất lợi cho bất kỳ thuật toán khai thác
trình tự nào khác.
Thông số: Nhóm nghiên cứu kiểm tra PROSECCO bằng một số ngưỡng tần số tối
thiểu khác nhau trên mỗi bộ dữ liệu. Nhóm nghiên cứu báo cáo, đối với mỗi bộ dữ
liệu, kết quả cho hai ngưỡng. Nhóm nghiên cứu khác nhau ngưỡng tần số trên các
bộ dữ liệu do tính duy nhất đặc điểm của từng tập dữ liệu, sử dụng các ngưỡng tạo
ra một số lượng các tập phổ biến có khả năng được quan tâm trong một cài đặt
tương tác (ít hơn 500 trình tự trong đầu ra cuối cùng). Nhóm nghiên cứu đặt δ =
0:05 và không thay đổi giá trị của tham số này bởi vì thuật toán chỉ có logarit giới
hạn (và dưới căn bậc hai) phụ thuộc vào nó. Nhóm nghiên cứu cũng sử dụng một
hằng số kích thước khối b = 10,000 giao dịch trừ khi có quy định khác. Giá trị này
đã được tìm thấy để đảm bảo tính tương tác tốt nhất (xem cũng như Phần V-B để
so sánh các kích thước khối khác nhau).
A. Độ chính xác
Nhóm nghiên cứu đánh giá độ chính xác của PROSECCO về khả năng thu hồi, lỗi
chính xác và tần số của tập hợp các trình tự đầu ra trong mỗi kết quả trung gian.
Hình 2 cho thấy kết quả để thu hồi và độ chính xác, trong khi Hình 3 và Hình 4 cho
thấy cái cho các lỗi tần số.
Nhớ lại: Kết quả đầu tiên, chung cho tất cả các thí nghiệm đã tiến hành, đó có phải
là đầu ra cuối cùng của PROSECCO luôn chứa tập hợp chính xác của các tập phổ
biến, không chỉ với xác suất 1 - δ mà lý thuyết của Nhóm nghiên cứu đảm bảo
phân tích. Nói cách khác, việc thu hồi thuật toán của Nhóm nghiên cứu ở lần lặp
cuối cùng luôn là 1:0 trong thực tế. Hơn nữa, trong tất cả các thí nghiệm của Nhóm
nghiên cứu, việc thu hồi từng kết quả trung gian là cũng 1:0. Tóm lại, có thể nói
rằng PROSECCO luôn tạo ra các kết quả trung gian là tập siêu của FS(D; θ).
Độ chính xác: PROSECCO không đưa ra bảo đảm về mặt về độ chính xác: nó chỉ
đảm bảo rằng bất kỳ chuỗi nào nhiều ít thường xuyên hơn ngưỡng tối thiểu do
người dùng chỉ định θ sẽ không bao giờ được bao gồm trong bất kỳ kết quả trung
gian nào (xem Thuộc tính 2 của Định nghĩa 1). Tính chất này rất mạnh nhưng
không ngăn chặn dương tính giả xảy ra. Chúng ta có thể nhìn thấy
từ các kết quả trong Hình 2 rằng độ chụm sau khi có đã xử lý khối đầu tiên là
khoảng 0,20 đối với một số bộ dữ liệu, nhưng nó có thể cao hơn nhiều (0,6–0,8)
hoặc thậm chí là hoàn hảo. Nó nhanh chóng tăng trong mọi trường hợp khi nhiều
khối được phân tích. Bởi vì bản chất ngẫu nhiên của thuật toán, các lần chạy khác
nhau của PROSECCO có thể hoạt động hơi khác một chút (vùng bóng mờ xung
quanh đường cong chính xác) nhưng vẫn hiển thị tương đối cao độ chính xác trên
bảng. Độ chính xác có xu hướng cao nguyên sau một vài khối: hiệu ứng này là do
trước đó đã xử lý toàn bộ tập dữ liệu, thật khó cho thuật toán loại bỏ khỏi tập hợp F
các dãy có tần số bằng D chỉ thấp hơn một chút so với θ. Chỉ sau khi khối cuối
cùng có đã được phân tích, rõ ràng là các trình tự này không thuộc FS(D; θ) và
chúng có thể bị loại khỏi F một cách an toàn. Thật vậy, đầu ra cuối cùng luôn
chính xác là FS(D; θ), tức là, độ chính xác của đầu ra cuối cùng là 1:0.
Lỗi tần suất: Nhóm nghiên cứu đo lỗi trong ước tính của các tần số trong mỗi đầu
ra lũy tiến theo hai cách:
• sai số tuyệt đối: giá trị tuyệt đối của chênh lệch giữa ước lượng và tần số thực
trong D.
• lỗi phần trăm tương đối (RPE): Nhóm nghiên cứu chia tuyệt đối lỗi với tần số
thực trong D và nhân kết quả bằng 100 để có được một tỷ lệ phần trăm.
Kết quả cho lỗi tuyệt đối được báo cáo trong Hình 3 và những cái cho lỗi phần
trăm tương đối nằm trong Hình 4. Bắt đầu với sai số tuyệt đối, chúng ta có thể thấy
từ các đồ thị trung bình trên các chuỗi trong trung gian kết quả cho mỗi khối, lỗi là
rất nhỏ (không bao giờ hơn hơn 0,0025) và nhanh chóng hội tụ về không. lỗi đi
chính xác bằng 0 sau khi thuật toán đã xử lý lần cuối khối. Kết quả rất ổn định
trong các lần chạy (nhỏ hoặc không có vùng tô đậm). Ngay cả sai số tối đa cũng
chỉ lớn hơn một chút hơn giá trị trung bình. Nhóm nghiên cứu cũng báo cáo giới
hạn trên lý thuyết đến lỗi tối đa, tức là số lượng "i được xuất ra bởi PROSECCO
sau khi mỗi khối đã được xử lý. Đây số lượng bằng 0 sau khi đã xử lý khối cuối
cùng (khối điểm duy nhất không được nhìn thấy rõ ràng trong một số hình). Nhóm
nghiên cứu có thể thấy rằng giới hạn này lớn hơn mức tối đa thực tế lỗi được quan
sát, xác nhận phân tích lý thuyết của Nhóm nghiên cứu. Các thực tế là đôi khi giới
hạn lớn hơn đáng kể so với lỗi quan sát được là do sự lỏng lẻo của độ lệch lớn giới
hạn được sử dụng (Định lý 1) và PROSECCO tính toán một giới hạn trên với chỉ
số s, lần lượt là giới hạn trên đối với chiều VC theo kinh nghiệm, bản thân nó là
một đại lượng trong trường hợp xấu nhất. Trong tương lai gần, Nhóm nghiên cứu
dự định khám phá các giới hạn tốt hơn cho chiều VC theo kinh nghiệm và việc sử
dụng các kết quả được cải thiện từ lý thuyết học thống kê để nghiên cứu những sai
lệch lớn.
Về RPE, PROSECCO không đưa ra bất kỳ đảm bảo nào về số lượng này (mặc dù
các phần mở rộng của PROSECCO rằng cung cấp đảm bảo trên RPE là có thể).
Tuy nhiên, hình 4 cho thấy RPE nói chung là nhỏ và nó hội tụ nhanh chóng về
không. Thực tế là PROSECCO hoạt động tốt ngay cả đối với một biện pháp mà nó
không được thiết kế để thực hiện xem xét làm chứng cho tính hữu ích thực tế tuyệt
vời của nó.
B. Thời gian chạy
Nhóm nghiên cứu đo lường thời gian cần thiết để PROSECCO sản xuất từng kết
quả trung gian và so sánh thời gian hoàn thành của nó với của PrefixSpan.
Các thí nghiệm của Nhóm nghiên cứu cho thấy (Hình 5 và 6) rằng PROSECCO
cung cấp đầu ra lũy tiến cứ sau vài giây (đôi khi thậm chí mili giây) tạo ra nhiều
hội tụ tăng dần và các kết quả hữu ích trước khi PrefixSpan hoàn thành. sự thay đổi
trong thời gian xử lý của một khối là do hơi khác nhau ngưỡng được sử dụng để
khai thác các khối khác nhau. xử lý cuối cùng khối có xu hướng mất ít thời gian
hơn nhiều so với việc phân tích các khối khác bởi vì nó thường chứa ít hơn nhiều
giao dịch b.
Nhóm nghiên cứu đã thử nghiệm với bốn kích thước khối khác nhau để phân tích
ảnh hưởng tổng thể của kích thước khối đối với hiệu suất của PROSECCO. Nhóm
nghiên cứu nhấn mạnh rằng kích thước khối chỉ có ảnh hưởng đến thời gian chạy
cần thiết để tạo ra một đầu ra gia tăng nhưng không không ảnh hưởng đến tính
chính xác của PROSECCO. Hình 5 hiển thị sự thay đổi trong thời gian cần thiết để
tạo ra một gia tăng đầu ra dưới dạng hàm của θ và kích thước khối b. Như mong
đợi, thí nghiệm của Nhóm nghiên cứu cho thấy rằng giá trị lớn hơn của b làm tăng
thời gian được yêu cầu cho mỗi đầu ra lũy tiến vì mỗi khối chứa nhiều hơn giao
dịch.
Hơn nữa, kết quả gợi ý rằng việc sử dụng một khối “nhỏ” kích thước có lợi thế là
tạo ra nhiều kết quả gia tăng hơn, tuy nhiên, sử dụng giá trị quá nhỏ cho b có thể
dẫn đến kết quả cao hơn các giá trị của " khi khai thác các khối có thể làm chậm
hiệu suất tổng thể do hiện tượng bùng nổ mô hình ở các ngưỡng tần số thấp hơn.
Thời gian chạy tổng thể của PROSECCO gần giống với (và thường nhanh hơn)
thời gian chạy của PrefixSpan (Hình 6). Đôi khi PROSECCO chậm hơn, nhưng
Nhóm nghiên cứu nhấn mạnh rằng nó đã tạo ra kết quả đáng tin cậy chất lượng cao
cứ sau vài giây, bất kể kích thước tổng thể của tập dữ liệu, trong khi PrefixSpan có
thể cần vài phút hoặc hơn để tạo ra bất kỳ đầu ra nào.
Nhóm nghiên cứu chia tổng thời gian chạy thành các phân số cho phần chính các
bước của thuật toán. Nhóm nghiên cứu báo cáo tỷ lệ phần trăm trung bình của thời
gian (so với tổng số) cho mỗi bước trên tất cả sáu bộ dữ liệu.
• 54% (độ lệch chuẩn: 22%) của toàn bộ thời gian chạy được dành để đọc và phân
tích cú pháp các khối. Bước này là như vậy tốn kém vì thuật toán phải phân tích
từng hàng của tập dữ liệu trình tự và chuyển đổi nó thành một thể hiện của một đối
tượng trình tự trong quá trình triển khai của Nhóm nghiên cứu. bước này là không
dành riêng cho PROSECCO và cũng chậm như nhau trong Triển khai PrefixSpan.
• 9:5% (độ lệch chuẩn: 5,5%) của thời gian chạy là dành riêng cho việc cập nhật
chỉ mục s cũng như sắp xếp và cắt tỉa các trình tự được phân tích cú pháp. Sau khi
khối ban đầu là được xử lý, thuật toán sắp xếp và cắt tỉa từng chuỗi dựa trên các
mục trong bộ chạy F. Làm như vậy cho phép để trích xuất tập phổ biến hiệu quả
hơn (xem bước tiếp theo) vì các trình tự đã cắt tỉa được đảm bảo để chỉ chứa các
mục là một phần của một thường xuyên trình tự và nó tránh tính toán các tần số
mục từ đầu.
• 36:4% (độ lệch chuẩn: 25%) trong tổng thời gian chạy
liên quan đến việc lấy các tập phổ biến bằng cách sử dụng PrefixSpan. Nhóm
nghiên cứu lưu ý rằng nếu không có bước cắt tỉa trước đó, điều này quá trình sẽ
phải chịu một chi phí đáng kể hơn nhiều vì các tần số mục riêng lẻ sẽ cần phải
được được tính toán và các trình tự được cắt tỉa và sắp xếp tương ứng.
C. Sử dụng bộ nhớ
Nhóm nghiên cứu đo mức sử dụng bộ nhớ theo thời gian cho cả PROSECCO và
PrefixSpan. Kết quả của Nhóm nghiên cứu (Hình 7) cho thấy rằng PROSECCO sử
dụng một lượng bộ nhớ không đổi, xấp xỉ 100 đến 800 MB, bất kể kích thước của
tập dữ liệu, trong khi PrefixSpan yêu cầu một lượng bộ nhớ tuyến tính, trong một
số thử nghiệm, vượt quá 21 GigaByte. Trên thực tế, Nhóm nghiên cứu đã không
thể so sánh chính xác hiệu suất cho một số rất bộ dữ liệu lớn yêu cầu hơn 40
Gigabyte bộ nhớ để đánh giá bằng các thuật toán hiện có, tuy nhiên, Nhóm nghiên
cứu không gặp vấn đề gì thu được kết quả từ PROSECCO luôn được yêu cầu ít
hơn 1 GigaByte bộ nhớ. Sự khác biệt lớn như vậy của nhiều bậc độ lớn cho thấy rõ
ràng lợi thế của sử dụng PROSECCO trên các thuật toán khai thác trình tự cổ điển,
đặc biệt là khi bộ dữ liệu trở nên lớn hơn và phức tạp hơn.
VI. KẾT LUẬN
Nhóm nghiên cứu trình bày PROSECCO, một thuật toán để khai thác lũy tiến các
tập phổ biến từ các bộ dữ liệu giao dịch lớn. PROSECCO định kỳ đưa ra các kết
quả trung gian xấp xỉ tập FS(D; θ) của các dãy phổ biến, với chất lượng ngày càng
cao. Sau khi tất cả các tập dữ liệu đã được xử lý, kết quả cuối cùng chính xác là
FS(D; θ).
Mỗi xấp xỉ trả về đi kèm với lý thuyết mạnh mẽ bảo lãnh. Phân tích sử dụng chiều
VC, một khái niệm chính từ lý thuyết học thống kê.Kết quả thử nghiệm của Nhóm
nghiên cứu cho thấy rằng đầu ra PROSECCO một xấp xỉ chất lượng cao cho bộ
sưu tập thường xuyên các chuỗi sau chưa đầy một giây, trong khi các thuật toán
không lũy tiến sẽ mất hàng chục giây. xấp xỉ đầu tiên này được tinh chỉnh khi
nhiều khối của tập dữ liệu được xử lý và sai số giảm dần và nhanh chóng.
Trong số các hướng thú vị cho công việc trong tương lai, Nhóm nghiên cứu nhấn
mạnh sự cần thiết của các thuật toán lũy tiến cho nhiều kiến thức khác vấn đề
khám phá, với mục tiêu tạo dữ liệu tương tác khám phá một thực tế cho các nhiệm
vụ ngày càng phức tạp hơn.