Uploaded by Hữu Trí Nguyễn

LUẬT KẾT HỢP VÀ LỌC CỘNG TÁC

advertisement
LUẬT KẾT HỢP VÀ LỌC CỘNG TÁC
Trong phần này, chúng tôi mô tả các phương pháp học tập không giám sát của luật kết
hợp (Association Rules) và lọc cộng tác (Collaborative Filtering). Cả hai phương pháp đều
phổ biến trong tiếp thị cho các sản phẩm bán chéo liên quan đến một mặt hàng mà
người tiêu dùng đang xem xét.
Trong luật kết hợp, mục tiêu là xác định các cụm mặt hàng trong cơ sở dữ liệu loại
giao dịch. Phát hiện quy luật kết hợp trong tiếp thị được gọi là “phân tích giỏ hàng mua
sắm” và nhằm mục đích khám phá những nhóm sản phẩm nào có xu hướng được mua
cùng nhau. Các mặt hàng này sau đó có thể được hiển thị cùng nhau, được cung cấp
trong phiếu giảm giá sau giao dịch hoặc được đề xuất trong mua sắm trực tuyến. Chúng
tôi mô tả quá trình tạo luật kết hợp qua hai giai đoạn và sau đó đánh giá sức mạnh của
luật kết hợp để chọn một tập hợp con. Chúng tôi xem xét thuật toán Apriori tạo quy tắc
phổ biến và sau đó là tiêu chí để đánh giá sức mạnh của luật kết hợp.
Trong lọc cộng tác, mục tiêu là cung cấp các đề xuất được cá nhân hóa để tận dụng
thông tin ở cấp độ người dùng. Có hai loại là lọc cộng tác dựa trên người dùng (UserBased Collaborative Filtering) và lọc cộng tác dựa trên mặt hàng (Item-Based
Collaborative Filtering).Lọc cộng tác dựa trên người dùng bắt đầu với người dùng, sau
đó tìm thấy người dùng đã mua một bộ vật phẩm tương tự hoặc vật phẩm được xếp
hạng theo cách tương tự và đưa ra khuyến nghị cho người dùng ban đầu dựa trên
những gì người dùng tương tự đã mua hoặc thích. Lọc cộng tác dựa trên vật phẩm bắt
đầu bằng một mặt hàng được người dùng xem xét, sau đó định vị các mặt hàng khác có
xu hướng được mua cùng với mặt hàng đầu tiên đó. Chúng tôi giải thích các kỹ thuật và
các yêu cầu để áp dụng nó trong thực tế.
Mã Python
Trong chương này, chúng tôi sẽ sử dụng thư viện pandas để xử lý dữ liệu. Gói mlxtend
được sử dụng cho luật kết hợp và gói surprise cho lọc cộng tác. Sử dụng các câu lệnh
import sau đây cho mã chương trình trong chương này.
1
1. LUẬT KẾT HỢP
Nói một cách đơn giản, các luật kết hợp, hoặc phân tích mối quan hệ, tạo thành một
nghiên cứu về những gì đi với những gì. Phương pháp này còn được gọi là phân tích giỏ
hàng mua sắm vì nó bắt nguồn từ nghiên cứu cơ sở dữ liệu giao dịch của khách hàng để
xác định sự phụ thuộc giữa các giao dịch mua các mặt hàng khác nhau. Luật kết hợp
được sử dụng nhiều trong bán lẻ để tìm hiểu về các mặt hàng được mua cùng nhau,
nhưng chúng cũng hữu ích trong các lĩnh vực khác. Ví dụ, một nhà nghiên cứu y học có
thể muốn tìm hiểu những gì các triệu chứng xuất hiện cùng nhau. Theo luật pháp, các từ
kết hợp xuất hiện quá thường xuyên có thể chỉ ra đạo văn.
Tìm các luật kết hợp trong cơ sở dữ liệu giao dịch
Sự sẵn có của thông tin chi tiết về các giao dịch của khách hàng đã dẫn đến sự phát triển
của các kỹ thuật tự động tìm kiếm sự liên kết giữa các mặt hàng được lưu trữ trong cơ
sở dữ liệu. Một ví dụ là dữ liệu được thu thập bằng cách sử dụng máy quét mã vạch
trong siêu thị. Cơ sở dữ liệu giỏ hàng tiêu dùng như vậy bao gồm một số lượng lớn các
hồ sơ giao dịch. Mỗi bản ghi liệt kê tất cả các mặt hàng được mua bởi một khách hàng
trong một giao dịch mua hàng. Các nhà quản lý quan tâm để biết nếu một số nhóm mặt
hàng nhất định được mua liên tục với nhau. Họ có thể sử dụng thông tin đó để đưa ra
quyết định về bố cục cửa hàng và vị trí mặt hàng, để bán chéo, cho các chương trình
khuyến mãi, cho thiết kế danh mục và để xác định phân khúc khách hàng dựa trên mẫu
mua. Các quy tắc kết hợp cung cấp thông tin thuộc loại này dưới dạng các câu lệnh của
“if-then”. Các quy tắc này được tính toán từ dữ liệu; Không giống như quy tắc “if-then”
của logic, quy tắc kết hợp có tính xác suất.
Các luật kết hợp thường gặp trong các hệ thống mua sắm trực tuyến (recommender
systems) trong đó khách hàng tìm kiếm một mặt hàng hoặc mặt hàng có khả năng được
mua có thể được hiển thị cùng với (các) mặt hàng khác. Màn hình hiển thị từ hệ thống
mua sắm trực tuyến Amazon.com, minh họa cho việc áp dụng các quy tắc như thế này
theo các mặt hàng thường xuyên được mua cùng nhau. Trong ví dụ hiển thị trong Hình
2
1, người dùng duyệt điện thoại di động Samsung Galaxy S5 được hiển thị vỏ và kính
cường lực thường được mua cùng với điện thoại này.
3
Hình 1: Khuyến nghị theo những mặt hàng thường xuyên mua cùng nhau dựa trên luật
kết hợp
4
Chúng tôi giới thiệu một ví dụ đơn giản và sử dụng nó trong suốt chương để trình bày
các khái niệm, tính toán và các bước của luật kết hợp. Chúng tôi kết thúc bằng cách áp
dụng luật kết hợp cho một ví dụ thực tế hơn về việc mua sách.
Ví dụ 1: Dữ liệu tổng hợp về các giao dịch mua điện thoại
Một cửa hàng bán phụ kiện cho điện thoại di động chạy một chương trình khuyến mãi
cho ốp lưng điện thoại. Khách hàng mua ốp lưng điện thoại từ sáu màu khác nhau được
giảm giá. Các nhà quản lý cửa hàng, những người muốn biết màu sắc nào của khách
hàng có khả năng mua cùng nhau, đã thu thập cơ sở dữ liệu giao dịch như trong Bảng số
1
Tạo luật kết hợp ứng viên
Ý tưởng đằng sau các luật kết hợp là kiểm tra tất cả các luật có thể có giữa các mặt hàng
(item) theo định dạng if-then và sau đó chỉ chọn những luật có khả năng cao. Chúng tôi
sử dụng thuật ngữ tập tiền đề (antecedent) để mô tả phần IF và tập hệ quả
(consequent) để mô tả phần THEN. Trong phân tích luật kết hợp,tập tiền đề và tập hệ
quả là các bộ mặt hàng (được gọi là tập mục (itemsets)) rời rạc (không có bất kỳ mặt
hàng nào trùng nhau). Lưu ý rằng tập mục không phải là hồ sơ về những gì mọi người
mua; chúng chỉ đơn giản là sự kết hợp có thể của các mặt hàng.
Bảng 1: Dữ liệu giao dịch mua ốp lưng điện thoại
Quay trở lại ví dụ mua ốp lưng điện thoại, một ví dụ về luật có thể là “if red, then white,”
có nghĩa là nếu một ốp lưng màu đỏ được mua thì một cái màu trắng cũng vậy. Ở đây
tiền đề là “red” và hệ quả là “white”. Tiền đề và hệ quả chỉ chứa một mặt hàng duy nhất
trong trường hợp này. Một luật khác có thể là “if red and white, then green.” Ở đây, tiền
đề bao gồm các mặt hàng {red, white} và hệ quả là {green}.
Bước đầu tiên trong luật kết hợp là tạo ra tất cả các luật sẽ là ứng cử viên để chỉ ra mối
liên hệ giữa các mặt hàng. Lý tưởng nhất, chúng ta có thể muốn xem xét tất cả các kết
5
hợp có thể có của các mặt hàng trong cơ sở dữ liệu với p các mặt hàng riêng biệt (trong
ví dụ về ốp lưng điện thoại, p = 6). Điều này có nghĩa là tìm tất cả các kết hợp của các
mặt hàng đơn lẻ, các cặp mặt hàng, bộ ba, v.v., trong cơ sở dữ liệu giao dịch. Tuy nhiên,
việc tạo ra tất cả các kết hợp này đòi hỏi thời gian tính toán dài tăng theo cấp số nhân
theo p. Một giải pháp thực tế là chỉ xem xét các kết hợp xảy ra với tần suất cao hơn
trong cơ sở dữ liệu. Chúng được gọi là các tập mục thường xuyên (frequent itemset).
Xác định những gì đủ điều kiện là một tập mục thường xuyên có liên quan đến khái niệm
độ hỗ trợ. Độ hỗ trợ (support) của một luật chỉ đơn giản là số lượng giao dịch chứa cả
tập tiền đề và tập hệ quả. Nó được gọi là độ hỗ trợ bởi vì nó đo lường mức độ mà dữ
liệu liên quan đến luật đó. Độ hỗ trợ đôi khi được biểu thị bằng tỷ lệ phần trăm trong cơ
sở dữ liệu. Ví dụ: độ hỗ trợ cho tập mục {red, white} trong ví dụ về bảng mặt điện thoại
là 4 (hoặc 40% = 4 / 10 x 100%).
Do đó, cái gì tạo thành một tập mục thường xuyên được định nghĩa là một tập mặt hàng
có độ hỗ trợ vượt quá độ hỗ trợ tối thiểu được chọn (độ hỗ trợ tối thiểu được xác định
bởi người dùng).
Thuật toán Apriori
Một số thuật toán đã được đề xuất để tạo các tập mục thường xuyên, nhưng thuật toán
phổ biến nhất là thuật toán Apriori của Agrawal et al (1993). Ý tưởng chính của thuật
toán là bắt đầu bằng cách tạo các tập mục thường xuyên chỉ với một mặt hàng (tậpmột-mục (one-itemsets)) và tạo đệ quy các mục thường xuyên với hai mặt hàng (tậphai-mục (two-itemsets)), sau đó với ba mặt hàng, v.v., cho đến khi chúng tôi tạo ra các
tập mục thường xuyên ở mọi kích cỡ.
Nó rất dễ dàng để tạo ra tập-một-mục thường xuyên. Tất cả những gì chúng ta cần làm
là tính, cho mỗi mặt hàng, có bao nhiêu giao dịch trong cơ sở dữ liệu chứa mặt hàng đó.
Số lượng giao dịch này là độ hỗ trợ cho các tập-một-mục. Chúng tôi bỏ các tập-một-mục
có độ hỗ trợ nhỏ hơn độ hỗ trợ tối thiểu mong muốn để tạo danh sách các tập-một-mục
thường xuyên.
Để tạo tập-hai-mục thường xuyên, chúng tôi sử dụng các tập-một-mục thường xuyên. Lý
do là nếu một tập-một-mục nhất định không vượt quá độ hỗ trợ tối thiểu, thì bất kỳ tập
hợp kích thước lớn hơn chứa nó sẽ không vượt quá độ hỗ trợ tối thiểu. Nói chung, việc
tạo các tập-k-mục sử dụng các tập-(k - 1)-mục đã được tạo trong bước trước. Mỗi bước
yêu cầu một lần chạy qua cơ sở dữ liệu và do đó thuật toán Apriori rất nhanh ngay cả
đối với một số lượng lớn các mặt hàng trong cơ sở dữ liệu.
6
Chọn luật mạnh
Từ sự phong phú của các luật được tạo ra, mục tiêu là chỉ tìm ra các luật cho thấy sự liên
kết mạnh mẽ giữa các tập tiền đề và các tập hệ quả. Để đo lường sức mạnh của sự liên
kết trong luật, chúng tôi sử dụng các đại lượng là độ tin cậy và tỷ lệ nâng, như được mô
tả dưới đây.
Độ hỗ trợ và Độ tin cậy
Ngoài độ hỗ trợ, mà chúng tôi đã mô tả trước đó, có một đại lượng khác thể hiện mức
độ chắc chắn về luật if-then. Đại lượng này được gọi là độ tin cậy (Confidence) của luật.
Biện pháp này so sánh sự xuất hiện của các tập mà chứa cả tập tiền đề và hệ quả trong
cơ sở dữ liệu với sự xuất hiện của các tập tiền đề. Độ tin cậy được định nghĩa là tỷ lệ của
số lượng giao dịch của tập chứa tất cả các mặt hàng tiền đề và hệ quả so với số lượng
giao dịch của tập mục tiền đề:
Ví dụ: giả sử cơ sở dữ liệu siêu thị có 100.000 giao dịch. Trong số các giao dịch này, 2000
giao dịch chứa nước cam và thuốc trị cảm cúm và 800 trong số này chứa cả bim bim.
Luật kết hợp “IF nước cam và thuốc cảm cúm THEN bim bim” có:
 độ hỗ trợ support = 800 giao dịch (hoặc 0,8% = 800 / 100.000)
 độ tin cậy confidence = 40% = 800/2000.
Để xem mối quan hệ giữa độ hỗ trợ và độ tin cậy, chúng ta hãy suy nghĩ về những gì mỗi
thứ đang đo lường (ước tính). Một cách để nghĩ về độ hỗ trợ là xác suất (ước tính) rằng
một giao dịch được chọn ngẫu nhiên từ cơ sở dữ liệu sẽ chứa tất cả các mặt hàng trong
tập tiền đề và tập hệ quả:
So sánh, độ tin cậy là xác suất có điều kiện rằng một giao dịch chứa tập hệ quả nếu giao
dịch được đưa ra chứa các tập tiền đề:
7
Giá trị cao của độ tin cậy cho thấy một luật kết hợp mạnh mẽ. Tuy nhiên, điều này có
thể là không đúng nữa bởi vì nếu tập tiền đề và/hoặc tập hệ quả có độ hỗ trợ cao, chúng
ta có thể có giá trị cao cho độ tin cậy ngay cả khi tập tiền đề và tập hệ quả là độc lập! Ví
dụ: nếu gần như tất cả khách hàng mua chuối và gần như tất cả khách hàng mua kem,
thì độ tin cậy của luật như “IF chuối THEN kem” sẽ cao bất kể có liên quan giữa các mặt
hàng hay không.
Tỷ lệ nâng
Một cách tốt hơn để đánh giá sức mạnh của luật kết hợp là so sánh độ tin cậy của luật với
giá trị chuẩn, trong đó giá trị chuẩn là khi giả định rằng sự xuất hiện của các tập hệ quả
trong giao dịch là độc lập với sự xuất hiện của tập tiền đề. Nói cách khác, nếu các tập tiền
đề và tập hệ quả là độc lập, chúng ta sẽ thấy những giá trị độ tin cậy chuẩn. Dưới sự độc
lập, độ hỗ trợ sẽ là
và độ tin cậy điểm chuẩn sẽ là
Giá trị chuẩn này từ cơ sở dữ liệu, được gọi là giá trị độ tin cậy điểm chuẩn cho một luật,
được tính bằng:
Chúng tôi so sánh độ tin cậy với độ tin cậy chuẩn bằng cách xem xét tỷ lệ của chúng: đây
được gọi là tỷ lệ nâng của luật. Tỷ lệ nâng là độ tin cậy của quy tắc chia cho độ tin cậy,
giả sử tính độc lập của hệ quả và tiền đề:
lift ratio =
confidence
confidence benchmark
Tỷ lệ nâng lớn hơn 1.0 cho thấy rằng luật có hữu ích. Nói cách khác, mức độ liên kết giữa
các tập hợp tiền đề và hệ quả là cao hơn mong đợi nếu chúng độc lập. Tỷ lệ nâng càng
lớn, sức mạnh của sự kết hợp càng lớn.
8
Để minh họa tính toán của độ hỗ trợ, độ tin cậy và tỷ lệ nâng cho ví dụ về mặt trên điện
thoại di động, chúng tôi giới thiệu một bản trình bày thay thế của dữ liệu phù hợp hơn
với mục đích này.
Các đại lượng khác
Định dạng dữ liệu
Dữ liệu giao dịch thường được hiển thị theo một trong hai định dạng: cơ sở dữ liệu giao
dịch (với mỗi hàng đại diện cho danh sách các mặt hàng được mua trong một giao dịch)
hoặc ma trận nhị phân trong đó các cột là các mặt hàng, các hàng lại đại diện cho các
giao dịch và mỗi ô có 1 hoặc 0, cho biết sự hiện diện hay vắng mặt của một mặt hàng
trong giao dịch. Ví dụ, Bảng 1 hiển thị dữ liệu cho các giao dịch mua ốp lưng di động
trong cơ sở dữ liệu giao dịch. Chúng tôi chuyển đổi chúng thành định dạng ma trận nhị
phân trong Bảng 2.
Bảng 2: Số liệu giao dịch trong định dạng ma trận
Bây giờ, giả sử rằng chúng tôi muốn các luật kết hợp giữa các mục cho cơ sở dữ liệu này
có độ hỗ trợ ít nhất là 2 (tương đương với tỷ lệ phần trăm là 2/10 = 20%): Nói cách khác,
các luật dựa trên các mục được mua cùng nhau tại ít nhất 20% giao dịch. Bằng cách liệt
kê, chúng ta có thể thấy rằng chỉ các mục được liệt kê trong Bảng 3 có số lượng giao dịch
ít nhất là 2
9
Bảng 3: Tập mục có độ hộ trợ lớn hơn 2
Mục đầu tiên {red} có độ hỗ trợ 6, vì sáu giao dịch trong số các giao dịch bao chứa một
ốp lưng màu đỏ. Tương tự, các mục cuối cùng {red, white, blue} có độ hỗ trợ là 2, vì chỉ
có hai giao dịch chứa các ốp lưng màu đỏ, trắng và xanh lục.
Trong Python, chúng tôi sẽ sử dụng triển khai apriori trong thư viện mlxtend. Nó chấp
nhận các giao dịch dưới dạng pandas DataFrame hoặc pandas SpzzyDataFrame. Và nó
cũng hiệu quả hơn cho một số lượng lớn các hạng mục có thể. Gói tạo ra các luật với
một hoặc nhiều hạng mục là tiền đề và hệ quả.
Quy trình lựa chọn các luật
Quá trình lựa chọn các luật mạnh dựa trên việc tạo ra tất cả các luật kết hợp đáp ứng
các yêu cầu về độ hỗ trợ và độ tin cậy theo quy định. Điều này được thực hiện trong hai
giai đoạn:
 Giai đoạn đầu tiên, được mô tả trước đó, bao gồm việc tìm kiếm tất cả các bộ dữ
liệu thường xuyên của người dùng, những bộ có độ hỗ trợ tối thiểu.
 Giai đoạn thứ hai, chúng tôi tạo ra, từ các mục thường xuyên, quy tắc kết hợp
đáp ứng yêu cầu về độ tin cậy.
10
o Bước đầu tiên là nhằm loại bỏ các kết hợp hạng mục hiếm gặp trong cơ sở
dữ liệu.
o Sau đó lọc các luật còn lại và chỉ chọn những luật có độ tin cậy cao.
Đối với hầu hết các dữ liệu phân tích liên kết, thách thức tính toán là giai đoạn đầu tiên,
như được mô tả trong cuộc thảo luận về thuật toán Apriori.
Tính toán của độ tin cậy trong giai đoạn thứ hai là đơn giản. Vì bất kỳ tập hợp con nào
(ví dụ: {red} trong ví dụ về bảng mặt điện thoại) phải xuất hiện ít nhất thường xuyên như
tập hợp mà nó thuộc về (ví dụ: {red, white}), mỗi tập hợp con cũng sẽ nằm trong danh
sách. Sau đó, thật đơn giản để tính toán độ tin cậy (tỷ lệ của độ hỗ trợ của tập mục đó
với độ hỗ trợ của mỗi tập hợp con). Chúng tôi chỉ giữ lại luật kết hợp tương ứng nếu nó
vượt quá giá trị ngưỡng mong muốn. Ví dụ: từ các mục {red, white, blue} trong giao dịch
mua ốp lưng điện thoại, chúng tôi nhận được các luật kết hợp đơn lẻ, giá trị độ tin cậy
và giá trị tỷ lệ nâng.
Chúng ta có thể tạo các quy tắc kết hợp trong Python từ khung dữ liệu pandas được
định dạng dưới dạng ma trận nhị phân như trong Bảng 2 hoặc trong khung dữ liệu
pandas thưa thớt dữ liệu ở định dạng tương tự Bảng 1. Chúng tôi chỉ định độ hỗ trợ tối
thiểu (20%) và tỷ lệ phần trăm mức độ tin cậy tối thiểu (50%). Bảng kết quả (hình bên
dưới) cho thấy đầu ra. Đầu ra bao gồm thông tin về từng luật kết hợp và độ hỗ trợ, độ
tin cậy, tỷ lệ nâng… của nó. (Lưu ý rằng ở đây chúng tôi xem xét tất cả các mục có thể,
không chỉ {red, white, blue} như trên.)
11
Bảng 4: Ma trận nhị phân, Cơ sở dữ liệu giao dịch, và luật kết hợp cho ví dụ về ốp lưng
điện thoại
Giải thích kết quả
Chúng ta có thể hiểu từng quy tắc từ bảng kết quả bên trên thành một câu dễ hiểu cung
cấp thông tin. Ví dụ: chúng ta có thể đọc quy tắc {orange}{white} như sau:
Nếu “orange” được mua, thì “white” cũng sẽ được mua với độ tin cậy 100%. Quy
tắc này có tỷ lệ nâng là 1,43.
Trong việc giải thích kết quả, rất hữu ích khi xem xét các đại lượng khác nhau. Độ hỗ trợ
cho luật kết hợp cho thấy tác động của nó về quy mô tổng thể: Có bao nhiêu giao dịch bị
ảnh hưởng? Nếu chỉ một số lượng nhỏ giao dịch bị ảnh hưởng, luật kết hợp có thể ít
được sử dụng (trừ khi hệ quả là rất có giá trị và / hoặc quy tắc rất hiệu quả trong việc
tìm kiếm nó).
12
Tỷ lệ nâng cho biết mức độ hiệu quả của luật kết hợp trong việc tìm kiếm các hệ quả, so
với lựa chọn ngẫu nhiên. Một quy tắc rất hiệu quả được ưu tiên hơn một quy tắc không
hiệu quả, nhưng chúng ta vẫn phải xem xét độ hỗ trợ: Một quy tắc rất hiệu quả có hỗ
trợ rất thấp có thể không được mong muốn như một quy tắc kém hiệu quả hơn với độ
hỗ trợ lớn hơn nhiều.
Độ tin cậy cho chúng ta biết mức độ hệ quả sẽ được tìm thấy và rất hữu ích trong việc
xác định mức độ hữu ích của hoạt động kinh doanh: Một luật kết hợp có độ tin cậy thấp
sẽ tìm thấy hệ quả ở mức quá thấp để xứng đáng với chi phí thúc đẩy hệ quả trong tất
cả các giao dịch liên quan đến tiền đề.
13
2. LỌC CỘNG TÁC
Hệ thống khuyến nghị là một phần cực kỳ quan trọng của các trang web cung cấp nhiều
loại sản phẩm hoặc dịch vụ. Ví dụ Amazon.com nơi cung cấp hàng triệu sản phẩm khác
nhau; Netflix có hàng ngàn bộ phim cho thuê; Google tìm kiếm trên một số lượng lớn
các trang web; Các trang web nghe nhạc như Spotify và Pandora chứa rất nhiều album
nhạc của nhiều nghệ sĩ khác nhau; trang web du lịch cung cấp nhiều điểm đến và khách
sạn; trang web mạng xã hội có nhiều nhóm. Công cụ đề xuất cung cấp các đề xuất được
cá nhân hóa cho người dùng dựa trên thông tin của người dùng cũng như thông tin về
người dùng tương tự. Thông tin có nghĩa là các hành vi biểu thị sở thích, chẳng hạn như
mua, xếp hạng và nhấp chuột.
Những thứ mà các hệ thống khuyến nghị giới thiệu cho người dùng giúp các công ty trực
tuyến chuyển đổi người sử dụng trình duyệt thành người mua, tăng bán chéo và xây
dựng lòng trung thành.
Lọc cộng tác (Collaborative filtering) là một kỹ thuật phổ biến được sử dụng bởi các hệ
thống khuyến nghị như vậy. Thuật ngữ lọc cộng tác dựa trên các khái niệm xác định các
mục có liên quan cho một người dùng cụ thể từ tập hợp các mục rất lớn (thuật ngữ
“lọc”) bằng cách xem xét sở thích của nhiều người dùng (thuật ngữ “cộng tác”).
Bài viết trên Fortune.com “Amazon’s Recommendation Secret” (30 tháng 6 năm 2012)
mô tả công ty sử dụng bộ lọc cộng tác không chỉ để cung cấp các đề xuất sản phẩm được
cá nhân hóa mà còn để tùy chỉnh toàn bộ giao diện trang web cho mỗi người dùng:
Về cơ bản, hệ thống khuyến nghị của gã khổng lồ bán lẻ dựa trên một số yếu tố
đơn giản: những gì người dùng đã mua trong quá khứ, những mặt hàng họ có
trong giỏ hàng ảo của họ, các mặt hàng họ đã đánh giá và thích và những gì khách
hàng khác đã xem và mua. Amazon gọi đây là bộ lọc cộng tác item-to-item mà
hãng tự phát triển, và nó đã sử dụng thuật toán này để tùy chỉnh rất nhiều trải
nghiệm duyệt web cho khách hàng.
Kiểu dữ liệu và định dạng
Lọc cộng tác đòi hỏi phải có sẵn tất cả thông tin user-item. Cụ thể, đối với mỗi kết hợp
user-item, chúng ta nên có một số thước đo về sở thích của user đối với item đó. Sở
thích có thể hành vi mua hàng (hành vi nhị phân: 1 tương ứng với mua hàng, 0 tương
ứng với không mua hàng), hoặc sở thích cũng có thể là xếp hạng đơn hàng, click chuột
hoặc “like”.
Đối với n user (u1, u2, …, un) và p item (i1, i2, …, ip), chúng ta có thể coi dữ liệu là ma
trận n × p của n hàng (user) theo p cột (item). Mỗi ô chứa xếp hạng hoặc sự kiện nhị
14
phân tương ứng với tùy chọn của user với item đó (xem sơ đồ trong Bảng 9). Thông
thường, không phải mọi user đều mua hoặc đánh giá mọi item, và do đó, một ma trận
mua hàng sẽ có nhiều số không và một ma trận xếp hạng sẽ có nhiều giá trị để trống.
Các giá trị trống như vậy đôi khi truyền đạt là user không quan tâm (trái ngược với các
giá trị không trống truyền đạt sự quan tâm).
BẢNG 9: SƠ ĐỒ ĐỊNH DẠNG MA TRẬN VỚI DỮ LIỆU XẾP HẠNG
Ví dụ: Cuộc thi giải thưởng Netflix
Năm 2006, Netflix, dịch vụ cho thuê phim lớn nhất ở Bắc Mỹ, đã công bố một cuộc thi trị
giá 1 triệu đô la Mỹ (www.netflixprize.com) với mục đích cải thiện hệ thống khuyến nghị
của mình có tên Cinematch. Những người tham gia được cung cấp một số bộ dữ liệu
(một bộ dữ liệu cho mỗi bộ phim). Mỗi tập dữ liệu bao gồm tất cả các xếp hạng của
khách hàng cho bộ phim đó (và thời gian tương ứng). Chúng ta có thể nghĩ về một tập
dữ liệu kết hợp lớn của mẫu [mã khách hàng, mã số phim, xếp hạng, ngày] trong đó mỗi
bản ghi bao gồm xếp hạng được đưa ra bởi một khách hàng nhất định cho một bộ phim
nhất định vào một ngày nhất định. Xếp hạng theo thang điểm 1-5 sao. Các thí sinh được
yêu cầu phát triển một thuật toán đề xuất sẽ cải thiện hệ thống Netflix hiện tại. Bảng 10
cho thấy một mẫu nhỏ từ dữ liệu cuộc thi,bảng được tổ chức theo định dạng ma trận.
Hàng cho biết khách hàng và cột là những bộ phim khác nhau.
BẢNG 10: MẪU HỒ SƠ TỪ CUỘC THI GIẢI THƯỞNG NETFLIX, CHO MỘT TẬP HỢP CON
GỒM 10 KHÁCH HÀNG VÀ 9 PHIM
15
Thật thú vị khi lưu ý rằng đội chiến thắng đã có thể cải thiện hệ thống của họ bằng cách
xem xét không chỉ xếp hạng cho một bộ phim, mà là liệu một bộ phim có được đánh giá
bởi một khách hàng cụ thể hay không. Nói cách khác, thông tin về những bộ phim mà
khách hàng quyết định xếp hạng hóa ra là thông tin quan trọng của khách hàng về sở
thích của người khác, không chỉ đơn giản là xem xét thông tin xếp hạng 1-5:
Phương pháp lọc cộng tác giải quyết tập hợp giá trị xếp hạng thưa thớt. Tuy
nhiên, độ chính xác cao có được bằng cách xem xét các tính năng khác của dữ
liệu. Đầu tiên là thông tin về những bộ phim mà mỗi người dùng đã chọn để xếp
hạng, bất kể giá trị xếp hạng cụ thể (“the binary view”). Điều này đóng vai trò
quyết định trong giải pháp của chúng tôi và phản ánh thực tế rằng các bộ phim
được xếp hạng thì người dùng lựa chọn có chủ ý và không phải là một bộ phim
mẫu ngẫu nhiên.
Đây là một ví dụ trong đó việc chuyển đổi thông tin xếp hạng thành ma trận nhị phân (1
tương ứng với được xếp hạng, 0 tương ứng với không được xếp hạng).
Lọc cộng tác dựa trên user: (“People Like You”)
Một cách tiếp cận để tạo các đề xuất được cá nhân hóa cho user bằng cách sử dụng bộ
lọc cộng tác dựa trên việc tìm kiếm user có sở thích tương tự và đề xuất các mục mà
user thích nhưng chưa mua. Thuật toán có hai bước:
1. Tìm user giống với user mà ta quan tâm (hàng xóm). Điều này được thực hiện
bằng cách so sánh sở thích của user này với sở thích của user khác.
2. Chỉ xem xét các item mà user chưa mua, hãy đề xuất những item được người
hàng xóm ưa thích nhất.
Đây là cách tiếp cận của Amazon “những khách hàng đã mua sản phẩm này cũng đã
mua” (xem hình 1). Nó cũng được sử dụng trong công cụ tìm kiếm Google để tạo liên kết
đến Các trang tương tự được hiển thị gần mỗi kết quả tìm kiếm.
16
Bước 1 yêu cầu chọn cách tính khoảng cách (hoặc độ gần) để đo khoảng cách giữa user
của chúng ta và user khác. Khi khoảng cách được tính toán, chúng ta có thể sử dụng
ngưỡng về khoảng cách hoặc số lượng hàng xóm cần thiết để xác định hàng xóm gần
nhất sẽ được sử dụng trong Bước 2. Cách tiếp cận này được gọi là “user-based top-N
recommendation”.
Một cách tiếp cận hàng xóm gần nhất đo khoảng cách giữa user của chúng ta với từng
user khác trong cơ sở dữ liệu, tương tự như thuật toán KNN. Thước đo khoảng cách
Euclide trong thuật toán đó không thực hiện tốt cho lọc cộng tác như một số biện pháp
khác. Một thước đo khoảng cách phổ biến giữa hai user là mối tương quan Pearson giữa
xếp hạng của họ. Chúng tôi biểu thị xếp hạng của các item 𝐼1 , 𝐼2 , …, 𝐼𝑝 của user 𝑈1 là
𝑟1,1 , 𝑟1,2 , … , 𝑟1,𝑝 và trung bình của các xếp hạng đó là 𝑟̅1 . Tương tự, xếp hạng theo user
𝑈2 là 𝑟2,1 , 𝑟2,2 , …, 𝑟2,𝑝 với giá trị trung bình 𝑟̅2 . Khoảng cách tương quan (correlation
proximity) giữa hai người dùng được xác định bởi:
𝐶𝑜𝑟𝑟(𝑈1 , 𝑈2 ) =
∑(𝑟1,𝑖 − 𝑟̅1 )(𝑟2,𝑖 − 𝑟̅2 )
(1)
√∑(𝑟1,𝑖 − 𝑟̅1 )2 √∑(𝑟2,𝑖 − 𝑟̅2 )2
trong đó các giá trị r chỉ liên quan đến các item được cả hai user xếp hạng.
Để minh họa điều này, chúng ta hãy tính toán mối tương quan giữa khách hàng 30878
và khách hàng 823519 trong Bảng 14.10. Chúng ta sẽ giả định rằng dữ liệu hiển thị trong
bảng là toàn bộ thông tin. Đầu tiên, chúng ta tính toán xếp hạng trung bình của từng
user này:
𝑟̅30878 =
4+1+3+ 3+ 4+5
= 3.333
6
𝑟̅823519 =
3+1+ 4+ 4+5
= 3.4
5
Lưu ý rằng giá trị trung bình được tính trên một số lượng phim khác nhau cho mỗi khách
hàng này, vì mỗi người đánh giá một số bộ phim khác nhau. Trung bình cho một khách
hàng được tính trên tất cả các bộ phim mà khách hàng đánh giá. Nhưng các tính toán
cho mối tương quan chỉ sử dụng các item mà họ cùng xếp hạng. Trong trường hợp này,
mã số phim được đều được xếp hạng là 1, 28 và 30:
17
𝐶𝑜𝑟𝑟 (𝑈30878 , 823519)
(4 − 3.333)(3 − 3,4) + (3 − 3.333)(4 − 3,4) + (4 − 3.333)(5 − 3.4)
=
√(4 − 3.333)2 + (3 − 3.333)2 + (4 − 3.333)2 √(3 − 3,4)2 + (4 − 3,4)2 + (5 − 3.4)2
0.6
=
= 0.34
1.75
Cách tiếp cận tương tự có thể được sử dụng khi dữ liệu ở dạng ma trận nhị phân (mua
hoặc không mua).
Một biện pháp phổ biến khác là một biến thể của mối tương quan Pearson được gọi là
độ tương đồng cosine (cosine similarity). Nó khác với công thức tương quan bằng cách
không trừ giá trị trung bình. Trừ đi giá trị trung bình trong công thức tương quan sẽ điều
chỉnh cho người dùng thay đổi cách tiếp cận tổng thể khác nhau để đánh giá xếp hạng,
ví dụ, một khách hàng luôn đánh giá cao so với người có xu hướng luôn xếp hạng thấp.
Ví dụ: Độ tương đồng cosin giữa hai khách hàng Netflix là:
𝐶𝑜𝑠 𝑆𝑖𝑚(𝑈30878 , 𝑈823519 ) =
4×3+3×4+4×5
√42 + 32 + 42 √33 + 42 + 52
=
44
= 0.972
45.277
Lưu ý rằng khi dữ liệu ở dạng ma trận nhị phân (khi mua hoặc không mua), độ tương tự
cosine phải được tính trên tất cả các item mà user đã mua; không thể chỉ giới hạn ở
những item được mua chung.
Lọc cộng tác cam chịu một điều được gọi là “cold start”: không thể sử dụng nó để tạo
đề xuất cho người dùng mới hoặc các mặt hàng mới. Đối với user đã xếp hạng một
item duy nhất, hệ số tương quan giữa user này và user khác sẽ có mẫu số bằng 0 và
độ tương đồng cosin sẽ là 1 bất kể xếp hạng. Theo cách tương tự, user chỉ có một
item và các item chỉ có một user, không đủ điều kiện làm ứng cử viên cho hàng xóm
lân cận.
Đối với người dùng mà ta quan tâm, chúng ta tính toán sự tương đồng của người đó với
từng user trong cơ sở dữ liệu của chúng ta bằng cách sử dụng mối tương quan, độ
tương đồng cosine hoặc một biện pháp khác. Sau đó, ở Bước 2, chúng ta chỉ xem xét k
user gần nhất và trong số tất cả các item khác mà họ đã xếp hạng hoặc mua, chúng ta
chọn item tốt nhất và giới thiệu nó cho user của chúng ta. Item tốt nhất là gì? Đối với dữ
liệu mua nhị phân, nó là item được mua nhiều nhất. Đối với dữ liệu xếp hạng, nó có thể
được xếp hạng cao nhất, được đánh giá cao nhất hoặc tổng có trọng số của cả hai.
18
Cách tiếp cận hàng xóm gần nhất có thể tốn kém về mặt tính toán khi chúng ta có một
cơ sở dữ liệu lớn về user. Một giải pháp là sử dụng các phương pháp phân cụm để nhóm
user thành các cụm đồng nhất theo sở thích của họ và sau đó để đo khoảng cách giữa
user của chúng ta với từng cụm. Cách tiếp cận này đặt tải tính toán vào bước phân cụm
có thể diễn ra sớm hơn; sau đó tiết kiệm (và nhanh hơn) để so sánh user của chúng ta
với từng cụm trong thời gian thực. Tuy nhiên biện pháp phân cụm này có nhược điểm là
các khuyến nghị ít chính xác hơn, bởi vì không phải tất cả các thành viên của cụm gần
nhất đều giống với user của chúng ta nhất.
Lọc cộng tác dựa trên item
Khi số lượng user lớn hơn nhiều so với số lượng item, sẽ tiết kiệm hơn về mặt tính toán
(và nhanh hơn) để tìm các item tương tự thay vì tìm user tương tự. Cụ thể, khi user thể
hiện sự quan tâm đến một item cụ thể, thuật toán lọc cộng tác dựa trên item có hai
bước:
1. Tìm các item được đồng xếp hạng hoặc đồng mua, (bởi bất kỳ người dùng nào)
với item mà ta đang quan tâm.
2. Đề xuất (các) item phổ biến nhất hoặc tương quan trong số các item tương tự.
Sự tương đồng bây giờ được tính toán giữa các item, thay vì user. Ví dụ: trong mẫu
Netflix nhỏ của chúng tôi (Bảng 10), mối tương quan giữa phim 1 (với trung bình 𝑟̅1 =
3.7) và phim 5 (với trung bình 𝑟̅5 = 3) là:
𝐶𝑜𝑟𝑟 (𝐼1 , 𝐼5 ) =
(4 − 3.7)(1 − 3) + (4 − 3,7)(5 − 3)
√(4 − 3.7)2 + (1 − 3)2 √(1 − 3)2 + (5 − 3)2
=0
Sự tương quan bằng không là do hai xếp hạng ngược nhau của phim 5 bởi những user.
Một người dùng đánh giá nó 5 sao và người kia cho nó 1 sao.
Theo cách tương tự, chúng ta có thể tính toán sự giống nhau giữa tất cả các bộ phim.
Điều này có thể được thực hiện ngoại tuyến. Trong thời gian thực, đối với user đánh giá
cao một bộ phim nhất định, chúng ta có thể tra cứu bảng tương quan phim và đề xuất
phim có tương quan tích cực cao nhất với phim mới được xếp hạng của user.
Theo một báo cáo công nghiệp của các nhà nghiên cứu đã phát triển hệ thống khuyến
nghị từng item trên Amazon:
“Thuật toán [dựa trên vật phẩm] tạo ra các đề xuất trong thời gian thực, chia tỷ lệ
thành các tập dữ liệu lớn và tạo các đề xuất chất lượng cao.”
Nhược điểm của các đề xuất dựa trên item là có ít sự đa dạng hơn giữa các item (so với
khẩu vị của người dùng), và do đó, các khuyến nghị thường rõ ràng.
19
Bảng 11 và 12 hiển thị mã Python để lọc cộng tác trên dữ liệu mô phỏng tương tự dữ
liệu Netflix bằng gói Surprise.
Bảng 5: Lọc cộng tác trong Python
20
Bảng 6: Lọc cộng tác trong Pyhton
Ưu điểm và nhược điểm của lọc cộng tác
Lọc cộng tác phụ thuộc vào sự sẵn có của thông tin chủ quan liên quan đến sở thích của
user. Nó cung cấp các đề xuất hữu ích, nếu cơ sở dữ liệu của chúng ta chứa đủ user
tương tự (không nhất thiết là nhiều, nhưng ít nhất là một vài user), để mỗi user có thể
21
tìm thấy người user có cùng sở thích. Tương tự, dữ liệu phải chứa đủ xếp hạng cho mỗi
item hoặc mua. Do đó, một hạn chế của lọc cộng tác là nó không thể tạo đề xuất cho
user mới cũng như cho các item mới. Có nhiều cách tiếp cận khác nhau để giải quyết
thách thức này.
Lọc cộng tác dựa trên user tìm kiếm sự tương đồng về các mặt hàng được đánh giá cao
hoặc ưa thích. Tuy nhiên, nó là mù với dữ liệu về các mục thấp hoặc không mong muốn.
Do đó, chúng tôi không thể mong đợi sử dụng nó để để phát hiện các mặt hàng không
mong muốn.
Lọc cộng tác dựa trên user giúp tận dụng sự tương đồng giữa sở thích của mọi người để
cung cấp các đề xuất được cá nhân hóa. Tuy nhiên, khi số lượng user trở nên rất lớn,
việc lọc cộng tác trở nên khó khăn về mặt tính toán. Các giải pháp bao gồm các thuật
toán dựa trên item, phân nhóm người dùng và giảm kích thước. Phương pháp giảm kích
thước phổ biến nhất được sử dụng trong các trường hợp như vậy là phân rã giá trị số ít
(singular value decomposition (SVD)), một hình thức phân tích thành phần chính vượt
trội về mặt tính toán.
Mặc dù thuật ngữ “dự đoán” thường được sử dụng để mô tả đầu ra của bộ lọc cộng tác,
nhưng phương pháp này không được giám sát bởi bản chất. Nó có thể được sử dụng để
tạo xếp hạng dự đoán hoặc chỉ dẫn mua hàng cho người dùng, nhưng thông thường
chúng tôi không có giá trị kết quả trong thực tế. Một cách quan trọng để cải thiện các đề
xuất được tạo bởi bộ lọc cộng tác là nhận phản hồi của người dùng. Sau khi đề xuất
được tạo, người dùng có thể cho biết liệu đề xuất đó có đầy đủ hay không. Vì lý do này,
nhiều hệ thống đề xuất người dùng cung cấp phản hồi về các khuyến nghị.
Lọc Cộng Tác và Luật Kết Hợp
Mặc dù luật kết hợp và lọc cộng tác đều là các phương thức không giám sát được sử
dụng để tạo đề xuất, chúng khác nhau theo nhiều cách:
Các mục thường xuyên so với các đề xuất được cá nhân hóa: Luật kết hợp tìm
kiếm các kết hợp mục thường xuyên và sẽ chỉ cung cấp các đề xuất cho các mục
đó. Ngược lại, lọc cộng tác cung cấp các đề xuất được cá nhân hóa cho mọi mục,
từ đó phục vụ cho người dùng có sở thích khác thường. Theo nghĩa này, lọc cộng
tác rất hữu ích để nắm bắt phần “long tail” của sở thích người dùng, trong khi các
quy tắc kết hợp tìm kiếm phần “head”. Sự khác biệt này có ý nghĩa đối với dữ liệu
cần thiết: luật kết hợp yêu cầu dữ liệu trên một số lượng rất lớn (giao dịch) để
tìm đủ số lượng tập có chứa các kết hợp nhất định của các hạng mục. Ngược lại,
lọc cộng tác không yêu cầu nhiều, nhưng yêu cầu dữ liệu về càng nhiều mặt hàng
càng tốt cho nhiều người dùng. Ngoài ra, quy tắc kết hợp hoạt động ở cấp độ
22
giao dịch (cơ sở dữ liệu của chúng ta có thể bao gồm nhiều giao dịch cho mỗi
người dùng), trong khi lọc cộng tác hoạt động ở cấp độ người dùng.
Bởi vì luật kết hợp tạo ra sự chung đồng giữa các mặt hàng, các luật cá nhân (các
đề xuất dựa trên liên kết của Amazon “Frequently Bought Together” hiển thị các
đề xuất tương tự cho tất cả người dùng đang tìm kiếm một mặt hàng cụ thể),
chúng có thể được sử dụng để đặt các chiến lược chung như đặt sản phẩm trong
cửa hàng hoặc giải trình tự các xét nghiệm chẩn đoán trong bệnh viện. Ngược lại,
lọc cộng tác tạo ra các đề xuất dành riêng cho người dùng (ví dụ: hệ thống của
Amazon “Customers Who Bought This Item Also Bought…”) và do đó nó là một
công cụ được thiết kế để cá nhân hóa.
Dữ liệu giao dịch so với dữ liệu người dùng: Các luật kết hợp cung cấp các đề xuất
về các mặt hàng dựa trên việc họ mua cùng với các mặt hàng khác trong nhiều
giao dịch. Ngược lại, lọc cộng tác cung cấp các đề xuất về các mặt hàng dựa trên
việc mua hoặc cùng xếp hạng của chúng bởi một số lượng nhỏ người dùng khác.
Việc xem xét các giao dịch riêng biệt rất hữu ích khi các mặt hàng tương tự được
mua đi mua lại (ví dụ: trong mua sắm tạp hóa). Việc xem xét người dùng riêng
biệt rất hữu ích khi mỗi mặt hàng thường được mua / xếp hạng một lần (ví dụ:
mua sách, nhạc và phim).
Dữ liệu nhị phân và dữ liệu xếp hạng: Luật kết hợp coi các mục là dữ liệu nhị phân
(1 = mua, 0 = không mua), trong khi lọc cộng tác có thể hoạt động trên dữ liệu nhị
phân hoặc xếp hạng số.
Hai hoặc nhiều mục: Trong luật kết hợp, tiền đề và hệ quả có thể bao gồm một
hoặc nhiều mục (ví dụ: “IF sữa THEN cookie và bánh bột ngô”). Do đó, một đề
xuất có thể là một gói các mặt hàng được quan tâm với nhiều mặt hàng (Mua
sữa, bánh quy, và bánh ngô và nhận 10% giảm giá đối với nhau). Ngược lại, trong
lọc cộng tác, độ tương tự được đo giữa các cặp mục hoặc cặp người dùng. Do đó,
một đề xuất sẽ dành cho một mặt hàng (mặt hàng phổ biến nhất được mua bởi
những người như bạn, mà bạn chưa mua) hoặc cho nhiều mặt hàng không nhất
thiết liên quan đến nhau (hai mặt hàng phổ biến nhất được mua bởi những người
như bạn, mà bạn chưa mua).
Những khác biệt này là sắc nét hơn trong mua hàng và đề xuất các mặt hàng không phổ
biến, đặc biệt là khi so sánh luật kết hợp với lọc cộng tác dựa trên người dùng. Khi xem
xét những gì nên giới thiệu cho người dùng đã mua một mặt hàng phổ biến, sau đó luật
kết hợp và lọc cộng tác dựa trên mặt hàng có thể mang lại cùng một đề xuất cho một
mặt hàng. Nhưng một khuyến nghị dựa trên người dùng sẽ có khả năng khác nhau. Hãy
23
xem xét một khách hàng mua sữa mỗi tuần cũng như các sản phẩm không chứa gluten
(hiếm khi được mua bởi các khách hàng khác). Giả sử sử dụng luật kết hợp trên cơ sở dữ
liệu giao dịch, chúng tôi xác định luật “IF sữa THEN bánh quy”. Sau đó, lần sau khi khách
hàng của chúng tôi mua sữa, họ sẽ nhận được đề xuất (ví dụ: phiếu giảm giá) để mua
bánh quy, cho dù người đó có mua bánh quy hay không, và không phân biệt được sản
phẩm định mua (sản phẩm không có gluten). Trong lọc cộng tác dựa trên vật phẩm,
chúng tôi sẽ xem xét tất cả các mặt hàng được mua cùng với sữa trên tất cả người dùng
và đề xuất mặt hàng phổ biến nhất trong số đó (không được khách hàng của chúng tôi
mua). Điều này cũng có thể dẫn đến một đề xuất về bánh quy, bởi vì mặt hàng này
không được khách hàng của chúng tôi mua. Bây giờ hãy xem xét việc lọc cộng tác dựa
trên người dùng. Tìm kiếm lọc cộng tác dựa trên người dùng cho các khách hàng tương
tự, những người đã mua cùng một bộ vật phẩm, sau đó giới thiệu mặt hàng được mua
bởi những người hàng xóm mà khách hàng của chúng tôi không mua. Do đó, đề xuất
dựa trên người dùng không thể đề xuất bánh quy và nhiều khả năng đề xuất các mặt
hàng không chứa gluten phổ biến mà khách hàng chưa mua.
3. Tóm lược
Luật kết hợp (còn được gọi là phân tích giỏ hàng) và lọc cộng tác là các phương pháp
không được giám sát để suy ra mối liên hệ giữa các mặt hàng đã mua từ cơ sở dữ liệu
của các giao dịch. Luật kết hợp tìm kiếm các luật chung về các mặt hàng được mua cùng
nhau. Ưu điểm chính của phương pháp này là nó tạo ra các quy tắc đơn giản, rõ ràng
của mẫu “IF X được mua, THEN Y cũng có khả năng được mua”. Phương pháp này rất
minh bạch và dễ hiểu.
Quá trình tạo luật kết hợp là hai giai đoạn. Đầu tiên, một tập hợp các luật kết hợp ứng
cử viên dựa trên các mục thường xuyên được tạo ra (thuật toán Apriori là thuật toán
tạo luật kết hợp phổ biến nhất). Sau đó, từ các luật kết hợp ứng cử viên này, các luật có
mối liên kết mạnh nhất giữa các mục được chọn. Chúng ta sử dụng các đại lượng độ hỗ
trợ và độ tin cậy để đánh giá sự chắc chắn trong một luật kết hợp. Người dùng cũng chỉ
định các giá trị độ tin cậy và độ hỗ trợ tối thiểu sẽ được sử dụng trong quá trình lựa
chọn và tạo quy tắc. Một biện pháp thứ ba, tỷ lệ nâng, so sánh hiệu quả của quy tắc để
phát hiện mối liên hệ thực sự so với sự kết hợp ngẫu nhiên.
Một thiếu sót của các luật kết hợp là sự đa dạng các luật được tạo ra. Do đó, cần có
những cách để giảm điều này thành một tập hợp nhỏ các luật hữu ích và mạnh mẽ. Một
phương pháp không tự động quan trọng để cô đọng thông tin liên quan đến việc kiểm
tra các luật cho các luật không chính xác và tầm thường cũng như các luật có chung sự
hỗ trợ. Một vấn đề khác cần được ghi nhớ là các kết hợp hiếm có xu hướng bị bỏ qua, vì
chúng không đáp ứng yêu cầu hỗ trợ tối thiểu. Vì lý do này, tốt hơn là có các tập mục
24
gần như thường xuyên trong dữ liệu. Điều này có thể đạt được bằng cách sử dụng hệ
thống phân cấp cao hơn làm các mục. Một ví dụ là sử dụng các loại sách thay vì tên sách
riêng lẻ để lấy quy tắc kết hợp từ cơ sở dữ liệu của các giao dịch tại cửa hàng sách
Lọc cộng tác là một kỹ thuật phổ biến được sử dụng trong các hệ thống đề xuất trực
tuyến. Nó dựa trên mối quan hệ giữa các mặt hàng được hình thành bởi những người
dùng có hành động tương tự trên một mặt hàng, chẳng hạn như mua hoặc xếp hạng
một mặt hàng cao. Lọc cộng tác dựa trên người dùng hoạt động dựa trên dữ liệu trên
các kết hợp user-item, tính toán sự tương đồng giữa người dùng và cung cấp các đề
xuất được cá nhân hóa cho người dùng. Một thành phần quan trọng cho sự thành công
của lọc cộng tác là người dùng cung cấp phản hồi về các đề xuất được cung cấp và có đủ
thông tin về từng mục. Một nhược điểm của phương pháp lọc cộng tác là chúng không
thể tạo đề xuất cho người dùng mới hoặc các mục mới. Ngoài ra, với số lượng người
dùng khổng lồ, việc lọc cộng tác dựa trên người dùng trở nên khó khăn về mặt tính toán
và các phương án như phương pháp dựa trên vật phẩm hoặc giảm kích thước được sử
dụng phổ biến.
25
Download