Phép đánh giá P

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng học máy trong hệ gợi ý (Trang 27)

Để kiểm tra năng lực của một thuật toán ML, chúng ta cần phải thiết kế các phép đánh giá có thể đo đạc được kết quả.

Thông thường, khi thực hiện một thuật toán ML, dữ liệu sẽ được chia thành hai phần riêng biệt: tập huấn luyện (training set) và tập kiểm thử (test set). Tập huấn luyện sẽ được dùng để tìm các tham số mô hình. Tập kiểm thử được dùng để đánh giá năng lực của mô hình tìm được. Có một điểm cần lưu ý rằng khi tìm các tham số mô hình, ta chỉ được dùng các thông tin trong tập huấn luyện. Việc đánh giá có thể được áp dụng lên cả hai tập hợp. Muốn mô hình thực hiện tốt trên tập kiểm thử thì nó trước hết phải hoạt động tốt trên tập huấn luyện.

Ranh giới giữa tập huấn luyện và tập kiểm thử đôi khi không rõ ràng. Các thuật toán thực tế liên tục được cập nhật dựa trên dữ liệu mới thêm vào, các thuật toán này được gọi là online learning hoặc online training. Phần dữ liệu mới này ban đầu không được hệ thống sử dụng để xây dựng mô hình, nhưng về sau có thể được mô hình sử dụng để cải tiến. Ngược vớionline learning làoffline learning, ở đó hệ thống xây dựng mô hình một lần dựa trên một tập chính là tập huấn luyện. Các điểm dữ liệu không được dùng trong quá trình xây dựng hệ thống được coi là tập kiểm thử. Trong cuốn sách này, khi không đề cập gì thêm, các thuật toán được ngầm hiểu là offline learning, trong đótraining set là tập hợp được dùng để xây dựng mô hình ban đầu, test set là tập hợp được dùng để đánh giá hiệu quả của mô hình được xây dựng đó.

1.2.1.3 Kinh nghiệm E

Việc huấn luyện các mô hình ML có thể coi là việc cho chúng trải nghiệm trên các tập dữ liệu (dataset)– chính là training set. Các tập dữ liệu khác nhau sẽ cho các mô hình các trải nghiệm khác nhau. Chất lượng của các tập dữ liệu này cũng ảnh hưởng tới hiệu năng của mô hình.

Dựa trên tính chất của các tập dữ liệu, các thuật toán ML có thể phân loại thành hai nhóm chính là học không giám sát (UL) và học có giám sát (SL).

1.2.2 Các phương pháp học máy

1.2.2.1 Học có giám sát

SL là thuật toán dự đoán đầu ra của một hoặc nhiều dữ liệu mới dựa trên các cặp (đầu vào, đầu ra) đã biết từ trước. SL là nhóm phổ biến nhất trong các thuật toán ML.

Một cách toán học, SL là khi chúng ra có một tập hợp biến đầu vào [x =

{x1, x2, ..., xN} và một tập hợp đầu ra tương ứng [Y = {y1, y2, ..., yN}, trong đó

xi, yi là các vector. Các cặp dữ liệu biết trước (xi, yi) ∈ XxY tạo nên tập huấn luyện. Từ tập huấn luyện này, chúng ta cần tạo ra một hàm số ánh xạ mỗi phần tử từ tập X sang một phần tử (xấp xỉ) tương ứng của tập Y:

yi ≈f(xi),∀i= 1,2, ..., N (1.6)

Mục đích là xấp xỉ hàm số f thật tốt để khi có một dữ liệu x mới, chúng ta có thể tính được nhãn tương ứng của nóy =f(x).

Học có giám sát có thể tạo ra 2 loại mô hình. Phổ biến nhất, học có giám sát tạo ra một mô hình toàn cục (global model) để ánh xạ đối tượng đầu vào đến đầu ra mong muốn. Tuy nhiên, trong một số trường hợp, việc ánh xạ được thực hiện dưới dạng một tập các mô hình cục bộ. Các thuật học máy có giám sát thông dụng: K-Nearest Neighbor (K-NN), Support Vector Machine (SVM).

1.2.2.2 Học không giám sát

Ngược lại với SL, trong UL, chúng ta không biết được kết quả đầu ra mà chỉ biết các vector đặc trưng của dữ liệu đầu vào. Các thuật toán UL sẽ dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó, ví dụ như phân nhóm hoặc giảm số chiều của dữ liệu (dimentionality reduction). Một cách toán học, UL là khi chúng ta chỉ có dữ liệu đầu vào X mà không biết đầu ra Y tương ứng.

Không giống như trong SL, chúng ta không biết câu trả lời chính xác cho mỗi dữ liệu đầu vào trong SL. Giống như khi ta học, ta chỉ được đưa cho một chữ cái mà không nói đó là chữ A hay chữ B. Cụm từ không giám sát, hay không ai chỉ bảo (unsupervised) được đặt tên theo nghĩa này.

Từ góc độ xác suất thống kê, UL trải nghiệm qua rất nhiều ví dụ (các điểm dữ liệu) x và cố gắng học phân phối xác suất p(x), hoặc các tính chất của phân phối của dữ liệu một cách trực tiếp hoặc gián tiếp. Trong khi đó, SL quan sát các ví dụxvà các kết quả tương ứngy, sau đó cố gắng học cách dự đoánytừxthông qua việc đánh giá xác suất có điều kiện p(y|x). Xác suất này có thể diễn đạt bằng lời là biết rằng một điểm dữ liệu cóvector đặc trưng là x, xác suất để đầu ra của nó bằng y là bao nhiêu.

Ranh giới giữa UL và SL đôi khi là không rõ ràng. Thông thường, người ta thường coi các bài classification, regression là SL, các bài clustering hay density estimation là UL.

1.2.2.3 Học bán giám sát

Có những bài toán mà dữ liệu được dùng để huấn luyện bao gồm cả những dữ liệu có nhãn và chưa được gán nhãn. Các bài toán khi chúng ta có một lượng lớn dữ liệu X nhưng chỉ một phần trong chúng được gán nhãn được gọi là học bán giám sát, hay semi-SL. Những bài toán thuộc nhóm này nằm giữa hai nhóm được nêu bên trên.

Một ví dụ điển hình của nhóm này là chỉ có một phần văn bản được gán nhãn (ví dụ các văn bản khoa học, chính trị) và phần lớn các văn bản khác chưa được gán nhãn được thu thập từ Internet. Thực tế cho thấy nhiều các bài toán ML thuộc vào nhóm này vì việc thu thập dữ liệu có nhãn tốn nhiều thời gian và có chi phí cao. Nhiều loại dữ liệu cần phải có chuyên gia mới gán nhãn được. Ngược lại, dữ liệu chưa có nhãn có thể được thu thập với chi phí thấp từ Internet.

1.2.2.4 Học tăng cường

Có những thuật toán ML không luôn trải nghiệm trên một tập dữ liệu cố định. Học tăng cường/củng cố (RL) trải nghiệm trực tiếp với môi trường xung quanh, liên tục nhận phản hồi từ môi trường để tự cải thiện hành vi của hệ thống trong các môi trường mới.

1.3 Nghiên cứu liên quan

Các nghiên cứu hiện tại về hệ gợi ý tập trung vào hai hướng [3,9,14,15,19]. Thứ nhất, các kỹ thuật, các phương pháp nâng cao chất lượng gợi ý (ví dụ: giải quyết vấn đề người dùng mới sử dụng kỹ thuật phân rã ma trận [9], tiếp cận đa quan hệ [14],...). Thứ hai, xây dựng hệ gợi ý trên các miền ứng dụng cụ thể (ví dụ: hệ gợi ý dự đoán kết quả và gợi ý lựa chọn môn học [15], hệ gợi ý sản phẩm trong bán hàng trực tuyến [3],...).

1.4 Tổng kết chương 1

Trong chương này, chúng tôi đã giới thiệu tổng quát về hệ gợi ý. Luận văn đã tóm lược các vấn đề cơ bản trong hệ gợi ý (RS) cũng như các nhóm kỹ thuật phổ biến hiện nay trong RS, từ đó đi sâu vào trình bày chi tiết một vài kỹ thuật cho kết quả dự đoán tin cậy nhất hiện nay (state of the art, như kỹ thuật liên quan đến học máy-ML). Bên cạnh đó, chúng tôi cũng đã trình bày các lĩnh vực ứng dụng chính của RS, kèm theo các kết quả minh họa cho từng lĩnh vực. Đồng thời chúng tôi cũng giới thiệu các nguồn tài nguyên sẵn có hỗ trợ học tập và nghiên cứu RS. Dữ liệu thưa (data sparsity) là một vấn đề thách thức trong hệ gợi ý. Việc xác định các nhóm người dùng có "sở thích" tương tự là một trong những giải pháp xử lý vấn đề này. Chương 2 của luận văn sẽ trình bày ứng dụng học máy trong hệ gợi ý để xác định các nhóm người dùng có "sở thích" tương tự.

Chương 2

ỨNG DỤNG HỌC MÁY TRONG HỆ GỢI Ý

Trong chương này, chúng tôi đưa ra mô hình tổng quát ứng dụng học máy trong hệ gợi ý, khảo sát các nghiên cứu về ứng dụng học máy trong hệ gợi ý và giới thiệu cách ứng dụng thuật toán k-Means trong hệ gợi ý.

2.1 Mô hình hệ gợi ý

Ở dạng đơn giản nhất, hệ gợi ý cung cấp danh sách sản phẩm được xếp hạng theo thứ tự ưu tiên. Để thực hiện được điều này, hệ gợi ý dự đoán các sản phẩm phù hợp nhất dựa trên sở thích của người dùng [17]. Mô hình tương tác giữa người dùng và hệ gợi ý được biểu diễn ở Hình 2.1. Trong mô hình này, hồ sơ người dùng được thiết lập dựa trên sở thích (thông tin hiện) hoặc hành vi (thông tin ẩn) của họ. Sau khi hồ sơ người dùng được thiết lập, hệ thống tạo và hiển thị kết quả cho người dùng (danh sách gợi ý). Tiếp theo, người dùng có thể duyệt các gợi ý, họ có thể chấp nhận hoặc không chấp nhận chúng. Hành động và phản hồi của người dùng được lưu trữ (cập nhật sở thích) trong hồ sơ người dùng để tạo các đề xuất mới cho người dùng ở thời điểm tiếp theo.

Hình 2.1: Mô hình tương tác giữa người dùng và hệ gợi ý.

2.2 Thuật toán Naive Bayes

Naive Bayes [6] là một trong những thuật toán được ứng dụng thành công nhất trong bài toán phân lớp. Ý tưởng cơ bản của cách tiếp cận Naive Bayes là sử dụng xác suất có điều kiện giữa thuộc tính và nhãn lớp để dự đoán xác suất nhãn lớp của một đối tượng cần phân loại. Điểm quan trọng của phương pháp này chính là giả định rằng sự xuất hiện của tất cả các thuộc tính trong đối tượng đều độc lập với nhau.

Phân loại Naive Bayes sử dụng trong trường hợp mỗi đối tượng được cho bằng tập các thuộc tính < x1, x2, ..., xn > và cần xác định nhãn phân loại y, y có thể nhận giá trị từ một tập hữu hạnC.Trong giai đoạn huấn luyện, dữ liệu huấn luyện được cung cấp dưới dạng các mẫu < xi, yi >. Sau khi huấn luyện xong, bộ phân loại cần dự đoán nhãn cho mẫu mới x.

Theo lý thuyết Bayes, nhãn phân loại được xác định bằng cách tính xác suất điều kiện của nhãn khi quan sát thấy tổ hợp giá trị thuộc tính < x1, x2, ..., xn>. Nhãn lớp được chọn, ký hiệuCM AP là nhãn có xác suất điều kiện cao nhất (M AP

là viết tắt của maximum a posterior), tức là:

y=CM AP =argmaxcj∈CP(cj|x1, x2, . . . , xn) (2.1)

Sử dụng quy tắc Bayes, biểu thức (1) được viết lại như sau:

CM AP =argmaxcj∈CP (x1, x2, . . . , xn|cj)P(cj)

Hai thành phần trong biểu thức trên được tính từ dữ liệu huấn luyện. Giá trị

Pcj được tính bằng tần suất quan sát thấy nhãn cj trên tập huấn luyện, tức là bằng số mẫu có nhãn là cj chia cho tổng số mẫu. Việc tínhP(x1, x2, ..., xn|cj)khó khăn hơn nhiều.

Để giải quyết vấn đề trên ta giả sử các thuộc tính là độc lập về xác suất với nhau khi biết nhãn phân loại cj. Trên thực tế các thuộc tính thường không độc lập với nhau. Chính vì dựa trên giả thiết độc lập xác suất đơn giản như vậy nên phương pháp có tên gọi là “Bayes đơn giản – Na¨ıve Bayes”.

Với giả thiết về tính độc lập xác suất có điều kiện có thể viết:

P(x1, x2, . . . , xn|cj) = P(x1|cj)P (x2|cj). . . P(xn|cj) (2.3)

Tức là xác suất đồng thời quan sát thấy các thuộc tính bằng tích xác suất điều kiện của từng thuộc tính riêng lẻ. Thay vào biểu thức (2), ta được bộ phân loại Naive Bayes (có đầu ra ký hiệu là CN aiveBayes như sau):

CN aiveBayes =argmaxcj∈CP (cj)Y

i(xi|cj) (2.4) Trong đóP(xi|cj)được tính từ dữ liệu huấn luyện bằng số lầnxi xuất hiện cùng với cj chia cho số lần xi xuất hiện. Việc tính xác suất này đòi hỏi ít dữ liệu hơn nhiều so với tính P(x1, x2, ..., xn|cj). Quá trình học Bayes đơn giản là quá trình tính các xác suấtP(cj)và các xác suất điều kiện P(xi|cj)bằng cách đếm trên tập dữ liệu.

2.3 Thuật toán k-Means

k-Means [10] là thuật toán rất quan trọng và được sử dụng phổ biến trong kỹ thuật phân cụm. Hình 2.2 mô tả ví dụ với ba cụm dữ liệu trong không gian hai chiều. Tư tưởng chính của thuật toán k-Means là tìm cách phân nhóm các tượng đã cho vào k cụm (k là số các cụm được xác định trước,k nguyên dương):

1. Chọn ngẫu nhiên k tâm (cho k cụm). Mỗi cụm được đại diện bằng các tâm của cụm.

2. Tính khoảng cách giữa các đối tượng đến k (dùng khoảng cách Euclidean). 3. Nhóm các đối tượng vào nhóm gần nhất.

4. Xác định lại tâm mới cho các nhóm.

5. Lặp lại bước 2, 3, 4 cho đến khi không có sự thay đổi nhóm nào của các đối tượng.

Hình 2.2: Ví dụ với ba cụm dữ liệu trong không gian hai chiều.

2.4 Ứng dụng một số phương pháp học máy trong

hệ gợi ý

Trong nghiên cứu này, chúng tôi ứng dụng một số phương pháp học máy trong hệ gợi ý để xác định các nhóm người dùng có "sở thích" tương tự. Cụ thể, phương pháp học có giám sát để phân lớp dữ liệu, phương pháp học không giám sát để phâm cụm dữ liệu. Hình 2.3 thể hiện mô hình tổng quát ứng dụng học máy trong hệ gợi ý.

Hình 2.3: Mô hình ứng dụng học máy trong hệ gợi ý.

Các bước trong Hình 2.3 được thể hiện như sau:

1. Dữ liệu (hồ sơ người dùng) bao gồm thông tin người dùng và lịch sử tương tác của người dùng.

2. Ở bước tiền xử lý, dữ liệu được làm sạch, chuẩn hóa về dạng véc-tơ (mỗi người dùng là một véc-tơ các sản phẩm).

3. Sử dụng các thuật toán học máy để phân lớp hoặc phân cụm dữ liệu. Với người dùng hoạt động a (véc-tơ), tìm lớp hoặc cụm a thuộc. Xác định m

người dùng trong lớp/cụm có độ tương đồng nhất với a sử dụng độ đo Pearson1: sim(a, u) = n P i=1 (ra,i−ra)(ru,i−ru) s n P i=1 (ra,i−ra)2 r n P i=1 (ru,i−ru)2 (2.5) Trong đó:

1Có các độ đo khác nhau để tính toán độ tương đồng: độ đo khoảng cách Euclid, Minkowski,...; độ đo tương tự Cosin, Entropy; độ đo tương quan Pearson, Spearman, Kendal,...

ˆ ra,i ,ru,i: đánh giá của người dùng hoạt độngacho sản phẩm ivà đánh giá của người dùng ucho sản phẩm i;

ˆ ra ,ru: lần lượt là đánh giá trung bình của người dùnga và u;

4. Dự đoán điểm đánh giá các sản phẩm dựa vào m người dùng có độ tương đồng lớn nhất so vớia. Dự đoán đánh giá sản phẩmicủa người dùngađược tính theo công thức. ra,i=ra P u∈msim(a, u)(ru,i−ru) P u∈msim(a, u) (2.6)

5. Hệ gợi ý đưa ra danh sáchtop-N sản phẩm phù hợp cho người dùnga. Bước tiếp theo, hệ gợi ý sẽ cập nhật lại sở thích của a và huấn luyện lại mô hình.

2.4.1 Phân cụm dữ liệu trong hệ gợi ý

Chúng tôi sử dụng thuật toán k-Means để phân cụm người dùng, mỗi cụm chứa các người dùng có sở thích tương tự nhau. Các bước cài đặt hệ gợi ý sử dụng thuật toán k-Means được mô tả chi tiết trong Thuật toán 1 (Algorithm 1).

Algorithm 1 Ứng dụng phân cụm dữ liệu trong hệ gợi ý.

Đầu vào: Ma trận đánh giáR, số cụmk, số sản phẩm gợi ýN, người dùng hoạt động a.

Đầu ra: top-N sản phẩm.

1: Phân cụm người dùng trongR sử dụng thuật toán k-Means. 2: Với người dùng hoạt động a, tìm cụm chứaa.

3: Tìm m người dùng có độ tương đồng lớn nhất với a.

4: Dự đoán điểm đánh giá cho các sản phẩm chưa được đánh giá bởi a; 5: Sắp xếp các sản phẩm theo điểm đánh giá.

6: Trả về top-N sản phẩm gợi ý cho người dùng a.

Với tập dữ liệu ban đầu, sử dụng thuật toánk-Means để phân cụm người dùng. Xác định cụm của người dùng hoạt độnga, tìm kiếm những người dùng có sở thích tương đồng với a sử dụng độ đo tương quan Pearson, từ đó chọn được m người dùng tương đồng nhất với a. Sau đó, dự đoán được điểm đánh giá của a đối với các sản phẩm chưa được đánh giá. Bước tiếp theo, sắp xếp các sản phẩm theo thứ tự của điểm dự đoán. Cuối cùng top-N sản phẩm được gợi ý cho người dùng a.

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng học máy trong hệ gợi ý (Trang 27)

Tải bản đầy đủ (PDF)

(47 trang)