57
BÀI 8: HỆ GỢI Ý

BÀI 8: HỆ GỢI Ý

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BÀI 8: HỆ GỢI Ý

BÀI 8: HỆ GỢI Ý

Page 2: BÀI 8: HỆ GỢI Ý

2

Nội dung

1. Tổng quan về hệ gợi ý

2. Các phương pháp đánh giá

3. Lọc cộng tác dựa trên kNN

4. Lọc cộng tác dựa trên MF

5. NCF

6. Gợi ý theo phiên

Page 3: BÀI 8: HỆ GỢI Ý

3

◼ Người dùng bị quá tải thông tin trong môi trường web

◼ Nhà bán hàng cần đưa ra sản phẩm phù hợp để

◼ Tăng doanh số bán hàng

◼ Nâng cao chất lượng dịch vụ

◼ Xu hướng cá nhân hóa và số hóa là tất yếu

1. Tổng quan về hệ gợi ýTại sao cần hệ gợi ý

Page 4: BÀI 8: HỆ GỢI Ý

4

Hệ gợi ý vs hệ tìm kiếm

◼ Hệ tìm kiếm: Người dùng thể hiện mong muốn thông qua câu truy vấn

◼ Hệ gợi ý: Người dùng chưa biết mình muốn gì

Page 5: BÀI 8: HỆ GỢI Ý

5

Lĩnh vực ứng dụng

◼ Thương mại điện tử

◼ Giải trí trực tuyến

◼ Tin tức trực tuyến

◼ Forum, mạng xã hội

◼ Nghiên cứu khoa học

◼ Hẹn hò trực tuyến

Page 6: BÀI 8: HỆ GỢI Ý

6

Lĩnh vực ứng dụng (tiếp)

◼ Amazon:

◼ Gợi ý sản phẩm

◼ Tăng hơn 30% doanh thu

◼ Netflix:

◼ Gợi ý phim, chương trình TV

◼ Mang về $1B mỗi năm

◼ Google News:

◼ Gợi ý tin tức

◼ Tăng gần 40% lưu lượng truy cập

Page 7: BÀI 8: HỆ GỢI Ý

7From Y. Koren (2009)2004

Lĩnh vực ứng dụng (tiếp)

Page 8: BÀI 8: HỆ GỢI Ý

8

Các phương pháp gợi ý

◼ Gợi ý dựa trên nội dung:

◼ Gợi ý dựa trên lịch sử giao dịch của người dùng

◼ Lọc cộng tác:

◼ Gợi ý dựa trên người dùng có sở thích tương tự

◼ Gợi ý dựa trên phiên:

◼ Gợi ý dựa trên chuỗi giao dịch

◼ Các phương pháp lai

Page 9: BÀI 8: HỆ GỢI Ý

9From Y. Koren (2009)

Grand Prize: 0.8563; 10% improvement

Static neighborhood: 0.9002

Cinematch: 0.9514; baseline

Movie average: 1.0533

User average: 1.0651

Global average: 1.1296

Inherent noise: ????

erroneous

accurate

Static factorization: 0.8911

Dynamic neighborhood: 0.8885

Dynamic factorization: 0.8794

Personalization

Time effects

“Algorithmics”

Find better items

Cuộc thi Netflix

Page 10: BÀI 8: HỆ GỢI Ý

10

Number of papers on recsys by years

Cuộc thi Netflix (tiếp)

Page 11: BÀI 8: HỆ GỢI Ý

11

Gợi ý dựa trên nội dung

from Recommender Systems: An Introduction

Page 12: BÀI 8: HỆ GỢI Ý

12

Lọc cộng tác

from Recommender Systems: An Introduction

Page 13: BÀI 8: HỆ GỢI Ý

13

Những thách thức của hệ gợi ý

◼ Số giao dịch rất nhỏ so với số lượng người dùng và sản phẩm thực tế

◼ Không đủ thông tin về người dùng và sản phẩm mới

◼ Người dùng và sản phẩm thay đổi theo thời gian, theo mùa

◼ Thói quen tiêu dùng thay đổi theo thời gian, theo mùa

◼ Gợi ý theo thời gian thực

Page 14: BÀI 8: HỆ GỢI Ý

14

2. Các phương pháp đánh giá

◼ Cho

◼ Tập người dùng U

◼ Tập sản phẩm I

◼ DL gồm các giao dịch (u, i, rui

, t)

◼ u: người dùng u ∈ U

◼ i: sản phẩm I ∈ I

◼ rui

: đánh giá của người dùng u đối với sản phẩm i

◼ t: thời gian đánh giá

Page 15: BÀI 8: HỆ GỢI Ý

15

Các p2 đánh giá (tiếp)

◼ rui

◼ Theo thang đo 5 bậc (1, 2, 3, ,4 ,5)

◼ Theo thang đo nhị phân (0, 1)

◼ DL được chia làm các tập train/test

◼ Hệ gợi ý được huấn luyện trên tập train

◼ Trên tập test, hệ gợi ý dự đoán đánh giá pui

của người dùng u với sản phẩm i

Page 16: BÀI 8: HỆ GỢI Ý

16

i1

i2

i3

i4

u1

- 5 3 -

u2

4 - 2 3

u3

4 1 - 5

i1

i2

i3

i4

u1

- 5 -

u2

- 2 3

u3

4 1 -

i1

i2

i3

i4

u1

- 3 -

u2

4 -

u3

- 5

train test

train/test

Page 17: BÀI 8: HỆ GỢI Ý

17

Các độ đo đánh giá

◼ (N)MAE

◼ RMSE

◼ Xếp hạng:

◼ Precision/Recall/F-score

Page 18: BÀI 8: HỆ GỢI Ý

18

MAE

◼ pui

: Dự đoán của mô hình đối với đánh giá của người dùng u với sản phẩm i

◼ rui

: Đánh giá của người dùng u đối với sản phẩm i

◼ n: Tổng số ví dụ trong tập test

Page 19: BÀI 8: HỆ GỢI Ý

19

NMAE

◼ rmax

: Giá trị dự đoán lớn nhất của người dùng

◼ rmin

: Giá trị dự đoán bé nhất của người dùng

Page 20: BÀI 8: HỆ GỢI Ý

20

RMSE

Page 21: BÀI 8: HỆ GỢI Ý

21

A/B testing

Hệ thống

ban đầu

Chức năng

gợi ý

Đánh giá

(vd pageview,

CTR)

100% người dùng

100-x% người dùng x% người dùng

Page 22: BÀI 8: HỆ GỢI Ý

22

3. Lọc cộng tác dựa trên kNN

◼ Dựa trên ma trận tương tác người dùng sản phẩm

◼ Không có quá trình huấn luyện

◼ Gợi ý dựa trên người dùng

◼ Tìm tập V bao gồm những người dùng tương tự với người dùng u

◼ Tính toán đánh giá với sản phẩm i dựa trên đánh giá của những người dùng trong tập V đối với i

Page 23: BÀI 8: HỆ GỢI Ý

23

Gợi ý dựa trên người dùng

from B. Sarwar et al 2010

Page 24: BÀI 8: HỆ GỢI Ý

24

Độ tương đồng người dùng

◼ C: Tập những sản phẩm mà người dùng u và v đều đánh giá

◼ ru: Đánh giá trung bình của người dùng u (chỉ tính

trên các sản phẩm mà người dùng u đánh giá)

Page 25: BÀI 8: HỆ GỢI Ý

25

Dự đoán đánh giá

◼ V: top k người dùng tương tự với người dùng u

Page 26: BÀI 8: HỆ GỢI Ý

26

VD (k = 2)

i1

i2

i3

i4

u1

5 4 4 1

u2

2 1

u3

5 4 4 ?

u4

1 2 5

r1

= 14/4

r2

= 3/2

r3

= 13/3

r4

= 8/3

sim(u3,u

1) = ~0.492

sim(u3,u

2) = ~0.948

sim(u3,u

4) = ~0.919

p(u3,i

4) = ~ 6.67

Page 27: BÀI 8: HỆ GỢI Ý

27

Nhược điểm

◼ Thường xuyên phải cập nhật lại vector người dùng khi người dùng có giao dịch mới

◼ Phải tính toán trên toàn bộ tập người dùng

Page 28: BÀI 8: HỆ GỢI Ý

28

Gợi ý dựa trên sản phẩm

◼ Biểu diễn sản phẩm dựa trên ma trận tương tác người dùng - sản phẩm

◼ Phù hợp với hệ thống có số sản phẩm << số người dùng

◼ Ít phải cập nhật lại véc-tơ sản phẩm

◼ Có thể tính toán trước độ tương tự sản phẩm - sản phẩm

Page 29: BÀI 8: HỆ GỢI Ý

29

Biểu diễn sản phẩm

from B. Sarwar et al 2010

Page 30: BÀI 8: HỆ GỢI Ý

30

Độ tương đồng sản phẩm

◼ U: tập người dùng cùng đánh giá sản phẩm i và sản phẩm j

Page 31: BÀI 8: HỆ GỢI Ý

31

Dự đoán đánh giá

J: top k sản phẩm tương tự với sản phẩm i

Page 32: BÀI 8: HỆ GỢI Ý

32

Ví dụ

from B. Sarwar et al 2010

Page 33: BÀI 8: HỆ GỢI Ý

33

4. Lọc cộng tác dựa trên MF

◼ Dựa trên ngữ cảnh tổng thể của tương tác người dùng - sản phẩm

◼ Biểu diễn người dùng, sản phẩm theo các khía cạnh ẩn

◼ Sử dụng kĩ thuật MF (phân rã ma trận)

◼ Dựa trên véc-tơ người dùng, sản phẩm để đưa ra dự đoán

Page 34: BÀI 8: HỆ GỢI Ý

34

SVD

◼ Ma trận người dùng - phim R

◼ Phân rã R thành ma trận người dùng - khía cạnh U và ma trận phim - khía cạnh M

◼ Mỗi người dùng được biểu diễn bởi một véc-tơ Kchiều, trong đó K là số khía cạnh ẩn

◼ Mỗi phim được biểu diễn bởi một véc-tơ K chiều

Page 35: BÀI 8: HỆ GỢI Ý

35

Dự đoán đánh giá

Hàm lỗi: eij2

◼ pij: Dự đoán đánh giá của người dùng i với phim j

◼ ui: Véc-tơ người dùng i

◼ mj: Véc-tơ phim j

Page 36: BÀI 8: HỆ GỢI Ý

36

Học mô hình

◼ U, M là các tham số cần học

◼ R là tập DL huấn luyện

◼ Hàm bình phương lỗi: Eij

= eij

2 = (pij –

rij)2

◼ Kĩ thuật học: Suy giảm gradient

Page 37: BÀI 8: HỆ GỢI Ý

37

Đạo hàm của hàm lỗi theo uki

Suy giảm gradient

Page 38: BÀI 8: HỆ GỢI Ý

38

Đạo hàm của hàm lỗi theo mkj

Suy giảm gradient (tiếp)

Page 39: BÀI 8: HỆ GỢI Ý

39

`

Cập nhật uki

theo đạo hàm:

Cập nhật mkj

theo đạo hàm:

λ: Giá trị chuẩn hóa

γ: Tốc độ cập nhật

Suy giảm gradient (tiếp)

Page 40: BÀI 8: HỆ GỢI Ý

40

5. NCF (Neural CF)

◼ Biểu diễn người dùng, sản phẩm theo một mức khía cạnh ẩn có thể không thể hiện được hết tính chất phức tạp của tương tác người dùng - sản phẩm

◼ Mạng nơ-ron tiến nhiều tầng cho phép tự động học ra các mức khía cảnh ẩn từ đơn giản đến trừu tượng

◼ MF là trường hợp đơn giản nhất của mạng nơ-ron

Page 41: BÀI 8: HỆ GỢI Ý

41

Giới hạn của MF

◼ MF bảo toàn tính chất tương tự của véc-tơ người dùng

◼ Giả sử độ tương tự của người dùng được tính theo hệ số Jaccard

◼ Véc-tơ người dùng và véc-tơ sản phẩm cùng được biểu diễn trên không gian khía cạnh ẩn K chiều

Page 42: BÀI 8: HỆ GỢI Ý

42

Giới hạn của MF (tiếp)

◼ s23

(0.66) > s12

(0.5) > s13

(0.4)

◼ s41

(0.6) > s43

(0.4) > s42

(0.2)

from He et al. “Neural Collaborative Filtering”. WWW 2017.

Page 43: BÀI 8: HỆ GỢI Ý

43

Kiến trúc NCF

Page 44: BÀI 8: HỆ GỢI Ý

44

Tầng đầu vào

◼ Người dùng được biểu diễn bởi véc-tơ one-hot gồm M chiều

◼ M là số người dùng

◼ Mỗi người dùng u có một giá trị 1 tương ứng, các giá trị còn lại đều bằng 0

◼ Sản phẩm được biểu diễn bởi véc-tơ one-hot gồm Nchiều, trong đó N là số sản phẩm

Page 45: BÀI 8: HỆ GỢI Ý

45

Tầng nhúng

◼ Biểu diễn người dùng và sản phẩm độc lập

◼ M x K trọng số liên kết để biểu diễn người dùng

◼ N x K trọng số liên kết để biểu diễn sản phẩm

◼ Mô hình thử nghiệm: K = 16

Page 46: BÀI 8: HỆ GỢI Ý

46

MLP

◼ Biểu diễn người dùng và sản phẩm được ghép nối để đưa vào một mạng MLP nhiều tầng nhằm học được các tương tác phức tạp của người dùng và sản phẩm

◼ Mô hình thử nghiệm:

◼ Hàm kích hoạt ReLU

◼ 3 tầng với kích thước giảm dần 32 → 16 → 8

Page 47: BÀI 8: HỆ GỢI Ý

47

Hàm lỗi

◼ Phản hồi ẩn:

◼ 1: Người dùng tương tác với sản phẩm

◼ 0: Người dùng không tương tác với sản phẩm

◼ Bài toán phân loại hai lớp có yếu tố xác suất

◼ Sử dụng hàm lỗi binary cross entropy

Page 48: BÀI 8: HỆ GỢI Ý

48

6. Gợi ý theo phiên

◼ Trong nhiều trường hợp, khó có thể định danh người dùng và thu thập đánh giá. VD:

◼ Các website thương mại nhỏ

◼ Các trang tin tức

◼ Kĩ thuật gợi ý theo phiên

◼ Không yêu cầu định danh người dùng

◼ Mỗi phiên giao dịch, bao gồm thứ tự giao dịch được sử dụng làm dữ liệu huấn luyện mô hình

Page 49: BÀI 8: HỆ GỢI Ý

49

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

◼ Đầu vào: Chuỗi các sản phẩm i1, i

2, …, i

n-1

◼ Đầu ra: Gợi ý sản phẩm tiếp theo

◼ Đưa ra danh sách các sản phẩm có xác suất lớn nhất Pr(i

n| i

1, i

2, …, i

n-1)

◼ Phù hợp với phản hồi ẩn

Page 50: BÀI 8: HỆ GỢI Ý

50

Phản hồi ẩn

from RENDLE ET AL. “BPR: Bayesian Personalized Ranking from Implicit Feedback”. 2009

Page 51: BÀI 8: HỆ GỢI Ý

51

Kiến trúc RNN

item 1 item 2 item 3 item 4 ... item (n-1)

Tầng đầu vào

Tầng ẩn

Đầu ra

item 2 item 3 item 4 item 5 ... item n

Page 52: BÀI 8: HỆ GỢI Ý

52

Tầng đầu vào

◼ Biểu diễn mỗi sản phẩm tại một thời điểm t dưới dạng one-hot

◼ Giá trị 1 ứng với vị trí của sản phẩm trong tập từ vựng, các giá trị khác = 0

◼ V – từ vựng: Số sản phẩm khác nhau

Page 53: BÀI 8: HỆ GỢI Ý

53

Tầng nhúng

◼ Biến đổi biểu diễn one-hot thành biểu diễn K chiều

◼ K là số nơ-ron của tầng nhúng

◼ Số trọng số liên kết giữa tầng đầu vào và tầng nhúng V x K

Page 54: BÀI 8: HỆ GỢI Ý

54

Tầng hồi quy

◼ Tầng hồi quy lưu trữ các thông tin quá khứ thông qua các liên kết hồi quy

◼ Nhiều tầng hồi quy có thể được “chồng” (stack) lên nhau để học được các đặc trưng trừu tượng mức cao

◼ Thay vì nhân cơ bản, có thể dùng các nhân LSTM hoặc GRU

Page 55: BÀI 8: HỆ GỢI Ý

55

Tầng MLP

◼ Đầu ra của tầng hồi quy được dùng làm vào đầu vào của tầng MLP để sinh ra dự đoán

◼ Tầng MLP có thể bao gồm các tầng ẩn để học được hàm phi tuyến

◼ Tầng đầu ra của MLP có V nơ-ron ứng với V sản phẩm

Page 56: BÀI 8: HỆ GỢI Ý

56

Hàm mất mát

◼ Hàm mất mát thứ hạng theo cặp

◼ N: số mẫu negative

◼ ri: Điểm của sản phẩm mong muốn positive i

◼ rj: Điểm của sản phẩm không mong muốn negative j

◼ Giả thiết phản hồi ẩn: Sản phẩm i được lựa chọn nên mức độ ưu tiên của i cao hơn các sản phẩm j còn lại

Page 57: BÀI 8: HỆ GỢI Ý

Thank you foryour attentions!