Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)Ứng Dụng Mạng Neural Vào Hệ Gợi Ý Trong Thương Mại Điện Tử (LV thạc sĩ)
Trang 1VÕ ĐỨC ANH
ỨNG DỤNG MẠNG NEURAL VÀO HỆ GỢI Ý
TRONG THƯƠNG MẠI ĐIỆN TỬ
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)
HỒ CHÍ MINH - 2017
Trang 2VÕ ĐỨC ANH
ỨNG DỤNG MẠNG NEURAL VÀO HỆ GỢI Ý
TRONG THƯƠNG MẠI ĐIỆN TỬ
Chuyên ngành: Hệ thống thông tin
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu riêng của tôi
Các số liệu và kết quả trong luận văn đều là trung thực và chưa từng ai công bố trong các công trình nghiên cứu khác
TP.HCM, ngày 28 tháng 05 năm 2017 Học viên thực hiện luận văn
Trang 4định hướng thêm cho em trong suốt quá trình nghiên cứu và thực hiện luận văn
Em cũng xin gửi lời cảm ơn chân thành đến tất cả các Thầy Cô của trường Học Viện Công Nghệ Bưu Chính Viễn Thông cơ sở tại TP Hồ Chí Minh đã giảng dạy và dìu dắt chúng em trong suốt quá trình học tập tại Trường
Cuối cùng, em xin gửi lời cảm ơn đến gia đình, bạn bè và những người luôn đồng hành, cổ vũ tinh thần, giúp em vượt qua những giai đoạn khó khăn và tạo điều kiện thuận lợi cho em học tập tốt và hoàn thành luận văn này
Em xin chân thành cảm ơn!
TP.HCM, ngày 28 tháng 05 năm 2017 Học viên thực hiện luận văn
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT v
DANH SÁCH BẢNG vi
DANH SÁCH HÌNH VẼ, BIỂU ĐỒ vii
MỞ ĐẦU 1
CHƯƠNG 1 - CƠ SỞ LÝ LUẬN 3
1.1 Tổng quan về thương mại điện tử 3
Định nghĩa 3
Giới thiệu về hệ thống gợi ý 4
Hiện trạng các hệ thống thương mại điện tử hiện nay 6
1.2 Tổng quan về mạng neural 7
Cấu trúc mạng neural 7
Phân loại cấu trúc mạng neural 9
1.2.2.1 Mạng neural truyền thẳng một lớp (hay là perceptron một lớp) 9
1.2.2.2 Mạng neural truyền thẳng nhiều lớp (hay là perceptron nhiều lớp) 9
1.2.2.3 Mạng neural tự tổ chức (mạng Kohonen, hay là mạng cạnh tranh) 10
1.3 Lý do chọn đề tài 11
1.4 Mục tiêu của đề tài 12
1.5 Phạm vi và nội dung nghiên cứu 12
CHƯƠNG 2 - THỰC TRẠNG NGHIÊN CỨU 13
2.1 Deep learning 13
2.2 Hệ thống gợi ý 13
Các khái niệm chính 13
Các kỹ thuật chính trong hệ gợi ý hiện nay 14
2.3 Thuật giải lọc cộng tác 16
Trang 6Kỹ thuật k láng giềng gần nhất (User/Item k-nearest neighbors) 17
Kỹ thuật phân rã ma trận (matrix factorization) 19
2.4 Autoencoder 22
Autoencoder không đầy đủ (Undercomplete Autoencoders) 24
Autoencoder định chuẩn (Regularized Autoencoders) 25
Autoencoder thưa (Sparse Autoencoders) 26
Autoencoder giảm nhiễu (Denoising Autoencoders) 29
CHƯƠNG 3 - THỰC NGHIỆM VÀ ĐÁNH GIÁ 30
3.1 Môi trường thực nghiệm 30
Ngôn ngữ lập trình python 30
Giới thiệu về thư viện TensorFlow 31
Cấu hình máy thực nghiệm 33
3.2 Thông tin các tập dữ liệu 33
3.3 Mô tả phương pháp thực nghiệm 35
Tiền xử lý dữ liệu và xây dựng ma trận đánh giá 36
Xây dựng mô hình 37
Khai báo tham số 38
Huấn luyện mô hình 40
Dự đoán kết quả và tính toán tỉ lệ lỗi 40
3.4 Kết quả thực nghiệm 41
MovieLens 41
NguyenKim 44
3.5 Nhận xét và đánh giá 44
KẾT LUẬN VÀ KIẾN NGHỊ 45
1 Những đóng góp của luận văn 45
2 Những vấn đề còn tồn tại 45
3 Hướng phát triển tiếp theo của luận văn 46
DANH MỤC CÁC TÀI LIỆU THAM KHẢO 47
Trang 7DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
EC, TMĐT E-commerce, Ecommerce Thương mại điện tử
RS Recommendation System Hệ thống gợi ý
CF Collaborative Filtering Lọc cộng tác
CDF Collaborative Deep Learning Học sâu cộng tác
RNN Recurrent Neural Network Mạng neural tái phát
KNN K-Nearest Neighbors K láng giềng gần nhất
MF Matrix Factorization Kỹ thuật phân rã ma trận
NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên
AE Autoencoders Mô hình mã hoá - giải mã SGD Stochastic Gradient Descent Kỹ thuật giảm gradient ngẫu
nhiên SDAE Stacked Denoising
Autoencoder
Mô hình mã hoá – giải mã giảm nhiễu xếp chồng
RMSE Root Mean Squared Error Giá trị bình phương trung bình
lỗi lấy căn
Trang 8DANH SÁCH BẢNG
Bảng 3.1: Mô tả rank của tensor 32
Bảng 3.2: Mô tả cú pháp shape của tensor 32
Bảng 3.3: Mô tả kiểu dữ liệu trong tensorflow 33
Bảng 3.4: Thông tin các tập dữ liệu thực nghiệm 34
Trang 9DANH SÁCH HÌNH VẼ, BIỂU ĐỒ
Hình 1.1: Mô hình thương mại điện tử 3
Hình 1.2: Một mô hình hệ thống gợi ý 5
Hình 1.3: Neural nhân tạo 7
Hình 1.4: Mô hình mạng neural truyền thẳng 8
Hình 1.5: Mô hình mạng neural truyền thẳng một lớp 9
Hình 1.6: Mô hình mạng Kohonen 11
Hình 2.1: Một mô hình deep learning với hai lớp ẩn 13
Hình 2.2: Ma trận trọng số biểu diễn đánh giá 14
Hình 2.3: Phân rã ma trận 20
Hình 2.4: Kiến trúc tổng quát của một autoencoder, ánh xạ một đầu vào x tới một đầu ra (gọi là tái thiết) r thông qua mã h 22
Hình 2.5: Mô hình trực quan autoencoder 23
Hình 3.1: Mô tả cú pháp, các dòng lệnh trong Python 30
Hình 3.2: Bảng xếp hạng các ngôn ngữ lập trình năm 2016 31
Hình 3.3: Tỉ lệ lỗi khi kiểm tra chéo trên tập Movielens-1M 41
Hình 3.4: Tỉ lệ lỗi khi mô hình hoá dựa trên dòng và cột trên tập Movielens-1M 42
Hình 3.5: Tỉ lệ lỗi khi điều chỉnh tốc độ học trên tập Movielens-1M 42
Hình 3.6: Tỉ lệ lỗi khi thay đổi số lần vào mạng trên tập Movielens-1M 43
Hình 3.7: Tỉ lệ lỗi khi thay đổi số lớp ẩn của mạng trên tập Movielens-1M 43
Trang 10MỞ ĐẦU
Trong những năm gần đây, thương mại điện tử (E-commerce) phát triển bùng nổ Lợi ích và hiệu quả của nó thì khỏi phải bàn cãi, các hệ thống bán hàng trực tuyến đã đem lại cho người dùng sự tiện lợi, dễ dàng hơn với giá cả cạnh tranh và phục vụ tốt hơn Đi cùng với đó, các doanh nghiệp phải cạnh tranh khốc liệt hơn để giành và duy trì thị phần của mình, sao cho làm khách hàng phải ngày càng thỏa mãn, đem tới trải nghiệm ngày một cao hơn Do đó, để việc bán hàng trở nên phát triển ngoài các lợi thế vốn có thì việc có thêm một “người trợ giúp” là rất cần thiết Hệ gợi ý là một giải pháp hữu hiệu và đang được áp dụng rộng rãi Tuy nhiên ở Việt Nam hiện nay, hệ thống gợi ý chưa được xem xét và áp dụng đúng mức Vấn đề này chúng ta cần chúng
ta phải có cái nhìn thấu đáo hơn
Mạng neural cùng với các mô hình deep learning hiện tại đang là một xu hướng phổ biến Mô hình này các biến thể của nó đang được ứng dụng rộng rãi trong rất nhiều lĩnh vực Một vài mô hình mạng neural được giới thiệu gần đây có sự thay đổi cách tiếp cận với những cải tiến đáng kể, giải quyết nhiều vấn đề thực tiễn gặp phải, đem lại những kết quả khả quan Có thể nói sau một thời kỳ chững lại với nhiều hạn chế trong cách tiếp cận cũ, nay mạng neural đã và đang phát triển mạnh mẽ trở lại như đúng vị trí và vai trò của nó
Từ những nhận định trên, đề tài đã đề xuất hướng nghiên cứu ứng dụng mạng neural vào hệ gợi ý trong bài toán thương mại điện tử
Các nhà phát triển hệ thống gợi ý đầu tiên vào năm 1992 (D Goldberg cùng các cộng sự) đã đưa ra thuật ngữ “collaborative filtering” (lọc cộng tác) Nhiều các công ty đã xây dựng hệ gợi ý cho website của mình từ sớm điển hình như Amazon, eBay, CDNOW, Levis, Netflix [1] Từ đó đến nay, rất nhiều các website đã và đang phát triển hệ gợi ý cho riêng mình [2] Phương pháp hiện tại dùng cho hệ gợi ý có thể chia thành ba nhóm chính: phương pháp dựa trên nội dung, phương pháp dựa trên lọc cộng tác và phương pháp lai Phương pháp lọc cộng tác được đánh giá là có hiệu quả nhất
và được coi là có nhiều cách tiếp cận mới
Trang 11Hiện nay khi nói tới hệ gợi ý thì phải nhắc tới lọc cộng tác (CF) Giả thuyết của bài toán lọc cộng tác điển hình là: “Nếu người dùng 𝑢 và 𝑢′ cùng đánh giá cho n sản phẩm tương tự nhau (như: xem, mua, nghe…) thì họ sẽ đánh giá tương tự nhau với các sản phẩm khác”
Lọc cộng tác là phương pháp phổ biến cho việc xây dựng các hệ thống tư vấn Các thuật toán lọc cộng tác hiện tại thường dựa trên thông tin mua bán hoặc lịch sử đánh giá của người dùng để đưa ra các dự đoán dựa trên độ tương tự về sở thích giữa các người dùng với nhau Các thông tin về độ tuổi, giới tính, vùng miền, trình độ dân trí
đã bao hàm trong các thông tin đánh giá từ phía người dùng
Mô hình ứng dụng mạng neural vào hệ gợi ý mà cụ thể là sử dụng mô hình mạng neural để huấn luyện tập dữ liệu của người dùng, phát hiện ra các hành vi, mối tương quan ẩn trong tập dữ liệu hiện tại rồi từ đó đánh giá thông tin có được, đưa ra gợi ý
co khách hàng
Năm 2015, nhóm tác giả đến từ đại học Hong Kong đã giới thiệu mô hình Bayes phân cấp được gọi là CDL (Collaborative Deep Learning – Học sâu cộng tác), với việc học biểu diễn sâu cho nội dung thông tin đồng thời lọc cộng tác cho ratings (feedback) [3]
Năm 2016, nhóm tác giả người Pháp giới thiệu mô hình lọc cộng tác lai với Autoencoders [4] nhằm giải quyết các vấn đề còn hạn chế trong lọc cộng tác Một cách tiếp cận mới hệ gợi ý với mạng neural tái phát (RNNs – Recurrent Neural Networks) của hai tác giả đến từ Đại học Stanford cũng cho kết quả rất khả quan dựa trên các thông tin đánh giá nhận xét dưới dạng chuỗi
Luận văn sẽ đi sâu nghiên cứu các mô hình này, thực nghiệm và đánh giá trên các tập mẫu thử có được liên quan tới thương mại điện tử nhằm cho ra kết quả cụ thể Từ những kết quả này luận văn sẽ đề xuất hướng ứng dụng phù hợp
Trang 12CHƯƠNG 1 - CƠ SỞ LÝ LUẬN 1.1 Tổng quan về thương mại điện tử
Định nghĩa
Thương mại điện tử (E-commerce - EC) gọi tắt là TMĐT chỉ sự mua bán sản phẩm hay dịch vụ trên các hệ thống điện tử TMĐT thông thường được xem ở các khía cạnh của kinh doanh điện tử, có thể được chia ra thành:
E-tailing (bán lẻ trực tuyến) hay cửa hàng ảo trên trang web với các danh mục trực tuyến, đôi khi được gom thành các trung tâm mua sắm ảo
Việc thu thập và sử dụng dữ liệu cá nhân thông qua các địa chỉ liên lạc web
Trao đổi dữ liệu điện tử (EDI), trao đổi dữ liệu giữa doanh nghiệp với doanh nghiệp
Email và fax và cách sử dụng chúng như là phương tiện cho việc tiếp cận và thiếp lập mối quan hệ với khách hàng (ví dụ như bản tin, newsletters, tin nhắn)
Việc mua và bán giữa doanh nghiệp với doanh nghiệp
Bảo mật các giao dịch kinh doanh
Hình 1.1: Mô hình thương mại điện tử
Trang 13Các hình thức TMĐT thì khá đa dạng Hiện nay có nhiều tranh cãi về các hình thức tham gia cũng như cách phân chia các hình thức này trong thương mại điện tử Nếu phân chia theo đối tượng tham gia thì có 3 đối tượng chính bao gồm: Chính phủ(G - Goverment),Doanh nghiệp(B - Business) vàKhách hàng(C - Customer hay Consumer) Nếu kết hợp đôi một 3 đối tượng này sẽ có 9 hình thức theo đối tượng tham gia:B2C, B2B, B2G, G2B, G2G, G2C, C2G, C2B, C2C
Về cơ bản thì TMĐT vẫn mang bản chất của thương mại truyền thống nhưng với sự phát triển của internet và các ứng dụng công nghệ thông tin TMĐT đã và đang thay đổi chóng mặt Cách thức cũng như mô hình mới làm TMĐT có nhiều lợi thế cạnh tranh hơn và nhờ đó khách hàng được hưởng lợi nhiều hơn
TMĐT giúpngười tiêu dùng thu thập nhanh chóng và dễ dàng thông tin đa dạng
vềsản phẩm, giá cả và người bán Ngày nay đã xuất hiện nhiều website chuyên cung cấp dịch vụđánh giávề sản phẩm và nhà cung cấp, so sánh giá cả giữa các website bán hàng Hơn nữa, người tiêu dùng có thể trực tiếp đưa ra các đánh giá của mình về nhiều khía cạnh liên quan tới giao dịch mua sắm, giúp cho những người khác có nhiều
cơ hội chọn lựa sản phẩm phù hợp nhất, hoặc chọn được người bán cung cấp dịch vụ tốt nhất, hoặc mua được sản phẩm với giá rẻ nhất
Giới thiệu về hệ thống gợi ý
Hệ gợi ý hay hệ khuyến nghị (Recommender system - RS) là một dạng của hệ
hỗ trợ 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ệ thống có thể đưa ra những mục thông tin phù hợp cho người dùng bằng cách dựa vào dữ liệu về hành vi trong quá khứ của họ rồi dự đoán thông tin mới mà người dùng có thể cần Hệ thống gợi ý với việc đưa ra các thông tin gợi ý cho người dùng, hiển thị thêm những nội dung liên quan sẽ giúp giữ người dùng ở lại trang lâu hơn, tăng số lượng khách hàng tiềm năng, giúp đẩy mạnh tiêu thụ sản phẩm Thông tin gợi ý, nội dung liên quan nói trên là các đề xuất, các gợi
mở, lựa chọn, là kết quả được tính toán dựa trên việc thu thập dữ liệu về người dùng liên quan tới việc xem, mua hàng, đánh giá cá nhân trước đó Việc thực hiện tính toán dựa trên các thuật toán học máy, nhằm cho ra dự đoán tốt nhất và phù hợp nhất Quá
Trang 14trình đánh giá và cải tiến sẽ được thực hiện liên tục để hệ thống ngày càng chính xác hơn
Hình 1.2: Một mô hình hệ thống gợi ý
Các dạng gợi ý cũng có nhiều loại: 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 từ cộng đồng, các xu hướng trào lưu hiện tại, các nội dung được quan tâm, các chia sẻ, các phê bình, đánh giá mang tính số đông liên quan tới yêu cầu, mục đích cho người sử dụng Trong lĩnh vực thương mại điện tử, để xây dựng hệ gợi ý chúng ta cũng dựa vào nhiều yếu tố: lượt xem, lượt mua, số lượng mua, đánh giá sản phẩm, nhận xét phản hồi…từ đó làm
cơ sở để phân loại đưa ra các thông tin phù hợp cho khách hàng
Một vấn đề làm cho hệ gợi ý trở nên cần thiết đó là việc có quá nhiều thông tin đối với khách hàng: sản phẩm có quá nhiều chủng loại, kích thước, giá thành, đến từ nhiều nhà sản xuất với nhiều mẫu mã, kiểu dáng, chưa kể chất lượng, mức độ tin cậy thì chưa được kiểm chứng Khách hàng đưa ra một yêu cầu đơn giản, tất nhiên yêu cầu đó không đầy đủ nhưng mong muốn nhận lại được thông tin về số ít sản phẩm ưng ý nhất Điều này về cơ bản đối với các hệ thống tìm kiếm thông thường là không làm được Hệ gợi ý sẽ hỗ trợ giải quyết một phần khó khăn này, góp phần cung cấp các hỗ trợ cho người dùng trong việc đưa ra quyết định
Trang 15Hệ gợi ý không phân biệt khách hàng, tất cả khách hàng đều sẽ có được thông tin gợi
ý, tất nhiên các gợi ý mỗi khách hàng khác nhau sẽ không giống nhau Việc tính toán đưa ra gợi ý cho khách hàng sẽ nằm bên trong hệ thống, sao cho đảm bảo hiệu quả tốt nhất Việc phân loại khách hàng tiềm năng sẽ được xem xét ở một khía cạnh khác
để khai thác riêng trên tập khách hàng này
Hiện trạng các hệ thống thương mại điện tử hiện nay
Hiện nay trên thế giới có rất nhiều doanh nghiệp đã tích hợp hệ gợi ý vào website của họ, đem lại hiệu quả đáng kể Điển hình không thể không nhắc đến là Amazon Tuy rằng, mỗi website có những đặc trưng riêng và cách thức áp dụng cũng sẽ có đôi chút khác nhau nhưng tựu chung lại thì hệ gợi ý là một giải pháp đúng đắn và rất cần được áp dụng Ở Việt Nam một vài website thương mại điện tử cũng đã có hệ thống gợi ý Điều này đã góp phần không nhỏ vào hiệu quả của việc bán hàng, ảnh hưởng tới sự sống còn của doanh nghiệp trong bối cảnh cạnh tranh khốc liệt như hiện nay Thị trường TMĐT Việt Nam gần đây có khá nhiều biến động, nhiều tên tuổi đình đám như Beyeu, Deca, Cucre, Lamdieu, Foreva, Lingo, Nhommua đã từ giã cuộc chơi; sự sang tên đổi chủ của Foodpanda, 123mua; ông lớn Alibaba mua lại Lazada, Tiki thay đổi mô hình kinh doanh hay gần đây là Zalora hợp nhất với Robins Bỏ qua các nguyên nhân liên quan tới chiến lược kinh doanh thì có thể dễ dàng nhận thấy các website này đã không thật sự thu hút được sự chú ý của khách hàng, lượng mua sụt giảm và đóng cửa là điều tất yếu Trong bối cảnh đó, giải pháp nào để thu hút và giữ khách hàng ở lại với website của mình Hệ gợi ý có thể được xem xét như là một yếu
tố ảnh hưởng không nhỏ tới quyết định của khách hàng, cải thiện trải nghiệm của người dùng, làm thay đổi cách tiếp cận với món hàng và hành vi mua hàng, qua đó tăng sức mua
Hệ gợi ý đã và đang được sử dụng và tiếp tục được mở rộng phát triển để đảm bảo cho những nhu cầu mới ngày mỗi cao của khách hàng, đặc biệt là trong lĩnh vực TMĐT
Trang 161.2 Tổng quan về mạng neural
Cấu trúc mạng neural
Mỗi neural nhân tạo là một đơn vị xử lý thông tin, nó được mô phỏng theo neural sinh học trong bộ não con người Neural là thành phần cơ bản của một mạng neural Cấu trúc của một neural:
Hình 1.3: Neural nhân tạo
Các thành phần cơ bản của một neural nhân tạo bao gồm:
Tập các đầu vào: Là các tín hiệu vào (input signals) của neural, các tín hiệu
này thường được đưa vào dưới dạng vectơ N chiều
Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là trọng số
liên kết – Link weight) Trọng số liên kết giữa tín hiệu vào thứ j với neural k thường được kí hiệu là 𝑤𝑘𝑗 Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng
Hàm tổng: Thường dùng để tính tổng của tích các đầu vào với trọng số liên
kết của nó
Ngưỡng (còn gọi là độ lệch – bias): Ngưỡng này thường được đưa vào như
một thành phần của hàm truyền
Hàm truyền (còn gọi là hàm kích hoạt – activation function): Hàm này được
dùng để giới hạn phạm vi đầu ra của mỗi neural Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho Thông thường, phạm vi đầu ra của mỗi neural được giới hạn trong đoạn [0, 1] hoặc [-1, 1] Các hàm truyền rất đa dạng, có thể là hàm tuyến tính hoặc phi tuyến Việc lựa chọn hàm truyền là tùy vào bài toán
Đầu ra: Là tín hiệu đầu ra của một neural, với mỗi neural sẽ có tối đa là một
đầu ra
Trang 17Mạng neural nhân tạo (Artificial Neural Network - ANN) gọi tắt là mạng neural là
mô hình xử lý thông tin mô phỏng hoạt động như hệ thần kinh của con người Nó được tạo nên từ một số lượng lớn các neural kết nối với nhau thông qua các liên kết làm việc như một thể thống nhất nhằm giải quyết một vấn đề cụ thể nào đó Một mạng neural nhận tạo được cấu hình cho một ứng dụng cụ thể, thông qua quá trình học từ tập các mẫu huấn luyện Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các neural
Mạng neural là một kỹ thuật mới được sử dụng trong mô hình hóa người dùng Nó được tạo nên bởi các nút chính là người dùng và kết nối giữa các nút là quan hệ giữa các người dùng Các nút có phương thức hoạt hóa làm nhiệm vụ tính toán giá trị hoặc năng lượng của chúng Dữ liệu đầu vào sẽ kích hoạt mạng, rồi tới mạng sẽ kích hoạt các nút Quá trình tính toán thông báo và được cập nhật trong toàn mạng qua sự lan truyền, trả về tri thức theo yêu cầu Các nút chứa ánh xạ tức thời của tri thức trong hệ thống Mạng neural có nhiều biến thể: dạng tĩnh hoặc dạng động, đơn hoặc đa chiều, mạng đơn nguyên hoặc đa nguyên, có thể nhiều mạng kết nối lại Trong mạng các nút không cố định mà có thể được xóa hoặc tạo mới, hỗ trợ những hình thái tri thức linh hoạt, thông minh hơn
Các neural nhân tạo liên kết lại với nhau sẽ hình thành nên mạng neural với nhiều lớp gồm lớp đầu vào (input layers), các lớp ẩn (hidden layers) và lớp đầu ra (output layer)
Mô hình đơn giản nhất của mạng neural chính là mạng neural truyền thẳng (Feedforward neural networks) Các neural trong mạng truyền thẳng liên kết với nhau
mà không hình thành chu trình nên tín hiệu sẽ truyền thẳng từ đầu vào qua các lớp ẩn
và đến đầu ra
Hình 1.4: Mô hình mạng neural truyền thẳng
Trang 18Phân loại cấu trúc mạng neural
1.2.2.1 Mạng neural truyền thẳng một lớp (hay là perceptron một lớp)
Đây là mô hình đơn giản nhất của mạng neural truyền thẳng với chỉ một lớp đầu ra Trong lớp này chỉ có thể một hoặc nhiều neural và các thông số đầu vào sẽ được kết nối trực tiếp đến các neural đầu ra này
Hình 1.5: Mô hình mạng neural truyền thẳng một lớp
Mô hình này này vốn bắt nguồn từ thuật toán perceptron, nên có tên gọi khác là perceptron một lớp Ý tưởng của nó là đi tìm một hàm tuyến tính
𝑓 ∶ 𝑓(𝑥) = 𝑤 ∗ 𝑥 = 𝑤1∗ 𝑥1+ 𝑤2∗ 𝑥2+ … + 𝑤𝑛∗ 𝑥𝑛 để phân tách dữ liệu thành các lớp thông qua việc học dữ liệu huấn luyện và điều chỉnh các trọng số 𝒘 Hạn chế của mô hình perceptron một lớp này là chỉ giải quyết được các bài toán có khả năng phân tách tuyến tính, như mô phỏng hàm AND, OR và NOT; còn đối với các bài toán không thể phân tách tuyến tính thì không thể giải quyết được Điều này
đã được hai giáo sư Marvin Minsky và Seymour Papert chứng minh năm 1969
1.2.2.2 Mạng neural truyền thẳng nhiều lớp (hay là perceptron nhiều lớp)
Mô hình perceptron nhiều lớp, cải tiến của perceptron một lớp, là một mạng neural truyền thẳng điển hình Mô hình này ngoài các lớp đầu vào và đầu ra còn có các lớp ẩn và một neural trong một lớp được kết nối đầy đủ đến tất cả các neural của lớp tiếp theo
Trang 19Khác biệt lớn nhất giữa mạng Perceptron một lớp và Perceptron nhiều lớp chính là hàm kích hoạt Perceptron nhiều lớp sử dụng hàm kích hoạt phi tuyến Hai hàm được
Mạng neural truyền thẳng Perceptron nhiều lớp học điều chỉnh các trọng số 𝒘 thông qua thuật toán lan truyền ngược sai số (backpropagation) Tư tưởng chính của thuật
toán này như tên gọi của nó: lan truyền sai số giữa kết quả huấn luyện y mà mô hình đưa ra với đầu vào x và kết quả thật sự trong tập huấn luyện là d để cập nhật các trọng
số cho từng nút mạng (các neural)
Mạng neural nhiều lớp có nhiều ưu điểm hơn một lớp, điển hình như mô phỏng hàm XOR Mô hình này còn có nhiều ứng dụng trong các bài toán nhận diện hình ảnh, nhận dạng giọng nói, xử lý ngôn ngữ tự nhiên
1.2.2.3 Mạng neural tự tổ chức (mạng Kohonen, hay là mạng cạnh tranh)
Mạng neural tự tổ chức (seft-organizing map) hay gọi là mạng Kohonen là một loại mạng neural nhân tạo được huấn luyện thông qua phương pháp học không giám sát (Unsuppervised learning) Khác với các mô hình mạng neural truyền thẳng, mạng Kohonen sử dụng cách học cạnh tranh (competitive learing) thay vì phương pháp sửa lỗi (error correction)
Mô hình này được đề xuất bởi Teuvo Kohonen vào những năm 1980 dựa trên một phần cách thức mà các tín hiệu được xử lý trong não bộ Cũng giống với các mô hình neural khác, mạng Kohonen cũng cần trải qua quá trình huấn luyện Tuy nhiên, như đã đề cập, phương pháp và ý tưởng của mạng Kohonen có nhiều sự khác biệt so với các mô hình mạng neural học theo phương pháp học có giám sát
Trang 20Mạng Kohonen với phương pháp học không giám sát được sử dụng hiệu quả trong các bài toán gom nhóm (clustering) Có thể nói mô hình này gần giống với phương pháp gom nhóm K-mean hơn là các mạng neural khác
Hình 1.6: Mô hình mạng Kohonen
1.3 Lý do chọn đề tài
Mạng neural với khả năng linh hoạt và mới phát triển mạnh mẽ trở lại đây đang ngày càng được ứng dụng trong nhiều lĩnh vực thực tế, giải quyết những vấn đề khó tưởng chừng như không thực hiện được Đặc biệt là các bài toán nhận dạng mẫu, lọc dữ liệu và dự báo Đã có nhiều công trình nghiên cứu, bài báo mở ra hướng ứng dụng của mạng neural, nhiều mô hình mạng neural đã đưa lại những kết quả rất khả quan Bởi vậy khả năng ứng dụng mạng neural vào hệ gợi ý là triển vọng và hoàn toàn khả thi
Autoencoder là một mô hình mạng neural dùng để học không giám sát (Unsupervised learning) thông qua các mã (code) với ý tưởng là nếu một mô hình mạng neural có số nút mã trung gian nhỏ hơn số nút đầu vào thì mô hình đó sẽ học được các đặc tính ẩn của dữ liệu Chính vì điều này mà Autoencoder học được cách biểu diễn cho một tập dữ liệu, giúp dự đoán đầu ra từ một đầu vào ban đầu Trong thực tế, Autoencoder đã được ứng dụng thành công để giảm chiều dữ liệu, tất nhiên không làm mất đi các đặc tính quan trọng của dữ liệu Các công trình nghiên cứu hướng ứng dụng gần đây về Autoencoder cũng đem lại những kết quả tốt Đó chính
là lý do lựa chọn đề tài
Trang 211.4 Mục tiêu của đề tài
Nghiên cứu các kỹ thuật đã áp dụng thành công hiện nay vào hệ gợi ý, đánh giá các ưu nhược điểm của từng kỹ thuật
Nghiên cứu mô hình mạng Autoencoder và các biến thể của nó, xem xét và đánh giá chi tiết khả năng ứng dụng vào hệ gợi ý
Đề xuất một mô hình mạng Autoencoder phù hợp cho bài toán thương mại điện tử nhằm đưa ra được gợi ý có độ chính xác cao
Tối ưu mô hình mạng, thực hiện so sánh và đánh giá các kết quả thực nghiệm với các phương pháp khác
1.5 Phạm vi và nội dung nghiên cứu
Tập trung nghiên cứu các thành phần trong hệ thống gợi ý, đặc biệt là trong bài toán thương mại điện tử, các hệ gợi ý đã hoàn chỉnh
Nghiên cứu các mô hình mạng neural mà cụ thể là Autoencoder, xem xét khả năng ứng dụng thực tế và các lĩnh vực bài toán đã được ứng dụng thành công
Tổng quan về các giải pháp cho hệ gợi ý hiện nay, các cách thức tiếp cận, thành công cũng như hạn chế của từng phương pháp Đánh giá một cách thức tiếp cận khác, một hướng ứng dụng mới
Tham khảo các tập dữ liệu thực nghiệm mở được cung cấp nhằm phục vụ mục đích nghiên cứu, thực nghiệm đặc biệt là về thương mại điện tử Xem xét các bộ công
cụ thực nghiệm hiện nay, đánh giá và lựa chọn bộ công cụ phù hợp
Tập trung nghiên cứu và đi sâu tìm hiểu về mô hình mạng Autoencoder và các biến thể của nó Tiến hành ứng dụng mô hình mạng Autoencoder vào tập thực nghiệm thu được, tối ưu và đánh giá kết quả
Phạm vi đề tài tập trung vào việc thực nghiệm kết quả, đặc biệt là huấn luyện và tối ưu mô hình Kết quả được so sánh để điều chỉnh các tham số mô hình mạng Quá trình thực nghiệm tập trung giải quyết hai vấn đề quan trọng nhất là giảm tối đa thời gian huấn luyện và tăng độ chính xác của kết quả
Trang 22CHƯƠNG 2 - THỰC TRẠNG NGHIÊN CỨU
2.1 Deep learning
Deep learning (Học sâu) được xây dựng trên cơ sở một mạng lưới các neural nhân tạo, tổ chức thành từng lớp (Layer) Kết quả của mỗi lớp lại biểu diễn các thuộc tính (features) của các lớp cao hơn (lớp ở phía sau) Hay nói cách khác đây là quá trình áp dụng công nghệ deep neural network để giải quyết vấn đề Khái niệm deep neural network là một mô hình mạng neural với một số lớp ẩn Đây là một kỹ thuật học máy (machine learning) mạnh mẽ, có khả năng vừa học lẫn biểu đạt thông tin rất tốt DL được ứng dụng vào rất nhiều lĩnh vực và đem lại những hiệu quả rất lớn
Hình 2.1: Một mô hình deep learning với hai lớp ẩn
2.2 Hệ thống gợi ý
Các khái niệm chính
Trong một hệ thống gợi ý, thông thường người ta quan tâm tới ba thông tin chính là người dùng (user), sản phẩm (item, ở đây có thể là một mặt hàng, bộ phim, bài hát…) và đánh giá (rating) của người dùng trên sản phẩm đó (xếp hạng theo mức
độ tốt/xấu, sự quan tâm của họ) Các thông tin này được biểu diễn thông qua một ma trận như hình 2.2:
Trang 23Hình 2.2: Ma trận trọng số biểu diễn đánh giá của một người dùng 𝒖 với một sản phẩm 𝒊
Ở đây, mỗi dòng là một user, mỗi cột là một item và mỗi ô là một giá trị đánh giá biểu diễn của user trên item tương ứng Các ô có giá trị là những item mà đã các user đánh giá trong quá khứ Các giá trị này thường nằm trong một miền giá trị nhất định (ví dụ năm mức độ từ 1 tới 5) Các ô trống là những item chưa được đánh giá Đáng lưu ý là thường mỗi user chỉ đánh giá cho một vài item nhất định, do vậy có rất nhiều
ô trống, ma trận kiểu này gọi là ma trận thưa (Sparse matrix)
Nhiệm vụ chính của hệ thống gợi ý là dựa vào các thông tin đã có (các giá trị đã được đánh giá trong ma trận ở trên), thông qua mô hình xây dựng để nhằm đưa ra dự đoán phù hợp (tức là các giá trị còn trống).Từ kết quả có được đưa ra những gợi ý phù hợp cho người dùng
Để dễ dàng cho việc theo dõi và tính toán, ta có một vài quy ước hình thức như sau:
- Coi 𝑼 là tập hợp 𝑛 người dùng (user), |𝑼| = 𝑛 và 𝑢 là một người dùng bất kì (𝑢 ∈ 𝑼)
- Coi 𝑰 là tập hợp 𝑚 sản phẩm (item), |𝑰| = 𝑚 và 𝑖 là một sản phẩm bất kì (𝑖 ∈𝑰)
- Coi 𝑹 là tập hợp các giá trị đánh giá của người dùng (user) đối với sản phẩm (item), và 𝑟𝑢𝑖∈ 𝑹 là giá trị đánh giá của người dùng 𝑢 trên sản phẩm 𝑖
- Coi 𝑫𝒕𝒓𝒂𝒊𝒏⊆ 𝑼 × 𝑰 × 𝑹 là tập dữ liệu huấn luyện
- Coi 𝑫𝒕𝒆𝒔𝒕⊆ 𝑼 × 𝑰 × 𝑹 là tập dữ liệu kiểm thử
Các kỹ thuật chính trong hệ gợi ý hiện nay
Hệ gợi ý đã và đang thay đổi cách chúng ta tìm kiếm thông tin về sản phẩm, định hướng tiêu dùng và cá thể hoá tới từng người dùng Hiện tại, trong bài toán hệ gợi ý
Trang 24có rất nhiều giải thuật được đề xuất, tuy nhiên có thể phân loại thành ba nhóm phương pháp chính như sau:
Lọc dựa trên nội dung (Content-based filtering)
Phương pháp tập trung dựa vào các đặc tính của sản phẩm để suy luận độ phù hợp với người dùng Mỗi người dùng được mô hình thông qua một hồ sơ Hệ thống sẽ đưa ra những sản phẩm mới nhất tới người dùng thông qua việc xem xét giữa mô tả thuộc tính, nội dung của những sản phẩm tương tự như sản phẩm mà người dùng đã chọn trong quá khứ Hạn chế của cách tiếp cận này là người dùng mới khi chưa có thông tin thì khó đưa ra gợi ý phù hợp, hoặc các sản phẩm mới không có thông tin
mô tả Đặc biệt với những sản phẩm mà thông tin về nội dung không có sẵn (chẳng hạn như một đoạn phim, một bản nhạc hay bài thơ…) thì sẽ rất khó phân tích và khó đưa ra tư vấn được Hơn nữa, vì hệ chỉ chủ yếu so sánh dựa trên nội dung nên khó có thể tạo ra được sự bất ngờ trong gợi ý, đôi khi còn gợi ý cho người dùng những sản phẩm mà người dùng đã biết hoặc đã sử dụng trước đó
Lọc cộng tác (Collaborative Filtering)
Đây là hướng tiếp cận thành công hiện nay Phương pháp này tập hợp các đánh giá từ người dùng đối với sản phẩm (xem nhiều, mua nhiều, đánh giá tốt…) và sử dụng để tiến hành phân loại Hệ thống sử dụng lọc cộng tác dự đoán mối quan tâm của người dùng đối với một sản phẩm dựa trên tính toán độ tương tự giữa các người dùng, độ tương tự giữa các sản phẩm Lọc cộng tác không khai thác nội dung sản phẩm mà đi tìm những người sử dụng có chung sở thích Các đặc tính độ tuổi, giới tính, vùng miền vô hình đã bao hàm trong việc đánh giá và tính toán Các hệ gợi ý dựa trên lọc công tác không yêu cầu quá nặng vào việc tính toán, do đó có thể đưa ra những gợi ý có độ chính xác cao và nhanh chóng cho một số lượng lớn người dùng Hơn nữa, hệ gợi ý dạng này không yêu cầu mô tả nội dung tường minh mà chỉ sử dụng đánh giá của người dùng để ước lượng, do đó hệ có khả năng gợi ý phong phú
và thường tạo ra các gợi ý bất ngờ cho người dùng
Phương pháp lai (Hybrid approach)
Trang 25Tức kết hợp hai hay nhiều phương pháp trên cùng một hệ thống Mỗi phương pháp có thế mạnh hay hạn chế riêng nên khi kết hợp sẽ làm giảm hạn chế thấp nhất Tuy nhiên để thực hiện thì không hề đơn giản
hệ giữa tập người dùng U và tập sản phẩm I được biểu diễn thông qua ma trận đánh giá 𝑅 = {𝑟𝑢𝑖, 𝑢 = 1 𝑁, 𝑖 = 1 𝑀} Mỗi giá trị 𝑟𝑢𝑖 thể hiện đánh giá của người dùng
𝑢 ∈ 𝑈 đối với sản phẩm 𝑖 ∈ 𝐼 Giá trị 𝑟𝑢𝑖 có thể được thu thập trực tiếp hoặc gián tiếp thông qua phản hồi từ người dùng Giá trị 𝑟𝑢𝑖= ∅ được hiểu người dùng 𝑢 chưa đánh giá hoặc chưa bao giờ biết đến mặt hàng 𝑖 Nhiệm vụ của lọc cộng tác là dự đoán quan điểm của người dùng 𝑢 đối với mặt hàng mới 𝑖, trên cơ sở đó tư vấn cho người dùng những sản phẩm phù hợp
Ma trận đánh giá (Rating matrix) R là thông tin đầu vào với M dòng và N cột, các giá trị được biểu trong miền hữu hạn 𝑟𝑢𝑖 ∈ {∅, 1, 2, … , R} Giải thuật CF thực hiện tính toán để đưa ra giá trị dự đoán 𝑟̂𝑢𝑖𝛼 cùng danh sách các khoản mục gợi ý cho người dùng 𝛼 có độ tương tự phù hợp
Dựa trên ma trận đánh giá, các phương pháp lọc cộng tác thực hiện hai tác vụ: Dự đoán quan điểm của người dùng hiện thời về các sản phẩm mà họ chưa đánh giá, đồng thời đưa ra danh sách các sản phẩm có đánh giá cao nhất phân bổ cho người dùng hiện thời
Có nhiều phương pháp đề xuất cho bài toán lọc cộng tác Tuy nhiên ta có phân loại thành hai cách tiếp cận chính:
Lọc cộng tác dựa vào bộ nhớ (Memory-based, còn gọi là phương pháp láng
giềng, Neighborhood-based)
Lọc cộng tác dựa trên bộ nhớ tiếp cận theo hai phương pháp chính là:
Trang 26o Lọc cộng tác dựa trên người dùng (User-based approach)
Dựa trên dữ liệu quá khứ của người dùng tương tự (similarity)
o Lọc cộng tác dựa trên sản phẩm (Item-based approach)
Dựa trên dữ liệu quá khứ của các sản phẩm tương tự
Cả hai cách tiếp cận này đều gặp phải hạn chế là: Vấn đề dữ liệu thưa (Sparse matrix), vấn đề người dùng mới (New user) và sản phẩm mới (New item)
Lọc cộng tác dựa vào mô hình (Model-based)
Khác với phương pháp dựa trên bộ nhớ, phương pháp lọc dựa trên mô hình sử dụng tập đánh giá để xây dựng mô hình huấn luyện Kết quả của mô hình huấn luyện được sử dụng để sinh ra dự đoán quan điểm của người dùng về sản phẩm chưa được
họ đánh giá Ưu điểm của phương pháp này là mô hình huấn luyện có kích thước nhỏ hơn rất nhiều so với ma trận đánh giá và thực hiện dự đoán nhanh Mô hình chỉ cập nhật lại khi có những thay đổi lớn và chỉ thực hiện lại phần xây dựng mô hình Việc xây dựng các mô hình dự đoán dựa trên dữ liệu thu thập được trong quá khứ Ví
dụ như mô hình Bayesian, các mô hình nhân tố tiềm ẩn (latent factor models): trong
đó kỹ thuật phân rã ma trận là một điển hình
Kỹ thuật k láng giềng gần nhất (User/Item k-nearest neighbors)
Như đã giới thiệu ở trên, có hai cách tiếp cận lọc cộng tác dựa vào bộ nhớ là dựa trên người dùng hoặc dựa trên sản phẩm Để đưa ra dự đoán chúng ta phải dựa trên sự tương tự giữa các người dùng hay là sự tương tự giữa các sản phẩm Rõ ràng chúng ta không thể xem xét độ tương tự giữa các đối tượng bằng cảm tính được mà phải có cơ sở tính toán rõ ràng
Kỹ thuật k láng giềng gần nhất dựa trên người dùng (hoàn toàn tương tự nếu dựa trên sản phẩm) là xác định độ tương tự giữa hai người dùng thông qua việc so sánh các đánh giá của họ trên cùng sản phẩm, sau đó dự đoán đánh giá trên sản phẩm i bởi người dùng u, thông qua các đánh giá của người dùng tương tự với người dùng u Như đã mô hình hoá bằng ma trận đánh giá users – items ở trên, ta coi một dòng hay một cột là một vectơ Chúng ta sẽ xác định độ tương tự giữa các Users hay các Items
Trang 27bằng một cơ sở tính toán cụ thể và đại lượng này gọi là khoảng cách Khoảng cách càng nhỏ thì có nghĩa là đối tượng xem xét càng gần nhau và như vậy độ tương tự càng lớn Ngược lại, khoảng cách càng lớn thì độ tương tự càng nhỏ Đơn giản, chúng
ta có thể hiểu độ đo tương tự giống như nghịch đảo của khoảng cách được sử dụng
để tính toán đại lượng này Một số khoảng cách tiêu biểu như sau:
Độ tương tự giữa người dùng u và người dùng 𝑢′ có thể được tính theo Cosine hoặc Pearson như sau:
Trang 28𝑠𝑖𝑚𝑐𝑜𝑠𝑖𝑛𝑒(𝑢, 𝑢′) = ∑𝑖∈𝐼𝑢𝑢′𝑟𝑢𝑖 𝑟𝑢′𝑖
√∑ 𝑟𝑢𝑖2 𝑖∈𝐼𝑢𝑢′ √∑𝑖∈𝐼𝑢𝑢′𝑟𝑢′ 𝑖2
𝑠𝑖𝑚𝑝𝑒𝑎𝑟𝑠𝑜𝑛(𝑢, 𝑢′) = ∑𝑖∈𝐼𝑢𝑢′(𝑟𝑢𝑖− 𝑟̅𝑢) (𝑟𝑢′𝑖− 𝑟̅𝑢′)
√∑ (𝑟𝑢𝑖− 𝑟̅𝑢)2 𝑖∈𝐼𝑢𝑢′ √∑ (𝑟𝑢′ 𝑖− 𝑟̅𝑢′)2
𝑖∈𝐼𝑢𝑢′
Trong đó:
𝑟𝑢𝑖 và 𝑟𝑢′ 𝑖 là đánh giá của người dùng u và 𝑢′ trên sản phẩm 𝑖 tương ứng
𝐼𝑢𝑢′ là tập các sản phẩm được đánh giá bởi người dùng u và 𝑢′
𝑟̅𝑢 là đánh giá trung bình trên tất cả các sản phẩm của người dùng u
𝑟̅𝑢′ là đánh giá trung bình trên tất cả các sản phẩm của người dùng 𝑢′
Sau khi tính toán độ tương tự giữa các người dùng, đánh giá của người dùng u trên sản phẩm 𝑖 được dự đoán theo công thức:
𝑠𝑖𝑚(𝑢, 𝑢′) là độ tương tự giữa hai người dùng u và 𝑢′ được xác định ở trên
𝐾𝑢 là số người dùng có độ lân cận gần người dùng u (k láng giềng gần nhất của u)
Kỹ thuật phân rã ma trận (matrix factorization)
Kỹ thuật phân rã ma trận (Matrix Factorization – MF) là một trong những phương pháp dựa trên mô hình thành công nhất hiện nay trong RS MF là kỹ thuật chia một ma trận lớn X thành hai ma trận có kích thước nhỏ hơn W và H, sao cho ta
có thể xây dựng lại X từ hai ma trận nhỏ hơn này càng chính xác càng tốt
𝑋 ~ 𝑊𝐻𝑇 như hình minh họa