khai thác top k chuỗi tuần tự đóng dựa trên mã hóa khối nguyên tố

71 0 0
Tài liệu đã được kiểm tra trùng lặp
khai thác top k chuỗi tuần tự đóng dựa trên mã hóa khối nguyên tố

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

BỘ CÔNGTHƯƠNG

TRÀN VĂN HÀ

Ngành:KHOAHỌC MÁY TÍNHMa ngành: 8480101

Trang 2

Côngtrình được hoàn thành tại Trường Đại học Công nghiệp TP HồChí Minh.Người hướngdẫn khoa học: TS Phạm ThịThiết

Luận vănthạc sỹ đượcbảovệtại Hội đồng chấmbảovệ Luận văn thạcsỹ Trường Đại họcCông nghiệp thành phốHồ Chí Minh ngày tháng năm

Thànhphần Hội đồng đánh giá luận văn thạcsỹ gồm:

1 TS Lê Nhật Duy - Chủ tịch Hội đồng2 TS Phạm XuânKiên - Phảnbiện3 TS Nguyễn Tiến Thịnh - Phản biện 24 TS Đặng Thị Phúc - Uỷ viên5 TS Tôn Long Phước - Thưký

Trang 3

BỘ CÔNG THƯƠNG CỘNG HÒAXÃHỘI CHỦ NGHĨAVIỆT NAMTRƯỜNG ĐẠIHỌCCÔNGNGHIỆP Độc lập-Tự do- Hạnh phúc

NHIỆM VỤ LUẬN VAN THẠC sĩ

Họ tên học viên: Trần Văn Hà MSHV: 18104801Ngày, tháng, năm sinh: 04/07/1986 Nơi sinh: Tây NinhNgành: Khoa học máy tính Mã ngành: 8480101

I TÊN ĐÈ TÀI: Khai thác Top-kchuỗi tuần tự đóngdựatrên mã hóa khối nguyêntố.

- Nghiên cứu các thuật toán khai thác top-k chuỗi tuần tự đóng như TSP, TKCS.- Nghiên cứu phương pháp mãhóa khối nguyên tố để khai thác cácchuỗi tuần tự.- Nghiên cứu và đềxuấtthuật toán khai thác top-k chuỗi tuần tự đóng hiệu quả.- Nghiên cứu và sử dụng ngôn ngữ lập trình cụ thể Java để môphỏng thực nghiệm,

đánh giá hiệu suất củathuật toán đề xuất.

II NGÀYGIAONHIỆM VỤ: Ngày 19 tháng 7 năm 2021

III.NGÀY HOÀNTHÀNH NHIỆM VỤ: Tháng 11 năm 2023

(Họtên và chữ ký)

Tp Hồ Chí Minh,ngày tháng năm 20

(Họtên và chữ ký)

TRƯỞNG KHOA CNTT

(Họtên và chữký)

Trang 4

LỜI CẢM ƠN

Tôi bày tỏ lòng biếtơn sâu sắc đến cô TS Phạm Thị Thiết đã hướng dẫn, hỗ trợ tậntâm suốtquá trình thực hiện luận văn Cảm ơn lãnh đạo Nhàtrường đãtạo điều kiệntốt để cá nhântôi, cùnghọc viên khác hoàn thành luận văn.

Tôi gửi lời cảm ơn đến bạn bè, đồng nghiệp, người thân, gia đình đã ủng hộ và độngviên tôi duy trì sự kiên nhẫn trong quá trình thực hiện luận văn này.

Mặc dù luận văn đã được hoàn thành, nhưng vẫn còn một số hạn chế, vì vậy tôi rấtmong nhận được sự đóng góp để chỉnh sửa, bổ sung và hoànthiện hơn.

Xin chân thành cảm ơn.

Trang 5

TÓM TẤTLUẬN VĂN THẠC sĩ

Khai thác chuỗi tuần tự là nội dung quan trọng trong lĩnh vực khai thác dữ liệu vớinhiều ứng dụng mở rộng Tuy nhiên, người dùng chọn lựa giátrị ngưỡng hỗ trợ tối thiểu (minsup) phù hợp để tạo ra đúng số mẫu mong muốn là khó khả thi, tốn thờigian Hiện tại, thuậttoán TKCS [1] giải quyếtvấn đề đặt rathông qua tìm k mẫu tuầntự đóng, với k mẫu nhập vào thuật toán sẽ trả về k mẫu có độ hỗ trợ cao nhất trongCSDL Những nămgần đây, TKCS làthuật toán có hiệu suất tốt về chi phí thời gian, bộ nhó sử dụng Xét về khía cạnh nghiên cứu, do thuật toán TKCS sử dụng CSDL bitmap dọc làm dư thừa các bit 0 không cần thiết, cũng như sử dụng tính năng giaobit vec-tolàm cho chi phí thời gian, bộ nhớtăng lên.

Luận văn đề xuất thuật toán khai thác top-kchuỗi tuần tự đóng dựa trên mã hóakhốinguyên tố (TKCSP) để loại bỏ các khối chuỗi rỗng trong biểu diễn thông tin củanhững chuỗi ứngviên, giảm việc tínhtoán tại mỗi bướcxử lý, xác định độ hỗ trợcủacác ứng viên nhanh chóng Thuật toán TKCSP đã được triển khai, có kết quả thựcnghiệm tốt hơn so với TKCS [1] về chi phí thời gian và bộnhớ.

Trang 6

Mining sequential patterns is an important aspect in the field of data mining withmanyextended applications However, itisnotfeasibleandtime-consuming for usersto choose the appropriate minimum support threshold (minsup) to generate the desired number of patterns Currently, the TKCS algorithm addresses this issue by finding k closed sequential patterns, where the algorithm returns k patterns with thehighest support in the database In recentyears, TKCS hasbeen an efficient algorithm in terms of time and memory costs From a research perspective, since the TKCS algorithm uses a verticalbitmap database that redundantly includes unnecessary zerobits, as well as the feature of bitwise vector intersection, which increases time and memory costs.

The thesis proposestheTKCSP algorithm for mining top-k closed sequential patternsbasedon prime block encoding to eliminate empty string blocksin the representation of candidate patterns, reducing computation at each processing step and quicklydeterminingthe support of candidates The TKCSP algorithm hasbeen implemented,showing better experimental results than TKCS in terms of timeand memory costs.

Trang 7

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của cá nhân tôi và giảng viên hướng dẫn Kết quả nghiên cứu, kết luận trong luận văn là trung thực, không sao chép từnguồn khác dưới mọi hình thức Thực hiện trích dẫn, dẫn nguồn tài liệu tham khảođúng theo quy định.

Học viên

Trần Văn Hà

Trang 8

DANH MỤC BẢNG BIỂU ix

DANH MỤC TỪVIẾT TẮT XMỞ ĐẦU 1

1 Đặt vấn đề 1

2 Mụctiêu nghiên cứu 2

3 Đối tượng và phạm vi nghiêncứu 2

4 Cáchtiếp cậnvàphương pháp nghiên cứu 2

4.1 Cáchtiếp cận 2

4.2 Phương pháp nghiên cứu 3

5 Ýnghĩa thựctiễn của đề tài 3

6 Cấu trúc của luận văn 4

CHƯƠNG 1 TỔNG QUAN VÊ KHAI THÁC CHUỖI TUẦN Tự 5

1.1 Giới thiệu tổng quan 5

1.2 Khai thác chuỗi tuần tự 6

1.2.1 Phát biểu bài toán 6

1.2.2 Khái niệm liên quan 6

1.3 Các thuật toánliên quan 8

1.3.1 AprioriAll [6] 8

1.3.2 Thuậttoán GSP [11] 9

1.3.3 Thuật toánFreeSpan [12],Prefixspan [8] 10

1.3.4 Thuật toán SPADE[17] 11

Trang 9

1.3.5 Thuật toán SPAM [14] 12

1.3.6 Thuật toán PRISM [2] 13

1.4 Thuật toán khaitháctop-k chuỗi tuần tự 13

2.2.1 Phát biểu bài toán 25

2.2.2 Một số khái niệmvề khaitháctop-k chuỗi tuần tự đóng 25

3.2.1 Khối mã hóa nguyên tố 31

3.2.2 Khối mã hóatheo chuỗi 31

3.2.3 Khối mã hóa theo vị trí 32

3.2.4 Nén khối mã hóa nguyên tố 33

3.2.5 Tính độhỗ trợ của chuỗi trên khối mã hóa nguyên tố 34

3.3 Phương pháp khaitháctop-k chuỗi tuần tự đóng dựa trên mã hóakhốinguyên tố 35

3.3.1 Giới thiệu thuật toán đềxuất 35

3.3.2 Mãgiả vàmô tả thuật toán đề xuất 35

3.3.3 Vídụminhhoạ 40

3.4 Tổng kết 47

CHƯƠNG4 KẾT QUẢ THựC NGHIỆM VÀ ĐÁNH GIÁ 48

4.1 Thựcnghiệm 48

Trang 10

4.1.1 Môi trường thựcnghiệm 48

Trang 11

DANHMỤC HÌNHẢNH

Hình 1.1 Dàn đượctạo ra để chia nhỏ không giantìm kiếm [13] 11

Hình 1.2 Cây từ điển biểu diễn chuỗi, nétnhạt là mở rộng theo chuỗi, nét đậm là mở rộng theo itemset [14] 12

Hình 1.3 Thuật toán SPAM 16

Hình 3.1 Nén khối mã hoá với chỉ số vị trí 34

Hình 3.2 Thuật toán khai tháctop-k chuỗi tuần tự đóng 36

Hình 3.3 Thủ tục tạo ứng viên 37

Hình 3.4 Thủ tục SAVE_CSP 39

Hình 4.1 Kết quả thực nghiệm trên bộ dữ liệu SIGN 51

Hình 4.2 Kếtquả thực nghiệm trên bộ dữ liệu Snake* 51

Hình 4.3 Kếtquả thực nghiệm trên bộ dữ liệuChess 52

Hình 4.4 Kếtquả thực nghiệm trên bộ dữ liệu Leviathan 52

Trang 12

DANHMỤC BẢNG BIỂU

Bảng 1.1 Bảng CSDL chuỗi D 7

Bảng 1.2 CSDL bitmap dọc được xây dựngtừ CSDL chuỗiD 15

Bảng 1.3 Cấutrúc dữ liệu PMAPđược xây dựng cho CSDL Dở Bảng 1.1 22

Bảng 2.1 CSDL thuật toán TKCS 27

Bảng 2.2 Kết quả chuỗi tuần tự đóng TKCS 29

Bảng 3.1 Khối mã hoátheo chuỗi 32

Bảng 3.2 Khối mã hoávị trí của item a 33

Bảng 3.3 Các khối mã hoá đầy đủ củacác item 33

Bảng 3.4 Bảng mã hoá khối nguyên tố 40

Bảng 3.5 Vị trí chuỗiứng viên saumở rộng s-extension với a 41

Bảng 3.6 Vị trí chuỗi úng viên saumở rộng i-extension với a 42

Bảng 3.7 Vị trí chuỗiứng viên saumở rộng s-extension với b 43

Bảng 3.8 Vị trí chuỗiứng viên saumở rộng i-extension với b 44

Bảng 3.9 Vị trí chuỗiứng viên saumở rộng s-extension với c 45

Bảng 3.10 Vị trí chuỗi ứng viên sau mở rộng i-extension với c 46

Bảng 3.11 Kết quảTop-k chuỗi tuần tự đóngvớik = 2 46

Bảng 4.1 Đặc điểm CSDLthực nghiệm 48

Bảng 4.2 Kết quả thực nghiệm đối với 4 bộ Sign, Snake*, Chessvà Leviathan 49

Trang 13

DANH MỤCTừ VIẾT TẤT

CSP Closed Sequenses Patterns Chuỗi tuần tự đóng

GSP Generalized Sequential Patterns Chuỗi tuần tự tổng quát

SPAM Sequential Pattern Mining Khai thác chuỗi tuần tự

TKCS TopK Closed Sequential Patterns Top-k Chuỗi tuần tự đóng

TKCSP Top K Closed Sequential PrismPatterns

Top-k Chuỗi tuần tự đóng dựa trên mã hoá nguyên tố

TKS TopK Sequential Patterns Top-k Chuỗi tuần tự

TSP TopK Close Sequential Patterns Top-k Chuỗi tuần tự đóng

Trang 14

1.Đặt vấn đề

Những năm gần đây, khai thác tri thức từ nguồn dữ liệu chuỗi là mộttrong nhữnghướng được tập trung nghiên cứu trong khai thác dữ liệu và có nhiều ứng dụng thiếtthực ở các lĩnh vực khác nhau như: dự báo mua hàng của khách hàng, phẫu thuật y tế/Y khoa, dự đoán thảm họa, dự báo khai thác truy cập vveb, ứng dụng trongcấu trúc gen, Vói đặc điểm nguồn dữ liệu được sử dụng để khai thác lớn, tăng dần theothờigian, đã kéotheokhông gian tìm kiếm thông tincó giá trị càng rộng Vì vậy, quá trình khai thác dữ liệu chuỗi thường gặp phải những khó khăn như: Độ phức tạp của bàitoán đểtìm các chuỗi phổ biến trong cơsởdữ liệu chuỗi làrất cao; việc vận dụng cácthuật toán không phù hợp, lỗi thời để khai thác chuỗi phổ biến từ dữ liệu lớn sẽ cho rakết quả chậm, thậm chí là không khảthi do hạn chế vềtài nguyên.

Vấn đề đặt ra đối với bài toán khai thác dữ liệu chuỗi lớn lànâng cao được hiệu suấttrong quá trình khai thác, tức là làm giảm chi phí thời gian thực thi cũng như dung lượng bộ nhớ sử dụng nhưng vẫn đảm bảo độ chính xác cao Để giải quyết vấn đềnày, Phạm Thị Thiết - phụ trách nhóm nhóm nghiên cứu cùng cácthành viên [1] đãđề xuất thuật toán TKCS để tìm top-k chuỗi tuần tự đóng; với giá trị k là số lượng chuỗi tuần tự đóng đượcngười dùng đưa ra và kết quả thuật toán trả về là k chuỗituần tự đóng có độ hỗ trợ cao nhất Theo đó, kết quả nghiêncứu đã chứng minh thuật toán TKCS [1] có hiệu suất tốt hơn so với thuật toán TSP [5] vềchi phí thời gian cũngnhư bộ nhớ sử dụng, đặc biệt làxử lýtốt trên các CSDL chuỗi khác nhau, đặc biệt là trên các CSDL chuỗi lớn.

Tuy nhiên, thuật toán TKCS [1] vẫn tốn nhiều chi phí thời gian và bộ nhớ để phát sinh các mẫu ứng viên trong quá trình tìm top-kchuỗi tuần tự đóng, do thuật toán đãsử dụng CSDL bitmap dọc (vertical bitmap database) [4], vớimoi item là một bit vec-tơcó kích thướccố định (có chiều dài bằng tổng số các itemsets trong CSDL chuỗi) làm dư thừacác bit 0 không cần thiết Đồng thời, thông tin của các chuỗi ứng viênđều được biểu diễn và độ hỗ trợ của chúng được tính toán thông qua tính năng giao

Trang 15

bit vec-tơ trên bảng bitdọc này Do đó, khi ápdụngthuật toán TKCS trên cácCSDL chuỗi có số lượng itemsets lớn thì tốc độthực thisẽ chậm dophải tiêu tốn nhiều thờigian để thực hiện các phép giao trên các bitvec-to này và phải sử dụng rấtnhiều bộ nhó để lưu trữ chúng.

Để nâng cao hiệu quả cho bài toán khai thác top-k chuỗi tuần tự đóng, luận văn đềxuất một hướng tiếp cận khác, đó là áp dụng phưong pháp tiếp cận dựa trên mã hóa khối nguyên tố [2] để loại bỏ các khối chuỗi rỗng khi biểu diễn thông tin của cácchuỗi ứng viên Ngoài ra, việc sử dụng khối mã hóa kết hợp với các bảng tra giátrịsẽgiảm đáng kể việc tính toán tại mỗi bước xử lý và giúp xác định độ hỗ trợ của cácứngviên trở nên nhanh chóng.

Luận văn tập trung nghiên cứu và áp dụng phương pháp mã hóa khối trên cơ sở lýthuyếtmã hóanguyêntố đểbiểu diễn thông tin của cácchuỗi ứng viên,tính toán độ hỗtrợ của chúng [2] thay thế cho việc biểu diễn và xác định độ hẵ trợdựa vào các bit vec-tơ có kích thước cố định trong thuật toán TKCS [1,4] để nâng cao hiệu quả củabài toán khai thác top-k chuỗi tuần tự đóng từ CSDL chuỗi Cụ thể là cải thiện hiệusuất của thuật toán về thời gian thực thi cũng như hiệu quả sử dụng bộ nhớ, đặcbiệt là trên các CSDL chuỗi lớn.

- Các thuật toán khai thác top-k chuỗi tuần tự đóng như TSP [5], TKCS [1].- Phương pháp mãhóa khối nguyên tố [2] để khai thác cácchuỗi tuần tự.- Nghiên cứu vàđềxuất thuậttoán khai tháctop-k chuỗi tuần tự đóng hiệu quả.

- Nghiên cứu và sử dụng ngôn ngữ lập trình cụ thể Java để mô phỏng thực nghiệm, đánh giá hiệu suất của thuật toán đề xuất.

4 Cách tiếp cận và phương pháp nghiên cứu

Trang 16

- Tập trung khai thác các kết quả nghiên cứu lý luận và kết quả đánh giá thực nghiệmtrước đây về khai thác top-k chuỗi tuần tựđóng như TSP [5],TKCS [1]; cácphân tích, đanh giá liên quan ưu điểm, hạn chế vàhướng cải tiến phát triển của thuật toán.

- Nghiên cứu lý thuyếtvàcác ứng dụngvề phưong pháp mã hóa khối nguyêntố,nhất là tronglĩnh vực khaiphá dữ liệu chuỗi tuầntự.

4.2 Phương pháp nghiên cứu

Phưong pháp nghiên cứu tổng luận: Nghiên cứu tổng hợp về mặt lý luận về: CSDL chuỗi tuần tự và các khái niệm có liên quan; các thuật toán khai thác top-k chuỗi tuầntự như TKS [3], top-k chuỗi tuần tự đóngnhư TKCS [1], TSP [5]; phưong pháp mãhóa khối nguyên tố [2] và ứng dụng,

Trên cơ sở lý thuyết đã nghiên cứu, luận văn đềxuấtthuật toán khaithác top-k chuỗituần tự đóng sử dụng phương pháp mãhóa khối nguyên tố.

Phươngpháp mô phỏngthực nghiệm: Sử dụng ngôn ngữ lậptrình Java để xây dựng chươngtrình đánh giáthực nghiệm về hiệu suất thời gian thực thi cũng như độ chính xác giữa thuật toán đề xuất TKCSP với các thuật toán khai thác top-kchuỗi tuần tựđóng TKCS [1], TSP [5], Môi trườngthựcnghiệm được tiến hành trên máy tính Intel (R), Core (TM) Ì5-10300H CPU 2.5 GHz, 16Gb RAM, hệ điều hành Windows 11Pro, ngôn ngữ lập trình Java trên côngcụ Netbean Dữ liệu thực nghiệm là các bộ dữ liệu chuẩn được cộng đồng nghiên cứu về khai thác chuỗi tuần tự sử dụng để đánhgiá thực nghiệm như Leviathan, Sign, Snake*, Chess từ địa chỉ web:http://www.philippe-fournier-viger.com/spmf/index.php?link=download.php.

Khai thác chuỗi tuần tự hay chuỗi tuần tự đóng là một hướng quan trọng trong khaiphá dữ liệu chuỗi, được ứng dụng phổ biến ở nhiều lĩnh vực như phân tích dữ liệu sinh học, y tế, thực thi chương trình, truy cập website, mua sắm của khách hàng, để xác định dữ liệu có tính quy luật, hoặc bất thường làm cơ sở để đưa ra các cảnhbáo, chuẩn đoán, dự báo xu hướng, góp phần giải quyết các bài toán thực tiễn đặt

Trang 17

ra với độ chínhxác, ổn định cao Trongđó, nghiên cứu về khai thác top-k chuỗi tuầntự đóng sử dụng phưong pháp mãhóa khốinguyên tố có ý nghĩa quan trọng; củng cốvề mặt tổng kết lý luận, chứng minh việc vận dụng, kết hợp đúng ưu điểm của cácthuật toán khai tháctop-k chuỗi tuần tự đóng giúp nâng cao hiệu suất thực thi; đồngthòi chưong trình đánh giáthực nghiệm so sánhkết quả, thòi gian thựcthi, bộ nhớsửdụng vói thuật toán TKCS, TSP Kết quả của luận văn có thể đượcnghiên cứu ứngdụng trongcác lĩnh vực thựctế như mô tảtrên.

6 Cấu trúc của luận văn

Trang 18

CHƯƠNG 1 TỔNG QUAN VỀ KHAI THẢC CHUỖI TUẦN Tự

Chương 1, luận văn giới thiệutổng quan về dữ liệu dạng chuỗi, khai thác chuỗi tuầntự, các khái niệm liên quan; trình bày tổng quan các thuật toán khai thác chuỗi tuầntự, thuật toán theo hướng khai thác top-k chuỗi tuần tự đã được cộng đồngở lĩnh vựckhai phá dữ liệu trên thế giới nghiên cứu, đề xuất.

1.1 Giới thiệutổng quan

Cơ sở dữ liệu chuỗi gồm các chuỗi chứa những phần tử {elements), những sự kiện

{events) được sắp xếp theo thứ tự; được ghi lại bằng việc có hoặc không có gắn liền với ý niệm cụ thể về thời gian [10] Dữ liệu chuỗi tồn tại nhiều trong cuộc sống thựctếxung quanh con người, tiêu biểu như: chuỗi dữ liệu sinh học (chuỗi DNA mã hóa gen di truyền, chuỗi Protein mô tảthànhphần axit amin của Protein, mãhóa cấu trúc và chức năng của Protein), chuỗidữ liệu lịch sử truy cập trình duyệt trangvveb, chuỗidữ liệu về lịch sử mua hàng và bán hàng hóa [2] Trong các dữ liệu dạng chuỗi, cókhảnăng chứađựng những chuỗi ý nghĩa, mang thông tin hữu ích có tính quy luật, tính ràng buộc, Vì vậy, đi tìm các chuỗi con phổ biến (tất cả hoặc chỉ một phần những chuỗi con được sắp xếp theo thứ tự) chứa đựngthông tin có giátrị hữu ích là kỹthuậtkhám phá, khai thác dữ liệu được quan tâmnghiên cứu và ứng dụng rộng rãi trong thựctế.

Bài toán về khai thác chuỗi tuần tự được đưa ra lần đầu tiên bởi hai nhà nghiên cứuRamakrishnan Srikant, RakeshAgrawal vào năm 1995 [6], tiếp theo đó có nhiều kỹthuật được công bố về khai thác chuỗi tuần tự Trong đó, chuỗi tuần tự (sequential pattern)là chuỗi bao gồmnhững itemset xuất hiện phổ biến có thứ tự, mọi item trong một itemset được xem làcó cùng thời điểm giao dịch.Nhữnggiaodịch của mộtkháchhàng được sắp xếp gắn kết với nhau theo thứ tự thời gian và được xem là một chuỗi dữ liệu Khai thác chuỗi tuần tự làthực hiện khám phá, tìm ra những chuỗi con phổ biến trong mộtCSDL chuỗi cụ thể Độ dàicủa mỗi bản ghi trong CSDL chuỗi làkhácnhau, sự kiện trong một chuỗi có một hoặc nhiều item.

Trang 19

Khai thác chuỗituần tự là bài toán quan trọng, được ứng dụng sâu rộng trong các lĩnhvực như: Tối ưu hóa chiến dịch tiếp thị trong kinh doanh (phân tích thói quen, thị hiếu của người tiêudùng trong mua sắm hàng hóa để dự báo xu hướng, nhu cầu củakhách, đưara phưong án tiếp thị tối ưu); phát hiện gian lận và rủi ro (tìm ra các giaodịch tài chính bất thường, dự báo rủi ro tài chính để cóbiện pháp phòng ngừa, quảnlý tài chính hiệu quả); chuẩn đoán, điều trị bệnh trong y khoa; tối ưu hóa quy trình sản xuất và vận hành để giảm lãng phí, tăngnăng suất,

1.2Khai thácchuỗi tuần tự

1.2.1 Phắt biểu bài toán

Cho tập hợp = {ílfi2, , im} gồm có m phần tử (item) Itemset là một tập khácrỗng, không có thứ tự của những item Itemset i ký hiệu là (ì\, i2, , im) với mỗi ij làmột item Giả sử những item trong itemset được sắpxếptheothứ tự tăng dần.Một chuỗi là một danh sách những itemsetsắp xếp theo thứ tự Cho chuỗi s được kýhiệu($!,s2, , sn}hoặc fe ^ s2 -> ••• -> sn) với mỗi Si làmột sự kiện, n là số lượngnhữngsự kiện Kích thước của chuỗi bằng số lượng itemset có trong chuỗi Tổng số item cómặt trong chuỗi chính làchiều dài của chuỗi l = 2ỹ=15? Vói những chuỗi cóchiều dàilà k được gọi là k-sequence Ví dụ: s = ((a)bb) được gọi là3-sequence kích thước là 2.Chuỗi b= (blfb2, ,bn) ỉầ chuỗi con của chuỗi a = (alfa2, ,ữn)hay a là chuỗi

cha của b, ký hiệu b Q a, nếu 3jị\i = 1 n mà ỉ < j\< j2 < .< jn < m sao cho

bỵ Q CLji,^Q dj2, ,bm Qdjm. Ví dụ: {(e)(cdỴ) là chuỗi con của

{(ab)(be)(acd)) vì e c be,cd C acd và không thay đổi thứ tự của những itemset Tuy nhiên, chuỗi ((abc))((ab)(c))không là chuỗicon củanhau.

1,2.2 Khái niệm liên quan

Cơ sở dữliệu chuỗi: Là mộttập hợp những bộ dữ liệu có dạng (SID, s); vói SID là chỉ số định danh của chuỗi, 5 là chuỗi những itemset.

Trang 20

Tần số xuấthiện: Tần số xuất hiện của một chuỗi là số lần xuất hiện của chuỗi đótrong tập dữ liệu; dùng để xác định mức độ quantrọng của chuỗi trong quá trình khaithác dữ liệu.

Độ ho trợ(support): Cho CSDL chuỗi D, mỗi chuỗi cómộtchỉ số định danh duy nhất Độ hỗ trợ tuyệtđốicủa mộtchuỗi/làtổng số chuỗitrongD có chứa /ký hiệu supD(f) =

|{SÍ € D \f C Sí}| Độ hỗ trợ tương đối của f được định nghĩa làtỉ lệ phần trăm của số lượng chuỗi trong tập D chứa chuỗi f Trong đó, những khái niệm mứchỗ trợ tuyệt đối vàtươngđối có thể được chuyển đổi qualại, được biểudiễn bằng ký hiệu sup(f).

Chuỗi tuần tự: Giá trị ngưỡng hỗ trợ tối thiểu (minsup) được người dùng xác định Một chuỗi / được xem là phổ biến khi và chỉ khi có độ hỗ trợ lớn hơn hoặc bằng

minsup: sup(f) > minsup, khi đó/được gọi là chuỗi tuần tự.

Ví dụ: Cho CSDL chuỗi D nhưBảng 1.1 có tập những item phân biệt là (a, b, c}, với

minsup = 2 Xét chuỗi s2 =((ab)bb), chuỗi s2 có 3 itemset là: (ab), b, ó và có4item Vậy s2 có kich thước là 3 và có độ dài là 4 Trong chuỗi s2, item b xuất hiện 3lần nhưng độ hỗ trợ của item b chỉ được tính là 1 đối với chuỗi s2 đó Chochuỗi a ={(ab)a);xét thấy là chuỗia là chuỗi concủa của chuỗi Sỉ, nên chuỗicon pcũng đượcgọi là chuỗi Trong D, chỉ có chuỗi Sỵf s5 có chứachuỗi a nên độ hỗ trợ của chuỗi a

là2 Vì sup(a) =minsup nên a là một chuỗi tuần tự.Bảng 1.1 Bảng CSDL chuỗi D

Trang 21

Khaithác chuỗi tuần tự: Quá trình tìm kiếm, xác định một tập hợp đầy đủ nhữngchuỗi con phổ biến (chuỗi tuần tự) trong CSDL chuỗi Những chuỗi này có độ hỗ trợ lớn hơn hoặc bằng ngưỡng minsup mà người dùng xác định.

1.3Cácthuật toán liên quan

Như phát biểu ở trên, các thuật toán khai thác chuỗi tuần tự cần có tham số đầu vào là giá trị ngưỡng hỗ trợ tối thiểu minsup do người dùng nhập vào để kết quả đầu ra của thuật toán là những chuỗi con phổ biến có độ hỗ trợthỏa mãn điều kiện lớn hơn hoặc bằng với giá trị minsup đầu vào Bài toán khai thác chuỗi tuần tự đầu tiên đượcđưa ra vào năm 1995 bởi hai nhà nghiên cứu Ramakrishnan Srikant và RakeshAgrawal Tiếp theo, có nhiều thuật toán về khai thác chuỗi tuần tự được nghiên cứuđề xuất như: Prefixspan [8], GSP [11], SPAM [14], Một số thuật toán tiêu biểutrongkhai thác chuỗi tuần tự như sau:

ỉ.3.1AprìorìAll [6J

Thuật toán AprioriAll [6] được hai nhà nghiên cứu Ramakrishnan Srikant, RakeshAgrawal đề xuất vào năm 1995; làthuật toán khai thác dữ liệu chuỗi giao dịch khách hàng,được thực hiện theo 3 bước: Tìm itemset phổ biến, chuyểnđổi CSDL,tìmchuỗituần tự trên CSDL chuyển đổi.

- Tìmitemset phổ biến: Thuật toán thực hiện duyệt CSDL đầu vào để tìm ra cácitemset phổ biến và ánh xạ chúng sang tập sốnguyên nhằm tách các itemset phổbiến thành đối tượng riêng biệt và so sánh giữa2 itemset phổ biến bất kỳ đều cóthời gian lànhư nhau Đồng thời, rút ngắn thời gian kiểmtramột chuỗi có là chuỗi con của chuỗi trongCSDL ban đầu.

- Chuyển đỏi CSDL: Tất các những chuỗitrong CSDL đầu vào được thay thế thành tập những itemset phổ biến mà chuỗi đó chứa Trường hợp itemset không chứa itemset con phổ biến thì loại item set đó khỏi tập các chuỗi Trường hợp chuỗi trong CSDL không chứa itemset phổ biến thì loại chuỗi đó khỏi CSDL Kết quả bước này là chuyển đổi thành CSDL bao gồm các itemsetphổ biến.

Trang 22

- Tìm chuỗi tuần tự dựa trên CSDLđãchuyển đổi: Tìm chuỗi tuần tự dựa trên kết quả bước tìm itemset phổ biến, ta có đượctập các chuỗi tuần tự kích thước là 1.Thuật toán thực hiện tìm chuỗi tuần tự từ tập các chuỗi ứng viên có chiều dài k

được tạo rabằng cách kếthợpnhững chuỗi có chiều dàik=l. Theo đó, thuậttoándựa trên nguyên lýApriori (mọi tậpcon của tập phổ biến phải là tập phổ biến) và ngưỡng hỗ trợ tối thiểu minsup để loại những chuỗi không phổbiến.

Để tìm được đầy đủ các chuỗi tuần tự, thuật toán AprioriAll cần phải duyệt CSDL nhiều lần bởi vì ứng với từngtập ứngviên thì thuật toán phải duyệt lại CSDL đểtínhđộ hỗ trợ Bên cạnh đó, AprioriAll sinh ratập những ứng viên vói số lượng lớn; chochuỗi có chiều dài là n thì có thể tạo ra số ứng viên là xp=1 c^ = 2n — 1, dẫn đến không đủ dung lượng bộ nhớ đểxử lý (được môtảnhư tình trạng nghẽn cổ chai).

1.3.2Thuật toán GSP[11]

Thuật toán GSP (Generalized Sequential Pattern) được hai nhà nghiên cứu Yu Hirate vàHayato Yamana đã đề xuất vào năm 2006, đâylà thuật toán mở rộng từ môhình Apriori GSP giải quyếtbài toán khai thác chuỗi tuần tự một cách tổng quát thông qua việc bổ sung các ràngbuộc như khoảng thời gian cực đại, cực tiểu giữa cácthành phần trong một chuỗi tuần tự Những item của từng thành phần trong chuỗi cóthể được lấytừ một hoặc nhiều thành phần khácnhau nhưng khoảngthời gian giữanhữngthành phần phải trong giới hạn “time window”.

Ngoài ra, GSP hỗ trợ sự phân cấp trên những item, cho phép một chuỗi bao gồmnhững item thuộc mức phân cấp khác nhau GSP thực hiện tưong tự như AprioriAll, thực hiện duyệt CSDL nhiều lần Cho một tập có k phần tử, Lkbiểu thị tất cả cácchuỗi phổ biến, Ck biểu thị các tập ứng viên Lần duyệt đầu tiên xác định tập hợp cácchuỗi phổ biến độdài 1.Trongnhững lần duyệttiếp theo, thuật toán sinhtập ứng viênđộ dài (k+1) (Ck) từ tập phổ biến độ dài k (Lk) ỏ lần duyệt trước, sau đó đếm độ hỗtrợ của từng ứng viên và tìm đượctập phổ biến độ dài k Thuậttoán thực hiện hai bước chính là sinh ra tập ứng viên (Candidate generation) thông qua phép nối (JoinPhase), phép loại (Prune Phase); tính độ hỗ trợ để xác chuỗi ứng viên (Counting

Trang 23

candidates) với hai kỹ thuật là sử dụng cấu trúc dữ liệu hash-tree để giảm số lượng ứngviên đã được kiểm tra, tìm kiếm chuỗi ứngviên GSP khắc phục được tình trạng“nghẽn cổ chai” của AprioriAll nhưng thuật toán này lại tạo ra một tập lớn nhữngchuỗi ứng viên, duyệt CSDL nhiều lần và khônghiệu quả trong khai thác chuỗi tuầntự dài.

1.3.3Thuật toán FreeSpan [12],PrefixSpan[8]

Thuật toán FreeSpan [12], Prefixspan [8] được hai nhà nghiên cứu Han, Pei đề xuất lần lượtvào năm 2000, 2001; tiếp cận theohướng chianhỏ dữ liệu,còn được biết đến là phương pháp phát triển mẫu Trong đó, FreeSpan là thuật toán được đề xuất đầutiên theo hướng thực hiện phép chiếu trên CSDL nhằm làm giảm chi phí lưu trữ dữ liệu Thuậttoán FreeSpan tạo ra một danh sách những mẫu 1-sequences từ CSDL chuỗi được gọi là danh sách item phổ biến (f-list) và xây dựng một ma trận nhữngitem trong danh sách này để chứa thông tin về độ hỗ trợ của từng mẫu ứng viên độdài 2 được sinh ra từ những item trong f-listvà gọi là S-Matrix Với từng mẫu tuầntự i từ S-Matrix, CSDL chiếu theo i làtập hợp các chuỗi phổ biến có i là chuỗi con.Những item không phổ biến và item theo sau những item không phổ biến trong i bịbỏ qua Tiếptheo là xâydựng bảng gồm những chuỗi 2-sequences với chú thích trênitem lặp lạivà chú thích trên CSDL chiếu đểsử dụng CSDL chiếu này trong lầnduyệtthứ ba trở đi mà không cần xétđến S-Matrix.

Thuật toán FreeSpan được phát triển thành PrefixSpan, là phương pháp phátnhữngmẫu dài từ các mẫu tuần tự độ dài ngắn hơn đã có, xuất phát từ tập mẫu tuần tự độdài là 1, Prefixspan tạo raCSDL được chiếu với mỗi mẫu đó Tuy nhiên, trong CSDL chiếu, mỗi chuỗi dữ liệu chỉ giữ lại phần hậu tố đối với tiền tố tươngứng đã chiếu.Mau được phát triển bằng những item phổ biến tìm được trong CSDL được chiếu.Quá trình này được lặp lại cho đến khi CSDL chiếu không còn item phổ biến nào Prefixspan tối ưu hơn FreeSpan do chỉ duyệtcác chuỗi phổ biến cục bộ.

Trang 24

ỉ.3.4 Thuật tơán SPADE [17J

Thuậttoán SPADE [17] (Sequential Pattern Discoveryusing Equivalence Classes),được nhà nghiêncứuMohammedJ Zaki đề xuất vào năm 2001, làmột phưong pháp tiếp cận lai, kếthọp giữakỹthuật dựatrên Apriori và phưong pháp pháttriển chuỗi(pattern-growth) Thuật toán SPADE tổ chức dữ’ liệu theo chiếu dọc, ứng với mỗi item sẽ lưu danh sáchđịnh danh của các chuỗi dữ liệu và định danh của các itemsetcó chứaitem đó Độ hỗ trợ của item được tính trực tiếp từ danh sách các định danh.Mặt khác, SPADE còn dựatrên lý thuyết dàn đễ chianhỏ không gian tìm kiếm vàthao tác kết đon giản đễ tạo ra tậpứng viên.

Hình 1.1 Dàn được tạo ra đễ chia nhỏ khônggian tìm kiếm [13]

Thuật toángomnhómcác chuỗi tuần tựdựa theo tiền tố thành các lóp tươngđương.SPADE chỉ duyệtCSDL 3 lần: Ở lần duyệt thứ nhất, thứ hai thuậttoán tỉmcácchuỗituần tựcó độ dài là 1 và 2; lần duyệt thứba, thuật toán phát triển chuỗi độ dài k từ hai chuỗi độ dài (k-1), có (k-2) item đầu giống nhau, tiến hành duyệt trên từng lớp tưong đương nên giảm được chi phí tính toán, sử dụng bộ nhớ hiệu quảhon.

Với ngưỡngminsup thấp, thuậttoán SPADE nhanh hơngấp2 lần thuật toán GSP bởi vì: Thựchiện đơn giản theo ID-List, theo đó độ dài của chuỗi tuần tự càng tăng thìkíchthước ID-List càng giẫm (dođộ hỗ trợ của chuỗi cha nh ỏ hơn độ hỗtrợ của chuỗicon và độ hỗ trợcủa một chuỗi bằng số SID phân biệttrong ID-List); không dùng

Trang 25

cấu trúc dữ liệu dạng câybăm như của ƠSP, không cần phải duyệt toànbộ dữ liệu để tạo, đêm độ hỗ trựcho chuỗi mói chỉ cần duyệt 2 ID-List của 2 chuỗi tuần tự; giátrị ngưỡng hỗ trự toi thiểu càng nhỏ thì thuật toán SPADE càng tìm được nhiều chuỗiphổ biến honvàchỉ cần đúng 3 lần duyệt CSDL.

1.3.5Thuật toán SPAM [14]

Thuậttoán SPAM được nhànghiên cứu Ayres đề xuất vào năm 2002; làphương pháp khai thác chuôi tuần tự đầu tiên áp dụng cấu trúc dữliệu dạng câytừ điển để lưu trữ các chuỗi và thực hiện duyệt cây theo chiều sâu theo Hình 1.2 Thuật toán SPAM to chức dữ liệu theo chiều dọc như thuật toán SPADE, trong đó các mẫu ứng viên được biểu diễn dưới dạng bảng bít dọc, moi bít úng vói một itemset củamột chuỗi trong CSDL Neu item có mặttrong itemset j thì bít tưong ứng itemset j đượcđánh dấu là1, ngược lại là ũ Độ hỗ trợ củamẫu được xác định dựa trên bảng bit.

Hình 1.2 Cây từ điển biểu diên chuôi, nét nhạtlàmởrộng theo chuôi, nét đậrn là mở

Trang 26

SPAM có thời gian thực hiện nhanh hơn 2.5 lần so với SPADE, nhưng chưa thựchiệntot bang Prefixspan trên các CSDL nhỏ Còn đối với CSDL lớn, SPAM tối ưu hơn so với SPADE và Prefixspando dữ liệu được tổchức, biểu diễn và lưu trữ dưới dạngbit nên thao táctạo ứng viên, đếm độ hỗ trợ đượccải thiện [14],

1.3.6 Thuật toán PRISM [2]

Thuật toán PRISM [2] (Prime-Encoding Based Sequence Mining) ba nhà nghiên cứuKaram Gouda, Mosab Hasaan, Zaki đề xuất vào năm 2010 PRISM thực hiện theo hướng sử dụng cách tiếp cận dọc để tìm liệt kê, đếm độ hỗ trợ Khác với các thuật toán trước đây, PRISM dựa trên khái niệm mới đó là khái niệm mãhóa khối nguyên tố và cơ sở là lý thuyết phân tích thừa số.

So sánh với thuật toán SPADE, Prefixspan, SPAM trong điều kiện thực thi trênnhững bộ dữ liệu tổng hợp, ngưỡng hỗ trợ minsupkhác nhau, thì thuật toán PRISMđạt kết quảtốtnhất về tốc độ cũng như hiệu quả sử dụng bộ nhớ về mặttổng thể, thuật toán SPAM vượt trội về tốc độthực thi; tuy nhiên, trong khai thác CSDL lớn, thuật toán SPAM không đủ dung lượng bộ nhớ, còn PrefixSpan và SPADE cho ra kết quả nhưngtốc độ chậm hơn so với thuật toán PRISM.

1.4Thuật toánkhai thác top-k chuỗi tuầntự

Thuật toán khai thác chuỗi tuần tự phổbiến từ CSDL chuỗi theo đề cập ởtrên đượcnghiên cứu theo hướng tìm độhỗtrợ tối thiểu minsup phù hợp Tuy nhiên,thực tế bàitoán với dữ liệu lớn, đòi hỏi thời gian thực thi nhanh chóng, dẫn đến việc xác định giá trị minsupphù hợplà khó khả thi để đảm bảotạora đúngsố lượng chuỗi mà người dùng kỳ vọng Theo đó, trong trường hợp người dùng lựa chọn minsup không phùhợp, thuật toán cho ra kết quả với số lượng rất ítchuỗi có ý nghĩa hoặc nhiều chuỗivônghĩa Điều này cùng nghĩa với việc tốn dung lượng bộ nhớ và thời gian thực thi của thuật toán không cần thiết.

Để giải quyết vấn đề đặt ra đó, thuậttoán khai tháctheo hướng khai thác top-k chuỗituần tự và khai thác top-kchuỗi tuần tự đóng đượcnghiên cứu, đề xuất Theo đó, klà số chuỗi cóđộ hỗ trợ cao nhấtmà người dùng mong muốn thuật toán tìm kiếm, trả

Trang 27

về mà không cần tính toán để xác định giá trị minsup Tiêu biểu về khai thác top-k chuỗi tuần tự là thuật toán TKS, khai thác khai thác top-k chuỗi tuần tự đóng là thuật toán TSP.

1.4.1 Thuật toán TSP [5]

Thuật toán TSP [5] (Top-K Closed Sequential Patterns') được các nhà nghiên cứuTzvetkov, Yan và Han đề xuất vào năm 2005 để khai thác top-k chuỗi tuần tự phổ biến mà người dùng không phải đưa ra ngưỡng hỗ trợ tối thiểu minsup. Thuật toánTSP được xây dựng theo hướng tiếp cận phát triển chuỗi dựa trên thuật toánPrefixspan [8],thực hiện duyệt CSDL đểtìm các chuỗi tuần tựđóng và không đóng;sau đóthực hiện tìm và xóa cácchuỗi không đóng.

Bắt đầu với ngưỡng hỗ trợ tối thiểu minsup bằng 1, tiếp theo minsup được tăng dầntrongquá trìnhxử lý và sử dụng minsup(đã được tăng) để cắttỉađểgiảm không gian tìm kiếm Khi có k chuỗi tuần tự đóng có chiều dài lớn hơn hoặc bang min i đượctìm thấy thì minsup được gán bằng một giá trị là độ phổ biến của chuỗi tuần tự tìm được có độphổ biến nhỏ nhất Theo đó,minsup tiếptụctăngtrong quá trình khai thácchuỗi của thuật toán Thuật toán thực hiện 3 bước chínhsau:

- Bước 1, phát sinh ra chuỗi tuần tự phổ biến chứa mộtphần tử (item), nghĩa là cóchiều dài là 1; sau đó, thực hiện mở rộng một cách đệ quy từng chuỗi một item s

bằng việc chiếu 5 lên CSDL chiếu.

- Bước2, duyệt kết quả CSDL chiếu đểxác định các item cósố lần xuất hiệnnhiều hơnminsup hiện tại sau s.

- Bước 3, thêm các item đó vào 5.

Lợi ích của hướng tiếp cận CSDL chiếu là chỉ cần xem xét những chuỗi đang xuất hiện trong CSDL mà không thực hiện kiểm tra khi phát sinh chuỗi Thuật toán TSPtìm được k tập đóng nhưng thực hiện xem xét những items có độ hỗ trợtừ thấp đến cao rồi đi mở rộng chúng; việc dùng phương pháp duyệt/chiếu CSDL lặp nhiều lần

Trang 28

nên phải tốn chi phí, nhất là tốn chi phí caođối với CSDLdày đặc do thực hiệnnhiều phép chiếu.

1.4.2Thuật toán TKS [3]

Thuậttoán TKSđược Nhà nghiên cứu Fournier-Viger đềxuấtvào năm 2013, sử dụngCSDL bitmap dọc để biểu diễn dữ liệu, sử dụng thủ tục củathuật toán SPAM đểtạoứngviên ban đầu; tiến hành tìm, mo rộng các chuỗi, đồng thời áp dụng một số chiếnlượcđể tăng hiệu quả khai thác k chuỗi tuần tự phổ biến.

CSDLbitmap dọc:

Cho CSDL chuỗi D chứa q item và m chuỗi (sequence), size(ĩ) là so itemset trongchuỗi thứ i CSDL bitmap dọc cũaD, ký hiệu V(D) được định nghĩa như là một tậpcủa q bitvec-tocó kích thước size (í) , sao cho:

- Moi item X có một bit vec-tơ tưong ứng bv(x).

- Neu item X xuất hiện trong itemset thứp của chuỗi thứ ttrongD thì bitthứ

sfTỈ size(i) +p của bit vec-to bv(x) được gán giátrị là 1, ngượclại là 0.

- Ví dụ: Bảng 1.2 trình bày các bit vec-to được xây dựng cho moi item từ CSDL chuỗi D được cho trong Bảng 1.1

Bảng 1.2 CSDLbitmap dọc được xây dựng từCSDL chuỗi D

a 1001011000100011110

Thủ tục tạo ứngviên SPAM

Thủ tục tạo ứng viên được trình bày trong Hình 1.3 và Hình 1.4 Thủ tục này nhậnhai tham số đầu vào là CSDL chuỗi và ngưỡngminsup. Các bướcthực hiện như sau:

Trang 29

SPAM(CẴDL chuỗiD, minsup)

1 Duyệt CSDL để tạo V(D) và xácđịnhSintt (danh sách các items phổ biến).

2 FOReach item s E Sịnit,

3 searches), Sinit, tập cácitems từSmit có thứ tự từ điển lớn hơns, minsup).

Hình 1.3 Thuật toán SPAM

SEARCH(j9M Sn, In, minsup)

1 Đầu ra: mẫu pat.

^ • Stemp ■ kemp ’ 0

3 FOReach item i E Sn,

3-a IFmởrộngs-extensioncủapat là phổ biến THENstemp: = stemp U{i}

4 FOR each item j E Stemp,

4-a SEARCH(mở rộng s-extension của pat vớij, stemp, các phần tử trong

stemp lớn hơnj,minsup).

5 FOReach item i E ỉn,

5-a IF mởrộngi-extension củapat là phổ biếnTHEN temp•= kemp := U{í}

6 FOR each item j EI temp,

7 SEARCH(mở rộng i-extension của pat với j, stemp ,tat cả các phần tử trong

kemp lớn hơnj,minsup)

- Sn làtập các items được nối thêm vào chuỗipattừ mở rộngtheo chuỗi s-extension.

Kết quả mở rộng s-extension giữa một chuỗi {1^,12’"‘ ’in) với item X là 01' ^2' •■■' ^n’ {-V})

Trang 30

- In là tập các items được nối thêm vào chuỗi pat từ mở rộng theo itemset i- extension. Kết quả mở rộng i-extension giữamột chuỗi {iỵ,2 ,in) vói item X

Một sốchiến lược nhằm tăng độ hiệu quả khi khai thác dữ liệu:

- Chiến lược ỉ: Tăngcường hỗ trợ đểcắt tỉakhông gian tìm kiếm (ýtưởngchínhcủa thuật toánTKS).

o Đặt minsup =0.

o Tim kiếmcác chuỗi tuần tự phổ biến nhờ áp dụngthủtục SPAM.o SEARCH

Trang 31

■ Sử dụng danh sách L để lưu trữnhững chuỗi phổ biến đã đượctìm thấy cho đếnthời điểm hiện tại (L được xếptheo độ hỗ trợ tăng dần).

■ Với k chuỗi được tìm thấy, tăng giátrị minsup lên bằng độ hỗtrợ của chuỗi phổbiến có độ hỗ trợnhỏnhất trong L.

■ Mỗi chuỗi phổ biến mới được tìm thấy và thêm vào L, loại bỏ những chuỗi có độhỗ trợ thấp nhất trong L cho đến khi L chỉ chứa k chuỗi, đồng thời tăng minsup lên bằng độ hỗ trợ nhỏ nhất trong L.

■ Thuật toán dừngkhi không cònchuỗi được tìmthấy.

Nhận xét: Thuật toán này được xem là đúng đắn và đầy đủ Tuy nhiên, thuật toán cóhiệu quả kém về thời gian thực thido không gian tìm kiếm quá lớn, cần phải sử dụngthêm các chiến lược bổ sung để nâng caohiệu quả của thuậttoán.

o Với mỗiứng viên paf được tạo rabởi mở rộng s-extensioni-extension, thủ tụcSEARCH tính toán bit vec-tơ bv(paf) bằng cách thực thi một phép logic AND

giữa các bit vec-tơ củapat và của item được nối thêmvào Độhỗtrợ của ứng viênđược tính mà khôngcần phải duyệt lại CSDL bằng cách đếm so bit 1 đại diện chocác chuỗi phân biệt trong bit vec-to bv(paf). Ví dụ trong Hình 1.5, {{a}, {b}) có

độ hẵ trợ là2 (do có hai bit 1 cùng nằm trên một chuỗi nên chỉ tính là 1).

o Nếu chuỗi paf là phổ biến thìnó được sử dụng trong việc gọi đệ quy tới thủ tụcSEARCH để tạo ra các chuỗi bắt đầu bằng tiền tố paf Chú ý rằng trong khi gọi đệ quy, chỉ những item có thể dẫn đến một chuỗi phổbiến bỏi việc mở rộng (5-

extensioni-extension) chuỗi pat mới được xem xét để mở rộngpaf. Đối vói những chuỗi không phổ biến sẽ không cần phải mở rộng do tuân theo tính chấtApriori (mọi chuỗi tuần tự không phổ biến đều không thể được mở rộng để trở thành chuỗi tuần tự phổ biến).

- Chiến lược 2: Mởrộng các chuỗi triển vọng nhất

o ý tưởng: Những chuỗi có độ hỗ trợ cao được tìm kiếm càng nhanh thì thuậttoántăng minsup cũng nhanh hon; theo đó, không gian tìm kiếm cũng được lược bỏnhiều hơn.

Trang 32

o Cách thức thực hiện: Thêm vào biến Rchứa chuỗi cóđộ hỗtrợ cao nhất và cóthểđược sử dụng đểtạo ranhiều chuỗi khác Chuỗi có độ hỗ trọ cao nhất luôn ởtrong

R và luôn đượcmỏrộng đầu tiên.

o Mã giả của thuật toán TKS phiên bản kếthợp chiến lược 1 và 2 được trình bày ởHình 1.7.

TKS^CSDLchuỗi D,k)ỉ R :=0.L := 0 minsup := 0.2 Duyệt CSDL để tạo vụ)).

3 Cho Sinit là danh sách các items trong V(P).

4 FOR each item sE sinit, IFs là phổ biến tưong ứng vói bv(s) THEN

4-a. SAVE(XL,k, minsup).

4-b R'■= R u {{s,Sinit, item G sinit: item> s theo từđiển}.5 WHILE 3 (r,Sl,S2) E /?AND sup(r) >minsup DO

5-a Chọn bộ ba (r,Sl, S2)với mẫu r có độ hỗ trợ cao nh t trong R.5-b SEARCH(r, Sỉ, S2, L, R, k, minsup).

Trang 33

đệ quy các bộ ba từ R đại diện cho chuỗi r có độ hỗtrợ cao nhất và đảm bảo sup(r) >minsup (dòng 5 và 5-a) Tiếptheo, thuật toán sử dụng bộ ba này để tạo ra các chuỗimới bằng cách gọi thủtục SEARCH trong Hình 1.7 (dòng 5-b)và loại bỏ bộ ba khỏiR ngay khi các chuỗi từ bộ ba đó trỏ nên không phổbiến (dòng 5-d).Vòng lặp WHILElà luôn mở rộng những chuỗi có độ hỗ trợ cao nhấttrước tiên để tạo ra các chuỗi cóđộ hỗ trợ cao và để tăng minsup nhanh chóng nhằm làm giảm không gian tìm kiếm hiệu quả Vòng lặp kết thúc khi không còn chuỗi nào trong R có độ hỗ trợ cao hon minsup; thời điểm này, L chứa k chuỗi tuần tự phổ biến (dòng 7).

SEARCH (pat, 5n, In,L, R, k, minsup)

1- $temp’“ ^temp’ 02 FOR each item ĩE Sn,

2-a IF mở rộngs~extensioncủapat là phổ biến THENstemp := stemp u {ỉ}3 FOR each itemjE Stemp,

3-a SAVE(s-extension của patvóij,L, k, minsup').

3-b. R:= R u {<s-extension của patvớij,stemp,tat cảcác phần tửtrongstemp lớn h«nỳ!

4 FOR each item i EIn,

4-a IFmở rộng i-extension của patlà phổ biến THEN ỉtemp ’= ỉ temp u ƠI5 FOR each itemj E ỉtempr

5-a. SAVE(i~extension củapatvói j,L, k,minsup).

Hình 1.8 Thủ tụctạo ứngviên đã được sửa đổi

SAVE(r, L, k, minsup') Ỉ.L:=LLJ{r]

2 IF |L| > &THEN

2-a IF sup(f)> minsup THEN

2-a-a WHILE |L| > kAND 3s G L I sup(s) < minsup, Loạibỏ 5 từL.

2-c Đặtminsup bằng độ hỗ trợ thấp nhất củacác mẫu trongL.

Trang 34

Thủtục SAVE đượctrình bày trongHình 1.9 mục đíchlà để tăng minsup và cập nhật

danh sách Lkhi cómột chuỗi phổ biến mới r được tìm thấy Đầu tiên, thủ tục SAVEthêm chuỗi r vàoL(dòng 1) Sau đó, nếuL chứanhiều hon k chuỗi và độ hỗ trợcaohon minsup thì các chuỗi trongL có độ hỗ trợ bằng với minsup có thể được loại bỏ cho đến khi chỉ còn đúng k chuỗi được giữ lại (dòng2-a,2-b,2-c) Cuối cùng, minsup

được tăng lên bằng độ hỗtrợ nhỏ nhất của các chuỗi trongL (dòng 2-c) Bằng cách này, k chuỗi tuần tự phổ biến tìm thấy đượclưu giữ trongL.

- Chiến lược 3: Loại bỏ những item không phổ biến trong khi tạo ứng viên

o ý tưởng: Chiến lược này cải thiện thời gian thực hiện của thuật toán bằng cáchgiảm số phép giao giữa các bit vec-tơ được thực thi bởi thủ tục SEARCH.

o Dùng mộtbảng băm để lưu các item đãtrởnên không phổ biến khi minsup đượctăng lên bởi thuật toán Điều này được thực hiện trong dòng 4 củathủ tục SAVEbằng cách thay thế “Loại bỏ 5 từ L” bằng “Loại bỏ5 từ L và IF 5 chứa một item đơn THEN đặt nó vào bảng băm chứa các items bị loại bỏ”.

o Mỗi khi thủ tụcSEARCH xem xét mởrộng(s-extension và i-extension')một chuỗi tuần tự với một item, item đó sẽ được kiểm tra trong bảng băm Nếu bảng bămchứaitem đó thì item đó sẽ bị bỏ qua (chuỗi mở rộng sẽ không được tạo ra) Điều nàycho phép tránh thực hiện các phép giao bit vec-tơ tốn kém trên các item này.

o Tích hợp chiến lược này không làm ảnh hưởng đến kết quảcủa thuật toán bởi vì nối thêm một item không phổ biến vào một chuỗi tuần tự không thể tạo ra một chuỗi tuần tự phổ biến.

- Chiếnỉược 4: cắt tỉa ứng viên với Precedence Map (bản đồ thứ tự ưu tiên)

o ý tưởng: Đưa ra một cấu trúc dữ liệu mới gọi là Precedence Map (PMAP) chobiết số lần mà moi itemxuất hiện sau moi item khác bởis-extensioni-extension

Mỗi lần mở rộng một chuỗi với một item, thuật toán sẽ travào PMAP đểpháthiệnsớm chuỗi mởrộng là không phổ biến nhằm tránh thực hiện phép giaobit vec-tơkhông cần thiết và tổn nhiều chi phi Từ đó cải thiện được thời gian thực thi củathuậttoán.

o Cấu trúcPMAP:

Trang 35

o Item iđược trình bày bằng 1 danh sách các bộ ba theo chuỗi <j,m, x> với m là số chuỗi chứacả i, j và jxuất hiện sau i trong CSDLbởi x~extension(x^ {i,s})

o Item ixuất hiện sau itemj trong chuỗi 01,^2, 7An) bởi s-extension nếuj EAx

EAy vói X,y là sốnguyên, ỉ <x <y <n.

o Item i xuất hiện sau itemjtrong chuỗi 01, ^2, ,An) bởi s-extension nếu ĩ, i EAxVỚi Xlàsố nguyên, ỉ <x <nĩ lớn hon j theothứ tự từ điển.

Bảng 1.3 Cấu trúc dữ liệu PMAP được xây dựng cho CSDLP ở Bảng 1.1

a<a,2, s> <b,3, s>, <b,4,i>,<c, ỉ, s>b<a,4, s>,<a, 4,i> <b, 5,s>,<c,1, s>

Trong ví dụnày, item a liên kếtvói bộ ba <a, 2, s> vìa xuất hiện sau a bởi s-extension

trong 2 chuỗi; item a liên kết với bộ ba <b, 3, s> vì bxuất hiện sau a bởi s-extension

trong3 chuỗi; item a liên kết vóibộ ba<b, 4, i> vì b xuất hiện sau a bở'ỉ i-extensiontrong 4 chuỗi.

o Thực hiện:

o PMAP được xây dựngchỉ vói 1 lần duyệtCSDL và được xây dựngtrong lần duyệtCSDLthứ hai để những item không phổ biến cóthể được loại ra khỏiPMAP nhằm làm giảm kích thước của nó.

o Thực hiện PMAP bằng mộtbảng băm (hash table) chứa các tập băm (hash set) đểtránhlãng phí bộ nhớ khi làm việc với những tập dữ liệu thưa(sparse datasets).

o Cấu trúc PMAP được sử dụng trong thủ tục SEARCH Trướckhi tạo ra một ứngviên bằng cách thêm mộtitem Xvào một chuỗi pat, kiểm tratrong PMAP.

o Neu a€pat a liên kết với một bộ <x,m, s> (s-extension) hoặc <x, m, t>extension)m < minsup thìchuỗi mởrộnglà chuỗi khôngphổ biến và sẽ không

Ngày đăng: 06/05/2024, 17:23

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan