Module phản hồi ẩn

Một phần của tài liệu (LUẬN văn THẠC sĩ) phản hồi ẩn trong hệ thống gợi ý nội dung (Trang 31 - 36)

Chương 3 : Xây dựng hệ thống gợi ý tin tức sử dụng phản hồi ẩn

3.3. Module phản hồi ẩn

Module phản hồi ẩn là một thành phần nằm trong hệ thống. Module phản hồi ẩn gồm hai module con là module thu thập phản hồi ẩn và module cập nhật phản hồi ẩn vào mô hình người dùng.

Module thu thập phản hồi ẩn được nhúng vào trong giao diện hiển thị, chính là website mà người dùng truy cập. Tại mỗi trang tin tức chi tiết mà người dùng đang xem, module thu thập phản hồi ẩn đưa ra thêm các thành phần của hệ thống cho phép người dùng bình luận, đánh dấu tin để sau này đọc lại, chia sẻ tin đang đọc qua các mạng xã hội, gửi email đính kèm liên kết của tin tức cho bạn bè và in tin tức ra giấy. Mỗi khi người dùng sử dụng bất kỳ một sự kiện nào đối với các thành phần trên, module thu thập phản hồi ẩn sẽ được kích hoạt và chuyển dữ liệu phản hồi ẩn của người dùng đến module cập nhật phản hồi ẩn vào mô hình người dùng.

Module cập nhật phản hồi ẩn vào mô hình người dùng sẽ dựa vào các dữ liệu phản hồi ẩn của người dùng để tính toán lại mô hình người dùng. Kết quả thu được là mô hình người dùng đã được cập nhật sẽ chuyển đến module quản lý hồ sơ người dùng.

3.3.1. Phương pháp biễu diễn dữ liệu ẩn

Trong hệ thống gợi ý nội dung sử dụng phản hồi ẩn của người dùng, ta gọi các phản hồi âm là chỉ đánh giá không thích, phản hồi dương là đánh giá thích tin tức nào đó và những tin tức mà người dùng chưa thấy để đọc hoặc chưa có tương tác là các giá trị thiếu thì các hệ thống gợi ý sử dụng phản hồi ẩn thường chỉ chứa dữ liệu quan sát dương S ⊆ U x I. Các tin tức mà người dùng chưa quan sát, tương tác là sự trộn lẫn của giá trị phản hồi âm và những giá trị thiếu. Vì vậy, cách tạo ra tập dữ liệu huấn luyện thường là với những cặp (u, i)∈ S thuộc lớp dương sẽ được gán giá trị 1, còn lại tất cả sẽ được gán giá trị 0 [15]. i1 i2 i3 i4 i5 i1 i2 i3 i4 i5 u1 ? + ? ? + u1 0 1 0 0 1 u2 + ? ? ? + u2 1 0 0 0 1 u3 + + ? ? ? u3 1 1 0 0 0 u4 + ? + ? + u4 1 0 1 0 1 u5 ? ? + + + u5 0 0 1 1 1

Phương pháp này có nhược điểm là trong suốt quá trình huấn luyện, các mô hình sẽ không phân biệt được đâu là phản hồi âm và đâu là giá trị cần dự đoán vì các giá trị thiếu và các phản hồi âm đều được gán là giá trị 0.

Phương pháp so sánh cặp được tôi sử dụng trong hệ thống gợi ý sử dụng phản hồi ẩn thay vì chỉ đưa ra dự đoán xếp hạng cho từng tin tức hoặc chỉ thay thế các giá trị cần xếp hạng bằng một giá trị âm. Phương pháp này được trình bày rất rõ trong tài liệu của Rendle [20].

Từ dữ liệu S đã có, chúng ta thực hiện xây dựng lại tập dữ liệu huấn luyện Ds dựa vào mối quan hệ thích hơn giữa các tin tức cho mỗi người dùng u (>u). Giả sử rằng, mỗi khi người dùng u ((u, i)∈ S) xem một tin tức i thì người dùng u thích i hơn tất cả các tin tức chưa xem khác. u1: i > u1 j i1 i2 i3 i4 i5 j1 + ? ? + i1 i2 i3 i4 i5 j2 - - - ? u1 ? + ? ? + j3 ? + ? + u2 + ? ? + j4 ? + ? + u3 + + ? ? ? j5 - ? - - u4 + ? + ? + … u5 ? ? + + + … u5: i > u5 j i1 i2 i3 i4 i5 j1 ? + + + j2 ? + + + j3 - - ? ? j4 - - ? ? j5 - - ? ?

Phía bên trái hình 3.7 biểu diễn quan hệ thích hơn cho các tin tức của người dùng u1: i2 > u1 i1; i2 > u1 i3; i2 > u1 i4; i5 > u1 i1; i5 > u1 i3; i5 > u1 i4.

Đối với các tin tức mà người dùng chưa đọc (tin tức i1, i3 và i4 trong hình 3.7), hệ thống sẽ không sử dụng quan hệ thích hơn do chưa có thông tin. Đồng thời, hệ thống cũng sẽ không sử dụng so sánh thích hơn đối với các tin tức mà người dùng đã đọc (như trong hình 3.7, các tin tức đó là i2 và i5) do hệ thống đã mặc định rằng người dùng có cùng mức độ thích các tin tức này.

Trong hình 3.7, bên phải là cách biểu diễn dữ liệu được dùng trong hệ thống. Dấu ? là các cặp tin tức cần xếp hạng, dấu + thể hiện người dùng thích tin tức i hơn tin tức j (i và j là như nhau), dấu – thể hiện người dùng thích tin tức j hơn tin tức i. Bài toán của hệ thống ở đây trở thành dự đoán các giá trị ? trong ma trận bên phải hình 3.7, sau khi có giá trị dự đoán, sắp xếp các giá trị này từ cao xuống thấp và đưa ra một số lượng N tin tức cần gợi ý.

Ta biểu diễn Ds dưới dạng:

{( , , ) || u ^ \ u}

Dsu i j iIjI I (3.1)

Trong hệ thống gợi ý sử dụng phản hồi ẩn, các phản hồi ẩn của người dùng sẽ được tự động ghi nhận lại bởi hệ thống thông qua các tương tác của người dùng đối với hệ thống. Người dùng sẽ không phải đánh giá thích hay không thích hoặc đánh giá từ 1 sao đến 5 sao cho mỗi tin tức như các hệ thống khác. Các phương pháp thu thập phản hồi ẩn từ hệ thống là:

1. Đánh dấu tin tức 2. Bình luận tin tức

3. Chia sẻ tin tức qua mạng xã hội 4. In tin tức

5. Gửi thông tin tin tức qua email cho bạn bè

Mỗi khi người dùng sử dụng một trong các chức năng trên, hệ thống sẽ ghi nhận và cập nhật vào cơ sở dữ liệu. Để thuận tiện cho việc tính toán, tôi coi trọng số của mỗi chức năng trên là 1/5 (tức 0,2), tổng trọng số sẽ là 1. Ban đầu, trọng số trên mỗi tin tức đối với một người dùng là 1/5, cứ mỗi lần người dùng sử dụng một chức năng khác (không tính lặp lại), trọng số sẽ được tăng lên 1/5. Trọng số này chính là thông tin phản hồi của người dùng đối với một tin tức. Tin tức nào được người dùng sử dụng nhiều chức năng hơn, tin tức đó sẽ được người đó thích hơn các tin tức được người đó sử dụng ít chức năng hơn. Như vậy, thông tin phản hồi của người dùng u cho tin tức i được tính theo công thức:

𝑟𝑢𝑖 =𝑠ố 𝑙ượ𝑛𝑔 𝑐ℎứ𝑐 𝑛ă𝑛𝑔 𝑝ℎả𝑛 ℎồ𝑖 ẩ𝑛 𝑚à 𝑢 𝑠ử 𝑑ụ𝑛𝑔 𝑡𝑟𝑜𝑛𝑔 𝑚ụ𝑐 𝑡𝑖𝑛 𝑖

tổng số chức năng phản hồi ẩn của hệ thống (3.2)

3.3.2. Giải thuật sử dụng cho hệ thống gợi ý sử dụng phản hồi ẩn

Module phản hồi ẩn sử dụng giải thuật xếp hạng cá nhân Bayes (Bayesian Personalize Ranking - BPR), đây là tiêu chuẩn dùng để tối ưu hóa hàm mục tiêu. Vì dữ liệu phản hồi của người dùng là ẩn nên tôi đề xuất sử dụng tiêu chuẩn tối ưu BPR cho kỹ thuật phân rã ma trận Matrix Factorization – MF), gọi là giải thuật BPR-MF để cài đặt giải thuật gợi ý tích hợp vào hệ thống.

Hàm mục tiêu của BPR-MF được tính theo công thức: 2 uij ( , , ) ˆ ln ( ) || || S BPR MR u i j D r           (3.3) Trong đó: - ( ) 1 1 x x e    

- rˆuij  rˆui rˆujrˆui, rˆujlà giá trị dự đoán của người dùng u cho tin tức i và tin tức j

- θ đại diện cho các tham số W và H

- 2

|| ||

  là thành phần chuẩn hóa để ngăn chặn vấn đề học vẹt

Chúng ta sử dụng phương pháp xuống đồi (Stochastic Gradient Descent) [21, 22] để triển khai chi tiết giải thuật học trong [20]. Đầu vào là các siêu tham số và tập dữ liệu huấn luyện. Trong hệ thống này, tập dữ liệu đầu vào có các thông tin là id của người dùng, id của tin tức và trọng số của tin tức đối với người dùng).

Các siêu tham số phải được tìm kiếm để phù hợp với từng tập dữ liệu do không gian giá trị của các siêu tham số rất lớn. Dựa vào phương pháp GridSearch [23], chúng ta có các siêu tham số cần tìm như sau:

- K: số nhân tố tiềm ẩn

- N-Repeat: số lần lặp

- α: tốc độ học

- λw: tham số chuẩn hóa nhân tố người dùng - λH+: tham số chuẩn hóa nhân tố tin tức đã xem - λH-: tham số chuẩn hóa nhân tố tin tức chưa xem

- Tìm giá trị các siêu tham số như: K, N-Repeat, α, λw, λH+, λH- bằng một thuật toán heuristic nào đó. Ví dụ α ϵ [0..1] nên ta sẽ tìm trên 4 giá trị (0.2, 0.4, 0.6 và 0.8).

- Tham số sau khi đã tính ở trên sẽ được làm mịn từ đó ta sẽ chọn ra được các tham số cho kết quả tốt nhất. Ví dụ với α = 0.4 (như 0.3, 0.35, 0.45, 0.5)

Giải thuật được mô tả như sau:

Bayes_MatrixFactor (DS, λw, λH+, λH-, α){ 2

WN(0, ) // Khởi tạo tham số W 2

(0, )

HN  // Khởi tạo tham số H

Repeat{ // Cập nhật giá trị tham số đến khi tối ưu rˆuij  w ,uk hukhjk ˆ ˆ 1 uij uij r r e v e     wukwuk ( (v hikhjk)w,wuk) hikhjk(vwukHhjk) hjkhjk (v wuk)Hhjk) } until convergence Return (W,H) }//End procedure

W và H là hai tham số tối ưu nhất sẽ được trả về. Thuật toán có thể được mô tả như sau:

- WH được khởi tạo các giá trị ngẫu nhiên theo phân phối chuẩn 2

(0, )

N

- Giá trị của WH được cập nhật trong từng bước lặp - Quá trình lặp dừng khi hàm mục tiêu đạt giá trị tối ưu

- Trong mỗi bước lặp, cặp tin tức i, j được chọn (với jI I\ u ) để xây dựng quan hệ thích hơn

- Sau khi nhận được được hai tham số WH chúng ta ước tính được phản hồi của người dùng theo công thức (2.8)

Một phần của tài liệu (LUẬN văn THẠC sĩ) phản hồi ẩn trong hệ thống gợi ý nội dung (Trang 31 - 36)