ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trần Ngô Hoàng Thành
XÂY DỰNG HỆ KHUYẾN NGHỊ CHO CÁC SẢN PHẨM
MỸ PHẨM DỰA TRÊN THÔNG TIN MẠNG XÃ HỘI
LUẬN VĂN THẠC SĨ
NGÀNH:
CÔNG NGHỆ THÔNG TIN
Mã số: 60.48.02.01
NGƯỜI HƯỚNG DẪN KHOA HỌC:
1. TS. Nguyễn Hoàng Tú Anh
TP HỒ CHÍ MINH - NĂM 2017
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của tôi dưới sự hướng dẫn của
TS.Nguyễn Hoàng Tú Anh. Các số liệu, kết quả nêu trong Luận văn là trung thực
và chưa từng được ai công bố trong bất kì công trình nào khác.
Tôi cũng xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn này đã
được cảm ơn và các thông tin được trích dẫn trong Luận văn là hoàn toàn có nguồn
gốc.
Tôi xin chịu hoàn toàn mọi trách nhiệm về công trình nghiên cứu của mình.
Tác giả
Trần Ngô Hoàng Thành
MỤC LỤC
Danh mục các kí hiệu và chữ viết tắt ............................................................................... 5
Danh mục các bảng .......................................................................................................... 6
Danh mục các hình vẽ, đồ thị ........................................................................................... 7
Danh mục các biểu đồ ...................................................................................................... 9
MỞ ĐẦU ........................................................................................................................ 10
Giới thiệu .................................................................................................................... 10
Phát biểu bài toán ....................................................................................................... 11
Ứng dụng của bài toán ............................................................................................... 11
Khó khăn và thách thức .............................................................................................. 11
Mục tiêu luận văn ....................................................................................................... 11
Đối tượng và phạm vi nghiên cứu .............................................................................. 12
Cấu trúc luận văn ....................................................................................................... 12
Chương 1: TỔNG QUAN CÁC HƯỚNG TIẾP CẬN .................................................. 14
1.1 Hệ khuyến nghị .................................................................................................... 14
1.2 Hệ khuyến nghị theo hướng các nhân hóa ........................................................... 14
1.3 Các hướng tiếp cận ............................................................................................... 15
1.3.1 Lọc theo nội dung (Content-based filtering – CBF) ..................................... 15
1.3.2 Lọc cộng tác (Collaborative Filtering - CF).................................................. 16
1.3.3 Lai ghép (Hybrid filtering) ............................................................................ 17
1.4 Các độ đo đánh giá hệ khuyến nghị ..................................................................... 18
1.4.1 Root Mean Squared Error (RMSE):.............................................................. 20
1.4.2. Mean Absolute Error (MAE): ...................................................................... 20
1.5 Mạng xã hội.......................................................................................................... 21
1
1.6 Các yếu tổ ảnh hưởng trực tiếp đến kết quả khuyến nghị .................................... 22
1.7 Các thách thức còn tồn tại .................................................................................... 23
1.8 Kết luận ................................................................................................................ 24
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .............................................................................. 26
2.1 Hệ khuyến nghị dựa trên sự tin tưởng (Trust-base Recommender)..................... 26
2.1.1 Các công trình nghiên cứu trong nước. ......................................................... 26
2.1.2 Các công trình nghiên cứu ngoài nước. ........................................................ 26
2.2 Định nghĩa hệ khuyến nghị dựa trên sự tin tưởng................................................ 30
2.3 SoRec – Phân rã ma trận theo xác suất ................................................................ 33
2.4 SoReg – Phương pháp quy nạp các giá trị chính tắc............................................ 34
2.4.1 Tham số chính tắc trung bình ........................................................................ 35
2.4.2 Tham số chính tắc cá nhân ............................................................................ 36
2.5 TrustMF – Mô hình láng giềng tin cậy ................................................................ 36
2.5.1 Mô hình truster .............................................................................................. 38
2.5.2 Mô hình trustee ............................................................................................. 40
2.5.3 Công thức TrustMF ....................................................................................... 41
2.6 TrustSVD – Phân rã thông tin tường minh và tiềm ẩn của các quan hệ .............. 41
2.7 Kết luận ................................................................................................................ 46
Chương 3: CÀI ĐẶT HỆ KHUYẾN NGHỊ .................................................................. 47
3.1 Use case của hệ thống .......................................................................................... 47
3.2 Kiến trúc tổng quan .............................................................................................. 48
3.3 Kiến trúc chi tiết theo từng thành phần ................................................................ 51
3.4 Cài đặt chi tiết ...................................................................................................... 57
3.5 Thiết kế cơ sở dữ liệu ........................................................................................... 60
2
3.6 Kết luận ................................................................................................................ 61
Chương 4: KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ............................................ 62
4.1 Bộ dữ liệu thực nghiệm ........................................................................................ 62
4.1.1 Thu thập dữ liệu ............................................................................................ 62
4.1.2 Đặc tả dữ liệu ................................................................................................ 63
4.2 Các độ đo đánh giá ............................................................................................... 70
4.3 Các phương pháp thực nghiệm ............................................................................ 70
4.4 Kết quả thực nghiệm ............................................................................................ 75
4.5 Chương trình minh họa ........................................................................................ 77
4.5.1 Các công nghệ chính ..................................................................................... 77
4.5.2: Hình ảnh minh hoạ ....................................................................................... 78
4.6 Kết luận ................................................................................................................ 88
Chương 5: KẾT LUẬN .................................................................................................. 89
5.1 Kết quả đạt được .................................................................................................. 89
5.2 Hướng phát triển .................................................................................................. 89
TÀI LIỆU THAM KHẢO .............................................................................................. 90
PHỤ LỤC ....................................................................................................................... 94
Phục lục 1: Apache Hadoop ....................................................................................... 94
Phụ lục 2: Spark ......................................................................................................... 99
2.1 MapReduce truyền thống ................................................................................. 99
2.2 MapReduce trên Spark ................................................................................... 100
Phụ lục 3: LibRec ..................................................................................................... 101
3.1 Giới thiệu.................................................................................................... 101
3.2 Generic Interface ........................................................................................ 102
3
3.3 Data Structures ........................................................................................... 103
3.4 Recommendation Algorithms .................................................................... 104
Phụ lục 4: Cài đặt Hadoop ....................................................................................... 104
Phụ lục 5: Cài đặt LibRec ........................................................................................ 112
4
Danh mục các kí hiệu và chữ viết tắt
Danh mục các kí hiệu và chữ viết tắt
STT
1
2
Ký hiệu viết tắt
RS
SRS
3
4
5
6
7
8
9
10
11
User
Item
CBF
CF
HF
RMSE
MAE
SoRec
TrustMF
12
TrustSVD
13
LibRec
14
15
HDFS
DAO
16
Frontend
17
Backend
18
Interface
Nội dung viết tắt
Hệ khuyến nghị
Hệ khuyến nghị sử dụng thông tin mạng
xã hội
Người dùng trong hệ thống
Sản phẩm được bán trong hệ thống
Lọc theo nội dung
Lọc cộng tác
Lọc lai ghép
Root Mean Squared Error
Mean Absolute Error
Social recommendation
Một kỹ thuật đưa ra khuyến nghị dựa trên
thông tin mạng xã hội
Một kỹ thuật đưa ra khuyến nghị dựa trên
thông tin mạng xã hội
Bộ thư viện Java cài đặt các kỹ thuật của
SRS
Hadoop Distributed File System
Đối tượng truy xuất dữ liệu (data access
object)
Giao diện, phần tương tác trực tiếp với
người dùng
Những xử lý hệ thống để đáp ứng các
tương tác của người dùng
Giao diện lập trình
5
Danh mục các bảng
Danh mục các bảng
Bảng 1: Ma trận rating ................................................................................................... 31
Bảng 2: Độ thưa thớt của thông tin trust ........................................................................ 42
Bảng 3: Các giá trị mẫu được lưu trữ trong tập tin ........................................................ 55
Bảng 4: Phân bố các rating............................................................................................. 69
Bảng 5: Bảng thống kê độ thưa thớt của dữ liệu ............................................................ 69
Bảng 6: Kết quả so sánh các giải thuật trên bộ dữ liệu FilmTrust ................................. 71
Bảng 7: Kết quả so sánh các giải thuật trên bộ dữ liệu Ciao ......................................... 72
Bảng 8: Kết quả so sánh các giải thuật trên bộ dữ liệu Epinions ................................... 73
Bảng 9: Cấu hình đề xuất cho từng giải thuật ................................................................ 74
6
Danh mục các hình vẽ, đồ thị
Danh mục các hình vẽ, đồ thị
Hình 1: Lọc dựa theo nội dung [28] ............................................................................... 15
Hình 2: Các hướng tiếp cận chính trong phương pháp lai ghép [28]............................. 18
Hình 3: Mô hình đánh giá cross-validation [28] ............................................................ 19
Hình 4: Các tiếp cận theo hướng trust-base ................................................................... 28
Hình 5: Đồ thị quan hệ mạng xã hội và trọng số [18].................................................... 32
Hình 6: Mối liên hệ giữa các thành phần trong hệ khuyến nghị sử dụng thông tin mạng
xã hội [17]. ..................................................................................................................... 33
Hình 7: Mô hình truster [11] .......................................................................................... 38
Hình 8: Mô hình trustee [11].......................................................................................... 40
Hình 9: Vùng giá trị của các liên kết láng giềng [16] .................................................... 43
Hình 10: Use case trong hệ thống .................................................................................. 47
Hình 11: Kiến trúc cơ bản của hệ thống ........................................................................ 49
Hình 12: Các công nghệ được sử dụng .......................................................................... 50
Hình 13: Các thành phần cốt lõi trong hệ khuyến nghị ................................................. 51
Hình 14: Luồng xử lý chính của hệ thống...................................................................... 52
Hình 15: Kiến trúc class tổng quát của hệ thống ........................................................... 54
Hình 16: Hàm khởi chạy hệ khuyến nghị ...................................................................... 57
Hình 17: Các thành phần chính trong SparkDataModel ................................................ 58
Hình 18: Hàm xử lý dữ liệu của SparkSocialDataAppender ......................................... 59
Hình 19: Mô hình cơ sở dữ liệu chi tiết ......................................................................... 60
Hình 20: Thông tin người dùng...................................................................................... 63
Hình 21: Thông tin giao dịch của khách hàng ............................................................... 66
Hình 22: Giao diện chính của trang web khi người dùng chưa đăng nhập .................... 78
Hình 23: Màn hình login trong hệ thống........................................................................ 79
Hình 24: Thông tin cơ bản của người sử dụng............................................................... 80
Hình 25: Giao diện chính của trang web khi người dùng đăng nhập ............................ 81
Hình 26: Thông tin chi tiết của sản phẩm khi người dùng chưa đăng nhập .................. 82
7
Danh mục các hình vẽ, đồ thị
Hình 27: Nhận xét một sản phẩm ................................................................................... 83
Hình 28: Xem thông tin chi tiết của 1 người dùng ........................................................ 84
Hình 29: Xem chi tiết các thông tin bạn bè.................................................................... 85
Hình 30: Thông tin giỏ hàng .......................................................................................... 86
Hình 31: Thông tin giỏ hàng cho người dùng chưa đăng nhập ..................................... 87
Hình 32: Cấu trúc của Hadoop ....................................................................................... 94
Hình 33: Cấu trúc của YARN ........................................................................................ 96
Hình 34: Hệ sinh thái Hadoop ........................................................................................ 98
Hình 35: Hình minh hoạ đếm chữ sử dụng MapReduce [12] ........................................ 99
Hình 36: Tốc độ của Spark so với Hadoop .................................................................. 101
Hình 37: Kiến trúc của Spark ....................................................................................... 101
Hình 38: Kiến trúc của LibRec .................................................................................... 102
Hình 39: Giải nén hadoop ............................................................................................ 105
Hình 40: Chỉnh lại biến môi trường của Hadoop ......................................................... 106
Hình 41: Kiểm tra Hadoop version .............................................................................. 106
Hình 42: Format namenode trong hadoop ................................................................... 107
Hình 43: Khởi động dfs và yarn ................................................................................... 108
Hình 44: Giao diện quản trị của hadoop ...................................................................... 109
Hình 45: Kiểm tra trạng thái của các cluster trong yarn .............................................. 110
Hình 46: Tạo và đưa dữ liệu vào hadoop ..................................................................... 111
Hình 47: Kiểm tra dữ liệu trong hadoop ...................................................................... 111
Hình 48: Tải mã nguồn LibRec từ mạng internet ........................................................ 112
Hình 49: Build thư viện LibRec ................................................................................... 113
8
Danh mục các biểu đồ
Danh mục các biểu đồ
Biểu đồ 1: Biểu đồ phân bố các rating ........................................................................... 68
Biểu đồ 2: Biểu đồ so sánh các giải thuật trên bộ dữ liệu FilmTrust ............................. 72
Biểu đồ 3: Biểu đồ so sánh các giải thuật trên bộ dữ liệu Ciao ..................................... 73
Biểu đồ 4: Biểu đồ so sánh các giải thuật trên bộ dữ liệu Epinions............................... 74
Biểu đồ 5: Kết quả thực tế khi chạy trên bộ dữ liệu mỹ phẩm ...................................... 75
Biểu đồ 6: Tốc độ thực thi của 4 kỹ thuật ...................................................................... 76
Biểu đồ 7: So sánh tốc độ giữa SRS và LibRec nguyên thuỷ ........................................ 77
9
Tổng quan
MỞ ĐẦU
Giới thiệu
Nhờ những công cụ, phương tiện do cuộc cách mạng khoa học công nghệ mang
lại và đặc biệt là ngành công nghệ thông tin đóng vai trò là đầu tàu, kéo tất cả các
ngành khoa học còn lại băng băng trên con đường tri thức, giúp con người vươn tới
những thành tựu vĩ đại, khám phá ra thế giới mà trước đây ông cha ta chưa từng nghĩ
đến. Hoà chung vào dòng chảy thời đại, thương mại điện tử ra đời như một điều tất
yếu của cuộc sống. Trong những ngày đầu bình minh của cuộc cách mạng công nghệ
số, thương mại điện tử đã vươn lên và đóng vai trò vô cùng to lớn, thay đổi mạnh mẽ
các phương thức mua bán truyền thống sang mua bán trực tuyến. Từ đó những công
ty thương mại điện tử bắt đầu hình thành, đơn cử như: Amazon, Bestbuy, Alibaba,
Lazada, Tiki. Góp công không nhỏ trong sự thành công chung của thương mại điện
tử có thể kể đến các đóng góp to lớn của hệ khuyến nghị. Nhờ có hệ khuyến nghị mà
người dùng dễ dàng tìm kiếm các sản phẩm mình cần, qua đó kích thích nhu cầu mua
hàng của họ. Các hệ khuyến nghị truyền thống thường đưa ra các khuyến nghị dựa
vào nội dung những sản phẩm mà khách hàng đã mua trong quá khứ. Cách tiếp cận
này rất dễ thực hiện và tương đối hiệu quả với những khách hàng không có nhiều sở
thích và nhu cầu khác nhau. Nhưng do sự đa dạng của hàng hoá và đa sở thích của
người dùng hiện nay nên các hướng tiếp cận cũ không còn phù hợp nữa, vì thế các
hướng tiếp cận mới được đề xuất. Xuất sắc nhất có thể kể đến là các kỹ thuật theo
hướng tiếp cận dựa trên mối quan hệ giữa người dùng với nhau. Các mối quan hệ này
có thể là tường minh hay tiềm ẩn, đáng tin hay nghi ngờ. Để làm rõ các mối quan hệ
này, tôi đề xuất sử dụng mạng xã hội để kiểm tra mức độ liên kết giữa những người
dùng với nhau. Nhờ sự tương tác qua lại của các đối tượng thông qua mạng xã hội mà
chúng ta có thể tính toán ra giá trị thật của các mối quan hệ đó. Thông qua các kết quả
thực nghiệm cho thấy việc sử dụng các thông tin mạng xã hội có thể cải thiện độ chính
xác của các dự đoán đặc biệt khi sử dụng trên bộ dữ liệu thưa.
10
Tổng quan
Phát biểu bài toán
Một hãng mỹ phẩm lớn muốn xây dựng một hệ khuyến nghị để tư vấn các sản
phẩm của hãng đến người sử dụng. Các sản phẩm được khuyến nghị phải phù hợp với
nhu cầu mua hàng của người dùng. Hệ thống được xây dựng sẽ phân tích các thông
tin cá nhân của người dùng bao gồm: lịch sử mua hàng, chi tiết hóa đơn, thông tin bạn
bè, sau đó tiến hành phân tích và đề xuất các sản phẩm thích hợp.
Ứng dụng của bài toán
Bài toán được ứng dụng vào nhiều lĩnh vực liên quan đến thương mại điện tử,
đặc biệt đối với lĩnh vực bán lẻ. Giúp cho người dùng dễ dàng tìm kiếm được sản
phẩm phù hợp, nhằm tăng nhu cầu mua sắm, qua đó tăng doanh thu bán hàng cho
công ty.
Ngoài việc đưa ra các tư vấn trực tiếp trên nền web, khi người sử dụng đến
trực tiếp các cửa hàng trưng bày tham quan sản phẩm, các nhân viên tư vấn cũng có
thể sử dụng hệ thống để tham khảo những sản phẩm được hệ thống đưa ra, qua đó tư
vấn chính xác các sản phẩm phù hợp nhất với từng cá nhân người sử dụng sản phẩm.
Khó khăn và thách thức
Vấn đề cold-start luôn đem lại nhiều khó khăn cho các hệ khuyến nghị hiện
tại. Cần xây dựng một hệ khuyến nghị có thể đưa ra các dự đoán có tỉ lệ chính xác
cao trong khi thông tin về người dùng chưa tồn tại trong hệ thống.
Mặc khác, vấn đề về dữ liệu thưa trong lúc khai phá các đặc trưng cũng ảnh
hưởng rất lớn đến kết quả, cần làm giàu bộ dữ liệu thông qua mạng xã hội để nâng
cao độ chính xác của các khuyến nghị trong lúc đưa ra các dự đoán.
Mục tiêu luận văn
Nhằm khắc phục các khó khăn trên, cần nghiên cứu và xây dựng một hệ
khuyến nghị hoàn chỉnh. Bằng việc phân rã ma trận kết hợp với phân tích đồ thị quan
hệ giữa các đối tượng trong mạng, hệ khuyến nghị có khả năng giải quyết các vấn đề
về cold-start và dữ liệu thưa với độ chính xác cao nhất có thể.
11
Tổng quan
Đối tượng và phạm vi nghiên cứu
Đối tượng:
Các khách hàng đã mua hàng trong hệ thống, khách hàng mới có nhu cầu sử
dụng các sản phẩm mỹ phẩm của công ty.
Nhân viên của công ty muốn tham khảo sản phẩm khuyến nghị để tư vấn cho
khách hàng.
Phạm vi nghiên cứu:
Luận văn chủ yếu nhắm vào lĩnh vực thương mại điện tử, đặc biệt là lĩnh vực
mỹ phẩm. Dựa trên các thông tin mua hàng bao gồm: lịch sử mua hàng, thông tin giao
dịch, chi tiết đơn hàng, thông tin người mua hàng được lưu trữ trong vòng 1 năm từ
2014 đến 2015. Kết hợp với các thông tin về mối quan hệ bạn bè được thu thập bởi
hệ thống, thông tin bạn bè được người dung chia sẻ ở chế độ công khai (publish) trên
mạng xã hội facebook. Các thông tin bạn bè được thu thập sẽ biểu diễn thành đồ thị
quan hệ xã hội, kết hợp với thông tin mua hàng hệ khuyến nghị sử dụng kĩ thuật phân
ra ma trận để tìm kiếm các vector đặc trưng và đưa ra dự đoán cho từng người dùng
cụ thể.
Độ lớn của dữ liệu bao gồm:
122.545 khách hàng.
970.631 bản ghi (record) lịch sử mua hàng.
97.231 đánh giá (rating) của khách hàng (user) lên sản phẩm (item).
Thông tin bạn bè được thu thập thông qua mạng xã hội.
Cấu trúc luận văn
Luận văn được cấu trúc thành 5 chương, trong đó chương 1,2 đề cập đến cơ sở
lý thuyết và các hướng tiếp cận chính, chương 3,4 đề cập các kĩ thuật chính và cài đặt
chi tiết. Phần cuối, chương 5 đưa ra các nhận xét và hướng phát triển trong của luận
văn trong tương lai.
12
Tổng quan
Chi tiết nội dung từng chương như sau:
Chương 1: Khái quát cơ sở lý thuyết và tổng quan về các hướng tiếp cận chính
trong hệ khuyến nghị hiện nay. Bên cạnh đó chương này cũng khảo sát đến các thông
tin mạng xã hội có thể được sử dụng để xây dựng hệ khuyến nghị. Ngoài ra cũng đề
cập đến các độ đo để đánh giá mức độ hiệu quả của hệ khuyến nghị khi chạy trên bộ
dữ liệu thực nghiệm.
Chương 2: Đề cập đến các phương pháp chính trong việc xây dựng hệ khuyến
nghị có sử dụng các thông tin mạng xã hội. Trong chương này, tôi đi sâu vào các kĩ
thuật state-of-the-art hiện nay như: SoRec, SoReg, RSTE, TrustMF và TrutSVD. Để
có cái nhìn khách quan hơn, tôi cũng so sánh các phương pháp này thông qua bộ dữ
liệu thực nghiệm được cung cấp rộng rãi như: FilmTrust, Epinions, Ciao.
Chương 3: Đề xuất kiến trúc tổng quát và chi tiết để xây dựng hệ khuyến nghị.
Hệ thống được xây dựng trên nền Spark, sau đó tích hợp LibRec lên trên để đưa ra
các dự đoán. Ưu điểm của thiết kế này là giúp hệ thống hoạt động được với dữ liệu
lớn (BigData) trong khi đó vẫn cài đặt các thuật toán mới nhất trong lĩnh vực khuyến
nghị hiện thời. Với kiến trúc này, hứa hẹn sẽ tăng tốc xử lý dữ liệu và đưa ra các dự
đoán có độ chính xác cao.
Chương 4: Chương này đánh giá các kết quả của hệ khuyến nghị khi chạy trên
bộ dữ liệu mỹ phẩm. Các kết quả thực tế một lần nữa khẳng định rằng hệ thống hoạt
động vô cùng hiệu quả khi dữ liệu lớn. Phần tiếp theo của chương trình bày ứng dụng
minh họa cho hệ khuyến nghị. Ứng dụng được phát triển dựa trên công nghệ web, với
cơ chế gởi và nhận dữ liệu thông qua điện toán đám mây (cloud), tuân thủ các tiêu chí
khắc khe nhất trong lĩnh vực bảo mật thông tin.
Chương 5: Đây là chương cuối cùng của luận văn, chương này đề cập đến các
kết quả đạt được sau khi xây dựng và triển khai thực tế sản phẩm. Ngoài ra cũng có
đề cập đến các hướng phát triển trong tương lai để hoàn thiện hệ khuyến nghị đáp
đứng được với các xu hướng công nghệ mới nhất.
13
Tổng quan
Chương 1: TỔNG QUAN CÁC HƯỚNG TIẾP CẬN
1.1 Hệ khuyến nghị
Được ra đời từ những năm 1990 với mục đích ban đầu là hỗ trợ người dùng
trong các công việc tìm kiếm. Hệ khuyến nghị là hệ thống đề xuất và gợi ý sản
phẩm đến người dùng dựa trên việc dự đoán hành vi cũng như sở thích của người
dùng đó. Hệ khuyến nghị sẽ phân tích, đánh giá, tiên đoán các quy luật tiềm ẩn về
hành vi mua hàng, cũng như sở thích dựa trên các thông tin quá khứ được lưu trữ
trong hệ thống. Các thông tin này có thể là tường minh (người dùng mua những
sản phẩm nào) hay tiềm ẩn (trải qua quá trình khai phá) đề góp một phần không
nhỏ vào sự chính xác của hệ khuyến nghị.
1.2 Hệ khuyến nghị theo hướng các nhân hóa
Một hệ khuyến nghị sản phẩm theo hướng cá nhân hóa (personalized
recommender system) cần phải cung cấp các tư vấn thích hợp nhất đối với từng
khách hàng riêng rẽ. Việc hướng đến từng khách hàng sẽ nâng cao trải nghiệm
người dùng đối với hệ thống, một hệ khuyến nghị tốt sẽ giảm thiểu thông tin nhiễu
đến người dùng, qua đó tiết kiệm thời gian tìm kiếm, sắp xếp, sàng lọc thông tin
một cách hợp lý nhất cho người sử dụng.
Hệ khuyến nghị có thể được định nghĩa một cách đơn giản như sau:
S là tập các sản phẩm sẽ đề xuất cho khách hàng.
U là tập các người dùng mà hệ thống sẽ đề xuất sản phẩm.
F là độ đo phù hợp của một sản phẩm cụ thể s (s ∈ S) với một người dùng cụ thể u
(u ∈ U).
F = U x S R.
(1.2)
Với R là tổng các khuyến nghị được đề xuất bởi hệ thống. Đối với mỗi người dùng
u ∈ U, hệ thống sẽ đề xuất các sản phẩm thông qua hàm thuộc F. Các hàm thuộc
này chủ yếu dựa trên các đánh giá của người dùng đối với sản phẩm (rating). Các
14
Tổng quan
đánh giá này nằm trong khoảng từ [1 – 5], với độ hài lòng với sản phẩm tăng dần
từ nhỏ đến lớn, các đánh giá có giá trị 1 đồng nghĩa người dùng không hài lòng về
sản phẩm và các đánh giá có giá trị 5 biểu thị người dùng hoàn toàn hài lòng về
sản phẩm. Những khách hàng chưa từng đánh giá sẽ được biểu thị bằng giá trị 0.
1
2
3
Không hài lòng
4
5
Hoàn toàn hài lòng
1.3 Các hướng tiếp cận
1.3.1 Lọc theo nội dung (Content-based filtering – CBF)
Đề xuất những sản phẩm tương tự với những sản phẩm người dùng đã
mua trong quá khứ. Hệ thống sẽ căn cứ vào hồ sơ người dùng để tìm ra các sản
phẩm mà người dùng đã tương tác (xem qua, đánh giá, mua). Sau đó lọc các
sản phẩm trong hệ thống có nội dung tương tự với những sản phẩm này.
Hình 1: Lọc dựa theo nội dung [28]
15
Tổng quan
Hình trên miêu tả phương pháp lọc theo nội dung, hệ thống sẽ căn cứ
vào các đặc tính của những sản phẩm mà người dùng đã mua trong quá khứ.
Sau đó tìm kiếm các sảm phẩm có cùng đặc tính này để đưa ra các dự đoán.
Đối với tiếp cận này, có rất nhiều kỹ thuật được đề xuất trong việc tìm ra sự
liên quan giữa sản phẩm – sản phẩm, sản phẩm - người dùng, và các kỹ thuật
liên quan đến độ đo hứng thú của người dùng đối với sản phẩm. Một số kỹ
thuật phổ biến như: Bag of word, TF (term frequency), VSM (Vector Space
Model), TF-IDF (term frequency-inverse document frequency), Graph, Grid.
Lọc nội dung có ưu điểm là đơn giản và dễ dàng cài đặt, vì thế được sử
dụng rộng rãi trong các hệ khuyến nghị hiện nay. Ngay cả các hệ thống lớn
như Amazon hay Google cũng cài đặt hệ khuyến nghị theo tiếp cận lọc nội
dung vì đặc tính này.
1.3.2 Lọc cộng tác (Collaborative Filtering - CF)
Phân tích dựa trên sự tương tự của khách hàng và sự tương tự của sản
phẩm (hay còn gọi là láng giềng). Đối với phương pháp này, việc cần phải có
đầy đủ thông tin trước khi hệ thống khởi chạy là bắt buộc, một lý do đơn giản
là hệ thống cần phải xác định láng giềng nên cần một lượng thông tin nhất định
mới có thể đưa ra các đề xuất, các thông tin này là các thông tin đánh giá
(rating) của người dùng đối với sản phẩm.
Đối với lọc cộng tác, thường có 2 cách tiếp cận như sau:
Memory-Based Collaborative Filtering: tiếp cận này chủ yếu xây dựng
mô hình để xác định mức độ tương tự giữa các đối tượng được quan tâm. Các
đối tượng bao gồm: chủ đề, đặc trưng, sản phẩm và người dùng. Mỗi chủ đề
có thể biểu diễn ở nhiều dạng khác nhau, với bộ dữ liệu đa dạng, nhiều chiều,
phi số, bán cấu trúc, phi cấu trúc, tập tin, âm thanh, hình ảnh. Các hệ khuyến
nghị theo hướng tiếp cận này chủ yếu xác định mức độ lân cận của đối tượng
thông qua các độ đo lân cận như: Pearson correlation (CORR), Cosine (COS),
Adjust Cosine (ACOS), Constrained Correlation (CCORR), Mean square
16
Tổng quan
Difference (MSD), Euclidean (EUC), SM SING (singularities). Các dự đoán
được tạo ra dựa trên sự tương tự của sản phẩm hay người dùng. Hướng tiếp
cận này chủ yếu dựa trên sự tổng hợp các đánh giá, sau đó tính toán độ tương
tự giữa người dùng thông qua các đánh giá đó. Cho nên các phương pháp này
tốn rất nhiều thời gian và không thể hoạt động được trên các bộ dữ liệu lớn bởi
vì tính toán độ tương tự trên ma trận rating lớn sẽ rất tốn thời gian và vô cùng
khó khăn.
Dựa vào độ đo tương tự chúng ta hoàn toàn có thể đưa ra các dự đoán.
Giả sử nếu người dùng u1 tương tự với người dùng u2 (độ đo tương tự càng
lớn), chúng ta hoàn toàn có thể khuyến nghị các sản phẩm mà người dùng u 1
đã từng mua cho người dùng u2. Như một cách tự nhiên, chúng ta cũng có thể
làm tương tự với trường hợp u1, lấy các sản phẩm mà người dùng u2 đã mua
để khuyến nghị cho người dùng u1.
Model-Based Collaborative Filtering: các kỹ thuật theo hướng tiếp cận
này cố gắng so sánh sự tương quan giữa các đối tượng với nhau bằng việc ánh
xạ các đối tượng vào vùng không gian có thể so sánh được. Người ta tin rằng
luôn có một không gian mà các đối tượng luôn so sánh được, đó là không gian
tiềm ẩn, khi các đối tượng được ánh xạ vào cùng không gian tiềm ẩn, chúng ta
có thể so sánh các đối tượng với nhau thông qua các vector đặc trưng biểu diễn
đối tượng đó. Các kỹ thuật nổi trội để thực hiện việc ánh xạ này thường là các
kỹ thuật liên quan đến việc phân rã ma trận (matrix factorization) như:
Probabilistic matrix factorization, Multi-Relational matrix factorization,
Biased matrix factorization (BMF). Ngoài ra các kỹ thuật giải quyết các vấn
đề đa nghĩa như: SVD (Single value Decomposition), nhân tố tiềm ẩn LSI
(Latent Sematic Index), tin tưởng lẫn nhau (trust-base) cũng được sử dụng.
1.3.3 Lai ghép (Hybrid filtering)
Hướng tiếp cận lai ghép kết hợp các phương pháp lại với nhau để tận dụng
được những ưu điểm của từng phương pháp riêng rẽ này nhằm nâng cao độ
17
Tổng quan
chính xác của hệ thống, đơn cử như kết hợp phương pháp lọc dựa trên nội dung
và lọc cộng tác. Các kỹ thuật lai ghép thường sử dụng mô hình sinh trắc học
hoặc mô hình xác suất với các thuật toán như: giải thuật di truyền (genetic),
fuzzy genetic, neural networks, bayesian networks, gom cụm và nhân tố tiềm
ẩn.
Hình 2: Các hướng tiếp cận chính trong phương pháp lai ghép [28]
Hình trên cho ta thấy các kỹ thuật lai ghép được kết với hợp nhau rất đa
dạng, có thể sử dụng lần lượt giữa lọc cộng tác và lọc nội dung (A), cũng có
thể lọc cộng tác là chính sau đó kết hợp với lọc nội dung (B) hoặc ngược lại
(D), ngoài ra cũng có thể lồng ghép 2 phương pháp này để xây dựng 1 mô hình
hoàn toàn mới (C).
Không những thế, chúng ta còn có các kỹ thuật kết hợp giữa người dùng
và sản phẩm (bi-clustering), sử dụng thêm các thông tin mạng xã hội để cải
tiến mô hình như: tagging, explicit social links và explicit trust information.
1.4 Các độ đo đánh giá hệ khuyến nghị
Một số phương pháp đánh giá mô hình tiêu biểu:
Phương pháp k-fold Cross validation: phương pháp này phân chia dữ liệu
thành k tập con có cùng kích thước. Tại mỗi vòng lặp sử dụng một tập con là
tập kiểm thử và các tập con còn lại là tập huấn luyện.
18
Tổng quan
CV
= 𝟏𝒌 ∑𝒌𝒊 𝟏 𝑷𝑴𝒊
(1.4)
Trong đó:
k: số vòng lặp được sử dụng
𝑷: hằng số được chọn sao cho CV là nhỏ nhất
𝑴𝒊: tập dữ liệu con ở lần chạy thứ k
Thông thường để đạt được tối ưu về mặt thời gian và độ chính xác,
người ta thường chọn k = 10. Nếu k quá bé, sẽ cho kết quả không được chính
xác, còn nếu k quá lớn sẽ tốn rất nhiều thời gian để thực hiện. Với k = 10,
phương pháp đánh giá này trải qua 10 vòng lặp, ở mỗi vòng lặp sẽ sử dụng 1
tập con làm tập kiểm thử và 9 tập con còn lại làm dữ liệu để huấn luyện. Sau
đó, hệ thống lấy kết quả trung bình của các lần đánh giá làm kết quả cuối cùng.
Hình 3: Mô hình đánh giá cross-validation [28]
19
Tổng quan
1.4.1 Root Mean Squared Error (RMSE):
RMSE thường xuyên được sử dụng trong đánh giá độ khớp của mô hình so với
dữ liệu huấn luyện. Được tính bằng căn bậc hai của giá trị tuyệt đối của hệ số tương
quan giữa giá trị thực và giá trị dự đoán.
𝑅𝑀𝑆𝐸 =
1
|𝜏|
(𝑟 ^ − 𝑟 )
(1.4.1)
( , )∈
Trong đó:
𝑟 ^ : giá trị dự đoán được sinh ra từ mẫu dữ liệu test.
𝑟 : giá trị thực trong các mẫu huấn luyện.
𝜏: tập dữ liệu test.
Ngoài ra, còn có một số cải tiến khác của RMSE như: Normalized RMSE
(NMRSE) and Normalized MAE (NMAE) dùng để chuẩn hóa các giá trị trong khoảng
rmin – rmax. Average RMSE được sử dụng nhiều để đánh giá mô hình trong các tập dữ
liệu không cân bằng (unbalanced).
1.4.2. Mean Absolute Error (MAE):
Độ lệch tuyệt đối trung bình, dùng để tính sự chênh lệnh giữa 2 giá trị đo thông
qua công thức:
𝑀𝐴𝐸 =
1
𝑇
𝑅 −𝑅
,
Trong đó:
𝑅 : giá trị thực tế mà người dùng i đánh giá sản phẩm j.
𝑅 : các dự đoán hệ thống đưa ra cho người dùng i đánh giá sản phẩm j.
T: tập dữ liệu test.
20
(1.4.2)
Tổng quan
1.5 Mạng xã hội
Mạng xã hội xuất hiện lần đầu tiên năm 1995 với sự ra đời của trang Classmate
với mục đích kết nối bạn học, tiếp theo là sự xuất hiện của SixDegrees vào năm 1997
với mục đích giao lưu kết bạn dựa theo sở thích.
Năm 2002, Friendster trở thành một trào lưu mới tại Hoa Kỳ với hàng triệu
thành viên ghi danh. Tuy nhiên sự phát triển quá nhanh này cũng là con dao hai lưỡi:
server của Friendster thường bị quá tải mỗi ngày, gây bất bình cho rất nhiều thành
viên.
Năm 2006, sự ra đời của Facebook đánh dấu bước ngoặt mới cho hệ thống
mạng xã hội trực tuyến. Facebook nhanh chóng gặt hái được thành công vược bậc và
trở thành mạng xã hội lớn nhất thế giới với khoản 1.65 tỉ người dùng thường xuyên
mỗi tháng. Theo thống kê cho thấy, trung bình người dùng dành 19 phút mỗi ngày để
cập nhật thông tin từ bạn bè, đọc tin tức.
Các thông tin có thể thu thập để sử dụng cho hệ khuyến nghị (các thông tin này
do người dùng chia sẻ trên mạng xã hội): Do hệ khuyến nghị theo hướng tiếp cận
trust-base, nên các thông tin về bạn bè là vô cùng cần thiết. Hệ thống sẽ tiến hành
kiểm tra giữa 2 người dùng bất kỳ có mối quan hệ bạn bè nào hay không dựa vào
thông tin bạn bè mà người dùng đã chia sẻ thông qua mạng xã hội. Để có cái nhìn chi
tiết hơn về tình bạn, cũng như mức độ liên kết giữa 2 người bất kỳ, hệ thống cũng
kiểm tra xem 2 người này có mức độ thân thiết với nhau nhiều hay ít. Nếu giữa 2
người có nhiều cuộc trò chuyện, nhiều dòng bình luận, tag chung với nhau thì chứng
tỏ mức độ liên kết giữa 2 người này là vô cùng thân thiết, ngược lại nếu 2 người mà
không có bất kỳ thông tin nào liên quan với nhau, họ chỉ đơn thuần là kết bạn trong
một lúc tình cờ nào đó, thì đây là tình bạn có mối liên kết không chặt chẽ, có thể ít tác
động qua lại lẫn nhau trong quá trình ra quyết định mua sản phẩm nào đó.
Bản chất của các mối liên kết này thật ra đó chính là sự tin tưởng lẫn nhau.
Nếu sự tin tưởng càng lớn, rất có thể sẽ ảnh hưởng không nhỏ tới quyết định mua sản
phẩm của một đối tượng cụ thể.
21
Tổng quan
1.6 Các yếu tổ ảnh hưởng trực tiếp đến kết quả khuyến nghị
Có nhiều yếu tố ảnh hưởng đến kết quả của hệ khuyến nghị, trong đó có một
số yếu tố quan trọng như:
Độ tuổi: ở độ tuổi khác nhau thì nhu cần mua sản phẩm cũng khác nhau.
Giới tính: giới tính tạo ra sự khác biệt rõ ràng nhất về nhu cầu mua sản phẩm.
Đối với mặt hàng mĩ phẩm, đa phần khác hàng có giới tính là nữ, tuy nhiên trong một
số trường hợp đặc biệt, nam giới cũng có nhu cầu sử dụng sản phẩm.
Địa lý: Khoảng các địa lý khác nhau sẽ ảnh hưởng đến nhu cầu mua sản phẩm
khác nhau.
Mẫu mã: hay còn gọi chung là nội dung, nội dung của sản phẩm càng phong
phú sẽ góp phần tạo ra nhiều đặc trưng, giúp hệ khuyến nghị có thể dễ dàng tạo ra các
vector đặc trưng trong vùng không gian tiềm ẩn, qua đó dễ dàng trong việc xác nhận
mức độ lân cận giữa các đặc trưng.
Giá thành: giá cả đóng vai trò rất lớn đến quyết định chi tiêu của đại đa số
khách hàng. Giá càng cao thì lượng khách hàng mua càng giảm và ngược lại.
Số lượng giao dịch: số lượng giao dịch biểu thị sự hứng thú của một khách
hàng lên một sản phẩm, số lượng giao dịch càng nhiều thì độ hứng thú của khách hàng
càng lớn.
Đánh giá: các đánh giá có giá trị từ 1 đến 5. Các đánh giá này cho thấy mức độ
hài lòng của khách hàng lên một sản phẩm cụ thể. Trong trường hợp khách hàng đánh
giá độ hài lòng đối với sản phẩm là 1, cho thấy khách hàng hoàn toàn không hài lòng
với chất lượng của sản phẩm. Ngược lại các đánh giá 5 cho thấy khách hàng rất hài
lòng. Tuy nhiên các đánh giá này chỉ mang tính tương đối, một sản phẩm có thể không
thích hợp với người này nhưng lại hoàn toàn phù hợp với người kia.
Bình luận: thể hiện cảm xúc của người dùng lên sản phẩm. Các cảm xúc này
mang tính chủ quan. Thường thì các bình luận tỉ lệ thuận với đánh giá. Các bình luận
có cảm xúc mạnh mẽ sẽ mang đến các đánh giá hài lòng và ngược lại.
22
Tổng quan
Số lượng bạn bè: thông tin bạn bè là vô cùng quan trọng trong các hệ khuyến
nghị dựa trên sự tin tưởng. Nhờ có các quan hệ bạn bè, hệ khuyến nghị mới có thể tạo
ra các liên kết giữa người dùng, qua đó tính toán độ lân cận của người dùng so với
bạn bè của họ trong hệ thống.
1.7 Các thách thức còn tồn tại
Cold-start: xuất hiện người dùng mới hoặc sản phẩm mới. Đối với người dùng
mới hệ thống hoàn toàn không có bất kỳ một thông tin nào về sự cộng tác hay
tương tự giữa người dùng này với những người còn lại trong hệ thống. Sản phẩm
mới cũng tương tự như vậy, do là sản phẩm mới nên không biết căn cứ vào đâu để
quyết định sự tương tự của sản phẩm này đối với những sản phẩm khác trong hệ
thống.
Sparsity (Dữ liệu thưa): các sản phẩm được mua bởi khách hàng thường rất
nhỏ nếu tính trên tổng sản phẩm hiện có trong hệ thống. Thường thì người sử dụng
chỉ mua những gì họ cần chứ không mua hết tất cả những sản phẩm trong hệ thống.
Vì thế nên khi biểu diễn dữ liệu này lên dạng biểu đồ hay ma trận, chúng ta thấy
các dữ liệu thường rất thưa thớt và rời rạc.
Synonymy (Đa nghĩa): nhập nhằng trong việc phân biệt các sản phẩm hoặc
tính năng có cùng ý nghĩa nhưng khác tên gọi. Hệ khuyến nghị không thể nào phân
biệt được các ý nghĩa tiềm ẩn khi sử dụng từ đồng nghĩa cho sản phẩm.
Limited Content Analysis and Overspecialization (Dữ liệu không đầy đủ): các
đặc tả về sản phẩm trong hệ thống không đầy đủ. Một số sản phẩm không được đặc
tả đầy đủ về chức năng, thuộc tính, đặc tính kỹ thuật gây ra khó khăn cho các kỹ
thuật tiếp cận theo phương pháp lọc dựa trên nội dung. Tương tự như vậy, hồ sơ
khách hàng nếu không được đặc tả chi tiết, đầy đủ sẽ rất khó khăn trong việc xác
định láng giềng của khách hàng đó.
Shilling Attacks: một số người dùng cực đoan hoặc đối thủ cạnh tranh xấu
thường có xu hướng đánh giá tính cực với các sản phẩm mình thích và đánh giá
tiêu cực cho các sản phẩm mình không thích hoặc các sản phẩm của đối thủ cạnh
23