Trong phần này, luận văn sẽ giới thiệu khái quát mô hình chung thuật toán và sau đó chi tiết từng phần sẽ được trình bày cụ thể ở các phần tiếp theo.
Hình 3.4 Mô hình hoạt động thuật toán
Thuật toán sẽ được chia thành 3 bước chính. Bước đầu tiên cần làm là chọn ra đặc trưng quan trọng và từ đó xây dựng lên vector biểu diễn cho từng sản phẩm, sau khi có một tập các vector hay còn gọi là ma trận vector, thuật toán thay vì sử dụng luôn các công thức so sánh để trả về kết quả gợi ý, thì ma trận này sẽ được đưa vào một mô hình phân cụm GMM để tìm ra các cụm riêng biệt, nơi mà các sản phẩm có xu hướng giống nhau về đặc trưng vector sẽ được chọn. Tại bước cuối cùng để trả về kết quả gợi ý, đối với mỗi sản phẩm truy vấn (hay sản phẩm khách hàng đang xem), thuật toán sẽ tìm giá trị cụm tương ứng của sản phẩm đó và coi nó như là trung tâm của cụm và áp dụng công thức tính toán độ tương đồng (sẽ được trình bày ở các phần tiếp theo).
Như đã đề cập ở mục dữ liệu, nhiệm vụ của thuật toán là cần phải trả về những sản phẩm rượu có mùi vị tương đồng nhất với một sản phẩm mà khách hàng đang xem, tính toán dựa vào chọn lọc các thuộc tính quan trọng trong 19 thuộc tính của
sản phẩm. Trong đó, theo gợi ý từ các chuyên gia rượu cung cấp, 6 chỉ số mùi vị và tags mùi vị là những tác nhân chính ảnh hưởng trực tiếp đến kết quả cả về độ chính xác và tính giác quan của các sản phẩm rượu được gợi ý. Vì vậy, thuật toán chỉ chọn 6 chỉ số mùi vị và tags mùi vị để phục vụ cho quá trình thiết kế và tính toán. Tỉ lệ giống nhau về phân phối 6 chỉ số này sẽ tỉ lệ thuận với độ chính xác kết quả gợi ý cho người dùng. Dựa trên nguyên lý này, thuật toán đề xuất một phương pháp tận dụng sự tương đồng trong phân phối của dữ liệu để tăng cường độ chính xác của kết quả trả về.
Cụ thể thuật toán khi được áp dụng với các đặc trưng đã được chọn được trình bày như sau: thay vì sử dụng các vector 6 chiều để tính toán độ tương đồng bằng các công thức Cosine hay Euclidean, thuật toán trước tiên sử dụng GMM để phân cụm tất cả các bản ghi thành K={1, 2, 3, ..., k} cụm riêng biệt, sau đó sắp xếp kết quả ở mỗi nhóm với từng bản ghi ở từng nhóm và trả về top m sản phẩm tương đồng, điều này không chỉ giúp phân vùng từng sản phẩm để tính toán hiệu quả mà còn làm tăng khả năng tính toán của toàn bộ thuật toán ở bước tiếp theo. Để sắp xếp top m này, như đã đề cập chúng ta hoàn toàn có thể sử dụng các công thức tính độ tương đồng phổ biến như Cosine hoặc Euclidean, tuy nhiên, tận dụng lợi thế về phân phối của đặc trưng để thu được kết quả tốt hơn, thuật toán sẽ sử dụng một công thức tính trọng số giữa các phân phối của hai vector tuân theo phân phối Gaussian. Mô hình hoạt động của mô hình thuật toán được hiển thị ở Hình 3.4.
3.2.1 Tiền xử lý dữ liệu
Thực tế chỉ ra rằng, khai thác dữ liệu văn bản (text mining) là vô cùng quan trọng trong mọi bài toán liên quan đến văn bản, và thuật toán CB không phải là một ngoại lệ. Cụ thể, các kỹ thuật tiền xử lý được áp dụng trên các thuộc tính bộ dữ liệu như sau:
Như đã đề cập ở mục thiết kế thuật toán 3.2, thuật toán chỉ chọn tags mùi vị và 6 chỉ số mùi vị như là các đặc trưng chính cho việc tính toán mức độ tương đồng giữa các sản phẩm. Trong đó, tags mùi vị là một tập các văn bản được viết bằng tiếng Nhật và cần được làm sạch và cấu trúc lại trước khi đưa vào mô hình tính toán.
Thuật toán chuyển đổi 6 chỉ số mùi vị thành số thực, và cần thực hiện một số thuật toán làm sạch và cấu trúc lại cho dữ liệu văn bản như tokenization, stemmings,
stop word removal, tìm và thay thế từ đồng nghĩa, lemmatization, ...[2, 28] trước khi sử dụng. Trong đó, trường chỉ số tags mùi vị đã được tách thành các từ có nghĩa, vì vậy, thuậ toán có thể bỏ qua bước tokenization và thực hiện các bước tiếp theo.
3.2.2 Phân cụm
Theo cách thông thường và phổ biến, các thuật toán CB cổ điển sẽ xây dựng một vector biểu diễn cho các thuộc tính được chọn của từng loại rượu, rồi tận dụng các công thức so sánh độ tương đồng như Cosine hoặc Euclidean để sắp xếp và trả về top m kết quả. Tuy nhiên, phần lớn trong điều kiện thực tế, các trường văn bản đôi khi không chính xác, có nhiều nhiễu, bị ảnh hưởng lớn bởi các yếu tố ngoại lai, dẫn đến ảnh hưỏng không tốt đến kết quả cuối cùng. Đặc biệt hơn nếu áp dụng công thức so sánh trên toàn bộ tập dữ liệu sẽ làm giảm hiệu suất và tốc độ xử lý của toàn bộ thuật toán, nhất là trong điều kiện bộ dữ liệu lớn. Thêm nữa, có một vấn đề không dễ dàng có thể nhận thấy được là, luôn luôn có sự bù nhau giữa các thuộc tính nếu ta sử dụng các thuật toán so sánh khoảng cách để đo sự tương đồng nhau giữa các vectors. Cụ thể hơn trong bộ dữ liệu rượu ở mục 3.1 đó là sự không đồng đều giữa 6 chỉ số mùi vị của kết quả trả về, điều này đã được lấy ví dụ ở Chương 1, hình 1.2.
Do đó, để giải quyết vấn đề hiệu suất và giảm tác động của các từ khoá trong văn bản lên kết quả đầu ra (cụ thể là thuộc tính tags mùi vị), thuật toán sẽ ưu tiên tính toán trên 6 chỉ số mùi vị, bằng cách quyết định nhóm tất cả các sản phẩm dựa theo phân phối của 6 chỉ số mùi vị thành các nhóm riêng biệt để đảm bảo những sản phẩm có cùng phân phối 6 chỉ số này sẽ ở cùng nhóm với nhau, làm tiền đề cho việc sắp xếp kết quả ở giai đoạn tiếp theo. Nếu không thống nhất việc chọn đặc trưng của các sản phẩm để phân cụm dựa theo phân phối của thuộc tính thì sẽ dễ bị chi phối bởi rất nhiều những thông tin nhiễu, giảm độ chính xác dẫn đến khó ứng dụng trong các thuật toán khuyến nghị. Tham khảo hình 3.5 mô phỏng hoá các sản phẩm sau khi được phân cụm.
Hình 3.5 Trực quan hoá GMM
3.2.3 Thuật toán sắp xếp
Sau khi phân cụm ở bước 3.4, giả sử thuật toán thu được K={1, 2, …, k} cụm riêng biệt, và không có phần tử nào đồng thời thuộc về 2 cụm khác nhau. Để trả về kết quả gợi ý cho các sản phẩm truy vấn, nhiệm vụ cần làm là áp dụng một thuật toán sắp xếp lên các cụm nơi các sản phẩm truy vấn được tìm ra từ mô hình huấn luyện GMM.
Trong bài toán gợi ý về rượu, luận văn lựa chọn 6 chỉ số về mùi vị và tags mùi vị là những đặc trưng chính. Vì tính chất dữ liệu là khác nhau, nên thuật toán sắp xếp sẽ được thiết kế thành 2 phần riêng biệt, mỗi phần được áp dụng cho một loại dữ liệu để phát huy tối đa khả năng ở bước này. Đối với 6 chỉ số mùi vị, có thể nhận thấy chúng tuân theo phân phối Gaussian, tận dụng lợi thế này đồng thời dựa trên nguyên lý của hàm Gaussian Filter để tạo ra một công thức tính trọng số giữa các dãy 6 chỉ số mùi vị trong cụm. Còn đối với tags mùi vị, công thức so sánh độ tương đồng sẽ dựa trên khoảng cách Levenshtein (LD) giữa 2 chuỗi.
3.2.3.1. Độ tương đồng trong phân phối với GFF
Giả sử mỗi sản phẩm truy vấn sẽ là trung tâm của mỗi cụm mà thuật toán phân cụm trả về. Đối với 6 chỉ số mùi vị, công thức GFF được định nghĩa như sau:
𝐺%/K𝑓$/, 𝑓./N = exp −K𝑓$/ − 𝑓./N " 2𝜎%/"
(3.1)
trong đó, Gkl(fil, fjl) được xem xét như một hàm tính trọng số giữa từng cặp giá trị thứ l trong 6 chỉ số mùi vị của 2 sản phẩm khác nhau (i, j) trong cụm k, l = {1,2,3, ..., 6}, và 𝜎kl là độ lệch chuẩn của giá trị chỉ số f thứ l trong cụm k, công thức 𝜎kl được định nghĩa như sau:
𝜎%/ = ^∑ (𝑓$/%− 𝜇)" #&
$&!
𝑛% − 1
(3.2)
trong đó, nk là số lượng các sản phẩm thuộc cụm k, filk là giá trị thứ l của f trong 6 chỉ số mùi vị của sản phẩm thứ i trong cụm k, μ là giá trị trung bình thuộc tính fl
trong nhóm k. Thuật toán sẽ tính 6 lượt cho từng chỉ số f trong 6 chỉ số mùi vị cho mỗi cặp sản phẩm trên toàn bộ sản phẩm trong một cụm, rồi sắp xếp theo thứ tự giảm dần để tìm được kết quả tốt nhất.
3.2.3.2. Độ tương đồng chuỗi với LD
Các tags mùi vị cũng đóng vai trò khá quan trọng ở kết quả đầu ra, vì vậy có thể coi chỉ số này có mức độ và vai trò tương tự như một trong 6 chỉ số mùi vị. Để tính toán và so sánh mức độ giống nhau giữa 2 giá trị tags của 2 sản phẩm, luận văn sử dụng LD để giải quyết vấn đề này [15]. Trong thực nghiệm, khoảng cách Levenshtein leva,b(i, j) được sử dụng như một hệ số chuỗi đo đạc sự khác nhau giữa hai chuỗi tags mùi vị. Công thức của LD được định nghĩa như sau:
𝑙𝑒𝑣4,5(𝑖, 𝑗) = ⎩ ⎪ ⎨ ⎪ ⎧ max(𝑖, 𝑗) , 𝑛ế𝑢 min(𝑖, 𝑗) = 0 min = m 𝑙𝑒𝑣4,5(𝑖 − 1, 𝑗) + 1 𝑙𝑒𝑣4,5(𝑖, 𝑗 − 1) + 1, 𝑛𝑔ượ𝑐 𝑙ạ𝑖 𝑙𝑒𝑣4,5(𝑖 − 1, 𝑗 − 1) + 14'#5( (3.3)
Trong đó, a và b là 2 chuỗi tag cần được tính toán LD. leva,b(i, j) là khoảng cách giữa kí tự i đầu tiên của tag a và kí tự j đầu tiên của tag b.
3.2.3.3. Công thức sắp xếp tổng hợp
Kết hợp hàm tính trọng số cho 6 chỉ số mùi vị và hàm so sánh tags mùi vị bởi LD, luận văn thiết lập một công thức cho việc sắp xếp kết quả đầu ra như sau:
𝑆(𝑖, 𝑗) = .(. 𝐺%/(𝑖, 𝑗) + 𝑙𝑒𝑣7489(𝑖, 𝑗) : /&! ) ; %&! (3.4)
trong đó, Gkl là hàm tính trọng số Gaussian Filter trong công thức (3.1) tương ứng với chỉ số thứ lth trong 6 chỉ số mùi vị rượu giữa sản phẩm i và sản phẩm j trong cụm k (k= {1, ..., K}K cụm), levtags(i, j) là hàm Levenshtein để so sánh mức độ tương đồng giữa các chỉ số tags của hai sản phẩm.
Thông qua thực nghiệm có thể chỉ ra rằng, giá trị S(i, j) giữa 2 vector càng lớn, càng có sự giống nhau giữa 2 sản phẩm được so sánh. Vì vậy, thuật toán sẽ sắp xếp theo thứ tự giảm dần của tất cả sản phẩm trong từng cụm và trả về top m sản phẩm giống nhất với mỗi sản phẩm trong từng cụm.
3.2.4 Giả mã
Để rõ ràng, tường minh hơn, luận văn đưa ra tiến trình xử lý thuật toán đề xuất dưới dạng giả mã để người đọc dễ dàng hiểu và hình dung hơn về toàn bộ thuật toán đề xuất đã được trình bày ở các phần trên. Hãy xem mô hình giả mã sau:
Thuật toán: Thuật toán đề xuất Đầu vào: Số cụm k
Đầu ra: Top m sản phẩm tương tự nhau của mỗi sản phẩm
Dữ liệu: Bộ dữ liệu L
1. Tiền xử lý dữ liệu cho các trường văn bản
2. Xây dựng ma trận vector 6 chiều đại diện cho 6 chỉ số mùi vị (f1-f6)
3. Lấy ma trận này như là đầu vào cho GMM để phục vụ cho quá trình huấn luyện và lưu giá trị cụm tương ứng cho mỗi sản phẩm vào bộ dữ liệu.
4. For item in dataset do:
- Lấy ra số cụm của sản phẩm
- Tìm tất cả những sản phẩm có cùng số cụm với sản phẩm truy vấn
- Áp dụng công thức (3.4) để tính S(i,j) cho mỗi cặp sản phẩm
- Trả về top m sản phẩm tương tự bằng cách sắp xếp theo thứ tự giảm dần
End.
3.3. Khả năng ứng dụng trong thực tế
Thực tế, thuật toán này đang được sử dụng để giải quyết cho một hệ thống gợi ý rượu cho một công ty lớn (Asian Frontier) tại Nhật Bản. Dựa trên kết quả thực nghiệm so sánh với các thuật toán CB phổ biến, mạnh mẽ khác, thuật toán này không chỉ tốt hơn về chỉ số mùi vị trên kết quả trả về mà còn có khả năng xử lý, phản hồi người dùng nhanh hơn, đáp ứng hoàn toàn điều kiện cho một ứng dụng thời gian thực. Đặc biệt, thời gian được yêu cầu cho việc huấn luyện định kì cho thuật toán sau một khoảng thời gian các sản phẩm mới được thêm vào là nhanh, và không đáng kể so với các mô hình huấn luyện học sâu hiện tại.
Đặc biệt, thuật toán hoàn toàn có thể ứng dụng và áp dụng cho một bộ dữ liệu khác với nhiều hơn hoặc ít hơn 6 thuộc tính có cùng đặc tính về phân phối về dữ liệu so với bộ dữ liệu được trình bày trong luận văn này.
3.4. Kết chương
Trong chương 3, luận văn đã đưa ra mô hình hoạt động tổng quát và trình bày chi tiết các bước thuật toán trên các đặc trưng của bộ dữ liệu. Với mỗi bước thuật toán, luận văn cũng chỉ ra lý do và các ưu điểm đạt được khi thực hiện. Trên bộ dữ liệu thực nghiệm, thuật toán CB đề xuất dựa trên GMM và GFF đã chứng minh tính hiệu quả trên lý thuyết đối với các đặc trưng phân phối của bộ sản phẩm gợi ý, và giúp giảm sự phụ thuộc của các thuật toán CB trên dạng dữ liệu văn bản. Thuật toán hoàn toàn có thể áp dụng trên một bộ dữ liệu khác có tương tự về đặc trưng phân phối đối với bộ dữ liệu đã được trình bày ở mục 3.1
Cho đến hiện tại, thuật toán đã có được 2 công bố quan trọng (1 tại tạp chí uy tín
Applied Intelligence (Q1) và 1 tại hội nghị ICCCI (C) – oral paper) sau những cải tiến.
Tiếp đến trong chương tiếp theo, các kịch bản thực nghiệm sẽ được đưa ra để chứng minh tính mạnh mẽ của thuật toán so với các thuật toán CB phổ biến đã công bố đối với dạng đặc trưng phân phối trên bộ dữ liệu thực nghiệm.
Chương 4. Thực nghiệm
Trong chương này, luận văn sẽ trình bày chi tiết kịch bản các thực nghiệm bao gồm: thuật toán đề xuất, 3 thuật toán CB phổ biến: BOW+GFF, W2V+GFF và GMM+ED sử dụng các công thức so sánh độ tương đồng khác nhau: GFF, ED. Các kết quả thực nghiệm sẽ được tổng hợp, phân tích và so sánh để chứng minh độ hiệu quả và mạnh mẽ của thuật toán khuyến nghị đề xuất (GMM+GFF) so với các thuật toán CB còn lại đối với bài toán khuyến nghị phân phối. Trong đó, môi trường thực nghiệm sẽ được đưa ra trong mục 4.1, phương pháp đánh giá ở mục 4.2, kết quả và đánh giá thực nghiệm sẽ được trình bày lần lượt ở mục 4.3 và 4.4.