You are on page 1of 26

ProSecCo: Khai thác trình tự lũy tiến với Đảm bảo hội tụ

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ế.

II. CÔNG TRÌNH LIÊN QUAN


Tổng hợp trực tuyến [4] là một mô hình trong các hoạt động DBMS, nơi người
dùng được cung cấp một cách nhanh chóng và liên tục kết quả được cập nhật cho
các truy vấn tổng hợp. Một số hệ thống [10]–[18] đã được đề xuất trong những
năm qua, với các mức độ phức tạp ngày càng tăng và sự đánh đổi khác nhau. Một
trong những hạn chế lớn của hầu hết các hệ thống này là trọng tâm của chúng trên
các truy vấn SQL và chúng không bao hàm các tác vụ khai phá tri thức - một thành
phần chính của khám phá dữ liệu. Do đó, nhóm nghiên cứu tập trung vào tổng hợp
trực tuyến cho một tác vụ khai phá tri thức là khai thác tập phổ biến.
Khai thác tập phổ biến đã được giới thiệu bởi Agrawal và Srikant [5]. Một số thuật
toán chính xác cho tác vụ này đã được đề xuất, được xếp loại từ các thuật toán
Multi-pass sử dụng tính chất chống đơn điệu của hàm tần số [19], đến cách tiếp cận
dựa trên tiền tố [6], đến các công việc tập và các tập phổ biến ở dạng đóng [20].
Trong bài báo này, nhóm nghiên cứu xem xét những các thuật toán dưới dạng hộp
đen rồi chạy chúng trên các khối của tập dữ liệu mà không có bất kỳ điều chỉnh
nào. Không có thuật toán nào nêu trên có thể làm việc trong một cài đặt luỹ tiến và
tương tác giống như cài đặt mà chúng ta hình dung (xem Hình 1), nơi mà trong đó
PROSECCO tỏa sáng. Thêm vào đó, các thuật toán này sử dụng một lượng bộ nhớ
rất lớn, trong khi PROSECCO chỉ sử dụng một lượng bộ nhớ cơ bản không đổi.
Các thuật toán dòng dữ liệu để khai thác tập phổ biến [21] xử lý tập dữ liệu thành
các khối, tương tự như PROSECCO. Tuy nhiên, các kết quả trung gian được xuất
ra của các thuật toán này không đáng tin cậy do chúng có thể bỏ lỡ nhiều tập phổ
biến “đúng”. Hạn chế này là do thực tế là các thuật toán sử dụng một ngưỡng tần
số cố định và được người dùng chỉ định thấp hơn để khai thác các khối. Số lượng
này khiến người dùng khó khắc phục và có thể không đủ nhỏ để đảm bảo rằng tất
cả các tập phổ biến “đúng” đều bao gồm trong mỗi kết quả trung gian.
PROSECCO giải quyết vấn đề này vấn đề bằng cách sử dụng một ngưỡng tần suất
có sự giảm thiểu việc phụ thuộc vào dữ liệu, và có tính tuỳ biến, qua đó cung cấp
sự đảm bảo mạnh mẽ.
Việc sử dụng lấy mẫu để tăng tốc pha khai thác đã thành công trong việc khai thác
chuỗi [22] và trong các biến khác của khai phá mẫu, chẳng hạn như khai phá các
tập phổ biến [23]–[25], để đạt được các phép xấp xỉ của tập mẫu mong muốn.
Nhóm nghiên cứu không sử dụng lấy mẫu mà sử dụng các kỹ thuật dựa trên kích
chiều thực nghiệm VC nhằm suy ra ngưỡng tần số thấp để khai thác các tập phổ
biến. Cận của nhóm với chiều thực nghiệm VC được dẫn chứng cụ thể cho tác vụ
này và nhóm đã thực sự phân tích toàn bộ tập dữ liệu, dù là trong các khối giao
dịch theo thứ tự ngẫu nhiên, để đạt được việc thu thập các tập phổ biến.
III. CÁC KẾT QUẢ SƠ BỘ
Dưới đây là các khái niệm và kết quả được sử dụng trong suốt bài báo.
A. Khai phá chuỗi
Cho I = {i1, …, in } là một tập hợp hữu hạn. các phần tử của I được gọi là các phần
tử và các tập con không rỗng của I được gọi là tập mục. Một dãy s = (S 1, S2, … ,
Sl ) là một thứ tự hữu hạn danh sách các tập mục, với Si ⊆ I, 1 ≤ i ≤ l.
Độ dài |s| của s là số tập mục trong đó, tức là, |s| = l . item-length ||s|| của s là tổng
kích thước của các tập mục trong đó, tức là,

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ề:

Ví dụ: tập dữ liệu D sau đây có năm giao dịch:

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ư

sao cho nó bằng tần số của s trong Wi.


2) nó loại bỏ khỏi F tất cả các cặp (s; fs) s.t. fs < θ−2" , trong đó " được tính bằng
cách sử dụng d như được giải thích trong Phần IV-C. Khi nào xử lý khối Bβ cuối
cùng, PROSECCO sử dụng " = 0.
Không có cặp nào được thêm vào F sau khối B1 ban đầu đang được tiến hành.
Trực giác đằng sau việc loại bỏ một số cặp từ F là các dãy tương ứng không thể có
tần số trong D ít nhất θ. Nhóm nghiên cứu chính thức hóa trực giác này trong phân
tích tại Mục IV- C. Sau khi mỗi khối được xử lý, PROSECCO xuất ra một kết quả
trung gian được tạo bởi tập hợp F cùng với " (dòng 12 của Thuật toán 3).
C. Phân tích tính đúng sai
Nhóm nghiên cứu hiển thị thuộc tính sau đây của các kết quả đầu ra của
PROSECCO. Định lý 2: Cho (Fi; "i) là cặp thứ i được tạo ra ở đầu ra bởi
PROSECCO,4 1 ≤ i ≤ β. Nó giữ điều đó
Pr(9i; 1 ≤ i ≤ β; s.t. Fi không phải là một "xấp xỉ i) < δ :
Định lý nói rằng, với xác suất ít nhất là 1 – δ (trong suốt quá trình chạy thuật toán),
với mỗi 1 ≤ i ≤ β, mỗi kết quả trung gian Fi là một "xấp xỉ i, và vì "β = 0, kết quả
cuối cùng tương ứng với tập hợp chính xác F(D; θ).
Trước khi chứng minh định lý chúng ta cần một số định nghĩa và kết quả kỳ thi
vào trường. Xét tập khoảng (D; R), trong đó R

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ộ

là một xấp xỉ 2φ cho FS(D; θ).


Chứng minh: Thuộc tính 3 từ Định nghĩa 1 theo sau ngay lập tức từ định nghĩa của
φ-mẫu (xem (4)) và từ (7) và (8), đối với mọi dãy s trong S (không chỉ những dãy
trong dãy đầu tiên các thành phần của các cặp trong B) nó cho rằng
jfW(s) − fD(s)j ≤ φ :
Thuộc tính 1 từ Định nghĩa 1 xuất phát từ thực tế là bất kỳ dãy s 2 FS(D; θ) có tần
số trong W lớn hơn θ−φ, vì vậy cặp (s; fW(s)) nằm trong B.
Cuối cùng, Thuộc tính 2 từ Định nghĩa 1 xuất phát từ thực tế rằng bất kỳ chuỗi s
nào có tần số trong D hoàn toàn nhỏ hơn θ − 2φ có tần số trong W hoàn toàn nhỏ
hơn θ − φ, vì vậy cặp (s; fW(s)) không có trong B. Bổ đề sau kết nối nhiệm vụ của
dãy phổ biến khai thác với các khái niệm từ lý thuyết học tập thống kê.
Bổ đề 3: Với mọi tập con W ⊆ D giao dịch của D, chỉ số s d của W là giới hạn trên
của chiều VC theo kinh nghiệm của (D; R) trên W: d ≤ EVC(D; R; W).
Chứng minh: Giả sử rằng có một tập con S ⊆ W của z > d các giao dịch bị phá vỡ
bởi R. Từ định nghĩa của d, S phải chứa giao dịch τ của với ~c(τ) ≤ 2d−1. giao dịch
τ thuộc 2z−1 tập con của S. Ta đặt tên tùy ý cho các tập con này như Ai, 1 ≤ i ≤
2z−1. Vì S bị phá vỡ bởi R nên với mỗi Ai phải tồn tại một dãy Ri 2 R sao cho
Ai = S\Ri; với mỗi 1 ≤ i ≤ 2z−1 :
Vì tất cả Ai đều khác nhau nên Ri cũng phải như vậy. Các giao dịch τ thuộc mọi Ai
nên nó phải thuộc mọi Ri cũng vậy. Từ định nghĩa của R, phải có, với mọi 1 ≤ i ≤
2z−i, một dãy si sao cho Ri = Rsi (xem (6)). Vì vậy, tất cả các si phải khác nhau.
Từ (6) suy ra rằng τ thuộc tất cả và chỉ các dãy Rq sao cho q v τ. Từ ~c(τ) ≤ 2d−1,
suy ra từ Bổ đề 1, có nhiều nhất 2d − 1 dãy khác rỗng riêng biệt là dãy con của τ.
Nhưng từ định nghĩa của z nó cho rằng 2z−1 > 2d − 1, vì vậy τ không thể thuộc về
tất cả các phạm vi Rsi, do đó chúng ta đạt được một mâu thuẫn, và không thể nào S
bị tan vỡ. Nhóm nghiên cứu phỏng đoán rằng giới hạn là chặt chẽ, nghĩa là có thể
để xây dựng tập dữ liệu D và tập hợp W ⊆ D sao cho kết quả thực nghiệm Chiều
VC trên W bằng chỉ số s của W.
Chứng minh Định lý 2: Nhớ lại rằng Wi = Si j=1 Bi là tập hợp các giao dịch mà
PROSECCO nhìn thấy cho đến thời điểm mà (Fi; "i) được gửi ở đầu ra. Số lượng
giao dịch trong Wi là jWij = b·i. Với i bất kỳ, 1 ≤ i ≤ β và với bất kỳ cặp (s; fs) 2
Fi, nó giữ điều đó
fs = fWi(s) (9)
theo định nghĩa của fs (xem (5)). Xem xét sự kiện
E = “Mọi Wi, 1 ≤ i < β là một "i=2-mẫu”
và gọi E¯ là biến cố bù của nó. Sử dụng liên kết ràng buộc, Nhóm nghiên cứu có
thể viết
Pr E¯ ≤ β−1
tôi
=1
Pr(Wi không phải là "i=2-mẫu): (10)
Theo cách xây dựng, mỗi Wi là một mẫu ngẫu nhiên thống nhất của D có kích
thước b · i, 1 ≤ i < β. Thực tế là Wi ⊂ Wz với z > i là không liên quan, vì định
nghĩa của mẫu ngẫu nhiên thống nhất. Sử dụng Bổ đề 3, Định lý 1 và định nghĩa
của "i (từ dòng 3 và 9 của Thuật toán 3), nó cho rằng
Pr(Wi không phải là "i=2-mẫu) ≤ δ β−1; với 1 ≤ i < β :
Cắm phần trên vào (10), nó sẽ xảy ra sự kiện E sau đó xảy ra với xác suất ít nhất là
1 − δ. Khi E xảy ra, luận điểm suy ra từ Bổ đề 2 với mọi 1 ≤ i < β và từ (9) với i =
β.
D. Xử lý khối ban đầu
Mục tiêu chính của PROSECCO là tương tác. Tính tương tác yêu cầu trình bày các
kết quả trung gian đầu tiên cho người dùng càng sớm càng tốt. Như đã mô tả ở
trên, PROSECCO sử dụng một thuật toán chính xác, không lũy tiến, chẳng hạn
như PrefixSpan [6] để khai thác khối đầu tiên với ngưỡng tần số ξ (dòng 4 của
Thuật toán 3). Do cách ξ được tính toán, nó có thể là rất nhỏ, tùy thuộc vào chỉ số s
(giới hạn trên) của khối đầu tiên và trên kích thước khối do người dùng chỉ định b.
Khai thác mỏ khối đầu tiên ở ngưỡng tần số rất thấp có hai tác dụng không mong
muốn:
1) việc khai thác có thể mất nhiều thời gian do khối lượng rất lớn số mẫu được coi
là w.r.t thường xuyên rất ngưỡng thấp (bùng nổ mô hình);
2) tất cả các mẫu này sẽ được hiển thị cho người dùng một cách hiệu quả tràn ngập
họ với quá nhiều thông tin với lợi nhuận giảm dần.
Để chống lại những nhược điểm này, thuật toán có thể giữ trước khai thác khối đầu
tiên nếu ngưỡng tần số ξ quá thấp, và thay vào đó tiếp tục đọc khối thứ hai (không
có loại bỏ khối đầu tiên) và các khối có khả năng bổ sung cho đến khi ngưỡng tần
số ξ được tính bằng cách sử dụng giới hạn trên của s-index và kích thước của tập
hợp tất cả các giao dịch đã đọc là lớn đủ để tập hợp các giao dịch này được khai
thác nhanh chóng bởi PrefixSpan tại ngưỡng này. Làm như vậy không ảnh hưởng
gì đến tính đúng đắn của thuật toán: bằng chứng của Định lý 2 có thể được sửa đổi
để xem xét sự thay đổi này. Tốt điểm bắt đầu cho độ lớn của ξ trước khi khai thác
là đợi cho đến khi nó xấp xỉ θ=2. Các heuristic khác là có thể và Nhóm nghiên cứu
đang nghiên cứu một trình tối ưu hóa dựa trên mô hình chi phí cho bước khai thác
để xác định khi ξ đủ lớn.
E. Khai thác trình tự Top-k
Một biến thể của nhiệm vụ khai thác tập phổ biến yêu cầu tìm các chuỗi top-k
thường xuyên nhất: thay vì chỉ định ngưỡng tần số tối thiểu θ, người dùng chỉ định
một kích thước đầu ra mong muốn k. Bộ sưu tập trình tự để trả về được định nghĩa
như sau. Giả sử sắp xếp các dãy trong S theo tần suất của chúng trong D, các mối
quan hệ bị phá vỡ một cách tùy tiện. Để cho f(k) D là tần số trong D của dãy thứ k
theo thứ tự này. Tập các dãy phổ biến top-k là tập
TOPK(D; k) = fs 2 S : fD(s) ≥ fD(k)g :
Tập hợp này có thể chứa hơn k trình tự. Việc sử dụng k làm tham số thay cho
ngưỡng tần số tối thiểu θ thường trực quan hơn cho người dùng và thích hợp hơn
cho công cụ trực quan tương tác, nơi người dùng con người chỉ có thể xử lý một số
trình tự đầu ra hạn chế.
Từ
TOPK(D; k) = FS(D; fD(k))
khái niệm "xấp xỉ (Định nghĩa 1) cũng hợp lệ cho bộ sưu tập này.
PROSECCO có thể được sửa đổi như sau để trả về lũy tiến kết quả cho các dãy
phổ biến top-k. Nhóm nghiên cứu biểu thị điều này thuật toán đã sửa đổi thành
PROSEK và trong phần mô tả sau đây nó khác với PROSECCO như thế nào bằng
cách tham khảo mã giả trong Thuật toán 3.
Trước hết, PROSEK lấy k làm tham số đầu vào thay vì θ. Một sự khác biệt chính là
trong định nghĩa của " trên dòng 3 và 9 của Thuật toán 3. PROSEK sử dụng hệ số
4 (thay vì 2) trước căn bậc hai để tính các giá trị cho biến này:
Một điểm khác biệt nữa là trong phần khởi tạo của ξ (dòng 4): thay vào đó của θ,
PROSEK sử dụng fB(k1), tần số trong B1 của tần số thứ k dãy phổ biến trong B1:
ξ fB(k1) − 2" :
Đại lượng fB(k1) có thể được tính bằng cách đơn giản biến thể của PrefixSpan để
khai thác tập phổ biến top-k. Các sự khác biệt cuối cùng giữa PROSECCO và
PROSEK là ở chức năng updateRunningSet: trong khi thành phần thứ hai của các
cặp trong F vẫn được cập nhật bằng cách sử dụng (5), PROSEK loại bỏ từ F tất cả
các cặp với thành phần thứ hai được cập nhật ít hơn hơn f(k) Wi -"2 , tần số của tập
phổ biến thứ k trong Wi.
Đầu ra của PROSEK có các thuộc tính sau.
Định lý 3: Đặt (Fi; "i) là cặp thứ i được gửi vào đầu ra bởi PROSEK, 1 ≤ i ≤ β. Với
xác suất ít nhất là 1 − δ, nó giữ rằng, với mọi i, Fi là một "i-gần đúng với TOPK(D;
k). Bằng chứng về cơ bản tuân theo các bước tương tự như đối với Định lý 2.
F. Thảo luận
Bây giờ Nhóm nghiên cứu bình luận về một số khía cạnh quan trọng của
PROSECCO, bao gồm cả cách làm cho nó hiệu quả hơn trong thực tế.
Cân nhắc bộ nhớ: Nhiều bộ dữ liệu trong thực tế chứa hàng trăm triệu giao dịch.
Như một kết quả là, các bộ dữ liệu như vậy là không thực tế để lưu trữ, chứ chưa
nói đến việc khai thác, cục bộ trên một máy duy nhất. Hầu hết các thuật toán hiện
có là không phù hợp để khai thác các tập dữ liệu lớn vì chúng yêu cầu rất lớn
lượng bộ nhớ (thường nằm trong phạm vi GigaBytes, xem cũng như Phần V-C),
ngay cả với các bộ dữ liệu tương đối nhỏ của tiêu chuẩn ngày nay. Cách giải quyết
hiện tại liên quan đến tốn kém hoạt động I/O của đĩa để lưu trữ và tìm nạp từ đĩa
làm gì không vừa với bộ nhớ, dẫn đến thời gian chạy cực kỳ kém hiệu quả vượt xa
những gì có thể chịu đựng được trong môi trường tương tác.
Nhờ PROSECCO chỉ khai thác một khối tại một thời điểm, nó phát sinh chi phí bộ
nhớ tối thiểu, làm cho nó một ứng cử viên lý tưởng để khai thác các tập dữ liệu rất
lớn (xem thêm kết quả đánh giá thử nghiệm của Nhóm nghiên cứu trong Phần V-
C). Hơn nữa, lượng tài nguyên nhỏ này có nghĩa là PROSECCO có thể được sử
dụng trong cài đặt bộ nhớ thấp mà không cần hoạt động hoán đổi I/O đắt tiền bỏ
qua một cách hiệu quả tăng thời gian chạy phải đối mặt với các thuật toán hiện có.
Nhóm nghiên cứu tin rằng điều này là một lợi ích chính của PROSECCO, do tính
không thực tế của sử dụng các thuật toán khai thác chuỗi hiện có trên chuỗi lớn bộ
dữ liệu.

V. ĐÁNH GIÁ THỰC NGHIỆM


Trong phần này, Nhóm nghiên cứu báo cáo kết quả thử nghiệm của Nhóm nghiên
cứu đánh giá PROSECCO trên nhiều bộ dữ liệu.
Các mục tiêu của việc đánh giá như sau:
• Đánh giá độ chính xác của PROSECCO về:
1) độ chính xác và khả năng thu hồi các kết quả trung gian, và những đại lượng này
thay đổi như thế nào theo thời gian khi càng nhiều khối được xử lý;
2) lỗi trong ước tính tần số của trình tự đầu ra, và hành vi của nó theo thời gian.
Ngoài ra, Nhóm nghiên cứu so sánh tần số tối đa thực tế lỗi thu được với giới hạn
trên lý thuyết của nó "i rằng được xuất ra sau khi đã xử lý xong khối thứ i.
• Đo lường thời gian chạy của PROSECCO cả về thời gian cần thiết để tạo ra kết
quả trung gian đầu tiên, cái kế tiếp và cái cuối cùng. Nhóm nghiên cứu cũng so
sánh cái sau với thời gian chạy của PrefixSpan [6].
• Đánh giá việc sử dụng bộ nhớ của PROSECCO theo thời gian và so sánh nó với
PrefixSpan, đặc biệt là chức năng về kích thước của tập dữ liệu.
Thực hiện và Môi trường: Nhóm nghiên cứu thực hiện PROSECCO và PrefixSpan
trong C#. thực hiện của Nhóm nghiên cứu về PROSECCO sử dụng PrefixSpan làm
hộp đen không lũy tiến thuật toán khai thác tập F đầu tiên từ khối ban đầu (dòng 5
của Thuật toán 3) và để cập nhật tập hợp này khi xử lý khối liên tiếp (dòng 11).
Triển khai mã nguồn mở của Nhóm nghiên cứu có thể được tìm thấy tại
https://github.com/sachaservan/prosecco.
Tất cả các thử nghiệm được tiến hành trên máy có Intel(R) CPU Xeon(R) E5-2660
v2 @ 2.20GHz và 256GB RAM, chạy Ubuntu 16.04 LTS. Trừ khi có quy định
khác, mỗi kết quả là giá trị trung bình của năm lần chạy thử (đối với mỗi sự kết
hợp của các tham số). Trong hầu hết các trường hợp, phương sai giữa số lần chạy
là tối thiểu, nhưng Nhóm nghiên cứu cũng báo cáo các vùng có độ tin cậy 95%
(theo giả thiết xấp xỉ bình thường). Những khu vực này là thể hiện trong các hình
dưới dạng các vùng bóng mờ xung quanh các đường cong.
Bộ dữ liệu: Nhóm nghiên cứu đã sử dụng năm bộ dữ liệu khai thác trình tự từ kho
lưu trữ khai thác dữ liệu SPMF [28].
• Tai nạn: Bộ dữ liệu (ẩn danh) tai nạn giao thông;
• Kinh thánh: Chuyển đổi Kinh thánh thành bộ dữ liệu trình tự trong đó mỗi từ là
một mục;
• BMSWebView1: Bộ dữ liệu luồng nhấp chuột từ Gazelle trang web thương mại
điện tử;
• FIFA: Bộ dữ liệu click-stream của FIFA World Cup ’98 trang mạng. Mỗi mục
đại diện cho một trang web;
• Kosarak: Bộ dữ liệu nhấp chuột trực tuyến từ Hungary trực tuyến cổng thông tin;

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.

You might also like