ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

ĐỖ THỊ THANH HÀ

PHƯƠNG PHÁP LỌC CỘNG TÁC VÀ ỨNG DỤNG

TRONG HỆ THỐNG GỢI Ý BÁN HÀNG TRỰC TUYẾN

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

THÁI NGUYÊN - 2020 i

i

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng

dẫn trực tiếp của PGS.TS. Đoàn Văn Ban.

Mọi trích dẫn sử dụng trong báo cáo này đều được ghi rõ nguồn tài liệu

tham khảo theo đúng qui định

Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin

chịu hoàn toàn trách nhiệm.

Học viên

Đỗ Thị Thanh Hà

ii

LỜI CẢM ƠN

Trước hết, tôi xin được tỏ lòng biết ơn và gửi lời cám ơn chân thành đến

thầy PGS.TS Đoàn Văn Ban, người trực tiếp hướng dẫn luận văn, đã tận tình

chỉ bảo và hướng dẫn tôi tìm ra hướng nghiên cứu, tiếp cận thực tế, tìm kiếm

tài liệu, xử lý và phân tích số liệu,… nhờ đó tôi mới có thể hoàn thành luận văn

cao học của mình.

Tôi xin chân thành cảm ơn quý thầy cô Khoa Công nghệ thông tin - trường

Đại học Công nghệ Thông tin và Truyền thông, Đại học Thái Nguyên đã truyền

đạt cho tôi những kiến thức bổ ích trong suốt hai năm học vừa qua.

Xin chân thành cảm ơn các anh chị em lớp cao học Khoa học máy tính

khoá 17 và các bạn đồng nghiệp luôn động viên, hỗ trợ tôi trong quá trình học

tập và nghiên cứu và thực hiện đề tài.

Cuối cùng, tôi xin gửi đến cha mẹ và những người thân trong gia đình đã

hỗ trợ, tạo điều kiện thuận lợi cho tôi trong suốt thời gian qua và đặc biệt trong

thời gian tôi theo học khóa thạc sỹ tại trường Đại học Công nghệ Thông tin và

Truyền thông, Đại học Thái Nguyên.

Xin chân thành cảm ơn!

Người thực hiện

Đỗ Thị Thanh Hà

iii

MỤC LỤC

LỜI CẢM ƠN ............................................................................................................................. ii

MỤC LỤC .................................................................................................................................. iii

DANH MỤC CÁC BẢNG ........................................................................................................ iv

DANH MỤC HÌNH VẼ...............................................................................................................v

MỘT SỐ THUẬT NGỮ .......................................................................................................... viii

LỜI CAM ĐOAN ........................................................................................................................ i

MỞ ĐẦU .....................................................................................................................................1

CHƯƠNG 1. HỆ THỐNG TƯ VẤN VÀ CÁC PHƯƠNG PHÁP LỌC THÔNG TIN ......5

1.1. Hệ tư vấn ...............................................................................................................................5

1.1.1. Giới thiệu hệ thống tư vấn .................................................................................................5

1.1.2. Bài toán tư vấn người dùng ...............................................................................................7

1.1.3. Qui trình xây dựng hệ tư vấn .............................................................................................9

1.2. Các phương pháp lọc tin .....................................................................................................10

1.2.1. Phân loại hệ thống tư vấn ................................................................................................10

1.2.2. Phương pháp tư vấn dựa trên nội dung ...........................................................................11

1.2.3. Phương pháp tư vấn dựa trên lọc cộng tác ......................................................................17

1.2.4. Tư vấn dựa trên cách tiếp cận kết hợp .............................................................................23

1.3. Kiến trúc tổng quát của hệ thống lọc thông tin ..................................................................25

1.4. Ứng dụng của phương pháp lọc tin trong hệ thống tư vấn ................................................26

1.5. Kết luận chương 1 ...............................................................................................................28

CHƯƠNG 2.PHƯƠNG PHÁP THUẬT LỌC CỘNG TÁC DỰA TRÊN SẢN PHẨM ..29

2.1. Các phương pháp lọc cộng tác ............................................................................................29

2.1.1. Giới thiệu về các phương pháp lọc cộng tác ...................................................................29

2.1.2. Ưu và nhược điểm của phương pháp lọc cộng tác ..........................................................30

2.2. Lọc cộng tác dựa trên sản phẩm .........................................................................................32

2.3. Các thuật toán tính độ tương tự ..........................................................................................34

2.4. Tính toán dự đoán và tư vấn ...............................................................................................37

2.4.1. Dự đoán dựa trên trung bình đánh giá sản phẩm lân cận ................................................37

2.4.2. Dự đoán dựa trên tổng trọng số (Weighted Sum) ...........................................................38

2.4.3. Dự đoán dựa trên tổng trọng số với đánh giá trung bình của người dùng ................................38

2.4.4. Dự đoán dựa trên tổng trọng số với trung bình đánh giá lên sản phẩm .................................39

2.5. Đánh giá các yếu tố ảnh hưởng đến độ chính xác kết quả tư vấn ......................................40

2.5.1. Đánh giá độ tin cậy của thuật toán ..................................................................................40

2.5.2. Các yếu tố ảnh hưởng đến độ chính xác tư vấn ..............................................................42

2.6. Kết luận chương 2 ...............................................................................................................44

iv

CHƯƠNG 3. ỨNG DỤNG PHƯƠNG PHÁP LỌC CỘNG TÁC DỰA TRÊN SẢN PHẨM

TRONG HỆ THỐNG GỢI Ý BÁN HÀNG TRỰC TUYẾN .................................................45

3.1. Xây dựng hệ thống gợi ý cho website bán hàng trực tuyến ...............................................45

3.1.1. Đặc tả hệ thống ................................................................................................................45

3.1.2. Môi trường phát triển .......................................................................................................46

3.1.3. Thiết kế bảng dữ liệu .......................................................................................................46

3.2. Ví dụ về lọc cộng tác dựa trên sản phẩm ............................................................................49

3.3. Thuật toán xử lý chính trong hệ thống ...............................................................................53

3.3.1. Thuật toán khách hàng đánh giá sản phẩm ......................................................................53

3.3.2. Thuật toán khách hàng chấm điểm sản phẩm .................................................................54

3.3.3. Thuật toán gợi ý sản phẩm cho khách hàng ....................................................................55

3.4. Các giao diện chính của hệ thống .......................................................................................56

3.5. Kết luận chương 3 ...............................................................................................................60

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .............................................................................61

TÀI LIỆU THAM KHẢO .......................................................................................................62

v iv

Bảng 1: Bảng đánh giá người dùng với các sản phẩm .............................................. 33

Bảng 2: Dữ liệu đánh giá các sản phẩm .................................................................... 49

Bảng 3: Ma trận utility matrix ................................................................................... 50

Bảng 4: Giá trị trung bình đánh giá của các item ...................................................... 50

Bảng 5: Ma trận chuẩn hóa Ŷ………………………………………………………51

Bảng 6: Độ tương tự giữa các item S ........................................................................ 51

Bảng 7: Ma trận sau khi được dự đoán ŷ .................................................................. 52

Bảng 8: Ma trận dự đoán thang điểm 5 ..................................................................... 53

DANH MỤC BẢNG BIỂU

v vi

DANH MỤC HÌNH VẼ

Hình 1.2. Ví dụ ma trận đánh giá tổng quát ................................................................ 8

Hình 1.3: Phân loại hướng tiếp cận xây dựng hệ thống gợi ý ................................... 11

Hình 1.4. Minh họa phương pháp tư vấn dựa trên lọc nội dung ............................... 12

Hình 1.5: Minh họa phương pháp tư vấn dựa trên lọc cộng tác ............................... 18

Hình 1.6: Quy trình của hệ thống tư vấn dựa trên lọc cộng tác ................................ 19

Hình 1.7: Kiến trúc tổng quát của hệ thống lọc thông tin ......................................... 25

Hình 1.8: Hệ thống gợi ý sản phẩm của Amazon ..................................................... 28

Hình 2.1: Tách các sản phẩm cùng được đánh giá và tính toán độ tương tự ............ 34

Hình 2.2: Giải thuật lọc cộng tác dựa trên sản phẩm, tính dự đoán .......................... 37

Hình 2.3: Mô hình hệ thống lọc cộng tác dựa trên sản phẩm ................................... 40

Hình 3.1: Giải thuật khách hàng đánh giá sản phẩm ................................................ 54

Hình 3.2: Khách hàng chấm điểm sản phẩm ............................................................ 55

Hình 3.3: Giải thuật xử lý gợi ý sản phẩm ................................................................ 56

Hình 3.4: Giao diện trang chủ ................................................................................... 58

Hình 3.5: Giao diện trang danh sách sản phẩm ......................................................... 58

Hình 3.6: Giao diện gợi ý sản phẩm cho sản phẩm chưa có đánh giá ...................... 59

Hình 3.7: Giao diện gợi ý sản phẩm cho sản phẩm đã có đánh giá .......................... 59

Hình 3.8: Giao diện gợi ý sản phẩm cho một thành viên cụ thể ............................... 59

Hình 1.1: Một số lĩnh vực ứng dụng của hệ thống gợi ý ............................................ 6

vi vii

MỘT SỐ THUẬT NGỮ

STT Tiếng Anh

Tiếng Việt

Giải thích

1

User

Người dùng, người sử dụng

Chỉ những người dùng hệ thống để tìm

kiếm lựa chọn sản phẩm

2

Item

Sản phẩm, mục

Chỉ những sản phẩm trên hệ thống như:

sản phẩm, phim, ảnh, bản nhạc, trang

web, đoạn văn bản, …

Chỉ mức độ thích của một người dùng với

3

Rating

Đánh giá

sản phẩm. Rating có thể có nhiều biểu

hiện: như đánh giá thích hoặc không

thích, hay đánh già theo mức độ từ 1-5

đại diện từ không thích đến rất thích.

CF có tên là Neighborhood-based

4

CF

Lọc cộng tác

Collaborative Filtering (NBCF). Khi chỉ

nói CF, chúng ta sẽ ngầm hiểu rằng

phương pháp được sử dụng là

Neighborhood-based.

MỞ ĐẦU

 Lí do chọn đề tài

Sự phát triển mạnh mẽ của thương mại điện tử (E-Commerce) là một trong

những tác nhân chính đem lại nhiều lợi ích to lớn cho nền kinh tế toàn cầu. Nhờ

có thương mại điện tử, rất nhiều loại hình kinh doanh mới được hình thành,

trong đó có mua bán hàng trực tuyến. Với hình thức mới này, người tiêu dùng

có thể tiếp cận với hàng hóa một cách dễ dàng và nhanh chóng hơn rất nhiều

so với phương thức mua bán truyền thống.

Hiện nay, với phương châm phục vụ khách hàng một cách tốt nhất, các hệ

thống bán hàng trực tuyến luôn tạo nhiều điều kiện thuận lợi để người mua

hàng có thể tiếp cận nhiều mặt hàng cùng lúc. Tuy nhiên, việc trình bày và trang

trí quá nhiều các mặt hàng trên một website sẽ gây ra không ít khó khăn cho

người mua. Họ khó có thể chọn ra cho mình một sản phẩm ưng ý nhất.

Trong kinh doanh, để khách hàng có thể đến và mua được một sản phẩm

ưng ý thì một lời tư vấn, một sự trợ giúp là rất quan trọng. Với phương thức

bán hàng truyền thống những lời tư vấn như thế từ một người bán hàng sẽ tạo

ra một lợi thế rất lớn cho cửa hàng. Do đó, để phương thức bán hàng qua mạng

phát triển thực sự hiệu quả thì bên cạnh các lợi thế vốn có của mình, việc có

thêm một “người trợ giúp” là hết sức cần thiết.

Vì vậy, cần thiết phải sử dụng một hệ thống gợi ý (Recommender Systems

- RS) đóng vai trò như một người hỗ trợ khách hàng đưa ra các quyết định mua

hàng đúng đắn. Bằng cách xác định mục đích và nhu cầu của khách hàng, hệ

thống có thể đưa ra tập các gợi ý giúp cho người mua dễ dàng chọn lựa sản

phẩm yêu thích hơn. Qua đó hiệu suất của việc mua bán hàng trực tuyến được

tăng cao một cách đáng kể [6].

Hệ thống gợi ý được phát triển theo nhiều cách tiếp cận khác nhau. Một

trong những hướng tiếp cận được tập trung nghiên cứu và được áp dụng khá

2

thành công trong nhiều hệ gợi ý đó là phương pháp lọc cộng tác (Collaborative

filtering). Thực chất, lọc cộng tác là một hình thức tư vấn tự động bằng cách

dựa trên sự tương tự giữa những người dùng hoặc giữa những sản phẩm trong

hệ thống và đưa ra dự đoán sự quan tâm của người dùng tới những sản phẩm,

hoặc đưa ra gợi ý một sản phẩm mới cho người dùng.

Việc xây dựng hệ thống gợi ý cũng là vấn đề được nhiều nhà khoa học

trong nước quan tâm [4, 7]. Trong hệ thống gợi ý, lọc cộng tác là một kỹ thuật

được dùng để đánh giá độ quan tâm của người dùng trên các sản phẩm mới (từ

mức độ tìm hiểu thuật toán [2] cho đến việc cải tiến [5] cũng như áp dụng trong

việc xây dựng website bán hàng trực tuyến [6]). Kỹ thuật này được áp dụng

thành công trong nhiều ứng dụng. Trong các hệ thống lọc cộng tác, sở thích của

người dùng trên các sản phẩm mới được dự đoán dựa trên dữ liệu về sở thích

của người dùng – sản phẩm (hoặc đánh giá của người dùng trên sản phẩm)

trong quá khứ.

Các nghiên cứu trong và ngoài nước đã góp phần rất lớn cho việc xây dựng

những website bán hàng trực tuyến như website mua sắm trực tuyến Amazon

(www.amazon.com) cung cấp cho khách hàng những sản phẩm mà họ có thể

quan tâm, cổng video clip YouTube (www.youtube.com), gợi ý phim của

MovieLens (www.movielens.org) [10].

Tuy nhiên, để phát triển mạnh hơn nữa thuật toán lọc cộng tác trong hệ thống

gợi ý nói chung hay hệ thống gợi ý sản phẩm nói riêng còn rất nhiều câu hỏi cần

lời giải đáp. Cụ thể như: Khi xây dựng hệ thống gợi ý bán hàng trực tuyến, tiếp

cận theo hướng dựa trên bộ nhớ (Memory-based) hay dựa trên mô hình (Model-

based) hiệu quả hơn? Trong hướng tiếp cận theo Memory-based thì nên tư vấn

dựa trên người dùng (User based) hay sản phẩm (Items based)? Nếu tiếp cận theo

hướng Model-based thì nên sử dụng mô hình mạng Nơ ron hay Mạng Bayessian?

… Trong mỗi cách tiếp cận, sử dụng độ đo nào để nắm bắt chính xác việc khách

3

hàng cho rằng sản phẩm tốt? Làm thế nào để dự báo tốt và gợi ý tốt trong đồng

thời, …[1, 10].

Với những lý do trên, tác giả đã chọn đề tài “Phương pháp lọc cộng tác

và ứng dụng trong hệ thống gợi ý bán hàng trực tuyến” làm đề tài nghiên

cứu luận văn tốt nghiệp thạc sĩ chuyên ngành Khoa học máy tính.

 Mục tiêu nghiên cứu

Nghiên cứu ứng dụng các phương pháp lọc cộng tác trong bài toán xây

dựng hệ thống tư vấn. Tập trung vào phân tích, so sánh, đánh giá hiệu quả của

phương pháp lọc cộng tác dựa trên người dùng và lọc cộng tác dựa trên sản

phẩm ứng dụng trong bài toán xây dựng hệ thống gợi ý bán hàng trực tuyến.

 Đối tượng và phạm vi nghiên cứu

Đối tượng: Phương pháp lọc cộng tác, hệ thống gợi ý bán hàng trực tuyến

Phạm vi nghiên cứu: Khảo sát và đánh giá thuật hiệu quả của thuật toán

lọc cộng tác dựa trên người dùng và thuật toán lọc cộng tác dựa trên sản phẩm

đối với hệ thống gợi ý bán hàng trực tuyến. Quá trình đánh giá được thực hiện

trên một số bộ mẫu dữ liệu chuẩn có sẵn trong [15].

 Phương pháp nghiên cứu

- Đọc tài liệu, phân tích, tổng hợp.

- Thu thập dữ liệu, thống kê, phân tích dữ liệu.

- Mô phỏng và đánh giá kết quả.

- Kết hợp nghiên cứu lý thuyết, tìm hiểu tình hình ứng dụng, đánh giá khả

năng ứng dụng và đề xuất giải pháp.

 Ý nghĩa khoa học và thực tiễn của đề tài

Nghiên cứu các phương pháp lọc cộng tác. Chứng minh khả năng ứng

dụng của lọc cộng tác cho bài toán xây dựng hệ thống gợi ý sản phẩm trong

bán hàng trực tuyến. Khuyến nghị phương pháp tiếp cận hiệu quả nhất trong

các phương pháp lọc cộng tác.

4

Đề tài nghiên cứu các bước trong quá trình tư vấn, các giải pháp khắc

phục các yếu tố ảnh hưởng đến chất lượng, nhằm cải thiện kết quả tư vấn sản

phẩm phù hợp với yêu cầu thực tế của người dùng.

Với mục tiêu trên, luận văn được trình bày trong ba chương

Chương 1: Hệ thống tư vấn và phương pháp lọc thông tin

Chương này giới thiệu bài toán tư vấn và hệ thống gợi ý, phân tích các

ứng dụng của hệ thống gợi ý trong thực tế. Các phương pháp lọc tin và ứng

dụng trong hệ thống gợi ý.

Chương 2: Phương pháp thuật lọc cộng tác dựa trên sản phẩm

Chương này trình bày phương pháp lọc cộng dựa vào người dùng, lọc

cộng tác dựa trên sản phẩm, phương pháp lọc cộng tác dựa trên mô hình và khả

năng ứng dụng trong bài toán xây dựng hệ thống gợi ý

Chương 3: Ứng dụng phương pháp lọc cộng tác dựa trên sản phẩm trong hệ

thống gợi ý bán hàng trực tuyến.

Chương này cài đặt thử nghiệm phương pháp lọc cộng tác trên sản phẩm

cho website bán hàng thời trang

5

CHƯƠNG 1. HỆ THỐNG TƯ VẤN

VÀ CÁC PHƯƠNG PHÁP LỌC THÔNG TIN

1.1. Hệ tư vấn

1.1.1. Giới thiệu hệ thống tư vấn

Hệ thống tư vấn (Recommender Systems – RS) [8] phân tích thông tin về

sở thích của người dùng (user) về các sản phẩm (item) để cung cấp các khuyến

nghị đối với các item phù hợp nhất với mong muốn và sở thích của người dùng.

Trên thực tế, hệ thống gợi ý cố gắng thu thập những sở thích của người dùng

và mô hình hóa sự tương tác giữa người dùng và sản phẩm.

Hệ thống gợi ý sử dụng các thông tin về sản phẩm và các tri thức của

chuyên gia hay tri thức khai phá dữ liệu được học từ hành vi của người dùng

để đưa ra những gợi ý về sản phẩm mà họ thích trong hàng ngàn hàng vạn sản

phẩm có trong hệ thống. Các website thương mại điện tử ví dụ như: sách, phim,

nhạc, báo,... sử dụng hệ thống gợi ý để cung cấp các thông tin giúp cho người

dùng quyết định sẽ lựa chọn sản phẩm nào. Các sản phẩm được gợi ý dựa trên

số lượng sản phẩm đó đã được bán, dựa trên các thông tin cá nhân của người

dùng, dựa trên sự phân tích hành vi mua hàng trước đó của người dùng để đưa

ra các dự đoán về hành vi mua hàng trong tương lai của chính khách hàng đó.

Các dạng gợi ý bao gồm: gợi ý các sản phẩm tới người tiêu dùng, các thông tin

sản phẩm mang tính cá nhân hóa, tổng kết các ý kiến cộng đồng, và cung cấp

các chia sẻ, các phê bình, đánh giá mang tính cộng đồng liên quan tới yêu cầu,

mục đích của người dùng đó [10, 13, 16].

Rất nhiều hệ thống lớn thu thập thông tin phản hồi từ khách hàng một cách

tường minh, như Ebay, Amazon, LastFM, NetFlix, Youtube,... ở đó người dùng

sẽ trực tiếp đánh giá trên sản phẩm, như bình chọn từ ★ (không thích) đến ★

6

★★★ (rất thích); hay Youtube thu thập thông tin qua like/disklike, và các hệ

thống khác [10, 13, 16]. Thông qua việc thu thập phản hồi tường minh, hệ thống

dễ dàng xác định mức độ yêu thích của người dùng trên sản phẩm, từ đó dự

đoán các sản phẩm tiếp theo mà người dùng có thể thích để gợi ý cho họ. Tuy

nhiên, điều này có thể gây bất lợi do không phải người dùng lúc nào cũng sẵn

sàng/vui lòng để lại các phản hồi của họ, vì vậy hệ thống phải nên tự xác định

người dùng cần gì thông qua phản hồi tiềm ẩn. Một số ứng dụng hệ tư vấn nổi

tiếng trên thế giới được giới thiệu trong Hình 1.1 [14].

Hình 1.1: Một số lĩnh vực ứng dụng của hệ thống gợi ý

Trong kỹ thuật lọc cộng tác CF (Collaborative Filtering), việc đưa ra

những khuyến nghị về các sản phẩm đối với người dùng được xác định dựa trên

những quan điểm của những người dùng có cùng sở thích với người dùng đó.

Hệ thống lọc cộng tác biểu diễn người dùng dựa trên những đánh giá của họ

7

đối với tập các sản phẩm. Hệ thống sẽ lựa chọn những người dùng cùng sở

thích tùy thuộc vào độ đo tương tự hoặc tương quan. Sau đó, đưa ra những dự

đoán đối với những sản phẩm chưa từng được người dùng đánh giá hoặc quan

tâm. Cuối cùng hệ thống sẽ gợi ý những sản phẩm nào với mức độ dự đoán cao

nhất cho người dùng mục tiêu. Kỹ thuật CF đã được khẳng định sự thành công

bởi rất nhiều nghiên cứu và thực nghiệm trong nhiều ứng dụng thực tế [8, 11,

12].

Hệ thống gợi ý là một dạng của hệ hỗ trợ ra quyết định, cung cấp giải pháp

mang tính cá nhân hóa mà không phải trải qua quá trình tìm kiếm phức tạp. Hệ

gợi ý học từ người dùng và gợi ý các sản phẩm tốt nhất trong số các sản phẩm

phù hợp.

1.1.2. Bài toán tư vấn người dùng

Cho tập hợp hữu hạn gồm 𝑁 người dùng 𝑈 = {𝑢1, 𝑢1, … , 𝑢𝑁} và 𝑀 sản

phẩm 𝑃 = {𝑝1, 𝑝2, … , 𝑝𝑀}.

Mỗi người dùng 𝑢𝑖 ∈ 𝑈 (với 𝑖 = 1, 2, … , 𝑁) được biểu diễn thông qua |𝑇| đặc trưng nội dung 𝑇 = {𝑡1, 𝑡2, … , 𝑡|𝑇|}. Các đặc trưng 𝑡𝑞 ∈ 𝑇 thông thường là

thông tin cá nhân của mỗi người dùng. Ví dụ 𝑢𝑖 ∈ 𝑈 là một người dùng thì các đặc trưng nội dung biểu diễn người dùng 𝑢𝑖 có thể là T={giới tính, độ tuổi, nghề nghiệp, trình độ,…}.

Mỗi sản phẩm 𝑝𝑥 ∈ 𝑃 (với 𝑥 = 1, 2, … 𝑀) có thể là hàng hóa, phim, ảnh,

tạp chí, tài liệu, sách, báo, dịch vụ hoặc bất kỳ dạng thông tin nào mà người

dùng cần đến. Mỗi sản phẩm 𝑝𝑥 ∈ 𝑃 được biểu diễn thông qua |𝐶| đặc trưng nội

dung 𝐶 = { 𝑐1, 𝑐2, … , 𝑐|𝐶|}. Các đặc trưng 𝑐𝑠 ∈ 𝐶 nhận được từ các phương pháp

trích chọn đặc trưng trong lĩnh vực truy vấn thông tin. Ví dụ 𝑝𝑥 ∈ 𝑃 là một phim

thì các đặc trưng nội dung biểu diễn phim 𝑝𝑥 có thể là 𝐶 = {thể loại phim, nước

sản xuất, hãng phim, diễn viên, đạo diễn, …}.

Mối quan hệ giữa tập người dùng 𝑈 và tập sản phẩm 𝑃 được biểu diễn thông

qua ma trận đánh giá 𝑅 = [𝑟𝑖𝑥] với 𝑖 = 1, 2, … , 𝑁; 𝑥 = 1, 2, … , 𝑀 (Hình 1.2).

8

Sản phẩm

1 2 … i … 𝑀

1 5 3 0 1 2 0

2 0 2 0 0 0 4

0 0 5 0 0 0

u 3 4 0 2 1 0

g n ù d i ờ ư g N

0 0 0 0 4 0

N 0 0 3 2 0 0

𝑎

3 5 0 ? 1 0

Hình 1.2. Ví dụ ma trận đánh giá tổng quát

𝑝𝑥 ∈ 𝑃. Thông thường giá trị 𝑟𝑖𝑥 nhận một giá trị thuộc miền 𝐹 = { 1, 2, … , 𝑔}

Giá trị 𝑟𝑖𝑥 thể hiện đánh giá của người dùng 𝑢𝑖 ∈ 𝑈 cho một số sản phẩm

được thu thập trực tiếp bằng cách hỏi ý kiến người dùng hoặc thu thập gián tiếp

thông qua cơ chế phản hồi của người dùng. Những giá trị 𝑟𝑖𝑥 = 0 được hiểu là

người dùng 𝑢𝑖 ∈ 𝑈 chưa biết đến hoặc không đánh giá sản phẩm 𝑝𝑥 ∈ 𝑃, những

ô điền ký tự “?” là giá trị cần hệ tư vấn đưa ra dự đoán đánh giá. Tiếp đến, ta

ký hiệu 𝑃𝑖  𝑃 là tập các sản phẩm 𝑝𝑥 ∈ 𝑃 được đánh giá bởi người dùng 𝑢𝑖 ∈ 𝑈

và 𝑢𝑎 ∈ 𝑈 được gọi là người dùng hiện thời, người dùng cần được tư vấn hay

người dùng tích cực. Khi đó, tồn tại hai dạng bài toán điển hình của hệ tư vấn

là:

- Dự đoán đánh giá của người dùng 𝑢𝑎 với các sản phẩm chưa có đánh

giá trước đó.

- Tư vấn danh sách ngắn các sản phẩm phù hợp với người dùng hiện

thời. Cụ thể đối với người dùng 𝑢𝑎, hệ tư vấn sẽ chọn ra 𝐾 sản phẩm mới 𝑝𝑥 ∈ (𝑃\𝑃𝑎) phù hợp với người dùng 𝑢𝑎 nhất để gợi ý cho họ.

9

Việc giải quyết bài toán tư vấn sẽ được thực hiện theo qui trình xây dựng

hệ tư vấn trong mục 1.1.3.

1.1.3. Qui trình xây dựng hệ tư vấn

Qui trình tổng quát để giải quyết bài toán tư vấn [14] thông thường gồm

có 3 giai đoạn chính được thể hiện như sau:

Giai đoạn 1: Thu thập thông tin

Ba loại thông tin chính thường được thu thập cho hệ tư vấn, gồm có:

- Người dùng (User) biểu diễn thông qua các đặc trưng là thông tin cá

nhân. Thông qua biểu diễn này, hệ thống cho phép xây dựng hồ sơ người dùng

(user’s profile) nhằm lưu trữ lại dấu vết các đặc trưng nội dung sản phẩm đã

từng được sử dụng bởi người dùng.

- Sản phẩm (Item) biểu diễn thông qua các đặc trưng là thông tin về sản

phẩm. Thông qua biểu diễn này, hệ thống cho phép xây dựng hồ sơ sản phẩm

(item’s profile) nhằm lưu trữ lại dấu vết các đặc trưng người dùng đã từng sử

dụng sản phẩm.

- Phản hồi của người dùng với sản phẩm (Feedback), biểu diễn thông qua

các giá trị đánh giá của người dùng với sản phẩm.

Giai đoạn 2: Xây dựng mô hình

Giai đoạn xây dựng mô hình tư vấn có thể thực hiện bằng nhiều hướng

tiếp cận khác nhau nhằm so sánh, đánh giá mối liên hệ giữa các thông tin thu

thập được ở giai đoạn 1. Một số hướng tiếp cận điển hình được biết đến như:

dựa vào kinh nghiệm, học máy, lý thuyết xấp xỉ,...[1]. Mỗi hướng tiếp cận sẽ

khai thác thông tin đầu vào theo những cách khác nhau hình thành những

phương pháp tư vấn khác nhau.

Giai đoạn 3: Dự đoán đánh giá / Đưa ra tư vấn

Dữ liệu đầu ra của giai đoạn 2 sẽ được dùng để dự đoán các đánh giá của

người dùng với các sản phẩm chưa có đánh giá trước đó và chọn ra 𝐾 sản phẩm

mới phù hợp nhất đối với người dùng hiện thời để gợi ý cho họ.

10

1.2. Các phương pháp lọc tin

1.2.1. Phân loại hệ thống tư vấn

Lọc thông tin là lĩnh vực nghiên cứu các quá trình phân bổ thông tin thích

hợp và gỡ bỏ thông tin không thích hợp đến với mỗi người dùng. Lọc thông tin

cho các hệ tư vấn được tiếp cận theo hai xu hướng chính, đó là lọc dựa vào nội

dung sản phẩm và lọc dựa vào thói quen sử dụng sản phẩm của người hay còn

được gọi là lọc cộng tác. So với lọc theo nội dung, lọc cộng tác cho lại kết quả

tốt hơn và có thể lọc bất kỳ dạng thông tin nào. Tuy nhiên, lọc cộng tác gặp

phải vấn đề dữ liệu thưa, người dùng mới và sản phẩm mới cần được tiếp tục

nghiên cứu giải quyết. Kết hợp giữa lọc cộng tác và lọc nội dung để nâng cao

chất lượng dự đoán và tránh hiện trạng dữ liệu thưa của lọc cộng tác được tập

trung nghiên cứu nhiều trong thời gian gần đây. Các phương pháp lọc kết hợp

hiện nay vẫn hạn chế trong biểu diễn và ước lương mức độ ảnh hưởng của mỗi

đặc trưng nội dung đến thói quen sử dụng sản phẩm của người dùng [2, 5, 10,

12, 14].

Có rất nhiều cách để dự đoán, ước lượng hạng/điểm cho các sản phẩm như

sử dụng học máy, lý thuyết xấp xỉ, các thuật toán dựa trên kinh nghiệm, …

Theo [8], các hệ thống gợi ý thường được phân thành ba loại theo các phương

pháp lọc tin (xem Hình 1.3): Tư vấn dựa trên nội dung, tư vấn dựa trên cộng

tác, tư vấn dựa trên cách tiếp cận kết hợp.

Tư vấn dựa trên nội dung: Cách tiếp cận lọc nội dung tạo ra một hồ sơ

cho mỗi người dùng hoặc sản phẩm để mô tả bản chất của nó. Ví dụ, một hồ sơ

phim có thể bao gồm các thuộc tính liên quan đến thể loại của nó, các diễn viên

tham gia, sự phổ biến của phòng vé, v.v. Hồ sơ người dùng có thể bao gồm

thông tin nhân khẩu học hoặc câu trả lời được cung cấp trên bảng câu hỏi phù

hợp. Các hồ sơ cho phép các chương trình liên kết người dùng với các sản phẩm

phù hợp. Tất nhiên, chiến lược dựa trên nội dung yêu cầu thu thập thông tin bên

ngoài có thể không có sẵn hoặc khó thu thập.

11

Tư vấn dựa trên cộng tác: Cách này chỉ dựa trên hành vi của người dùng

trước đây. Ví dụ: Giao dịch trước đó hoặc xếp hạng sản phẩm, mà không yêu

cầu tạo hồ sơ rõ ràng. Chiến thuật này phân tích mối liên quan giữa người dùng

và các thuộc tính của sản phẩm để định nghĩa quan hệ giữa người dùng – sản

phẩm.

Ưu điểm của lọc cộng tác so với lọc nội dung là không bị giới hạn miền,

dẫn đến có thể giải quyết các khía cạnh dữ liệu thường khó nắm bắt và khó

khăn để đưa vào khi sử dụng lọc nội dung. Tuy nhiên không hiệu quả khi phải

xử lý với dữ liệu mới được thêm vào, điều mà lọc nội dung lại hiệu quả hơn.

Tư vấn dựa trên cách tiếp cận kết hợp: Kết hợp hai phương pháp tiếp cận

dựa trên nội dung và cộng tác.

Hình 1.3: Phân loại hướng tiếp cận xây dựng hệ thống gợi ý

1.2.2. Phương pháp tư vấn dựa trên nội dung

Lọc theo nội dung là phương pháp thực hiện dựa trên việc so sánh nội

dung thông tin hay mô tả hàng hóa, để tìm ra những sản phẩm tương tự với

12

những gì mà người dùng đã từng quan tâm để giới thiệu cho họ những sản phẩm

này. Các phương pháp tiếp cận cho lọc theo nội dung được chia thành hai

phương pháp chính: lọc nội dung dựa vào bộ nhớ và lọc nội dung dựa vào mô

hình. Những vấn đề cần tiếp tục nghiên cứu của lọc nội dung là vấn đề trích

chọn đặc trưng và người dùng mới [1, 8, 12].

Với phương pháp tư vấn dựa trên nội dung, độ phù hợp r(u, i) của sản

phẩm i với người dùng u được đánh giá dựa trên độ phù hợp r(u, i’) trong đó

và “tương tự” như i. Ví dụ, để gợi ý một bộ phim cho người dùng u, hệ thống

gợi ý sẽ tìm các đặc điểm của những bộ phim từng được u đánh giá cao như

diễn viên, đạo diễn, … sau đó chỉ những bộ phim tương tự với sở thích của u

mới được giới thiệu.

Hướng tiếp cận dựa trên nội dung bắt nguồn từ những nghiên cứu về thu

thập thông tin và lọc thông tin. Do đó, rất nhiều hệ thống dựa trên nội dung hiện

nay tập trung vào tư vấn các đối tượng chứa dữ liệu văn bản như tin tức,

website. Những tiến bộ so với hướng tiếp cận cũ của phương pháp tìm kiếm

thông tin là do có sử dụng hồ sơ về người dùng (chứa thông tin về sở thích, nhu

cầu,...). Hồ sơ này được xây dựng dựa trên những thông tin được người dùng

cung cấp trực tiếp (khi trả lời khảo sát) hoặc gián tiếp (do khai phá thông tin từ

các giao dịch của người dùng).

Hình 1.4. Minh họa phương pháp tư vấn dựa trên lọc nội dung

Giả sử ta xem Content(i) là một thông tin riêng của sản phẩm, nghĩa là

một tập các đặc tính đặc trưng cho sản phẩm i. Nó thường được tính toán thông

qua việc trích rút từ tập các đặc tính của sản phẩm i (nội dung của nó) và ứng

13

với mỗi mục đích tư vấn sẽ xác định ra sản phẩm thích hợp. Dễ dàng nhận thấy

những hệ thống gợi ý dựa trên nội dung thường thiết kế cho hầu hết những sản

phẩm được tư vấn dựa trên text (văn bản) và nội dung của những hệ thống này

được mô tả như là một từ khóa (keyword).

Một trong những thước đo phổ biến để xác định mức độ quan trọng của từ

khóa trong việc truy vấn thông tin là đo tần suất xuất hiện của mục từ trong tài

liệu (Term Frequency) và tần số nghịch đảo của tần suất xuất hiện các tài liệu

(Inverse Document Frequency) được định nghĩa như sau:

Giả sử N là tổng số tài liệu được tư vấn cho người dùng và từ khóa 𝑘𝑗 xuất

hiện trong 𝑛𝑖 của chúng (𝑛𝑖 là tổng số tài liệu có từ khóa k). Giả sử 𝑓𝑖,𝑗 là số lần

từ khóa 𝑘𝑖 xuất hiện trong tài liệu 𝑑𝑗. 𝑇𝐹𝑖,𝑗 là tần số xuất hiện từ khóa 𝑘𝑖 trong tài

liệu 𝑑𝑗:

(1.1) 𝑇𝐹𝑖,𝑗 = 𝑓𝑖,𝑗 𝑚𝑎𝑥𝑧 𝑓𝑧,𝑗

Trong đó 𝑚𝑎𝑥𝑧𝑓𝑧,𝑗 là số lần xuất hiện cao nhất của từ khóa 𝑘𝑧 trong toàn

tập tài liệu 𝑑𝑗. Tuy nhiên, những từ khóa xuất hiện trong nhiều tài liệu có thể

không được phân biệt với nhau giữa tài liệu liên quan và không liên quan. Vì

vậy, tần số nghịch đảo tần suất xuất hiện của các tài liệu 𝐼𝐷𝐹𝑖 được đưa ra để phân biệt giữa các từ khóa này và thường dùng kết hợp với tần suất xuất hiện

của từ khóa (𝑇𝐹𝑖,𝑗 mang lại tầm quan trọng cho từ khóa):

(1.2) 𝐼𝐷𝐹𝑖 = 𝑙𝑜𝑔 𝑁 𝑛𝑖

Vậy sự kết hợp của TF và IDF sẽ xác định mức độ quan trọng của từ khóa

𝑘𝑖 cần xét.

(1.3) 𝑤𝑖,𝑗 = 𝑇𝐹𝑖,𝑗 × 𝐼𝐷𝐹𝑖

Và nội dung của tài liệu 𝑑𝑗 được xác định như sau:

(1.4) 𝐶𝑜𝑛𝑡𝑒𝑛𝑡(𝑑𝑗) = (𝑤1𝑗, 𝑤2𝑗, … , 𝑤𝑘𝑗)

14

Như đã nói ở trên, hệ thống dựa trên nội dung thường được dùng để tư vấn

những sản phẩm đã được người dùng đó trước đây ưa thích. Cụ thể, những sản

phẩm được tiến cử đem so sánh trọng số với các sản phẩm mà người dùng trước

đây đã sử dụng và từ đó tìm ra sản phẩm phù hợp nhất để tư vấn.

ContentBasedProfile(u) là hồ sơ cá nhân của người dùng u chứa những

thị hiếu và sở thích của người dùng. Hồ sơ cá nhân thu được thông qua việc

phân tích nội dung của những sản phẩm và trọng số do người dùng đánh giá

trước đó, nó thường được xây dựng bằng cách sử dụng kỹ thuật phân tích từ

khóa từ việc truy vấn thông tin. Chẳng hạn, ContentBasedProfile(u) có thể được

định nghĩa như là một véc tơ của những mức độ quan trọng mỗi mức này sẽ

biểu diễn tầm quan trọng của từ khóa 𝑘𝑖 với người dùng u và nó có thể được

tính toán từ các véc tơ nội dung đã được đánh trọng số cụ thể thông qua các kỹ

thuật khác nhau. Ví dụ một vài phương pháp tính trung bình cộng, tính toán

ContentBasedProfile(u) như là một véc tơ “trung bình” từ những véc tơ nội

dung cụ thể.

Trong những hệ thống dựa trên nội dung, hàm tiện ích r(u, i) thường được

định nghĩa như sau:

(1.5) 𝑟(𝑢, 𝑖) = 𝑠𝑐𝑜𝑟𝑒(𝐶𝑜𝑛𝑡𝑒𝑛𝑡𝐵𝑎𝑠𝑒𝑑𝑃𝑟𝑜𝑓𝑖𝑙𝑒 (𝑢), 𝑐𝑜𝑛𝑡𝑒𝑛𝑡(𝑖))

Dựa trên việc truy vấn thông tin để tư vấn các trang Web, Web sites URLs

hoặc các thông điệp tin tức Usenet, thì cả ContentBasedProfile (u) của người

dùng u và Content(i) của tài liệu i đều có thể được trình bày như các TF-IDF

𝐾 ∑ 𝑊𝑗𝑢 𝑊𝑗𝑖 𝑗=1 ‖𝑊𝑢⃗⃗⃗⃗⃗ ‖𝑥‖𝑊𝑖⃗⃗⃗⃗ ‖

(1.6) = 𝑟(𝑢, 𝑖) = 𝑐𝑜𝑠(𝑊𝑢⃗⃗⃗⃗⃗ , 𝑊𝑖⃗⃗⃗⃗ ) = véc tơ 𝑊𝑢⃗⃗⃗⃗⃗ và 𝑊𝑖⃗⃗⃗⃗ của các từ khóa quan trọng. Hàm r(u, i) được biểu diễn trong việc truy vấn thông tin thường được xác định theo véc tơ 𝑊𝑢⃗⃗⃗⃗⃗ và 𝑊𝑖⃗⃗⃗⃗ như sau: 𝑊𝑢⃗⃗⃗⃗⃗ . 𝑊𝑖⃗⃗⃗⃗ ‖𝑊𝑢⃗⃗⃗⃗⃗ ‖𝑥‖𝑊𝑖⃗⃗⃗⃗ ‖

Trong đó K là tổng số các từ khóa trong hệ thống.

15

Ví dụ, nếu user u đọc nhiều bài báo trực tuyến về chủ để Tin Sinh Học thì

kỹ thuật tư vấn dựa trên nội dung sẽ có khả năng tư vấn những bài báo khác về

tin sinh học cho user u nếu nó có nhiều thuật ngữ liên quan đến tin sinh học hơn vì vậy ContentBasedProfile(u) sẽ được xác định bằng véc tơ 𝑊𝑢⃗⃗⃗⃗⃗ mô tả các thuật ngữ 𝑘𝑗 với mức độ quan trọng cao 𝑊𝑗𝑢. Hơn nữa, hệ thống tư vấn này còn

sử dụng cosine hoặc thước đo mức độ tương tự để gán giá trị hàm r(u, i) cao

cho những bài báo i có nhiều thuật ngữ tin sinh học và giá trị hàm r(u, i) thấp cho những bài báo có ít thuật ngữ tin sinh học hơn thông qua véc tơ 𝑊𝑖⃗⃗⃗⃗ .

Bên cạnh phương pháp truy vấn thông tin mà cơ sở là dựa trên các hàm

dựa vào kinh nghiệm truyền thống, tư vấn dựa trên nội dung còn sử dụng các

kỹ thuật khác như phân loại Bayes và nhiều kỹ thuật máy học khác bao gồm

phân cụm, cây quyết định, và mạng nơ-ron nhân tạo.

Những kỹ thuật này khác với phương pháp dựa trên việc truy vấn thông

tin, ở đây chúng tính toán hàm tiện ích không dựa trên hàm heuristic giống như

việc đánh giá độ tương quan bằng hàm cosine mà nó dựa trên các mô hình được

biết từ dữ liệu phía dưới nhờ sử dụng các kỹ thuật máy học và thống kê. Chẳng

hạn, dựa trên tập các trang Web được đánh trọng số thể hiện mức độ liên quan

đến người dùng, sử dụng kỹ thuật phân loại Naïve Bayes để phân loại các trang

Web không được đánh trọng số.

Hơn nữa, kỹ thuật phân loại Naïve Bayes thường được dùng để đánh giá

xác suất trang 𝑝𝑗 có thuộc lớp 𝐶𝑖 không (có quan hệ hay không có quan hệ) dựa

vào tập các từ khóa 𝑘1,𝑗, ……, 𝑘𝑛,𝑗 trong trang đó:

(1.7) 𝑃(𝐶𝑖|𝑘1𝑗& … &𝑘𝑛𝑗)

Ngoài ra, giả thuyết rằng các khóa này độc lập với nhau vì vậy xác suất

ở trên tương ứng với:

𝑥

𝑃(𝐶𝑖) ∏ 𝑃(𝐾𝑥𝑗|𝐶𝑖) (1.8)

16

Mặc dù giả thuyết các từ khóa độc lập với nhau không nhất thiết phải áp

dụng ở nhiều ứng dụng nhưng kết quả thực nghiệm đã chứng minh kỹ thuật

phân loại Naïve Bayes vẫn đưa ra độ chính xác cao về mức độ phân loại.

Hơn nữa cả 𝑃(𝐾𝑥𝑗|𝐶𝑖) và 𝑃(𝐶𝑖) có thể được đánh giá từ dữ liệu hướng dẫn

phía dưới. Với mỗi trang 𝑝𝑗, xác suất 𝑃(𝐶𝑖|𝑘1𝑗& … &𝑘𝑛𝑗) được tính toán ứng với

mỗi lớp 𝐶𝑖 và trang 𝑝𝑗 sẽ được gán cho lớp 𝐶𝑖 nếu nó có xác suất lớn nhất.

Khi việc cung cấp kỹ thuật tư vấn không rõ ràng thì tập truy vấn văn bản

sẽ đưa ra một vài kỹ thuật thường được sử dụng trong những hệ thống tư vấn

nội dung. Một trong số đó là kỹ thuật lọc thích ứng; nó tập trung vào việc nhận

biết các tài liệu liên quan cũng như là quan sát từng tài liệu trong những luồng

tài liệu tiếp theo để tăng thêm độ chính xác. Một ví dụ khác là đặt ngưỡng

(threshold setting). Nó tập trung vào việc xác định phạm vi tài liệu ăn khớp với

những câu truy vấn được đưa ra liên quan đến người dùng.

Theo như nhận xét trong [8] hệ thống tư vấn hướng dựa trên nội dung có

một số hạn chế sau:

- Giới hạn trong phân tích nội dung: Nếu hai sản phẩm khác nhau được

biểu diễn cùng một tập đặc trưng thì chúng không thể phân biệt được. Vì vậy

khi những tài liệu dựa trên văn bản thường được biểu diễn dưới những từ khóa

quan trọng, thì những hệ thống dựa trên nội dung không thể phân biệt được cái

nào hợp, cái nào không hợp nếu chúng cùng sử dụng một thuật ngữ.

- Quá chuyên môn hóa: Khi hệ thống chỉ có thể tư vấn những sản phẩm

có trọng số cao dựa trên những thông tin của người dùng, thì người dùng sẽ bị

giới hạn trong việc tư vấn những sản phẩm khác có liên quan sản phẩm trên mà

đã được đánh trọng số. Chẳng hạn, một người không có kinh nghiệm với các

món ăn của người Huế thì ngay cả những cửa hàng lớn nhất kiểu Huế trong

thành phố cũng không bao giờ được tư vấn. Đây là một vấn đề đã được nghiên

cứu trong nhiều lĩnh vực, nó thường được ấn định bằng việc giới thiệu một cách

17

ngẫu nhiên. Chẳng hạn, việc sử dụng những thuật toán di truyền được đề xuất

như là khả năng giải quyết các vấn đề về ngữ cảnh của việc lọc thông tin. Thêm

vào đó, vấn đề liên quan đến việc quá chuyên môn hóa còn là những hệ thống

dựa trên nội dung không thể tư vấn những sản phẩm mà khác với những gì mà

người dùng đã biết trước đó. Trong trường hợp nào đó, những sản phẩm không

nên được tư vấn nếu chúng có quá nhiều điểm tương tự với những gì mà người

dùng đã gặp, như một bài báo tin tức tuy là khác nhau nhưng đưa về cùng một

sự kiện. Vì vậy, một vài hệ thống tư vấn dựa trên nội dung không chỉ lọc ra

những sản phẩm có quá nhiều điểm khác với sở thích của người dùng mà còn

lọc cả chính những sản phẩm có quá nhiều điểm giống của người dùng trước

đó. Nói tóm lại, tính đa dạng của việc tư vấn thường là những đặc điểm mô tả

trong hệ thống tư vấn. Lý tưởng nhất là người dùng sẽ tự đưa ra trọng số của

những lựa chọn thay cho việc đưa ra một tập các khả năng lựa chọn.

- Vấn đề người dung mới: Người dùng phải đánh giá đầy đủ cho những

sản phẩm trước khi hệ thống tư vấn dựa trên nội dung có thể hiểu những sở

thích của người dùng và từ đó đưa ra cho người dùng những tư vấn tin cậy. Vì

vậy, với người dùng mới, thông tin về việc đánh trọng số rất ít nên khó có thể

đảm bảo việc tư vấn sẽ tốt.

- Vấn đề thông tin sản phẩm mới: Lọc nội dung phân tích các đặc điểm

của sản phẩm để so sánh với những sản phẩm mà người dùng đã đánh giá trước

đó, với những sản phẩm có thông tin không đầy đủ hoặc quá đặc biệt, rất khó

để đưa ra 1 tư vấn chính xác với các sản phẩm như vậy.

1.2.3. Phương pháp tư vấn dựa trên lọc cộng tác

Mục đích của giải thuật lọc cộng tác là gợi ý những sản phẩm mới hoặc

dự đoán một sản phẩm hợp lý cho người dùng, dựa trên những sở thích trước

đây và lựa chọn từ những sở thích của những người dùng khác.

18

Hình 1.5: Minh họa phương pháp tư vấn dựa trên lọc cộng tác

Trong kịch bản điển hình của lọc cộng tác, có một danh sách m người

dùng 𝑈 = {𝑢1, 𝑢2, … , 𝑢𝑚} và một danh sách n sản phẩm 𝐼 = {𝑖1, 𝑖2, … , 𝑖𝑛}.

Mỗi người dùng 𝑢1 có danh sách các sản phẩm 𝑆𝑢, mà người dùng đã đánh

giá về sản phẩm đó. Chú ý rằng 𝑆𝑢 I và 𝐼𝑢𝑖 có thể là rỗng.

Hình 1.6 mô tả quy trình lọc cộng tác bao gồm 2 nhiệm vụ chính là:

- Dự đoán: cho ra giá trị 𝑃𝑎𝑗 thể hiện đánh giá của người dùng a lên sản

phẩm j.

-Tư vấn: cho ra danh sách N sản phẩm {𝑇𝑖𝑁} mà người dùng a thích nhất.

Giải thuật lọc cộng tác được mô tả thông qua một ma trận đánh giá 𝑅𝑚 𝑥 𝑛

người dùng và sản phẩm. Mỗi phần tử 𝑎𝑖,𝑗 trong mảng R biểu diễn đánh giá của

người dùng thứ i đối với sản phẩm thứ j. Mỗi đánh giá cá nhân là một số và nó

có thể nhận giá trị 0 khi người dùng chưa đánh giá sản phẩm đó. Các nhà nghiên

cứu đã xây dựng một số các giải thuật lọc cộng tác mà có thể chia thành 2 loại

chính: dựa trên bộ nhớ (Memory-based) và dựa trên mô hình (Model-based).

19

Hình 1.6: Quy trình của hệ thống tư vấn dựa trên lọc cộng tác

1.2.3.1. Giải thuật lọc công tác dựa trên bộ nhớ (Memory-based)

Giải thuật lọc cộng tác dựa trên bộ nhớ sử dụng các cơ sở dữ liệu người

dùng – sản phẩm để dự đoán. Những hệ thống triển khai kỹ thuật thống kê để

tìm những lựa chọn của người dùng, như biết người lân cận, có lịch sử phù hợp

với người dùng đích (ví dụ, người dùng đánh giá tương tự các sản phẩm khác

nhau hoặc có khuynh hướng mua những sản phẩm tương tự nhau). Một khi lân

cận của người dùng được hình thành, hệ thống sử dụng những giải thuật khác

nhau để kết hợp những sở thích của người dùng lân cận để đề xuất một dự đoán

hoặc một tư vấn top-N cho người dùng.

Theo [8], Thuật toán dựa trên bộ nhớ về căn bản sử dụng các độ do kinh

nghiệm để sinh ra dự đoán dựa trên tập các sản phẩm của người dùng.

Cụ thể là, đánh giá trị 𝑟𝑢,𝑖 của người dùng u đối với sản phẩm i thường

được tính toán như là một sự kết hợp trọng số của nhiều người dùng khác nhau

với cùng một sản phẩm i (thường là N sản phẩm giống nhau nhất):

𝑟𝑢′,𝑖 (1.9) 𝑟𝑢,𝑖 = aggr 𝑢∈𝑈̂

20

Trong đó 𝑈̂ biểu diễn tập người dùng N có trọng số về sản phẩm i giống

nhất với người dùng u (N có thể bắt đầu từ 1 đến tất cả người dùng). Một số ví

1

dụ về đánh giá 𝑟𝑢,𝑖 là:

𝑢′∈𝑈

𝑁

∑ (a) 𝑟𝑢,𝑖 = 𝑟𝑢′,𝑖

𝑢′∈𝑈

(1.10) (b) 𝑟𝑢,𝑖 = 𝑘 ∑ 𝑠𝑖𝑚(𝑢, 𝑢′) × 𝑟𝑢′,𝑖

𝑢′∈𝑈

(c) 𝑟𝑢,𝑖 = 𝑟𝑢̅ + 𝑘 ∑ 𝑠𝑖𝑚(𝑢, 𝑢′) × 𝑟𝑢′,𝑖

Trong đó

k: hệ số chuẩn hóa và thường được lựa chọn là:

𝑢∈𝑈̂

1 𝑘 = (1.11) ∑ |𝑠𝑖𝑚(𝑢, 𝑢′)|

𝑟𝑢̅ : trọng số trung bình của người dùng u, được đinh nghĩa như sau:

𝑟𝑢̅ = (1.12) 1 |𝑆𝑢| ∑ 𝑟𝑢,𝑖 𝑠∈𝑆𝑢

Với:

(1.13) 𝑆𝑢 = {𝑠 ∈ 𝑆|𝑟𝑢,𝑖 ≠ ∅}

Trường hợp đơn giản nhất, giá trị đánh giá có thể là trung bình cộng của

các đánh giá người dùng khác lên sản phẩm đó như công thức (a). Tuy nhiên,

phương pháp tiếp cận kết hợp phổ biến nhất thường được sử dụng tính tổng

mức quan trọng như theo công thức (b). Đánh giá sự giống nhau giữa người

dùng u và u’, sim(u, u’) về cơ bản là đo độ tương quan giữa những người dùng

và thường được xem là trọng số, nghĩa là với những người dùng giống nhau

nhất thì 𝑟𝑢′,𝑖 sẽ được thực hiện dựa vào dự đoán của 𝑟𝑢 ,𝑖. Chú ý rằng sim(x, y) như 1 hàm heuristics, được giới thiệu để đánh giá mức khác nhau giữa users

giống nhau, nhằm làm đơn giản hóa việc sử dụng thừa số k như biểu diễn ở

trên.

Những phương pháp tiếp cận khác nhau thường được tính toán hàm

tương quan sim(u, u’) giữa những người dùng trong hệ thống tư vấn cộng tác.

21

Trong hầu hết các phương pháp tiếp cận này, sự tương tự giữa hai người dùng

dựa trên những đánh giá về sản phẩm được cả u và u’ quan tâm. Một trong

những phương pháp phổ biến nhất là dựa trên sự tương quan và cosine. Cụ thể,

đầu tiên, xem 𝑆𝑥𝑦 là tập tất cả các sản phẩm của người dùng x và y; nghĩa là

𝑆𝑥𝑦 = {𝑖 ∈ 𝑆 | 𝑟𝑥,𝑖 ≠ ∅ & 𝑟𝑦𝑥,𝑖 ≠ ∅}. Trong hệ thống tư vấn cộng tác, 𝑆𝑥𝑦

thường được sử dụng để đưa ra kết quả tức thì cho việc tính toán “người hàng

xóm gần nhất” của người dùng x và thường được tính toán để đưa ra xếp hạng

rõ ràng, nghĩa là tính toán tìm ra điểm giao nhau giữa tập 𝑆𝑥 và 𝑆𝑦.

1.2.3.2. Thuật toán lọc cộng tác dựa trên mô hình (Model-based)

Giải thuật lọc cộng tác dựa trên mô hình cung cấp các tư vấn sản phẩm

bằng việc phát triển một mô hình đánh giá của người dùng. Giải thuật loại này

thuộc phương pháp tính xác suất và xử lý lọc cộng tác như tính toán giá trị kỳ

vọng của một dự đoán người dùng, cho đánh giá của người đó với các sản phẩm

khác. Xử lý xây dựng mô hình được thực hiện bởi nhiều các giải thuật học máy

khác nhau như mạng Bayes, phân cụm, và phương pháp dựa trên luật (rule-

based), mô hình hồi quy tuyến tính, mô hình entropy cực đại, …

Thuật toán dựa trên mô hình sử dụng tập đánh giá để đưa ra một mô hình

mà sau đó được sử dụng để tạo ra những dự đoán về trọng số. Chẳng hạn,

phương pháp tính xác suất để lọc cộng tác, trong đó những trọng số (đánh giá)

chưa biết được tính như sau:

𝑛 𝑖=0

. 𝑟𝑢,𝑖 = 𝐸(𝑟𝑢,𝑖) = ∑ 𝑖 × 𝑃𝑟(𝑟𝑢,𝑖 = 𝑖 | 𝑟𝑢,𝑖′, 𝑖′ ∈ 𝑆𝑢)

Giá trị trọng số (đánh giá) là những số nguyên nằm giữa 0 và n. Biểu thức

xác suất là xác suất mà người dùng u sẽ đưa ra trọng số cụ thể cho sản phẩm i, dựa

trên những trọng số của người dùng về những sản phẩm trước đó đã được đánh

giá. Để ước lượng xác suất này, sử dụng 2 mô hình xác suất tương đối sau: mô

hình phân cụm (cluster) và mạng Bayes. Trong mô hình đầu tiên, người dùng có

sở thích giống nhau được tập hợp lại thành một lớp. Trong lớp người dùng, sự

22

đánh giá được xem là độc lập với nhau, nghĩa là cấu trúc mô hình giống như mô

hình Bayes thô sơ ban đầu. Số lượng của các lớp và các thông số của mô hình

được biết từ dữ liệu. Mô hình thứ hai biểu diễn mỗi sản phẩm như là một nút trong

mạng Bayes, ở đó mỗi trạng thái của nút tương ứng với giá trị trọng số của mỗi

sản phẩm có thể nhận biết được. Cả cấu trúc của mạng và xác suất điều kiện được

nhận biết từ dữ liệu. Vì vậy giới hạn của phương pháp này là mỗi người dùng có

thể được tập hợp lại thành một nhóm (cluster) đơn lẻ, trong khi một vài ứng dụng

tư vấn có thể được lợi từ khả năng hợp users thành một vài nhóm cùng một lúc.

Chẳng hạn, trong tư vấn về sách, người dùng quan tâm đến một chủ đề với mục

đích công việc nhưng hoàn toàn có thể quan tâm đến chủ đề khác vào những thời

gian rảnh rỗi.

Phương pháp lọc cộng tác có thể được giải quyết bằng phương pháp học

máy khác nhau (như mạng nơ-ron nhân tạo) kết hợp với kỹ thuật phân tách đặc

trưng (như sự phân tích giá trị đơn lẻ - một kỹ thuật đại số làm giảm chiều của

những ma trận) có thể được sử dụng. Các tác giả đã đi so sánh phương pháp

dựa trên mô hình tương ứng của chúng với phương pháp dựa trên bộ nhớ chuẩn

và sau đó ghi lại chúng và thấy rằng trong một vài ứng dụng, phương pháp dựa

trên mô hình thực hiện tốt hơn phương pháp dựa trên bộ nhớ tính theo mức độ

chính xác của những tư vấn. Tuy nhiên, việc so sánh cả hai trường hợp này

hoàn toàn đều do kinh nghiệm mà không có học thuyết nào chứng minh khẳng

định này [10].

Sự khác biệt chính giữa kỹ thuật dựa trên mô hình cộng tác và những

phương pháp tiếp cận dựa trên hàm heuristic là những kỹ thuật dựa trên mô

hình tính toán những dự đoán tiện ích (đánh giá) không dựa trên những luật về

heuristic mà thay vì đó, dựa trên mô hình được biết đến từ những dữ liệu nằm

bên dưới bằng cách sử dụng kỹ thuật học máy và thống kê. Một phương pháp

kết hợp cả phương pháp tiếp cận dựa trên bộ nhớ và dựa trên mô hình đã được

đề xuất, ở đó nó được phân tích dựa vào kinh nghiệm và cách sử dụng những

23

phương pháp phối hợp này có thể cung cấp tư vấn tốt hơn những phương pháp

cộng tác chỉ dựa trên mô hình hoặc dựa trên bộ nhớ.

Một phương pháp khác để cải thiện hiệu quả của những thuật toán lọc

cộng tác được đưa ra, ở đó đầu vào của tập các đánh giá dựa trên đặc tả của

người dùng được lựa chọn một cách cẩn thận thông qua việc sử dụng một vài

kỹ thuật như loại trừ tạp nhiễu, sự dư thừa và khai thác các dữ liệu thưa thớt để

đánh giá. Những kết quả dựa theo kinh nghiệm chứng minh mức độ chính xác

và hiệu quả của những thuật toán lọc cộng tác dựa trên mô hình là tăng lên.

Những kỹ thuật lựa chọn đầu ra được đề xuất có thể giúp những thuật toán dựa

trên mô hình chỉ rõ vấn đề cần nhận biết từ cơ sở dữ liệu rộng lớn. Hơn nữa,

giữa những sự phát triển gần đây nhất, đề xuất ra phương pháp thống kê cho

lọc cộng tác tạo ra các cách thức khác nhau để so sánh những kỹ thuật dựa trên

bộ nhớ và dựa trên mô hình. Cụ thể, việc sử dụng phương pháp học chủ động

hơn để nhận biết ra mô hình xác suất về sở thích của mỗi người dùng và sử

dụng việc lưu trữ những hồ sơ cá nhân của người dùng trong mô hình pha trộn

để tính toán những tư vấn.

Hệ thống tư vấn cộng tác khắc phục được nhiều nhược điểm của hệ thống

dựa trên nội dung. Một điểm quan trọng là nó có thể xử lý mọi loại dữ liệu và

gợi ý mọi loại sản phẩm, kể cả những sản phẩm mới [14, 15].

1.2.4. Tư vấn dựa trên cách tiếp cận kết hợp

Một vài hệ thống tư vấn sử dụng phương pháp kết hợp phương pháp dựa

trên cộng tác và dựa trên nội dung nhằm tránh những hạn chế của những hệ

thống tư vấn dựa trên cộng tác và dựa trên nội dung. Cách thức nhằm kết hợp

phương pháp dựa trên cộng tác và dựa trên nội dung thành hệ thống tư vấn kết

hợp có thể phân loại như sau:

- Thực thi những phương thức dựa trên nội dung và dựa trên cộng tác

một cách tách biệt cùng với đó là kết hợp những dự đoán của chúng.

- Kết hợp một vài đặc tính dựa trên nội dung vào trong phương pháp dựa

trên cộng tác.

24

- Kết hợp một vài đặc tính dựa trên cộng tác vào trong phương pháp dựa

trên nội dung.

- Xây dựng một số mô hình hợp nhất tổng quát kết hợp những đặc tính

dựa trên nội dung và dựa trên cộng tác.

Tất cả những phương pháp tiếp cận trên được sử dụng trong những

nghiên cứu về hệ tự vấn sau:

- Kết hợp những tư vấn riêng rẽ: Một phương pháp để xây dựng những

hệ thống tư vấn kết hợp là thực hiện chia hệ thống tư vấn dựa trên nội dung và

dựa trên cộng tác. Như vậy có thể có hai kịch bản (scenarios) khác nhau. Đầu

tiên, kết hợp đầu ra đã thu được (những đánh giá) từ những hệ thống tư vấn

riêng biệt thành một hệ thống tư vấn cuối cùng sử dụng hoặc là sự kết hợp tuyến

tính những đánh giá hoặc là một lược đồ bầu chọn (voting). Nói một cách khác,

chúng ta có thể sử dụng một trong những hệ thống tư vấn cụ thể đó, tại một thời

điểm để sử dụng chúng tốt hơn dựa vào tiêu chuẩn “chất lượng” tư vấn.

- Thêm những đặc tính dựa trên nội dung vào mô hình cộng tác: Một vài

hệ thống tư vấn kết hợp sử dụng phương pháp “cộng tác thông qua nội dung”

được mô tả dựa trên những kỹ thuật cộng tác truyền thống và lưu trữ hồ sơ cá

nhân dựa trên nội dung của mỗi người dùng. Hồ sơ cá nhân dựa trên nội dung

này không có những sản phẩm phổ biến được đánh giá, nó thường được dùng

để tính toán độ tương quan giữa hai người dùng. Nó cho phép vượt qua những

vấn đề liên quan đến sự thưa thớt của những ứng dụng cộng tác thuần nhất trước

đây, điển hình là không có nhiều cặp người dùng có số lượng những sản phẩm

chung. Lợi thế khác của phương pháp này là người dùng được tư vấn một sản

phẩm không chỉ khi sản phẩm đó có mức đánh giá cao do những người dùng

có cùng hồ sơ cá nhân mà còn cả khi sản phẩm này được đánh giá cao dựa trên

những hồ sơ cá nhân của người dùng đó.

- Thêm những đặc tính cộng tác vào mô hình dựa trên nội dung: Phương

pháp phổ biến nhất trong kiểu này là việc sử dụng kỹ thuật giảm chiều

(dimensionality reduction) trong nhóm những hồ sơ cá nhân dựa trên nội dung.

25

Chẳng hạn, sử dụng chỉ mục ngữ nghĩa latent (LSI) để tạo ra cái nhìn cộng tác

của tập những hồ sơ cá nhân người dùng; ở đó những hồ sơ này được biểu diễn

bởi những véc tơ, và kết quả của việc cải thiện hiệu năng được so sánh với

phương pháp tiếp cận dựa trên nội dung thuần nhất.

- Phát triển mô hình tư vấn hợp nhất: Nhiều nghiên cứu được đưa ra theo

phương pháp tiếp cận này trong những năm gần đây. Chẳng hạn, đề xuất ra việc

sử dụng những đặc tính dựa trên nội dung và dựa trên cộng tác (ví dụ, tuổi hoặc

giới tính của người dùng hoặc các thể loại phim) trong việc phân loại dựa trên

luật đơn.

1.3. Kiến trúc tổng quát của hệ thống lọc thông tin

Một hệ thống lọc thông tin tổng quát bao gồm bốn thành phần cơ bản

[16]: Thành phần phân tích dữ liệu (Data Analyser Component), thành phần

mô hình người dùng (User Model Component), thành phần học (Learning

Người dùng

Thông tin đặc tả người dùng

Thành phần mô hình người dùng

Nhà cung cấp thông tin

Thông tin các sản phẩm

Hồ sơ người dùng

Phản hồi người dùng

Sản phẩm phù hợp với người dùng

Cập nhật thông tin huấn luyện

Biểu diễn Thông tin sản phẩm

Thành phần học

Thành phần lọc

Thành phần phân tích dữ liệu

Biểu diễn Thông tin sản phẩm

Component) và thành phần lọc (Filtering Component).

Hình 1.7: Kiến trúc tổng quát của hệ thống lọc thông tin

 Thành phần phân tích dữ liệu (DAC) có nhiệm vụ thu thập dữ liệu về

sản phẩm từ các nhà cung cấp thông tin (ví dụ tài liệu, thư điện tử, sách, báo,

tạp chí, phim, ảnh...). Dữ liệu về sản phẩm được phân tích và biểu diễn theo

một khuôn dạng thích hợp, sau đó chuyển đến bộ phận lọc tin.

26

 Thành phần mô hình người dùng (UMC) có thể “hiện” hoặc “ẩn” dùng

để lấy thông tin về người dùng, như giới tính, tuổi, nơi sinh sống và thông tin

người dùng đã truy vấn trước đó để tạo nên hồ sơ người dùng. Hồ sơ người

dùng sau khi tạo ra được chuyển đến thành phần học để thực hiện nhiệm vụ

huấn luyện.

 Thành phần học (LC) thực hiện huấn luyện trên tập hồ sơ và phản hồi

của người dùng theo một thuật toán học máy nào đó. Thuật toán học lấy dữ liệu

từ thành phần mô tả người dùng; lấy dữ liệu về sản phẩm đã được biểu diễn từ

thành phần lọc kết hợp với thông tin phản hồi người dùng để thực hiện nhiệm

vụ huấn luyện. Kết quả quá trình học được chuyển lại cho bộ phận lọc để thực

hiện nhiệm vụ tiếp theo.

 Thành phần lọc (FC) là thành phần quan trọng nhất của hệ thống, có

nhiệm vụ xem xét sự phù hợp giữa hồ sơ người dùng và biểu diễn dữ liệu sản

phẩm để đưa ra quyết định phân bổ sản phẩm. Nếu dữ liệu sản phẩm phù hợp

với hồ sơ người dùng, sản phẩm sẽ được cung cấp cho người dùng đó. Trong

trường hợp ngược lại, hệ thống loại bỏ sản phẩm khỏi danh sách những sản

phẩm phân bổ cho người dùng. Người dùng nhận được những sản phẩm thích

hợp, xem xét, đánh giá, phản hồi lại cho thành phần học để phục vụ quá trình

lọc tiếp theo.

1.4. Ứng dụng của phương pháp lọc tin trong hệ thống tư vấn

Hệ thống gợi ý được ứng dụng khá thành công trong thực tiễn giúp người

dùng giải quyết vấn đề quá tải thông tin. Hệ thống gợi ý sử dụng các tri thức về

sản phẩm, các tri thức của chuyên gia hay tri thức khai phá học được từ hành

vi con người dùng để đưa ra các gợi ý về sản phẩm mà họ thích trong hàng ngàn

hàng vạn sản phẩm có trong hệ thống đặc biệt là thương mại điện tử. Trên thế

giới, đã có nhiều công ty, tổ chức áp dụng thành công hệ thống gợi ý như là

một dịch vụ thương mại của mình nhằm gợi ý các dịch vụ, sản phẩm và các

27

thông tin cần thiết đến người dùng như: website mua sắm trực tuyến Amazon

cung cấp cho khách hàng những sản phẩm mà họ có thể quan tâm, cổng video

clip YouTube, gợi ý phim của MovieLens,... Việc gợi ý sản phẩm phù hợp sẽ

góp phần làm tăng doanh số bán hàng hoặc số lượng truy cập, download của hệ

thống. Các sản phẩm được gợi ý dựa trên số lượng sản phẩm đó đã được bán,

dựa trên các thông tin cá nhân của người dùng, dựa trên sự phân tích hành vi

mua hàng trước đó của người dùng để đưa ra các dự đoán về hành vi mua hàng

trong tương lai của chính khách hàng đó. Giúp cho khách hàng có thể tìm kiếm

được những thông tin thú vị hoặc những sản phẩm mà họ muốn tìm dễ dàng

hơn. Các dạng gợi ý bao gồm: gợi ý các sản phẩm tới người tiêu dùng, các

thông tin sản phẩm mang tính cá nhân hóa, tổng kết các ý kiến cộng đồng, và

cung cấp các chia sẻ, các phê bình, đánh giá mang tính cộng đồng liên quan tới

yêu cầu, mục đích của người dùng đó.

Ví dụ, trong hệ thống bán hàng trực tuyến (chẳng hạn như Amazon),

nhằm tối ưu hóa khả năng mua sắm của khách hàng (user), người ta quan tâm

đến việc những khách hàng nào đã ‘yêu thích’ những sản phẩm (item) nào bằng

cách dựa vào dữ liệu quá khứ của họ (dữ liệu này có thể là xếp hạng mà người

dùng đã bình chọn trên sản phẩm, thời gian duyệt (browse) trên sản phẩm, số

lần click chuột trên sản phẩm,..) từ đó hệ thống sẽ dự đoán được người dùng có

thể thích sản phẩm nào và đưa ra những gợi ý phù hợp cho họ. Hình 1.8 là một

ví dụ minh họa cho hệ thống gợi ý bán hàng của Amazon.

Ngoài lĩnh vực thương mại điện tử như đã thấy ở ví dụ trên, hiện tại RS

cũng được ứng dụng khá thành công trong nhiều lĩnh vực khác như trong giải

trí: gợi ý bài hát cho người nghe (ví dụ, hệ thống của LastFM - www.last.fm),

gợi ý phim ảnh (ví dụ, hệ thống của Netflix - www.netflix.com), gợi ý các video

clip (ví dụ, hệ thống của YouTube - www.youtube.com); trong giáo dục và đào

tạo (gợi ý nguồn tài nguyên học tập như sách, bài báo, địa chỉ web, … cho

28

người học); trong các hệ thống trợ giảng thông minh (như dự đoán năng lực

học tập của người học) [3].

Hình 1.8: Hệ thống gợi ý sản phẩm của Amazon

Hệ thống gợi ý không chỉ đơn thuần là một dạng Hệ thống thông tin mà

nó còn là cả một lĩnh vực nghiên cứu hiện đang rất được các nhà khoa học quan

tâm. Kể từ năm 2007 đến nay, hàng năm đều có hội thảo chuyên về hệ thống

gợi ý của ACM (ACM RecSys) cũng như các tiểu bang dành riêng cho RS trong

các hội nghị lớn khác như ACM KDD, ACM CIKM,...

1.5. Kết luận chương 1

Trong chương này, luận văn đã trình bày một số khái niệm và kiến thức

cơ sở về hệ thống tư vấn, bài toán tư vấn, các phương pháp tư vấn và một số

ứng dụng hệ thống tư vấn trong thực tế. Qua đó cho ta thấy thế nào là hệ thống

tư vấn, việc cần thiết phải xây dựng hệ thống tư vấn và làm thế nào để tư vấn

có độ chính xác cao. Chương 2 và chương 3 của luận văn sẽ trình bày về mô

hình hệ thống tư vấn người dùng dựa trên phương pháp lọc cộng tác.

29

CHƯƠNG 2.

PHƯƠNG PHÁP THUẬT LỌC CỘNG TÁC DỰA TRÊN SẢN PHẨM

Hệ thống tư vấn dựa trên lọc cộng tác tư vấn dựa trên dự đoán của người

dùng với những người dùng lân cận, tuy nhiên điều này rất khó khăn vì tính

thiếu ổn định của người dùng trong hệ thống. Chương này sẽ tìm hiểu mô hình

lọc cộng tác dựa trên sản phẩm, quá trình thực hiện cũng như tìm hiểu một số

giải thuật tính độ tương tự của sản phẩm và giải thuật dự đoán.

2.1. Các phương pháp lọc cộng tác

2.1.1. Giới thiệu về các phương pháp lọc cộng tác

Phương pháp lọc cộng tác hay hệ thống lọc cộng tác là phương pháp phân

tích dữ liệu người dùng để tìm ra mối tương quan giữa các đối tượng người dùng.

Lọc cộng tác hoạt động bằng cách xây dựng một cơ sở dữ liệu, lưu trữ dưới dạng

ma trận người dùng (users) - sản phẩm (items) và mỗi dòng của nó là một véc tơ.

Sau đó, phân tích dữ liệu, tính toán sự tương tự giữa các users với nhau để đưa ra

gợi ý. Ý tưởng quan trọng của phương pháp này là những người dùng tương tự có

xu hướng sử dụng những sản phẩm tương tự.

Trong chương này, tôi sẽ trình bày tới các bạn một phương pháp CF có

tên là Neighborhood-based Collaborative Filtering (NBCF). Khi chỉ nói

Collaborative Filtering, chúng ta sẽ ngầm hiểu rằng phương pháp được sử dụng

là Neighborhood-based.

Ý tưởng cơ bản của NBCF là xác định mức độ quan tâm của một user

tới một item dựa trên các users khác gần giống với user này. Việc gần giống

nhau giữa các users có thể được xác định thông qua mức độ quan tâm của các

users này tới các items khác mà hệ thống đã biết. Ví dụ, A, B đều thích phim

Cảnh sát hình sự, tức đều rate bộ phim này 5 sao. Ta đã biết A cũng thích Người

phán xử, vậy nhiều khả năng B cũng thích bộ phim này.

Các bạn có thể đã hình dung ra, hai câu hỏi quan trọng nhất trong một hệ

thống Neighborhood-based Collaborative Filtering là:

30

- Làm thế nào xác định được sự giống nhau giữa hai users?

- Khi đã xác định được các users gần giống nhau (similar users) rồi,

làm thế nào dự đoán được mức độ quan tâm của một user lên một item?

Việc xác định mức độ quan tâm của mỗi user tới một item dựa trên mức

độ quan tâm của similar users tới item đó còn được gọi là User-user

collaborative filtering. Có một hướng tiếp cận khác được cho là làm việc hiệu

quả hơn là Item-item collaborative filtering. Trong hướng tiếp cận này, thay vì

xác định user similarities, hệ thống sẽ xác định item similarities. Từ đó, hệ

thống gợi ý những items gần giống với những items mà user có mức độ quan

tâm cao.

2.1.2. Ưu và nhược điểm của phương pháp lọc cộng tác

Ưu điểm:

- Phương pháp này có khả năng dự đoán được sở thích và nhu cầu của

người dùng để đưa ra gợi ý các sản phẩm phù hợp với từng khách hàng mà

không cần hiểu sản phẩm.

- Gợi ý dựa trên trải nghiệm của người dùng tương tự khác nên có thể

gợi ý được những sản phẩm mới phù hợp sở thích mới.

- Phương pháp này rất phù hợp với những hệ thống lớn có nhiều đánh

giá từ phía người dùng.

Ngày nay, phương pháp này được sử dụng khá phổ biến trên các trang

thương mại điện tử lớn như Tiki, Shopee, Amazon, Youtube,… bởi tính đơn

giản và một lượng dữ liệu sẵn có từ người dùng trên các website này.

Một số hạn chế:

- Không thể gợi ý nếu khách hàng chưa có dữ liệu về lịch sử tương tác

mặt hàng.

- Khi lượng sản phẩm lớn và số lượng khách hàng đánh giá không nhiều

thì phương pháp này không hiệu quả.

- Phương pháp này cũng không thể gợi ý được các sản phẩm mới hoặc

những sản phẩm chưa được ai đánh giá.

31

- Phương pháp này sẽ cho độ chính xác kém nếu như sở thích của người

dùng thay đổi.

Một số hạn chế của User-user CF:

- Trên thực tế, số lượng users luôn lớn hơn số lượng items rất nhiều. Kéo

theo đó là Similarity matrix là rất lớn với số phần tử phải lưu giữ là hơn 1 nửa

của bình phương số lượng users (chú ý rằng ma trận này là đối xứng). Việc

này, như đã đề cập ở trên, khiến cho việc lưu trữ ma trận này trong nhiều trường

hợp là không khả thi.

- Ma trận Utility Y thường là rất sparse. Với số lượng users rất lớn so

với số lượng items, rất nhiều cột của ma trận này sẽ rất sparse, tức chỉ có một

vài phần tử khác 0. Lý do là users thường lười rating. Cũng chính vì việc này,

một khi user đó thay đổi rating hoặc rate thêm items, trung bình cộng các

ratings cũng như vector chuẩn hoá tương ứng với user này thay đổi nhiều. Kéo

theo đó, việc tính toán ma trận Similarity, vốn tốn nhiều bộ nhớ và thời gian,

cũng cần được thực hiện lại.

Ngược lại, nếu chúng ta tính toán similarity giữa các items rồi

recommend những items gần giống với item yêu thích của một user thì sẽ có

những lợi ích sau:

- Vì số lượng items thường nhỏ hơn số lượng users, Similarity matrix

trong trường hợp này cũng nhỏ hơn nhiều, thuận lợi cho việc lưu trữ và tính

toán ở các bước sau.

- Vì số lượng phần tử đã biết trong Utility matrix là như nhau nhưng số

hàng (items) ít hơn số cột (users), nên trung bình, mỗi hàng của ma trận này sẽ

có nhiều phần tử đã biết hơn số phần tử đã biết trong mỗi cột. Việc này cũng

dễ hiểu vì mỗi item có thể được rated bởi nhiều users. Kéo theo đó, giá trị trung

bình của mỗi hàng ít bị thay đổi hơn khi có thêm một vài ratings. Như vậy, việc

cập nhật ma trận Similarity Matrix có thể được thực hiện ít thường xuyên hơn.

Cách tiếp cận thứ hai này được gọi là Item-item Collaborative Filtering.

Hướng tiếp cận này được sử dụng nhiều trong thực tế hơn.

32

2.2. Lọc cộng tác dựa trên sản phẩm

Lọc cộng tác khai thác những khía cạnh liên quan đến thói quen sở thích

của người dùng sản phẩm để đưa ra dự đoán các sản phẩm mới cho người dùng

này. So với lọc theo nội dung, lọc cộng tác không phải phân tích, bóc tách, hiểu,

đánh chỉ mục cho các đặc trưng nội dung sản phẩm. Chính vì vậy, lọc cộng tác

có thể lọc hiệu quả trên nhiều dạng sản phẩm khác nhau như hàng hóa, sữa,

ảnh, tài liệu. Cùng trên một hệ tư vấn, người dùng sẽ được tư vấn nhiều loại

mặt hàng khác nhau cho dù các mặt hàng này có thể biểu diễn trên không gian

các đặc trưng nội dung khác nhau

Ý tưởng của phương pháp này được thực hiện bằng việc thay vì tính mức

độ tương tự giữa users trong hệ thống với người dùng hiện thời 𝑢𝑎, hệ tư vấn sẽ tính toán mức độ tương tự giữa sản phẩm cần dự đoán đánh giá bởi 𝑢𝑎 với các sản phẩm đã được 𝑢𝑎 đánh giá. Việc tính toán mức độ tương tự giữa hai sản phẩm được xem xét dựa vào tập người dùng cùng đánh giá cả hai sản phẩm đó. Trên cơ

sở đó chọn ra một tập sản phẩm láng giềng với sản phẩm cần dự đoán đánh giá

bởi 𝑢𝑎. Kết hợp các đánh giá của 𝑢𝑎 với tập sản phẩm láng giềng này để đưa ra dự đoán đánh giá của 𝑢𝑎 với sản phẩm cần dự đoán [9, 12].

Bài toán lọc cộng tác:

Cho danh sách người m người dùng U = {𝑢1, 𝑢2, …, 𝑢𝑚} và một danh

sách n sản phẩm I = {𝑖1, 𝑖2,…, 𝑖𝑛}.

𝑟𝑢𝑖 là đánh giá sản phẩm i của người dùng u. r nhận giá trị từ 0 đến 5. Với

r = 0 khi sản phẩm i chưa được đánh giá bởi người dùng u.

Mỗi người dùng u có danh sách các sản phẩm 𝐼𝑢, mà người dùng đã đánh

giá về những sản phẩm đó.

Yêu cầu:

- Dự đoán giá trị số 𝑃𝑢,𝑖 dự đoán khả năng sản phẩm i 𝐼𝑢 cho người dùng

u.

- Tư vấn danh sách 𝐼𝑝 gồm N sản phẩm mà người dùng u thích nhất (𝐼𝑝 ∩

𝐼𝑢 = Ø).

33

Cho một ví dụ có 9 người dùng đánh giá 9 sản phẩm, với mức độ từ 1 đến

5, nếu người dùng không đánh giá sản phẩm thì giá trị là 0.

Bảng 1: Bảng đánh giá người dùng với các sản phẩm

User Item

i1 i2 i3 i4 i5 i6 i7 i8 i9

u1 1 2 1 5 0 0 0 0 0

u2 2 1 3 0 0 1 0 0 0

u3 2 3 0 2 3 1 0 0 4

u4 5 0 2 0 1 0 0 0 2

u5 0 0 3 5 0 3 4 0 0

u6 0 1 1 0 3 5 4 1 0

u7 0 0 0 0 3 4 2 1 0

u8 0 0 0 0 0 5 1 2 2

u9 0 0 0 1 0 0 0 2 4

Các bước trong quá trình tư vấn theo phương pháp lọc cộng tác dựa trên

sản phẩm:

Bước 1: Tiền xử lý dữ liệu: Dữ liệu được thu thập là những đánh giá sản

phẩm của người dùng. Dữ liệu thu thập thường rất lớn tuy nhiên một số đánh

giá có thể không có ích trong quá trình tư vấn theo phương pháp lọc cộng tác.

Đề xuất được đưa ra để tối ưu dữ liệu đầu vào: một số sản phẩm hoặc người

dùng sẽ được loại bỏ nếu người dùng đó đánh giá quá ít sản phẩm, hoặc sản

phẩm được quá ít đánh giá.

Bước 2: Xây dựng Ma trận đánh giá: Hàng là users, Cột là các items.

Bước 3: Tính độ tương tự của 2 item: xây dựng ma trận tương tự của

các sản phẩm.

Bước 4: Tính dự đoán của người dùng đối với sản phẩm dựa trên những

sản phẩm lân cận với sản phẩm dự đoán.

34

2.3. Các thuật toán tính độ tương tự

Để dự đoán một sản phẩm cho một người dùng sử dụng phương pháp lọc

cộng tác cần xem xét đánh giá của người dùng lên những sản phẩm tương tự

với sản phẩm đó, độ tương tự được xác định dựa vào đánh giá của users khác

đã đánh giá cả 2 sản phẩm. Độ tương tự 2 sản phẩm là 1 xác suất thể hiện 2 sản

phẩm đó có tương tự nhau trên khía cạnh đánh giá của người dùng hay không?

Độ tương tự ở đây được hiểu là nếu 2 sản phẩm tương tự nhau thì 1 người dùng

thích sản phẩm này sẽ thích sản phẩm kia và ngược lại.

Bước quan trọng trong giải thuật lọc cộng tác dựa trên sản phẩm là tính

toán độ tương tự giữa các sản phẩm và sau đó chọn những sản phẩm mà tương

đương nhất để sử dụng trong công thức dự đoán. Ý tưởng cơ bản trong tính

toán độ tương tự giữa hai sản phẩm i và j là: chọn các cặp người dùng mà đã

đánh giá cả 2 sản phẩm và sau đó áp dụng kỹ thuật tính toán độ tương tự để mô

tả độ tương tự 𝑆𝑖,𝑗.

Hình 2.1: Tách các sản phẩm cùng được đánh giá và tính toán độ tương tự

35

2.3.1. Độ tương tự Cosine (Cosine-based Similarity)

Trong trường hợp này, cả 2 sản phẩm được biểu diễn thông qua 2 véc tơ

m chiều không gian đánh giá của người dùng. Độ tương tự giữa chúng được đo

dựa trên tính toán cosine góc giữa 2 véc tơ đó. Trong ma trận đánh giá m x n,

độ tương tự giữa hay sản phẩm i và j, biểu diễn là sim(i, j) được cho bởi công

thức:

𝑢∈𝑆

𝑢∈𝑆

𝑢∈𝑆

2 𝑅𝑢𝑖

2 𝑅𝑢𝑗

∑ 𝑅𝑢𝑖 × 𝑅𝑢𝑗 𝑆𝑖𝑚(𝑖, 𝑗) = = (2.1) 𝑖 . 𝑗 |𝑖 |2 × |𝑗 |2 √∑ × √∑

Trong đó:

- 𝑅𝑢𝑖 là đánh giá của người dùng u với sản phẩm i

- 𝑅𝑢𝑗 là đánh giá của người dùng u với sản phẩm j

- S là tập users đã đánh giá cả 2 sản phẩm i, j

Mỗi một sản phẩm được đánh giá bởi n người dùng và được xác định

như là 1 véc tơ n chiều trong công thức này, ở đây những người dùng được

chọn là những người đã đánh giá cả 2 sản phẩm i và j. Như vậy theo công thức

ở trên, kết quả là cosine của góc hợp giữa 2 véc tơ đó. Và vì các đánh giá là

dương nên, cosine của 2 véc tơ bằng 1 thể hiện 2 sản phẩm tự nhau hoàn toàn

với những đánh giá của người dùng, cosine của 2 véc tơ bằng 0, thể hiện 2 sản

phẩm này không tương tự nhau.

2.3.2. Độ tương tự dựa theo khoảng cách Euclidean điều chỉnh (Adjusted

Euclidean Distance similarity)

Theo [8], khi phân tích độ đo tương tự cosine phương pháp này xem các

sản phẩm như cách véc tơ để đánh giá, tuy nhiên lại không xét đến độ dài của

chúng. Cho một phần của ma trận đánh giá (phạm vi từ 1 đến 5) và được biểu

diễn như sau.

36

2.3.3. Độ tương tự tương quan (correlation-based similarity)

Trong trường hợp này, độ tương tự giữa 2 sản phẩm i và j là được đo dựa

trên tính toán độ tương quan Pearson-r là: corr(i, i). Để tính toán độ tương quan

này một cách chính xác, đầu tiên phải xét các cặp sản phẩm đã được đánh giá

bởi người dùng u, biểu diễn trong hình 2.1.

Độ tương tự của 2 sản phẩm i, j được cho bởi công thức sau:

𝑢∈𝑆

𝑢∈𝑆

2

2

∑ (𝑅𝑢𝑖 − 𝑅𝑖̅ ) × ∑ (𝑅𝑢𝑗 − 𝑅𝑗̅ ) 𝑆𝑖𝑚(𝑖, 𝑗) = (2.2)

𝑢∈𝑆

𝑢∈𝑆

√∑ (𝑅𝑢𝑖 − 𝑅𝑖̅ ) × √∑ (𝑅𝑢𝑗 − 𝑅𝑗̅ )

Trong đó:

- 𝑅𝑢𝑖 là đánh giá của người dùng u với sản phẩm i - 𝑅𝑖̅ là đánh giá trung bình sản phẩm i của users - 𝑅𝑢𝑖 là đánh giá của người dùng u với sản phẩm j - 𝑅𝑗̅ là đánh giá trung bình sản phẩm j của users

- S là tập users đã đánh giá cả 2 sản phẩm i, j

2.3.4. Độ tương tự cosine điều chỉnh (Adjusted Cosine similarity)

Tính toán độ tương tự sử dụng độ đo cosine trong trường hợp dựa trên

sản phẩm có một sự trở ngại quan trọng: những sự khác nhau trong thang đánh

giá giữa users khác nhau không được đưa vào tài khoản. Độ tương tự cosine

điều chỉnh khắc phục nhược điểm này bằng cách trừ trung bình người dùng

tương ứng với mỗi cặp đánh giá. Độ tương tự giữa sản phẩm i và j được cho

bởi công thức sau:

𝑢∈𝑆

𝑢∈𝑆

2

2

∑ (𝑅𝑢𝑖 − 𝑅𝑢̅̅̅̅) × ∑ (𝑅𝑢𝑗 − 𝑅𝑢̅̅̅̅) 𝑆𝑖𝑚(𝑖, 𝑗) = (2.3)

𝑢∈𝑆

𝑢∈𝑆

√∑ (𝑅𝑢𝑖 − 𝑅𝑢̅̅̅̅) × √∑ (𝑅𝑢𝑗 − 𝑅𝑢̅̅̅̅)

Trong đó:

- 𝑅𝑢𝑖 là đánh giá của người dùng u với sản phẩm i

37

- 𝑅𝑢𝑗 là đánh giá của người dùng u với sản phẩm j - 𝑅𝑢̅̅̅̅ là đánh giá trung bình của người dùng u - S là tập users đã đánh giá cả 2 sản phẩm i, j

2.4. Tính toán dự đoán và tư vấn

Đưa ra được những dự đoán hoặc lời gợi ý là một bước quan trọng trong

hệ tư vấn lọc cộng tác. Sau khi tính toán độ tương tự giữa các người dùng hay

giữa các sản phẩm, chúng ta có thể dự đoán đánh giá của người dùng u trên sản

phẩm i. Phần trên đã đưa ra những sản phẩm tương tự nhất dựa trên độ tương

tự, bước tiếp theo là nghiên cứu kỹ mục tiêu xếp hạng của người dùng và sử

dụng kỹ thuật để thu được dự đoán.

Dự đoán đánh giá của một người dùng lên một sản phẩm được suy ra từ

các đánh giá của người dùng đó trên các sản phẩm lân cận.

Hình 2.2: Giải thuật lọc cộng tác dựa trên sản phẩm, tính dự đoán

2.4.1. Dự đoán dựa trên trung bình đánh giá sản phẩm lân cận

Dựa vào [8] công thức đơn giản nhất để dự đoán của 1 người dùng u lên

1 sản phẩm i là dựa vào những người dùng lân cận của u mà đã đánh giá sản

phẩm i.

38

𝑖′𝑇𝑖∩𝑆𝑎

𝑃𝑎𝑖 = ∑ 𝑟𝑎𝑖′ (2.4) 1 𝑁

Trong đó:

- N là tổng các sản phẩm lân cận của i đã được a đánh giá.

- 𝑇𝑖 là tập hợp users i’ lân cận với i mà u đã đánh giá - 𝑆𝑎: các sản phẩm mà người dùng a đã đánh giá Vấn đề là chọn ra các sản phẩm 𝑖′ lân cận với sản phẩm i với các tiêu chí

nhưthế nào, trong bài toán này, kết quả phụ thuộc vào tiêu chí chọn ra các lận

cận của sản phẩm i.

2.4.2. Dự đoán dựa trên tổng trọng số (Weighted Sum)

Dự đoán đánh giá của người dùng a với sản phẩm i được cho bởi công

thức sau:

𝑗∈𝑆𝑎∩𝑇𝑖 ∑

𝑗∈𝑆𝑎∩𝑇𝑖

∑ (2.5) 𝑃𝑎𝑖 = 𝑠𝑖𝑚(𝑖, 𝑗) × 𝑟𝑎𝑗 |𝑠𝑖𝑚(𝑖, 𝑗)|

- 𝑆𝑎: các sản phẩm mà người dùng a đã đánh giá - 𝑟𝑎𝑗 là đánh giá sản phẩm j của người dung a - sim(i, j) là độ tương tự của 2 sản phẩm i, j

- 𝑇𝑖: Tập các sản phẩm lân cận của item i Công thức tính toán đánh giá của người dùng a lên sản phẩm i dựa vào

những đánh giá của người dùng a lên các sản phẩm tương tự với i. Giá trị dự

đoán sẽ nằm trong khoảng [1, 5]. Trường hợp dự đoán sẽ cho kết quả cao (người

dùng a thích sản phẩm i) khi những sản phẩm lân cận với i (có độ tương tự cao)

được người dùng a đánh giá cao.

2.4.3. Dự đoán dựa trên tổng trọng số với đánh giá trung bình của người dùng

𝑗∈𝑆𝑎∩𝑇𝑖 ∑

𝑗∈𝑆𝑎∩𝑇𝑖

∑ (2.6) 𝑃𝑎𝑖 = 𝑅𝑎̅̅̅̅ + 𝑠𝑖𝑚(𝑖, 𝑗) × (𝑟𝑎𝑗 − 𝑅𝑎̅̅̅̅) |𝑠𝑖𝑚(𝑖, 𝑗)|

- 𝑆𝑎: các sản phẩm mà người dùng a đã đánh giá - 𝑟𝑎𝑖:là đánh giá sản phẩm j của người dung a - sim(i, j) là độ tương tự của 2 sản phẩm i, j

39

- 𝑇𝑖: Tập các sản phẩm lân cận của sản phẩm i - 𝑅𝑎̅̅̅̅ là đánh giá trung bình của người dùng a Công thức tính toán đánh giá của người dùng a lên sản phẩm i dựa vào

những đánh giá của người dùng a lên các sản phẩm tương tự với i. Giá trị đánh giá trung bình của người dùng a là𝑅̅nhằm làm tăng tính cân đối của người dùng a lên sản phẩm. Giá trị 𝑅̅ của mỗi người dùng là một mức để xác định người

dùng đó đánh giá cao hay không cao một sản phẩm. Giá trị dự đoán sẽ nằm

trong khoảng [1, 5].

Trường hợp dự đoán sẽ cho kết quả cao (người dùng a thích sản phẩm i)

khi những sản phẩm lân cận với i (có độ tương tự cao) được người dùng a đánh

giá cao.

2.4.4. Dự đoán dựa trên tổng trọng số với trung bình đánh giá lên sản phẩm

𝑗∈𝑆𝑎∩𝑇𝑖 ∑

𝑗∈𝑆𝑎∩𝑇𝑖

∑ (2.7) 𝑃𝑎𝑖 = 𝑅𝑖̅ + 𝑠𝑖𝑚(𝑖, 𝑗) × (𝑟𝑎𝑗 − 𝑅𝑗̅ ) |𝑠𝑖𝑚(𝑖, 𝑗)|

- 𝑆𝑎: các sản phẩm mà người dùng a đã đánh giá - 𝑟𝑎𝑗là đánh giá sản phẩm j của người dung a - sim(i, j) là độ tương tự của 2 sản phẩm i, j

- 𝑇𝑖: Tập các sản phẩm lân cận của sản phẩm i - 𝑅𝑖̅ là đánh giá trung bình sản phẩm i - 𝑅𝑗̅ là đánh giá trung bình sản phẩm j Công thức tính toán đánh giá của người dùng a lên sản phẩm i dựa vào những đánh giá của người dùng a lên các sản phẩm tương tự với i. 𝑅𝑖̅ là giá trị đánh giá trung bình sản phẩm i của người users. Giá trị 𝑅̅ của mỗi sản phẩm là

một mức để xác định khi 1 người dùng đánh giá sản phẩm i, thì so với tất cả

users, đánh giá của người đó cho sản phẩm i đó là cao hay không cao. Giá trị

dự đoán sẽ nằm trong khoảng [1, 5]. Trường hợp dự đoán sẽ cho kết quả cao

(người dùng a thích sản phẩm i) khi những sản phẩm lân cận với i (có độ tương

tự cao) được người dùng a đánh giá cao.

40

2.5. Đánh giá các yếu tố ảnh hưởng đến độ chính xác kết quả tư vấn

Phần trên đã giới thiệu các bước của 1 quá trình tư vấn sử dụng phương

pháp lọc cộng tác dựa trên sản phẩm. Sau khi thực hiện quá trình xử lý, hệ thống

có thể đưa ra các dự đoán đánh giá của người dùng với 1 sản phẩm, hoặc đề

xuất danh sách các sản phẩm mà người dùng thích (đưa ra sản phẩm được dự

đoán có đánh giá cao). Một hệ tự vấn tốt khi đề xuất được những sản phẩm mà

Dữ liệu đầu vào

Tư vấn danh sách sản phẩm cho người dùng

Đánh giá chất lượng dự đoán

Tiền xử lý dữ liệu

Chọn TopN

Tính toán sai số

Đánh giá sản phẩm

Ma trận đánh giá

Tính toán độ tương tự

Dự đoán và tư vấn

Dự đoán đánh giá của người dùng lên sản phẩm

Chọn lân cận

Ma trận độ tương tự

người dùng đó sẽ thích và lựa chọn.

Hình 2.3: Mô hình hệ thống lọc cộng tác dựa trên sản phẩm

2.5.1. Đánh giá độ tin cậy của thuật toán

Trong thực tế để đánh giá chính xác của 1 thuật toán tư vấn, các chuyên

gia xây dựng bộ dữ liệu và kết quả kiểm tra thực tế, so sánh các kết quả dự đoán

từ bộ dữ liệu với kết quả thực tế để đánh giá chất lượng của tư vấn. Một giải

thuật tư vấn tốt là giải thuật đưa ra các dự đoán đánh giá gần chính xác với đánh

giá thật sự của người dùng trong thực tế.

Để đánh giá hiệu quả của việc gợi ý, người ta thường dùng các độ đo liên

quan đến sự “phù hợp trên kết quả trả về” tương tự như trong truy tìm thông

tin. Gợi ý được xem là phù hợp khi người dùng chọn mục tin từ danh sách các

41

mục tin đã được hệ thống gợi ý cho người dùng. Độ phù hợp này có thể được

đánh giá qua các độ đo như MAE , Precision, Recall, F-Measure [9], … mỗi

phương pháp đánh giá sẽ thích hợp cho từng lĩnh vực cụ thể.

Sai số tuyệt đối (Mean Absolute Error - MAE) giữa đánh giá và dự

đoán. MAE là độ đo lệch của tư vấn với giá trị chính xác trên thực tế. Mỗi dự

đoán là một cặp <𝑝𝑖, 𝑞𝑖>, độ đo sai số tuyệt đối giữa chúng là |𝑝𝑖− 𝑞𝑖|. MAE tính toán tổng những sai số tuyệt đối của N cặp tương ứng với đánh giá dự đoán

𝑁 𝑖=1

và sau đó tính giá trị trung bình.

(2.8) 𝑀𝐴𝐸 = ∑ |𝑝𝑖− 𝑞𝑖| 𝑁

Các chỉ số này thích hợp cho một cơ sở dữ liệu không phải nhị phân và

cho một giá trị dự đoán là số. Nó giúp đo lường mức độ sai số của các dự đoán.

Các giá trị đo lường này bằng 0 khi hệ thống đạt được hiệu quả tốt nhất. Giá trị

này càng cao thì hiệu quả của hệ thống càng thấp.

Precision là tỷ lệ giữa số lượng các gợi ý phù hợp và tổng số các gợi ý đã

cung cấp (đã tạo ra). Precision bằng 100% có nghĩa là tất cả các kiến nghị đều

phù hợp.

(2.9) Precision = 𝑆ố 𝑙ượ𝑛𝑔 𝑔ợ𝑖 ý 𝑝hù hợ𝑝 𝑆ố 𝑙ượ𝑛𝑔 𝑔ợ𝑖 ý 𝑡ạ𝑜 𝑟𝑎

Recall được định nghĩa bởi tỉ lệ giữa số lượng các gợi ý phù hợp và số

lượng các mục dữ liệu mà người dùng đã chọn lựa (xem, nghe, mua, đọc).

Recall được sử dụng để đo khả năng hệ thống tìm được những mục dữ liệu phù

hợp so với những gì mà người dùng cần.

(2.10) Recall = 𝑆ố 𝑙ượ𝑛𝑔 𝑔ợ𝑖 ý 𝑝hù hợ𝑝 𝑆ố 𝑙ượ𝑛𝑔 𝑠ả𝑛 𝑝hẩ𝑚 𝑚𝑢𝑎 𝑏ở𝑖 𝑛𝑔ườ𝑖 𝑑ù𝑛𝑔

Precision và Recall được xem là hữu ích trong việc đánh giá một gợi ý.

Tuy nhiên, trong một số trường hợp thì precision và recall có giá trị tỉ lệ nghịch

42

với nhau. Ví dụ như số lượng gợi ý mà hệ thống tạo ra là 10, số lượng gợi ý

phù hợp là 3, số lượng sản phẩm mua bởi người dùng là 3 thì độ chính xác thấp

(30%), tuy nhiên giá trị recall lại cao (100%) nghĩa là độ chính xác thấp nhưng

người dùng lại hài lòng bởi vì họ mua có 3 sản phẩm và hệ thống gợi ý đúng cả

3 sản phẩm đó.

F-Measure được sử dụng để đánh giá hiệu quả tổng thể của hệ thống bằng

cách kết hợp cả hai chỉ số Recall và Precision.

(2.11) F − Measure = 2 × Precison × Recall Precision + Recall

2.5.2. Các yếu tố ảnh hưởng đến độ chính xác tư vấn

- Ảnh hưởng của dữ liệu đầu vào: Trong nhiều hệ thống tư vấn, số những

đánh giá thu được thường rất nhỏ so với số những đánh giá cần có cho dự đoán.

Sự thành công của hệ thống tư vấn lọc cộng tác phụ thuộc vào giá trị của đại đa

số những người dùng chính. Chẳng hạn, trong hệ thống tư vấn điện ảnh, có rất

nhiều bộ phim đã được đánh giá chỉ bởi một vài người và những bộ phim này

khả năng được tư vấn là rất ít, thậm chí ngay cả khi trong số đó có những người

dùng đưa ra đánh giá rất cao về chúng. Cũng như vậy, đối với những người

dùng mà thị hiếu của họ khác thường so với một số đông người khác thì sẽ

không có người dùng nào được tư vấn về những thị hiếu giống họ, dẫn đến việc

tư vấn nghèo nàn. Một phương pháp vượt qua tính thưa thớt trong đánh giá là

sử dụng thông tin cá nhân của người dùng khi tính toán sự tương tự giữa những

người dùng. Hai người dùng được xem là giống nhau không khi được đánh giá

có sở thích về các bộ phim là giống nhau mà chúng còn phải thuộc cùng một

đối tượng. Chẳng hạn, sử dụng giới tính, tuổi, địa chỉ khu vực, nền giáo dục và

thông tin công việc của những người dùng trong việc tư vấn nhà hàng. Sự mở

rộng của những kỹ thuật lọc cộng tác thường được gọi là “lọc demographic”.

43

Một vấn đề trước khi xây dựng ma trận đánh giá, với những sản phẩm ít

được đánh giá, hoặc những người dùng ít đánh giá sản phẩm, những người dùng

và sản phẩm này sẽ không hữu ích trong quá trình tư vấn. Vấn đề cần chọn lọc

ra những sản phẩm và người dùng để tham gia trong quá trình tư vấn. Rõ ràng

những sản phẩm mới hoặc người dùng mới không thể tham gia trong quá trình

dự đoán, hoặc những sản phẩm hay người dùng có đánh giá ít hơn 1 ngưỡng

nào đó cũng được loại ra.

- Ảnh hưởng của thuật toán tính độ tương tự: Để xây dựng ma trận

tương tự, các giá trị được tính toán theo một công thức được đề xuất ở trên hoặc

một công thức khác. Các công thức tính toán khác nhau sẽ cho ra các ma trận

đánh giá khác nhau, dẫn đến kết quả tư vấn không đồng nhất. Nhiều chuyên gia

đánh giá, với thuật toán có sự tham gia của đánh giá trung bình sẽ có kết quả

tốt hơn. Chương 3 sẽ thí nghiệm kết quả tư vấn với các thuật toán tính độ tương

tự và đưa ra nhận xét về độ chính xác của kết quả tư vấn khi áp dụng các độ

tương tự khác nhau.

- Ảnh hưởng của số lượng lân cận tham gia vào dự đoán: Thông qua

quá trình tính ma trận tương tự, hệ thống tư vấn sử dụng những sản phẩm lân cận

nhất với sản phẩm đang xét để đưa vào dự đoán, số lượng lân cận ảnh hưởng đến

chất lượng của kết quả tư vấn. Chọn số lượng lân cận có thể dựa vào số lượng lân

cận của sản phẩm hoặc dựa vào giá trị của độ đo tương tự. Ví dụ: Trong hệ thống

tư vấn phim với số bộ phim là 1000 bộ phim, khi cần tư vấn 1 bộ phim, có thể sẽ

xét trên 100 bộ phim lân cận với bộ phim đang xét, hoặc là xét với những bộ phim

lân cận có độ tương tự lớn 0.75. Số lượng lân cận tham gia vào dự đoán ảnh hưởng

đến quá trình đưa ra dự đoán, nhiều chuyên gia lựa chọn những sản phẩm có độ

tương tự 0.75 để tham gia vào dự đoán.

44

2.6. Kết luận chương 2

Trong chương này, luận văn đã trình bày về phương pháp lọc cộng tác dựa

trên sản phẩm, minh họa quá trình xử lý để đưa ra các kết quả tư vấn dựa trên

các thuật toán khác nhau. Vấn đề là cần đánh giá chất lượng thuật toán để có

thể đưa ra tư vấn chính xác nhất, các yếu tố nào có thể nâng cao được chất

lượng tư vấn. Trong chương tiếp theo, luận văn sẽ thử nghiệm các thuật toán tư

vấn với bộ dữ liệu tư vấn phim, để đưa ra các kết quả tư vấn, so sánh đánh giá

các thuật toán áp dụng trong quá trình tư vấn.

45

CHƯƠNG 3.

ỨNG DỤNG PHƯƠNG PHÁP LỌC CỘNG TÁC DỰA TRÊN SẢN

PHẨM TRONG HỆ THỐNG GỢI Ý BÁN HÀNG TRỰC TUYẾN

3.1. Xây dựng hệ thống gợi ý cho website bán hàng trực tuyến

3.1.1. Đặc tả hệ thống

Hệ thống giới thiệu và bán sản phẩm thời trang trực tuyến cho phép khách

hàng bất kỳ có thể tìm kiếm và xem các sản phẩm thời trang. Hệ thống sẽ hiển

thị các sản phẩm được ưa thích nhất và các sản phẩm bán chạy nhất.

Hệ thống có chức năng cho khách hàng chấm điểm, đánh giá sản phẩm và

có thể đặt hàng thông qua hệ thống này. Đặc biệt hệ thống sẽ gợi ý các sản

phẩm cho khách hàng trong quá trình chọn sản phẩm sử dụng kỹ thuật lọc cộng

tác và hiển thị các sản phẩm tương tự với sản phẩm mà khách hàng đang xem.

Đây là giải thuật có độ tin cậy cao vì đã được kiểm nghiệm qua nhiều công

trình nghiên cứu nên việc gợi ý sử dụng kỹ thuật lọc cộng tác có thể sẽ tốt hơn

các gợi ý thông thường như gợi ý sản phẩm bổ trợ sản phẩm vừa mua, gợi ý

sản phẩm tương tự với sản phẩm mà khách hàng ưa thích, gợi ý sản phẩm theo

giá chênh lệch với sản phẩm mà khách hàng đang xem...

Khách hàng muốn thực hiện các chức năng trên chỉ khi khách hàng là

thành viên của hệ thống. Muốn trở thành viên của hệ thống, khách hàng phải

đăng ký tài khoản thông qua hệ thống. Sau khi đăng nhập vào hệ thống, nếu là

khách hàng mới thì hệ thống sẽ dựa vào thông tin về tính cách và mùi hương

ưa thích của khách hàng để tư vấn những sản phẩm theo thông tin vừa thu thập.

Tuy nhiên, nếu khách hàng đã có chấm điểm cho sản phẩm, hệ thống sẽ gợi ý

các sản phẩm theo giải thuật lọc cộng tác.

Ngoài ra, hệ thống còn cung cấp các công cụ quản trị như: quản trị khách

hàng, quản trị thông tin về thương hiệu và sản phẩm, quản trị đơn đặt hàng.

46

3.1.2. Môi trường phát triển

Hệ thống bán sản phẩm thời trang trực tuyến được phát triển trên môi trường

mã nguồn mở PHP & My SQL. Hệ thống được phát triển dựa trên nền tảng mã

nguồn mở WordPress tích hợp và phát triển thêm các modul hệ thống gợi ý dựa

trên phương pháp lọc cộng tác dựa trên sản phẩm. Nền tảng mã nguồn mờ

WordPress được rất nhiều website thương mại điện tử sử dụng, vì vậy chúng ta có

thể dễ dàng tích hợp hệ thống gợi ý vào những website có sẵn.

3.1.3. Thiết kế bảng dữ liệu

Website bán hàng sẽ được xây dựng trên nền tảng Wordpress để có thể

tận dụng hệ thống plugin hỗ trợ và các tính năng nổi bật về quản lý, thống kê.

Đối với mô hình website bán hàng, các items tương ứng với các sản phẩm,

các users được chia thành hai loại: user có đăng kí tài khoản, được phân biệt

bằng user_id và có lưu các thông tin liên quan trong cơ sở dữ liệu và user không

đăng kí tài khoản, chỉ xem sản phẩm thông thường. Ta gọi user loại đầu là thành

viên và loại còn lại là khách viếng thăm. Sau khi chọn một sản phẩm bất kì để

xem chi tiết sản phẩm, chỉ có thành viên đăng kí và đăng nhập mới được nhận

xét. Mức độ đánh giá thay đổi từ 1 đến 5 sao, với 1 sao là mức ít yêu thích nhất

và 5 sao là rất yêu thích.

Trong cơ sở dữ liệu, ta sẽ quan tâm đến các bảng sau: wp_comments,

wp_commentmeta, wp_user_rating, wp_predict.

Bảng wp_comments: lưu trữ các nhận xét cho mỗi sản phẩm và id của

những user đã nhận xét sản phẩm đó.

STT Tên thuộc tính Kiểu dữ liệu Ghi chú

comment_ID int (20) id của nhận xét 1

2 comment_post_ID int (20) id của sản phẩm đã được nhận

xét.

3 user_id int (20) id của user đã nhận xét.

47

Bảng wp_commentmeta: lưu trữ giá trị yêu thích (tức là số sao mà từng

user đã đánh giá trong mỗi nhận xét).

STT Tên thuộc tính Kiểu dữ Ghi chú

liệu

1 comment_id id của nhận xét int (20)

2 meta_key varchar

(255)

3 meta_value longtext Số sao mà user đã đánh giá

Từ hai bảng trên ta tạo bảng wp_user_rating để truy vấn những thông tin

cần thiết bao gồm:

- comment_post_ID: ID của sản phẩm đã được nhận xét.

- user_id: ID của user đã nhận xét.

- meta_value: số sao mà user đã đánh giá. Trong WordPress có lưu hai giá

trị meta_value là rating và verified, ở đây ta chỉ quan tâm đến các giá trị rating

(meta_key = “rating”).

STT Tên thuộc tính Kiểu dữ liệu Ghi chú

1 comment_post_ID int (20) id của sản phẩm đã được nhận

xét.

2 user_id int (20) id của user đã nhận xét..

3 meta_value longtext số sao mà user đã đánh giá

Mỗi khi có một nhận xét mới từ thành viên, dữ liệu sẽ được tự động cập

nhật vào bảng wp_user_rating. Dựa vào bảng này, chúng ta sẽ xây dựng Utility

matrix tính độ tương tự (similarity) giữa các sản phẩm đã được nhận xét. Utility

matrix được lưu trong bảng wp_predict gồm các cột:

item_id1: id của sản phẩm được nhận xét. -

item_id2: id của sản phẩm được dự đoán gợi ý cho user -

48

- times: số user đã đánh giá cả item_id1 và item_id2

- rating: độ chênh lệch giá trị rating của item_id1 và item_id2.

Sau khi có Utility matrix, ta sẽ sử dụng dự đoán để hoàn thiện các giá trị

còn thiếu, từ đó dùng truy vấn SQL để tìm id của những sản phẩm có thể gợi ý

cho user hiện tại.

Tên Kiểu STT Ghi chú thuộc tính dữ liệu

1 item_id1 int (11) id của sản phẩm đã được nhận xét.

id của sản phẩm được dự đoán gợi ý cho 2 item_id2 int (11) user.

3 times int (11) số user đã đánh giá cả item_id1 và item_id2

4 Rating float Độ chênh lệch giá trị rating của item_id1 và

item_id2

Hệ thống sử dụng CF dựa trên ratings có nhược điểm là chỉ áp dụng với

những user đã nhận xét hoặc sản phẩm phải được đánh giá từ trước. Vậy với

khách viếng thăm thì ta phải gợi ý cho họ như thế nào? Chúng ta có hai phương

án:

Nếu khách viếng thăm xem thông tin giới thiệu của một sản phẩm chưa

có nhận xét nào, hệ thống sẽ giới thiệu cho khách viếng thăm những sản phẩm

có cùng thể loại.

Nếu khách viếng thăm xem thông tin của sản phẩm đã có nhận xét, hệ

thống sẽ giới thiệu cho họ những sản phẩm có độ tương tự cao nhất với sản

phẩm đó.

49

3.2. Ví dụ về lọc cộng tác dựa trên sản phẩm

Khi người dùng đăng nhập vào hệ thống và đánh giá các sản phẩm, kết

quả đánh giá sẽ được lưu trữ trong bảng wp_user_rating trong cơ sở dữ liệu.

Trong bảng 2 là dữ liệu do 6 người dùng (u0, u1, u2, u3, u4, u5) đánh giá 5 sản

phẩm (i0, i1, i2, i3, i4). Những sản phẩm chưa được đánh giá thì sẽ không xuất

hiện trong bảng này.

Bảng 2: Dữ liệu đánh giá các sản phẩm

Mã sản phẩm (comment_post_ID) Mã người dùng (user_id) Đánh giá (meta_value)

0 1 3 4 1 3 4 5 1 3 4 5 1 2 4 1 4 2 3 3 4 5 5 4 2 2 5 4 2 4 2 1 3 4 3 4 4 1 4 2 1 1 4 5 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 4 4 5 5 5 5 5

Dựa vào dữ liệu trong Bảng 2, chúng ta xây dựng utility matrix như trong

bảng 3. Trong bảng này, các ô có giá trị 0 là các sản phẩm chưa được đánh giá.

50

Bảng 3: Ma trận utility matrix

u0 u1 u2 u3 u4 u5 u6

i0 5 5 2 3 1 0 0

i1 4 0 0 4 0 2 0

i2 0 4 1 0 0 1 1

i3 2 2 3 4 4 0 4

i4 2 4 4 0 0 0 5

Bảng 4: Giá trị trung bình đánh giá của các item

Item Giá trị trung bình

i0 3.20

i1 3.33

i2 1.75

i3 3.17

i4 3.75

Trong bảng 4 là giá trị trung bình đánh giá (rating) của user cho mỗi item

(sản phẩm). Khi đó, nếu tiếp tục trừ từ mỗi rating đi giá trị này, ta sẽ được ma

trận chuẩn hóa như trong bảng 5.

51

Việc trừ đi trung bình cộng của mỗi cột khiến trong trong mỗi cột có những

giá trị dương và âm. Những giá trị dương tương ứng với việc user thích item,

những giá trị âm tương ứng với việc user không thích item. Những giá trị bằng 0

tương ứng với việc chưa xác định được liệu user có thích item hay không.

u0

u1

u2

u3

u4

u5

u6

i0

1.80

1.80

-1.20

-0.20

-2.20

0

0

i1

0.67

0

0

0.67

-1.33

0

0

i2

0

2.25

-0.75

0

-0.75

-0.75

0

i3

-1.17

-1.17

-0.17 0.83

0.83

0

0.83

i4

-1.75 0.25

0.25

0

0

0

1.25

Bảng 5. Ma trận chuẩn hóa 𝑌̂

Sử dụng độ do cosine để tính độ tượng tự giữa các item, chúng ta thu được

dữ liệu như Bảng 6.

i0

i1

i2

i3

i4

i0

1

0.18

0.53

-0.76

-0.38

i1

0.18

1.00

0.24

-0.06

-0.33

i2

0.53

0.24

1.00

-0.55

-0.10

i3

-0.76

-0.06

-0.55 1.00

0.57

i4

-0.38

-0.33

-0.10 0.57

1.00

Bảng 6: Độ tương tự giữa các item S

52

Dự đoán tỷ lệ đánh giá là việc xác định mức độ quan tâm của một user lên

một item dựa trên các users gần nhất.

Ví dụ về việc tính tỷ lệ đánh giá của u1 cho i1 được cho trong bảng 5 với

số nearest neighbors là k = 2. Các bước thực hiện là:

- Xác định các item đã được đã u1 đánh giá, đó là: i0, i2, i3, i4.

- Xác định độ tượng tự của i1 với các item này ta nhận được 0.18, 0.24,

-0.06, -0.33. Hai (k=2) giá trị lớn nhất là 0.18 và 0.24 tương ứng với i0

và i2.

- Xác định các đánh giá (chuẩn hoa) của u1 cho i0, i2, ta thu được hai

giá trị lần lượt là 1.80, 2.25.

- Dự đoán kết quả:

= 2.244 𝑦̂𝑖1,𝑢1 = 0.18 × 2.25 + 0.24 × 2.24 |0.18| + |0.24|

u0

u1

u2

u3

u4

u5

u6

i0

1.80

1.80

-1.20

-0.20

-2.20

-0.30

-0.54

i1

0.67

2.22

-2.25 0.67

-0.15

-1.33

-0.22

i2

0.45

2.25

-0.75

-0.07

-0.53

-0.75

-0.75

i3

-1.17

-1.17

-0.17 0.83

0.83 0.236 0.83

i4

-1.75 0.25

0.25

0.15

0.38

0.25

1.25

Bảng 7: Ma trận sau khi được dự đoán 𝑌̂

Việc quy đổi các giá trị ratings đã chuẩn hoá về thang 5 có thể được thực

hiện bằng cách cộng các cột của ma trận 𝑌̂ với giá trị rating trung bình của mỗi

item như đã tính trong Bảng 4. Kết quả ma trận dự đoán như trong bảng 8

53

u0

u1

u2

u3

u4

u5

u6

i0

5.0

5.0

2.0

3.0

1.0

2.9

2.7

i1

4.0

5.6

1.1

4.0

3.2

2.0

3.1

i2

2.2

4.0

1.0

1.7

1.2

1.0

1.0

i3

2.0

2.0

3.0

4.0

4.0

3.4

4.0

i4

2.0

4.0

4.0

3.9

4.1

4.0

5.0

Bảng 8: Ma trận dự đoán thang điểm 5

Việc hệ thống quyết định gợi ý items nào cho mỗi user có thể được xác

định bằng nhiều cách khác nhau. Có thể sắp xếp unrated items theo thứ tự tự

lớn đến bé của các predicted ratings, hoặc chỉ chọn các items có normalized

predicted ratings dương - tương ứng với việc user này có nhiều khả năng thích

hơn.

3.3. Thuật toán xử lý chính trong hệ thống

3.3.1. Thuật toán khách hàng đánh giá sản phẩm

Ý nghĩa:

- Để đánh giá cho sản phẩm, khách hàng phải đăng nhập thành công vào

hệ thống. Nếu khách hàng chưa đăng nhập thì hệ thống đánh giá không hoạt

động.

- Khách hàng nhập thông tin đánh giá sản phẩm.

- Hệ thống sẽ kiểm tra thông tin vừa nhập của khách hàng, số ký tự nhập.

- Nếu thỏa mãn, hệ thống sẽ lưu thông tin đánh giá vào cơ sở dữ liệu.

Ngược lại, khách hàng phải nhập lại thông tin.

54

Bắt đầu

Nhập thông tin đánh giá

Sai

Kiểm tra thông tin

Đúng

Lưu thông tin vào CSDL

Hiển thị thông tin đánh giá

Kết thúc

- Hiển thị đánh giá của khách hàng.

Hình 3.1: Khách hàng đánh giá sản phẩm

3.3.2. Thuật toán khách hàng chấm điểm sản phẩm

Ý nghĩa:

- Để chấm điểm cho sản phẩm, khách hàng phải đăng nhập thành công

vào hệ thống. Nếu khách hàng chưa đăng nhập thì hệ thống chấm điểm không

hoạt động.

- Khách hàng chọn ngôi sao để chấm điểm cho sản phẩm (điểm tăng dần

tính từ trái sang phải với giá trị từ 1 đến 5).

- Hệ thống sẽ kiểm tra xem khách hàng này đã chấm điểm cho sản phẩm

này chưa. Nếu chưa, hệ thống sẽ lưu điểm mà khách hàng vừa chấm vào cơ sở

dữ liệu. Ngược lại, hệ thống sẽ cập nhật điểm mới mà khách hàng vừa chấm

cho sản phẩm.

55

Chọn số ngôi sao để chấm điểm

Bắt đầu

Khách hàng đã chấm điểm trên sản phẩm

Cập nhật điểm trong CSDL

Lưu điểm vào CSDL

Sai Đúng

Kết thúc

Hình 3.2: Khách hàng chấm điểm sản phẩm

3.3.3. Thuật toán gợi ý sản phẩm cho khách hàng

Ý nghĩa:

- Giải thuật này dùng để hiển thị những sản phẩm gợi ý cho khách hàng.

- Khách hàng sẽ lựa chọn sản phẩm quan tâm để xem. Nếu sản phẩm được

chọn đã có người dùng đánh giá thì hệ thống sẽ dự đoán độ thích của khách

hàng trên các sản phẩm theo giải thuật lọc cộng tác dựa trên sản phẩm. Ngược

lại khi sản phẩm được chọn chưa có người dùng đánh giá trị sẽ hiện thị danh

sách các sản phẩm cùng loại với sản phẩm khách hàng đã chọn.

56

Khách hàng chọn sản phẩm để xem

Bắt đầu

Sản phẩm đã có người dùng đánh giá

Đúng

Gợi ý các sản phẩm có độ tương tự nhất

Gợi ý sản phẩm cùng loại

Sai

Kết thúc

Hình 3.3: Thuật toán xử lý gợi ý sản phẩm

3.4. Các giao diện chính của hệ thống

Giao diện trang chủ: giới thiệu khái quát các nội dung của trang web tới

người dùng. Từ thanh điều hướng phía trên người dùng có thể xem danh sách

sản phẩm, sản phẩm theo thể loại, đăng nhập/đăng kí tài khoản và tìm kiếm sản

phẩm.

57

Hình 3.4: Giao diện trang chủ

Giao diện danh sách sản phẩm: Liệt kê danh sách toàn bộ sản phẩm trong

cơ sở dữ liệu

58

Hình 3.5: Giao diện trang danh sách sản phẩm

Giao diện gợi ý sản phẩm cho khách viếng thăm

a) Đối với sản phẩm chưa có đánh giá: gợi ý các sản phẩm cùng thể loại.

59

Hình 3.6: Giao diện gợi ý sản phẩm cho sản phẩm chưa có đánh giá

b) Đối với sản phẩm đã có đánh giá: gợi ý các sản phẩm có độ tương tự

cao nhất.

Hình 3.7: Giao diện gợi ý sản phẩm cho sản phẩm đã có đánh giá

Giao diện gợi ý sản phẩm cho thành viên: đưa ra sản phẩm có độ tương

tự cao nhất với các sản phẩm mà thành viên đó đã đánh giá.

Hình 3.8: Giao diện gợi ý sản phẩm cho một thành viên cụ thể

60

Một số nhận xét, đánh giá kết quả thực nghiệm phương pháp lọc cộng

tác dựa trên sản phẩm

Ưu điểm:

- Phương pháp này có khả năng dự đoán được sở thích và nhu cầu của

người dùng để đưa ra gợi ý các sản phẩm phù hợp với từng khách hàng mà

không cần hiểu sản phẩm.

- Gợi ý dựa trên trải nghiệm của người dùng tương tự khác nên có thể gợi

ý được những sản phẩm mới phù hợp sở thích mới.

- Phương pháp này rất phù hợp với những hệ thống lớn có nhiều đánh giá

từ phía người dùng.

Một số hạn chế:

- Không thể gợi ý nếu khách hàng chưa có dữ liệu về lịch sử tương tác mặt

hàng.

- Khi lượng sản phẩm lớn và số lượng khách hàng đánh giá không nhiều

thì phương pháp này không hiệu quả.

- Phương pháp này cũng không thể gợi ý được các sản phẩm mới hoặc

những sản phẩm chưa được ai đánh giá.

- Phương pháp này sẽ cho độ chính xác kém nếu như sở thích của người

dùng thay đổi.

- Website chưa được triển khai trong thực tế, vì vậy các đánh giá còn ít và

mang tính chủ quan.

3.5. Kết luận chương 3

Chương 3 luận văn đã cài đặt thử nghiệm website thời trang và tích hợp

hệ thống gợi ý dựa trên phương pháp lọc cộng tác dựa trên sản phẩm. Hệ thống

có chức năng cho khách hàng chấm điểm, đánh giá sản phẩm và có thể đặt mua

hàng dựa trên những gợi ý các sản phẩm cho khách hàng trong quá trình chọn

sản phẩm tốt nhất, phù hợp với yêu cầu của khách hàng.

Tuy nhiên, hệ thống chưa xử lý được số lớn các yêu cầu của khách hàng

và chưa lưu được lịch sử, quan hệ giao tiếp của các khách hàng để gợi ý cho

nhiều đối tượng người dùng khác nhau, ...

61

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

1. Kết luận

Luận văn đạt được những kết quả chính sau:

- Trình bày khái quát về hệ thống tư vấn theo phương pháp lọc cộng tác

và bài toán xây dựng hệ thống gợi ý sản phẩm trong bán hàng

- Giới thiệu phương pháp lọc công tác dựa trên sản phẩm, phân tích quá

trình xử lý để đưa ra các kết quả tư vấn dựa trên các thuật toán khác nhau

- Thử nghiệm cài đặt thử nghiệm phương pháp lọc cộng tác trên sản phẩm

cho website bán hàng thời trang

2. Hướng phát triển

Hướng mở của đề tài tiếp tục phát triển:

- Nghiên cứu phương pháp lọc cộng tác bằng phương pháp đa nhiệm và

ứng dụng

- Phương pháp kết hợp lọc cộng tác và lọc nội dung dựa trên mô hình đồ thị

- Nghiên cứu phát triển phương pháp lọc cộng tác mờ dựa người dùng.

62

TÀI LIỆU THAM KHẢO

TIẾNG VIỆT

[1] Hà Thị Thanh Nga, Nguyễn Đình Cường, Xây dựng hệ thống gợi ý bằng

thuật toán người láng giềng và thử nghiệm trên Movielens Dataset, Hội

nghị khoa học Công nghệ thông tin và Truyền thông ICT - Đà Lạt, 2017.

[2] Hoàng Thịnh, Tìm hiểu phương pháp lọc cộng tác dựa trên Item, Trường

Đại học khoa học Huế, 2013.

[3] Huỳnh Lý Thanh Nhàn, Nguyễn Thái Nghe, Giải pháp tích hợp mạng xã

hội trong xây dựng hệ trợ giảng thông minh, Proceeding of Publishing

House for Science and Technology, 2017.

[4] Lưu Nguyễn Anh Thư, Nguyễn Thái Nghe, Phương pháp xây dựng hệ

thống gợi ý sản phẩm sử dụng phản hồi tiềm ẩn, Hội nghị Quốc gia lần

thứ VIII về Nghiên cứu cơ bản và ứng dụng Công nghệ thông tin (FAIR),

Hà Nội, 2015.

[5] Nguyễn Duy Phương, Phát triển một số phương pháp lọc thông tin cho

hệ tư vấn, 2011.

[6] Nguyễn Hùng Dũng, Nguyễn Thái Nghe, Hệ thống gợi Ý sản phẩm trong

bán hàng trực tuyến sử dụng kỹ thuật lọc cộng tác, Tạp chí Khoa học

Trường Đại học Cần Thơ pp. 36-51, 2014.

TIẾNG ANH

[7] Basit Mehmood Khan, Asim Mansha, Farhan Hassan Khan et al.,

Collaborative filtering based online recommendation systems: a survey,

2017 International Conference on Information and Communication

Technologies (ICICT), IEEE, pp. 125-130, 2017.

[8] Gediminas Adomavicius, Alexander Tuzhilin, data engineering, Toward

the next generation of recommender systems: A survey of the state-of-

the-art and possible extensions, IEEE transactions on knowledge and

data engineering, vol. 17, no. 6 pp. 734-749, 2005.

63

[9] Guy Shani, Asela Gunawardana, Evaluating recommendation systems,

Recommender systems handbook, pp. 257-297: Springer, 2011.

[10] J Ben Schafer, Dan Frankowski, Jon Herlocker et al., Collaborative

filtering recommender systems, The adaptive web, pp. 291-324:

Springer, 2007.

[11] JESUS Bobadilla, Francisco Serradilla, Antonio Hernando,

Collaborative filtering adapted to recommender systems of e-learning,

Knowledge-Based Systems, vol. 22, no. 4 pp. 261-265, 2009.

[12] Ranieri Baraglia, Fabrizio Silvestri, An online recommender system for

large web sites, IEEE/WIC/ACM International Conference on Web

Intelligence (WI'04), IEEE, pp. 199-205, 2004.

[13] Rui Chen, Qingyi Hua, Yan-Shuo Chang et al., “A survey of

collaborative filtering-based recommender systems: From traditional

methods to hybrid methods based on social networks”, in IEEE Access,

pp. 64301-64320, 2018.

[14] Santosh Kumar, Survey on personalized web recommender system,

Information Engineering and Electronic Business, vol. 10, no. 4 pp. 33,

2018.

[15] Shuai Zhang. "Datasets For Recommender System,"

http://shuaizhang.tech/2017/03/15/Datasets-For-Recommender-

System.

[16] Suganeshwari, SP Syed Ibrahim, A survey on collaborative filtering

based recommendation system, Proceedings of the 3rd International

Symposium on Big Data and Cloud Computing Challenges (ISBCC–

16’), Springer, pp. 503-518, 2016.