Tải bản đầy đủ (.pdf) (66 trang)

Xây dựng hệ thống kinh doanh sách online với khuyến nghị và tư vấn tự động (khóa luận tốt nghiệp)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.27 MB, 66 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
----------  ----------

LÊ BÁ LĨNH
TRẦN DUY TRỌNG

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG HỆ THỐNG KINH DOANH SÁCH
ONLINE VỚI KHUYẾN NGHỊ
VÀ TƯ VẤN TỰ ĐỘNG
Online bookstore system with recommendation and chatbot

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM

TP. HỒ CHÍ MINH, 2022


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
----------  ----------

LÊ BÁ LĨNH - 18520299
TRẦN DUY TRỌNG - 18521542

KHÓA LUẬN TỐT NGHIỆP

XÂY DỰNG HỆ THỐNG KINH DOANH SÁCH


ONLINE VỚI KHUYẾN NGHỊ
VÀ TƯ VẤN TỰ ĐỘNG
Online bookstore system with recommendation and chatbot

KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN
THS. MAI TRỌNG KHANG

TP. HỒ CHÍ MINH, 2022


THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ……………
ngày ………………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin.


LỜI CẢM ƠN
Lời đầu tiên, nhóm chúng em xin gửi lời cảm ơn đến Thầy Mai Trọng Khang (Giảng
viên khoa Công Nghệ Phần Mềm) đã hướng dẫn, giúp đỡ và giải đáp những thắc mắc
của nhóm trong q trình thực hiện để nhóm chúng em hồn thành tốt khóa luận tốt
nghiệp của mình của mình.
Trong thời gian một học kỳ thực hiện đề tài, nhóm đã vận dụng những kiến thức được
truyền đạt từ Thầy, đồng thời tìm hiểu, học hỏi thêm từ những nguồn bên ngồi để
hồn thành khóa luận một cách tốt nhất.
Đề tài đã được nhóm em nghiên cứu, thực hiện trong suốt khoảng thời gian vừa qua
với độ hồn thiện cao. Tuy nhiên, có thể phát sinh một số lỗi khơng mong muốn, kính
mong q thầy cơ tạm thời bỏ qua những soi sót này
Nhóm chúng em xin chân thành cảm ơn.

Tp. Hồ Chí Minh, ngày …… tháng ..... năm 2022



MỤC LỤC
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI ..................................................................... 1
1.1. Lí do chọn đề tài .................................................................................................. 1
1.2. Mục tiêu và nhiệm vụ .......................................................................................... 1
1.2.1. Mục đích của đề tài .................................................................................. 1
1.2.2. Nhiệm vụ của đề tài ................................................................................. 1
1.3. Tính mới và tính khác biệt................................................................................... 2
1.3.1. Tính mới của đề tài .................................................................................. 2
1.3.2. Tính khác biệt của đề tài .......................................................................... 2
1.4. Phạm vi và đối tượng nghiên cứu ........................................................................ 3
1.4.1. Phạm vi nghiên cứu ................................................................................. 3
1.4.2. Đối tượng nghiên cứu .............................................................................. 3
1.5. Ý nghĩa của đề tài ................................................................................................ 4
1.5.1. Đối với người dùng.................................................................................. 4
1.5.2. Đối với nhóm ........................................................................................... 4
CHƯƠNG 2: KIẾN THỨC TRỌNG TÂM ........................................................... 6
2.1. Chatbot ................................................................................................................ 6
2.1.1. Khái niệm ................................................................................................ 6
2.1.2. Ưu điểm ................................................................................................... 6
2.1.3. Hạn chế .................................................................................................... 6
2.1.4. Tính ứng dụng ......................................................................................... 7
2.2. Khuyến nghị ........................................................................................................ 7
2.2.1. Tổng quan ................................................................................................ 7
2.2.2. Thuật toán tiếp cận dựa theo nội dung .................................................... 9
2.2.3. Ý tưởng xây dựng .................................................................................. 10
2.2.4. Xây dựng cơng thức tốn học ................................................................ 11
2.2.5. Thuật tốn collaborative filtering .......................................................... 13
CHƯƠNG 3: XÂY DỰNG CHATBOT VÀ KHUYẾN NGHỊ ........................... 15



3.1. Xây dựng chatbot .............................................................................................. 15
3.1.1. Phân tích ................................................................................................ 15
3.1.2. Xây dựng ............................................................................................... 15
3.1.3. Cài đặt .................................................................................................... 16
3.1.4. Triển khai ............................................................................................... 22
3.2. Xây dựng khuyến nghị ...................................................................................... 25
3.2.1. Mơ hình xử lý ........................................................................................ 25
3.2.2. Chi tiết ................................................................................................... 25
CHƯƠNG 4: PHÂN TÍCH, THIẾT KẾ HỆ THỐNG ........................................ 30
4.1. Xây dựng kiến trúc ............................................................................................ 30
4.1.1. Đối tượng tham gia ................................................................................ 30
4.2. Sơ đồ Use cases ................................................................................................. 31
4.2.1. Sơ đồ tổng quát ...................................................................................... 31
4.2.2. Sơ đồ tư vấn chatbot .............................................................................. 32
4.2.3. Sơ đồ mua hàng ..................................................................................... 33
4.2.4. Sơ đồ theo dõi đơn hàng ........................................................................ 34
4.2.5. Sơ đồ đánh giá sản phẩm ....................................................................... 35
4.2.6. Sơ đồ quản lí người dùng ...................................................................... 36
4.2.7. Sơ đồ quản lí đặt hàng ........................................................................... 37
4.2.8. Sơ đồ quản lí sách .................................................................................. 38
4.2.9. Danh sách các Actor .............................................................................. 38
4.2.10. Danh sách các Use case ....................................................................... 39
4.3. Phân tích và thiết kế dữ liệu .............................................................................. 40
4.4. Thiết kế giao diện .............................................................................................. 43
4.4.1. Giao diện admin quản lý ........................................................................ 43
4.4.2. Giao diện website .................................................................................. 46
4.4.3. Giao diện mobile ................................................................................... 49
CHƯƠNG 5: KẾT LUẬN...................................................................................... 53

5.1. Kết quả đạt được................................................................................................ 53


5.1.1. Đối với người dùng................................................................................ 53
5.1.2. Hệ thống khuyến nghị ........................................................................... 53
5.1.3. Hệ thống tư vấn tự động ........................................................................ 53
5.2. Hướng phát triển ................................................................................................ 53


DANH MỤC CÁC BẢNG
Bảng 2.1: Bảng đánh giá các cuốn sách ................................................................... 10
Bảng 4.1: Danh sách các Actor ................................................................................ 38
Bảng 4.2: Danh sách các Use case ........................................................................... 39
Bảng 4.3: Thiết kế dữ liệu bảng thể loại .................................................................. 40
Bảng 4.4: Thiết kế dữ liệu bảng sách ....................................................................... 41
Bảng 4.5: Thiết kế dữ liệu bảng sách - thể loại ........................................................ 41
Bảng 4.6: Thiết kế dữ liệu bảng tác giả .................................................................... 41
Bảng 4.7: Thiết kế dữ liệu bảng sách - tác giả ......................................................... 41
Bảng 4.8: Thiết kế dữ liệu bảng giao dịch................................................................ 42
Bảng 4.9: Thiết kế dữ liệu bảng chi tiết giao dịch.................................................... 42
Bảng 4.10: Thiết kế dữ liệu bảng khách hàng .......................................................... 42
Bảng 4.11: Thiết kế dữ liệu bảng đánh giá ............................................................... 43


DANH MỤC CÁC HÌNH
Hình 2.1: Minh họa về chatbot ................................................................................... 6
Hình 2.2: Ví dụ dự đốn rating ................................................................................... 9
Hình 2.3: Minh họa về ma trận cột đánh giá thể lọi ................................................. 10
Hình 2.4: Hàm lỗi cho user j .................................................................................... 12
Hình 2.5: Hàm lỗi cho user j có sử dụng regularization ........................................... 12

Hình 2.6: Hàm lỗi cho tất cả user có sử dụng regularization ................................... 12
Hình 2.7: Gradient Descent cho Content - based Recommendations ...................... 12
Hình 2.8: Model mới cho RS ................................................................................... 13
Hình 2.9: Xác định ma trận sở thích......................................................................... 13
Hình 2.10: Cost function .......................................................................................... 14
Hình 2.11: Gradient Descent .................................................................................... 14
Hình 3.1: Trang được sử dụng để cài đặt Chatbot.................................................... 15
Hình 3.2: Thông tin ứng dụng được tạo trên Facebook Developers ........................ 16
Hình 3.3: Cây thư mục của source code chatbot ...................................................... 16
Hình 3.4: : Nội dung code trong file mơi trường...................................................... 17
Hình 3.5: Thơng tin token được khởi tạo ................................................................. 18
Hình 3.6: Nội dung code của hàm callSendAPI. ...................................................... 19
Hình 3.7: Nội dung code của hàm handleMessage. ................................................. 20
Hình 3.8: Nội dung code của hàm handlePostback .................................................. 20
Hình 3.9: Code xử lí lệnh Postback .......................................................................... 21
Hình 3.10: Nội dung code trong chatbotService ...................................................... 22
Hình 3.11: Giao diện tạo app trên Heroku. .............................................................. 23
Hình 3.12: Thêm các biến mơi trường trên Heroku. ................................................ 23
Hình 3.13: Hướng dẫn triển khai app trên Heroku ................................................... 24
Hình 3.14: Cài đặt webhook trên Facebook Developers .......................................... 24
Hình 3.15: Mơ hình xử lý hệ khuyến nghị ............................................................... 25
Hình 3.16: Thơng tin cơ bản các về data .................................................................. 25
Hình 3.17: Đọc dữ liệu từ file rating ........................................................................ 26


Hình 3.18: Đọc dữ liệu từ các file items .................................................................. 27
Hình 3.19: Xây dựng Feature Vector ....................................................................... 27
Hình 3.20: Hàm tìm items được đánh giá bởi user................................................... 28
Hình 3.21: Tìm mơ hình cho mỗi user ..................................................................... 29
Hình 4.1: Sơ đồ Use case tổng quát ......................................................................... 31

Hình 4.2: Sơ đồ tư vấn chatbot ................................................................................. 32
Hình 4.3: Sơ đồ mua hàng ........................................................................................ 33
Hình 4.4: Sơ đồ theo dõi đơn hàng ........................................................................... 34
Hình 4.5: Sơ đồ đánh giá sản phẩm .......................................................................... 35
Hình 4.6: Sơ đồ quản lí người dùng ......................................................................... 36
Hình 4.7: Sơ đồ quản lí đặt hàng .............................................................................. 37
Hình 4.8: Sơ đồ quản lí sách .................................................................................... 38
Hình 4.9: Bảng thiết kế dữ liệu ................................................................................ 40
Hình 4.10: Giao diện admin - đăng nhập ................................................................. 43
Hình 4.11: Giao diện admin - trang chủ ................................................................... 44
Hình 4.12: Giao diện admin - quản lí người dùng.................................................... 44
Hình 4.13: Giao diện admin - quản lí sách ............................................................... 45
Hình 4.14: Giao diện admin - lịch sử giao dịch ....................................................... 45
Hình 4.15: Giao diện admin - cài đặt ....................................................................... 46
Hình 4.16: Giao diện website - Trang chủ ............................................................... 46
Hình 4.17: Giao diện website - thông tin sản phẩm ................................................. 47
Hình 4.18: Giao diện website - đặt hàng .................................................................. 47
Hình 4.19: Giao diện website - thanh tốn ............................................................... 48
Hình 4.20: Giao diện website - đơn hàng của tơi ..................................................... 48
Hình 4.21: Giao diện mobile - trang chủ .................................................................. 49
Hình 4.22: Giao diện mobile - thơng tin chi tiết ...................................................... 50
Hình 4.23: Giao diện mobile - trang cá nhân ........................................................... 51
Hình 4.24: Giao diện mobile - thanh toán ................................................................ 52



TĨM TẮT KHĨA LUẬN
Hiện nay, ngành cơng nghệ thơng tin ngày càng phát triển, đi kèm với nó là lĩnh vực
Thương mại điện tử đang ngày càng bùng nổ. Song song với đó, vấn đề xây dựng các
tiện ích kéo theo cũng được ra đời nhằm mục đích giao tiếp với khách hàng dễ dàng,

thuận tiện hơn.
Nhận thấy nhu cầu giúp đỡ khách hàng trên các app thương mại điện từ là ngày càng
nhiều, nhóm chúng em đã quyết định thực hiện đề tài “Xây dựng hệ thống kinh
doanh sách online với khuyến nghị và tư vấn tự động”, mục tiêu chính là tạo ra một
hệ thống hồn chỉnh với các tính năng nâng cao như: Chatbot thơng minh để giao tiếp
với khách hàng, hệ thống gợi ý để thuận tiện trong việc mua sắm cũng như gia tăng
trải nghiệm của người dùng trong việc sử dụng.
Khóa luận của nhóm được khảo sát, phân tích kĩ lưỡng từ các hệ thống mua hàng hiện
tại để nâng cao tính trải nghiệm người dùng. Tuy nhiên trong q trình thực hiện
khơng tránh những sai sót khơng đáng có, nhóm rất mong nhận được sự góp ý từ q
thầy cơ để nhóm chúng em có thêm kinh nghiệm để thực hiện những đề tài nghiên
cứu trong tương lai.
Chúng em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện


CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1.1. Lí do chọn đề tài
Trong những năm gần đây, tình hình Covid thế giới đang diễn biến phức tạp. Vì
những yêu cầu về giãn cách, hạn chế tiếp xúc nên nhu cầu của người dùng quan tâm
đến các hình thức mua sắm trực tuyến ngày càng gia tăng. Nhiều doanh nghiệp, các
cửa hàng nhỏ lẻ đang từng bước tiếp cận việc bán hàng trực tuyến để tối ưu hóa lợi
nhuận. Việc này dẫn đến sự cạnh tranh khốc liệt trong lĩnh vực này.
Với mục tiêu giúp những khách hàng đang u thích hoặc có nhu cầu mua sách có
thể tiếp cận và thao tác dễ dàng, nhóm chúng em quyết định xây dựng hệ thống "Kinh
doanh sách online".
Ngồi ra, để tăng thêm tính cạnh tranh so với ứng dụng mua sắm trên thị trường, đề
tài sẽ hỗ trợ người dùng sử dụng trên cả website và ứng dụng điện thoại. Trên ứng
dụng sẽ tích hợp thêm hệ thống tư vấn tự động và hệ khuyến nghị.


1.2. Mục tiêu và nhiệm vụ
1.2.1. Mục đích của đề tài


Nghiên cứu thuật tốn lọc cộng tác và các vấn đề liên quan đến gợi ý để áp dụng
cho việc áp dụng hệ khuyến nghị.



Nghiên cứu và áp dụng chatbot để nâng cao tính trải nghiệm của người dùng.



Xây dựng thành công hệ khuyến nghị và hệ thống gợi ý tích hợp vào ứng dụng



Hệ thống có khả năng ứng dụng vào thực tiễn



Áp dụng và triển khai các kiến thức đã nghiên cứu và học hỏi vào hiện thực hoá
ứng dụng

1.2.2. Nhiệm vụ của đề tài
Rèn luyện các kỹ năng lập trình trên các nền tảng đã nghiên cứu. Cùng với đó. Đồng
thời, tích hợp các tiện ích khuyến nghị và tư vấn tự động vào hệ thống.
Website và ứng dụng điện thoại ToLi có những tính năng như:



Gợi ý người dùng những sách liên quan



Tư vấn tự động các thể loại, sách mới nhất cho người dùng

1




Theo dõi lịch sử các đơn hàng đã đặt



Đánh giá, bình luận sách đã mua



Đặt sách, thanh tốn



Tìm kiếm sản phẩm



Đăng ký / Đăng nhập / Đăng xuất




Chỉnh sửa thơng tin cá nhân

1.3. Tính mới và tính khác biệt
1.3.1. Tính mới của đề tài
Hiện nay, các trang mua sắm đều được hoạt động tương tự nhau ở các khâu: hàng
hoá, vận chuyển, mua sắm,.... Chỉ có sự khác biệt duy nhật là giá cả khác nhau ở mỗi
trang
Trong quá trình khảo sát người dùng, các ứng dụng liên quan, nhóm chúng em đã
quyết định hiển thị các sản phẩm gợi ý và tư vấn tự động để giúp việc thuận tiện cho
q trình mua bán, bên cạnh đó cũng tạo ra sự ấn tượng và hài lịng cho khách hàng.
Ngồi ra, hệ thống đều có tính năng bình luận, đánh giá sản phẩm để giúp cho khách
hàng có những thơng tin đa chiều trước khi quyết định mua sản phẩm
1.3.2. Tính khác biệt của đề tài
Hiện nay, nhiều hệ thống chưa có những tính năng chun biệt để gợi ý và tư vấn
người dùng trong quá trình mua sắm sản phẩm. Những thao tác tìm kiếm khó khăn
và việc khơng có người tư vấn, hỗ trợ sẽ gây ra những trải nghiệm không tốt đến với
người dùng.
- Shopee, Lazada, Sendo: Sản phẩm quá nhiều và đa dạng làm giao diện và các thao
tác trở nên rối rắm cho khách hàng. Ở đây, khách hàng có nhu cầu đặt sách cần một
hệ thống đảm bảo uy tín để mua hàng mà không cần phải quan tâm quá nhiều những
mặt hàng khác
- Tiki: Trang web có một danh mục riêng Nhà sách Tiki dành cho những khách hàng
muốn mua sách với những tính năng nổi bật như: Bình luận, đánh giá,hồn tiền đổi

2


trả,.... Tuy nhiên, chưa có tính năng gợi ý cho khách hàng và việc tư vấn và hỗ trợ
khách hàng trên website phản hồi chậm làm giảm tính trải nghiệm của khách hàng.

- Fahasa: Giao diện và quá trình mua hàng phức tạp, mỗi lần khách hàng mua hàng
hoặc thêm sản phẩm đều hiện ra thông báo gây ra phiền tối cho khách hàng. Website
có danh mục "Gợi ý dành riêng cho bạn" dựa trên những sản phẩm đã xem nhưng
đang bị lỗi không hiển thị.
Qua khảo sát những ứng dụng có liên quan, hệ thống nhóm chúng em có những tính
khác biệt như:
- Hệ thống tư vấn tự động xun suốt giúp khách hàng có thể tìm hiểu và xem trước
các sản phẩm thay vì tìm kiếm thủ cơng.
- Hệ khuyến nghị sẽ gợi ý những sản phẩm cho từng nhóm khách hàng khác nhau.
1.4. Phạm vi và đối tượng nghiên cứu
1.4.1. Phạm vi nghiên cứu
Mục tiêu khóa luận hướng đến những khách hàng có nhu cầu đặt sách tại khu vực
Làng Đại học Quốc gia. Mở rộng hơn hướng đến phạm vi toàn quốc.
Hệ thống ToLi được xây dựng với:
- Admin panel
- Website ToLi
- App ToLi
Tìm hiểu về các thuật toán thuật toán lọc cộng tác và các vấn đề liên quan đến gợi ý
để áp dụng cho việc áp dụng hệ khuyến nghị.
Tìm hiểu và ứng dụng chatbot để nâng cao tính trải nghiệm của người dùng.
1.4.2. Đối tượng nghiên cứu


Các cơng nghệ xây dựng trang web, ứng dụng di động:



ReactJS




React Native



NodeJS

3




MySQL



Hệ thống khuyến nghị:
o

Python

o

Thuật tốn lọc cộng tác



Cơng nghệ tư vấn tự động:




Facebook Messenger Developer



Wit.ai



Cơ sở hạ tầng:



Ubuntu



Docker



CI/CD



Đối tượng người dùng:



Người có nhu cầu mua sách thơng qua hình thức mua hàng trực tuyến




Người quản lý hệ thống
Phương pháp nghiên cứu

4.

Nhóm đã sử dụng các phương pháp nghiên cứu:


Phương pháp đọc tài liệu



Phương pháp phân tích các ứng dụng mua sắm trực tuyến hiện có



Phương pháp thực nghiệm

1.5. Ý nghĩa của đề tài
1.5.1. Đối với người dùng


Giúp việc mua sắm trở nên dễ dàng hơn chỉ bằng một vài thao tác.



Nâng cao tính trải nghiệm của người dùng nhờ áp dụng tư vấn tự động và hệ

khuyến nghị.

1.5.2. Đối với nhóm


Đề tài này tạo động lực giúp em tìm hiểu và trau dồi những kiến thức mới liên
quan đến máy học và xử lý ngôn ngữ tự nhiên trong hệ thống.

4




Việc xây dựng ứng dụng với các công nghệ ReactJS, NodeJS, React Native
giúp tích lũy thêm kinh nghiệm trong cơng việc sau này của chúng em.

5


CHƯƠNG 2: KIẾN THỨC TRỌNG TÂM
2.1. Chatbot
2.1.1. Khái niệm
Chatbot là một phần mềm giúp tương tác với người dùng bằng ngôn ngữ tự nhiên
thông qua âm thanh hoặc tin nhắn. Chatbot có thể kết hợp với cả cơng nghệ AI để
giúp quá trình hỗ trợ khách hàng tốt hơn.

Hình 2.1: Minh họa về chatbot
2.1.2. Ưu điểm
Lợi ích đầu tiên phải kể đến đó là thời gian. Việc áp dụng chatbot trong các doanh
nghiệp, cụ thể hơn trong lĩnh vực Thương mại điện tử giúp cho việc tiếp cận, xử lý

những u cầu từ phía khách hàng một cách nhanh chóng. Điều này sẽ kéo theo hàng
loạt những lợi ích khác như: Gia tăng doanh thu bán hàng, nâng cao tỷ lệ chốt đơn,...
Hơn thế nữa, chatbot có khả năng ghi nhớ thơng tin dùng nên hồn tồn có thể đưa ra
những tư vấn phù hợp từ những dữ liệu đã thu thập được. Điều này sẽ làm tăng tính
trải nghiệm cho khách hàng.

2.1.3. Hạn chế
Đi kèm với lợi ích, những hạn chế trong quá trình sử dụng chatbot gây thiệt hại cũng
rất lớn. Ở đây chúng ta phải kể đến những hạn chế như sau:

6


+ Cần dữ liệu đào tạo lớn
+ Gặp khó khăn trong các câu hỏi nằm ngoài phạm vi được đào tạo
+ Các lỗi ngơn ngữ trong q trình xử lí chatbot
2.1.4. Tính ứng dụng
Ứng dụng của chatbot hiện nay rất phổ biến và xuất hiện hầu hết trong nhiều lĩnh vực
như: Đầu tư, giáo dục, báo chí, tài chính, thương mại,...
Hiện nay, hầu hết các ứng dụng tin nhắn phổ biến như: Facebook Messenger, Discord,
Telegram,... đều cho phép tích hợp chatbot. Như vậy, việc ứng dụng chatbot cũng
góp một phần không nhỏ trong việc cạnh tranh ở bối cảnh thị trường hiện nay.

2.2. Khuyến nghị
2.2.1. Tổng quan
Ngày nay, Recommender System (RC) xuất hiện rất nhiều trên các phần mềm và đã
đem đến rất nhiều lợi ích cho cả người dùng lẫn nhà phát triển. Chẳng hạn như:
• Hệ thống đề xuất sản phẩm của Amazon.
Amazon là một trong những công ty tiên phong trong việc xây dựng nên hệ thống
khuyến nghị. Trong những ngày đầu, họ là một trong số ít những nhà phát triển nhìn

ra được sự hữu ích của công nghệ này. Hệ thống đề xuất sản phẩm của Amazon dựa
trên việc người dùng xếp hạng các sản phẩm đã mua, hành vi mua hàng (buying
behavior) và hành vi duyệt web (browsing behavior).
• Hệ thống đề xuất sách của Netflix.
Netflix là một nền tảng xem sách trực tuyến. Hệ thống đề xuất sách của Netflix được
xây dựng dựa trên việc cung cấp cho người dùng khả năng xếp hạng những cuốn sách
(trên thang điểm 5) và hành vi của người dùng khi nhấn vào các hạng mục về thể loại
sách yêu thích (ví dụ như lãng mạn, phiêu lưu mạo hiểm,…).
Netflix cịn cung cấp giải thích cho các cuốn sách được đề xuất bởi hệ thống.
Ví dụ: Netflix sẽ hiển thị danh sách các cuốn sách A, B, C kèm theo một dịng
thơng báo: “Vì bạn đã xem D”

7


Cách tiếp cận này giúp cho người dùng có nhiều khả năng thực hiện theo đề xuất của
netflix và thực sự cải thiện trải nghiệm của người dùng.

• Hệ thống cá nhân hóa tin tức của google (Google News Personalization
System).
Hệ thống cá nhân hóa tin tức của google có thể hiển thị tin tức cho người dùng dựa
theo lịch sử nhấp chuột (tất nhiên là trên trình duyệt web). Họ thu thập thông tin này
thông qua tài khoản gmail (mà người dùng đã đăng nhập trên trình duyệt web). Đặc
điểm của hệ thống này là coi các cú nhấp chuột của người dùng vào một bài báo tin
tức nào đó như là một đánh giá tích cực cho chính bài báo đó và sẽ đưa ra các khuyến
nghị về các bài viết tương tự. Thế nhưng lại khơng có cơ chế cho việc khơng thích
một bài báo nào. Các xếp hạng như vậy được gọi là “xếp hạng 1 lần” (unary rating).

• Hệ thống giới thiệu bạn bè của facebook
Các trang mạng xã hội thường có hệ thống giới thiệu bạn bè tiềm năng cho người

dùng để tăng lượng tương tác và giúp trải nghiệm của người dùng được tốt hơn. Và
facebook là một ví dụ điển hình trong các trang mạng xã hội hiện nay. Hệ thống đề
xuất này có mục tiêu hơi khác so với các hệ thống đề xuất sản phẩm. Trong khi các
hệ thống đề xuất sản phẩm làm tăng lợi ích của người bán bằng việc đề xuất các sản
phẩm thì hệ thống này làm tăng số lượng kết nối trên mạng xã hội giúp cho mạng
lưới ngày càng to lớn. Do đó, các nhà phát triển sẽ tăng được doanh thu quảng cáo.
Các hình thức khuyến nghị như trên dựa trên mối quan hệ cấu trúc (structural
relationships) chứ không dựa trên dữ liệu xếp hạng (ratings data) nên bản chất các
thuật toán được hiện thực bên dưới sẽ khác nhau.

8


2.2.2. Thuật toán tiếp cận dựa theo nội dung
Vậy model cho Recommender System được xây dựng như thế nào? Chúng ta cùng đi
đến bài tốn sau:
“Giả sử chúng ta có một tập khách hàng (user), và một tập hợp các cuốn sách
(item). Mỗi một khách hàng sẽ đánh giá 1 hoặc nhiều cuốn sách bất kì trên thang
điểm từ 0 – 5. Mức độ hài lòng cao nhất sẽ là 5 và thấp nhất là 0. Sẽ có những khách
hàng chưa (hoặc không) đánh giá một số cuốn sách. Vậy làm thế nào để biết cuốn
sách nào sẽ là phù hợp với khách hàng?”
Ta cùng mơ hình hóa bài tốn dưới dạng ma trận như sau:

Hình 2.2: Ví dụ dự đốn rating

Trong đó:
• Khách hàng là cột và các cuốn sách là hàng.
• Các giá trị từ 0 – 5 sẽ được điền vào hàng i cột j của ma trận theo đánh giá của
khách hàng j cho cuốn sách i.


9


Giả sử họ đã đánh giá như sau:
Alice

Bob

Carol

Dave

Love at last

5

5

0

0

Romance for ever

5

?

?


0

Cute puppies of love

?

4

0

?

Nonstop car chases

0

0

5

4

Sword vs. karate

0

0

5


?

Bảng 2.1: Bảng đánh giá các cuốn sách
Chúng ta quy ước rằng:
• r(i,j) = 1 nếu như user j đã đánh giá cho cuốn sách i.
• y(i,j) = số điểm mà khách hàng j đã đánh giá cho cuốn sách i và chỉ được định nghĩa
nếu r(i,j) = 1.
Và bài toán bây giờ là sẽ xác định các giá trị “?” sao cho phù hợp với khách hàng
dựa vào các đánh giá đã có.
2.2.3. Ý tưởng xây dựng
Chúng ta thêm vào ma trận hai cột nữa để đánh giá các thể loại của sách như sau:

2 cột này có thể được hiểu như sau:

Hình 2.3: Minh họa về ma trận cột đánh giá thể lọi
10


Chẳng hạn về cuốn sách Love at Last thì tính lãng mạn của cuốn sách là rất cao
(romance = 0.9) nhưng về tính chất hành động lại vơ cùng thấp (action = 0).
Và tương tự cho các cuốn sách khác.
Nhưng như thế vẫn chưa đủ để xây dựng thuật toán vì vẫn chưa có tham số nào để
biểu diễn mức độ yêu thích của các khách hàng.
Như vậy theo suy nghĩ tự nhiên, cứ mỗi user chúng ta sẽ thêm vào một (hoặc nhiều)
tham số để đại diện cho user đó.
Bài tốn bây giờ sẽ trở nên vơ cùng quen thuộc : dự đoán giá trị y dựa vào cặp (x 1,
x2) – có thể sử dụng thuật tốn linear regression cho nhiều tham số đã được trình bày
ở mục 2.2.1.
Xét ví dụ là Alice. Như đã trình bày, vấn đề có thể được nhìn nhận dưới góc độ tốn
học là bài tốn hồi quy tuyến tính đơn giản có thể giải quyết được. Thế còn về mặt

ngữ nghĩa, ý tưởng thơng thường thì có thể hiểu rằng: “Alice thích những sách có tính
lãng mạn cao và khơng thích sách có tính chất hành động, vậy có thể cơ ấy sẽ thích
sách Cute puppies of Love, một cuốn sách mà tính lãng mạn khá cao (romance =
0.99) và tính chất hành động rất ít (action = 0.01).”
Hướng tiếp cận này được gọi là tiếp cận dựa trên nội dung. (Content – Based
Recommendation).

2.2.4. Xây dựng cơng thức tốn học
Như chúng ta đã biết, để giải quyết bài toán hồi quy tuyến tính cho nhiều biến thì ta
phải sử dụng 2 cơng cụ đó là tính hàm lỗi (cost function) và tiến hành học các tham
số sử dụng Gradient Descent.
Chúng ta sẽ lần lượt giải quyết 2 bước này để hoàn thiện thuật tốn
Đầu tiên là cơng thức của hàm lỗi:

11


Hình 2.4: Hàm lỗi cho user j
Ở đây đại lượng: (θ (j))T x(i) như đã nói sẽ đại diện cho h(x(i)) như đã nói ở phần trước.
Tuy nhiên để phịng tránh việc model bị overfitting chúng ta cần thêm regularization
để tối ưu.

Hình 2.5: Hàm lỗi cho user j có sử dụng regularization
Thế nhưng cái chúng ta muốn không chỉ học để tối ưu tham số cho mỗi user j mà
chúng ta cần là cần tối ưu cho tất cả user vì vậy. Ta viết lại cơng thức:

Hình 2.6: Hàm lỗi cho tất cả user có sử dụng regularization
Việc tiếp theo là học các tham số sử dụng gradient descent

Hình 2.7: Gradient Descent cho Content - based Recommendations


12


Bài toán đã được giải quyết theo hướng tiếp cận dựa trên nội dung!

2.2.5. Thuật toán collaborative filtering
Như chúng ta đã biết về nhược điểm của thuật tốn đã trình bày ở phần trước.
Như vậy, để giải quyết chúng ta cần phải xác lập một mơ hình mới cho bài tốn
Recommender System.
Ở mơ hình mới này chúng ta, vẫn sử dụng ý tưởng chính của hướng tiếp cận dựa trên
nội dung.
Tuy nhiên, các giá trị về tính năng sẽ được ẩn đi và chúng ta sẽ không biết được cuốn
sách nào là lãng mạn và cuốn sách nào thuộc thể loại hành động.

Hình 2.8: Model mới cho RS
Và bây giờ giả sử như chúng ta, bằng cách nào đó có thể xác định được ma trận sở
thích của mỗi user chẳng hạn như sau:

Hình 2.9: Xác định ma trận sở thích
Vậy là bài tốn trở thành việc tìm bộ số (x1, x2) dựa vào tập ma trận sở thích.
Đây lại là một bài toán linear regression cho nhiều biến trong đó bộ tham số cần học
là tham số thể loại.

13


×