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

Nghiên Cứu Xây Dựng Hệ Thống Khuyến Nghị Sản Phẩm Trong Thƣơng Mại Điện Tử Với Deep Learning (tt)

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 (768.73 KB, 26 trang )

HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
---------------------------------------

NGUYỄN NGỌC TUYÊN
NGHIÊN CỨU XÂY DỰNG HỆ THỐNG
KHUYẾN NGHỊ SẢN PHẨM TRONG
THƢƠNG MẠI ĐIỆN TỬ VỚI DEEP
LEARNING
Chuyên ngành:
Mã số:

HỆ THỐNG THÔNG TIN
60.48.01.04

TÓM TẮT LUẬN VĂN THẠC SĨ
TP.HỒ CHÍ MINH – 2017


Luận văn được hoàn thành tại:

HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG

Người hướng dẫn khoa học: TS. Phạm Trần Vũ
Phản biện 1:………………………………………………
Phản biện 2:……………………………………………..

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn
thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc:

giờ



ngày tháng

năm

Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn
thông


1

MỞ ĐẦU
1.

Tính cấp thiết của đề tài
Trong những năm gần đây, thương mại điện tử [1] phát triển nhanh theo xu

thế toàn cầu hoá. Thông qua thương mại điện tử nhiều hình thức giao dịch kinh
doanh mới được hình thành. Với các hình thức này người dùng có thể tiếp cận với
hàng hóa, dịch vụ một cách dễ dàng và nhanh chóng hơn rất nhiều so với phương
pháp giao dịch truyền thống.
Với những lợi ích thế mạnh của mình, những website mua bán hàng hóa,
dịch vụ sẽ dần thay thế các gian hàng hay các siêu thị truyền thống. Nhưng trên thực
tế người tiêu dùng vẫn còn rất ưa chuộng với phương pháp mua bán cũ. Một yếu tố
dẫn tới sự thua kém này nằm ở chính các website thương mại điện tử. Các hệ thống
mua bán trực tuyến này luôn muốn người dùng tiếp cận nhiều mặt hàng cùng một
lúc. Tuy nhiên với sự đa dạng hàng hóa hiện nay thì khả năng tiếp cận chọn mặt
hàng của người dùng sẽ bị hạn chế, họ phải xem qua nhiều sản phẩm, đi tới nhiều
liên kết để có thể tìm ra sản phẩm mong muốn. Vậy làm sao để hỗ trợ khách hàng

trong việc mua bán được thuận lợi hơn? Cụ thể hơn là sản phẩm nào được đề xuất
tới khách hàng tiếp theo sau khi khách hàng đã đặt mua hoặc đánh giá một sản
phẩm trước đó? Nên đề xuất bao nhiêu sản phẩm là tốt nhất cho khác hàng?
Để hình thức mua bán qua mạng thực sự phát triển thì bên cạnh các lợi thế
vốn có của mình việc có thêm một hệ thống trợ giúp là hết sức cần thiết. Hệ thống
khuyến nghị sản phẩm (recommendation system [6]) được hình thành và phát triển
không nằm ngoài mục đích đáp ứng những yêu cầu trên.
Lọc cộng tác (Collaborative filtering [6]) và lọc dựa trên nội dung (contentbased filtering [6]) là hai hướng tiếp cận truyền thống để thiết kế các hệ thống
khuyến nghị. Những phương pháp này thông thường dựa vào các đánh giá của các
mục làm nguồn thông tin chính để đưa ra các khuyến nghị mà trong thực tế có rất
nhiều ứng dụng thì các đánh giá này rất ít, có thể khắc phục được điều này bằng
cách lấy nội dung thông tin của các mục để làm nguồn thông tin phụ trợ nhưng khi


2

nguồn thông tin này không đủ lớn thì sẽ làm ảnh hưởng tới kết quả mong muốn đạt
được.
Deep learning [10] là một trong những hướng nghiên cứu rất phát triển của
lĩnh vực trí tuệ nhân tạo trong những năm gần đây. Các mô hình học sâu (Deep
learning) đã tạo nên những đột phá lớn trong việc giải quyết các bài toán phức tạp.
Nó là thuật toán dựa trên một số ý tưởng từ não bộ với việc tiếp thu nhiều tầng biểu
đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa của các loại dữ liệu. Điều đặc biệt
của công nghệ Deep Learning là sự chính xác cao của nguồn dữ liệu khổng lồ,
không bị hạn chế bởi sự quá tải của dữ liệu.
Chính vì vậy, chúng tôi đã chọn đề tài nghiên cứu là “ Nghiên cứu xây dựng
hệ thống khuyến nghị sản phẩm trong thương mại điện tử với Deep learning” làm
đề tài nghiên cứu của mình.

2.


Tổng quan vấn đề nghiên cứu
Với tốc độ phát triển của thương mại điện tử như ngày nay, để thúc đẩy các

giao dịch thông qua mạng máy tính thì việc xây dựng hệ thống khuyến nghị sản
phẩm là một công việc không thể thiếu. Đã có nhiều hệ thống khuyến nghị sản
phẩm được xây dựng. Tuy nhiên, để lựa chọn được phương pháp phù hợp là một
công việc cần nghiên cứu.
Mô hình xây dựng hệ thống khuyến nghị dựa trên sự tăng trưởng của
Hotmail là mô hình tính toán tốc độ tăng trưởng của Email. Mô hình có tác dụng dự
đoán xem có bao nhiêu cá nhân tại một thời điểm chấp nhận một sản phẩm nào đó
trong tổng số các cá nhân được mời sản phẩm.
Mô hình xây dựng hệ thống khuyến nghị dựa trên phương pháp lọc cộng tác
có thể hiểu một cách đơn giản là phương pháp tập hợp các đánh giá của khách hàng,
phân biệt khách hàng trên cơ sở các đánh giá của họ và tư vấn các sản phẩm cho
khách hàng.
Báo cáo luận văn thạc sĩ “Movies recommendation system using
collaborative filtering technique supplemented by content with goal programming”
của tác giả Emrah İNAN, tháng 7, 2012. Nội dung tác giả nghiên cứu xây dựng hệ


3

thống khuyến nghị dành cho dữ liệu Movie sử dụng phương pháp lọc cộng tác để
khai phá dữ liệu.
Bài báo khoa học “Restricted Boltzmann Machines for Collaborative
Filtering” của các tác giả Ruslan Salakhutdinov, Andriy Mnih, Geoffrey Hinton
2007. Nội dung các tác giả nghiên cứu phương pháp lọc cộng tác với thuật toán
Restricted Boltzmann Machines.
Bài báo khoa học “Big Data Deep Learning: Challenges and Perspectives”

của tác giả X.-W. Chen, tháng 4, 2014. Nội dung tác giả phân tích những khó khăn
và triển vọng của Deep learning với thực trạng dữ liệu ngày càng lớn và phức tạp
ngày nay.
Trên đây là những nghiên cứu đã có liên quan tới hệ thống khuyến nghị sản
phẩm và tiềm năng của Deep learning khi áp dụng cho hệ thống khuyến nghị này.
Trong phạm vi luận văn này, chúng tôi tập chung nghiên cứu chính vào các
vấn đề: thương mại điện tử, hệ thống khuyến nghị sản phẩm trong thương mại điện
tử, xây dựng hệ thống khuyến nghị sản phẩm với Deep learning. Bộ dữ liệu chúng
tôi dùng để cài đặt kiểm tra đánh giá là bộ dữ liệu dùng để nghiên cứu
Movielens[15] được tải trên website: />
3.

Mục tiêu và nhiệm vụ nghiên cứu
- Tìm hiểu lĩnh hệ thống khuyến nghị trong thương mại điện tử.
- Nghiên cứu tìm hiểu về các mô hình học sâu (deep learning).
- Thu thập, tìm hiểu, phân tích tài liệu, thông tin liên quan đến luận văn.
- Đề xuất phương pháp sử dụng mô hình học sâu (deep learning) cho bài toán hệ
thống khuyến nghị sản phẩm trong thương mại điện tử.
- Cài đặt thử nghiệm phương pháp và đánh giá kết quả.


4

4.

Đối tƣợng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
- Đối tượng nghiên cứu của đề tài là: bài toán hệ thống khuyến nghị sản
phẩm trong thương mại điện tử, mô hình học sâu deep learning.
Phạm vi nghiên cứu:

- Nghiên cứu lý thuyết về hệ thống khuyến nghị sản phẩm trong thương mại
điện tử, mô hình học sâu deep learning, giải quyết bài toán hệ thống khuyến
nghị sản phẩm với mô hình học sâu deep leaning.
- Thực hiện thử nghiệm với bộ dữ liệu nghiên cứu movielens được tải trên
website: />
5.

Phƣơng pháp nghiên cứu
Phương pháp nghiên cứu lý thuyết:
-

Nghiên cứu, thu thập thông tin về mô hình học sâu deep learning, hệ
thống khuyến nghị sản phẩm trong thương mại điện tử.

-

Nghiên cứu ứng dụng deep learning vào giải quyết các bài toán phức tạp.

-

Nghiên cứu ứng dụng deep learning vào giải quyết bài toán hệ thống
khuyến nghị sản phẩm trong thương mại điện tử.

-

Xin ý kiến tư vấn từ các chuyên gia.

Phương pháp nghiên cứu thực hành:
- Xây dựng mô hình thử nghiệm phương pháp trên một bộ dữ liệu sẵn
movielens được tải trên website: />dựa vào kết quả trực quan để phân tích, so sánh, đánh giá các phương pháp.



5

6.

Bố cục của luận văn
Nội dung chính luân văn được chia làm ba chương như sau:
- Chương 1 - Hệ thống khuyến nghị sản phẩm trong thương mại điện tử
- Chương 2 - Mô hình học sâu – Deep learning
- Chương 3 - Xây dựng hệ thống khuyến nghị sản phẩm với deep learning
- Chương 4 - Xây dựng hệ thống và thực nghiệm

Trong chương 1, chúng tôi đi nghiên cứu chung về hệ thống khuyến nghị sản phẩm
trong thương mại điện tử. Chương 2, chúng tôi đi tìm hiểu về deep learning, mạng
nơ ron nhân tạo, ứng dụng của deep learning trong thời đại hiện nay. Chương 3,
chúng tôi tập trung nghiên cứu xây dựng hệ thống khuyến nghị sản phẩm với deep
learning như thế nào. Và cuối cùng, chương 4 chúng tôi tiến hành cài đặt thử
nghiệm phương pháp trong chương 3 với bộ dữ liệu Movielens từ kết quả thu được
đưa ra đánh giá và nhận xét.


6

CHƢƠNG 1 – HỆ THỐNG KHUYẾN NGHỊ SẢN PHẨM
TRONG THƢƠNG MẠI ĐIỆN TỬ
1.1.

Thƣơng mại điện tử


1.2.

Hệ thống khuyến nghị sản phẩm trong thƣơng mại điện tử
1.2.1. Giới thiệu
1.2.2. Ứng dụng

1.3.

Một số kỹ thuật xây dựng hệ thống khuyến nghị
1.3.1. Mô hình tăng trưởng email
Có nhiều kỹ thuật xây dựng hệ thống khuyên nghị sản phẩm. Đầu tiên phải

kể đến mô hình dựa vào sự tăng trưởng của email. Chúng ta biết rằng, email của
người dùng được lưu trữ trên máy chủ và mọi người gửi email cho nhau bằng trang
web. Mỗi khi chúng ta sử dụng email, hiển nhiên có một lượng khá lớn thư quảng
cáo sản phẩm trong hòm thư của chúng ta. Những sản phẩm này lại liên kết với
trang web thương mại điện tử nào đó. Các trang web căn cứ vào những người sử
dụng email để gửi thông tin quảng cáo tới các hòm thư. Điển hình cho phương pháp
này đó chính là hệ thống khuyến nghị của Hotmail. Hotmail thu hút người dùng
bằng cách sau mỗi một email thì có một liên kết tới trang chủ của hotmail để cho
người dùng đăng ký mới. Với tốc độ lan truyền của mạng Internet, hiệu ứng dây
chuyền phát huy tác dụng khủng khiếp. Mỗi một email gửi đi được coi như một
khuyến nghị tới người nhận email. Nó như đánh vào tâm lý người nhận email: “bạn
tôi sử dụng hotmail thì tôi cũng sử dụng xem như thế nào?”. Theo thống kê, hotmail
bắt đầu hoạt động tháng 7 năm 1996, tới cuối tháng 7 thì có 20000 người dùng, tới
tháng 9 số người dùng là 100000, tháng 1 năm 1997 có khoảng 1 triệu thuê bao.
Hiện nay hotmail thuộc tập đoàn Microsoft và số người dùng vào khoảng 120 triệu.
Tuy nhiên hình thức này không còn phù hợp với thời đại ngày nay. Các thư gửi
quảng cáo sản phẩm người dùng thường cho là thư rác. Các sản phẩm giới thiệu tới
người dùng cũng không được chính xác do lượng thư giới thiệu sản phẩm quá



7

nhiều. Xuất hiện nhiều hình thức lừa đảo, cấy virus qua email dẫn tới sự tin tưởng
sản phẩm quảng cáo qua email giảm sút.

1.3.2. Tư vấn dựa trên việc khai phá dữ liệu
Để chính xác hơn trong việc quảng cáo, khuyến nghị sản phẩm tới người
dùng. Thì khai thác dữ liệu của người dùng trên website, application, gian hàng
online là hướng đi đúng đắn. Dựa vào nguồn dữ liệu rất lớn và hữu ích này hệ thống
có thể phân tích, tính toán và đưa ra dự đoán xem người dùng có thích sản phẩm
nào đó hay không? Mức độ thích là như thế nào? Từ đó đưa ra khuyến nghị tới
người dùng.
Có rất nhiều cách để đưa ra các dự đoán, ví dụ như:
- Khuyến nghị dựa trên nội dung: là phương pháp phân tích nội dung của sản
phẩm từ dữ liệu từ đó đưa ra khuyến những sản phẩm tương tự với những
sản phẩm đã từng yêu thích trước đây tới người dùng. Phương pháp này có
nhược điểm chính là những khách hàng mới chưa có dữ liệu trước đây hoặc
khuyến nghị không chính xác vì sở thích của mỗi người có thể thay đổi theo
thời gian.
- Khuyến nghị dựa trên cộng tác: là phương pháp khuyến nghị sản phẩm yêu
thích xuất phát từ người dùng có cùng sở thích và thị hiếu trước đây. Ví dụ
như bạn bè thân thiết thường sẽ có những sở thích về màu sắc, kiểu dáng, đặc
điểm tương tự nhau, người này thích xem phim hoạt hình thì người kia có lẽ
cũng như vậy. Hệ thống sẽ dựa vào điều này để đưa ra khuyến nghị tới người
dùng.
- Khuyến nghị dựa trên việc kết hợp khuyến nghị dựa trên nội dung và lọc
cộng tác: là phương pháp kết hợp hai phương pháp trên nhằm bổ sung những
nhược điểm cho nhau.



8

Những phương pháp xây dựng hệ thống khuyến nghị sản phẩm truyền thống
này thường dựa vào các đánh giá của các mục sản phẩm làm nguồn thông tin chính
để đưa ra các khuyến nghị trong khi đó trên thực tế trên nhiều hệ thống nguồn thông
tin này lại rất ít, cũng có thể lấy thông tin từ nội dung chính các mục sản phẩm làm
thông tin bổ sung cho hệ thống nhưng khi nguồn thông tin này quá ít, không đủ
cũng sẽ ảnh hưởng tới kết quả đưa ra. Chính vì vậy, nghiên cứu tìm một phương
pháp mới là rất cần thiết.
Deep learning là một trong những hướng nghiên cứu rất phát triển của lĩnh
vực trí tuệ nhân tạo trong những năm gần đây. Các mô hình Deep learning đã tạo
nên những đột phá lớn trong việc giải quyết các bài toán phức tạp. Nó là thuật toán
dựa trên một số ý tưởng từ não bộ với việc tiếp thu nhiều tầng biểu diễn, cả cụ thể
lẫn trừu tượng, qua đó làm rõ nghĩa của các loại dữ liệu. Với sự phát triển của
thương mại điện tử sẽ tạo ra nguồn dữ liệu rất lớn gây khó khăn trong việc phân tích
dữ liệu để xây dựng hệ thống khuyến nghị sản phẩm nên việc áp dụng deep learning
vào xây dựng hệ thống khuyến nghị sản phẩm trong thương mại điện tử là một
hướng nghiên cứu đúng đắn thời điểm này.

1.4.

Kết luận chƣơng
Ở chương 1 đã giới thiệu tổng quan hệ thống khuyến nghị trong thương mại

điện tử, các đặc điểm và ứng dụng của nó. Để thúc đẩy lượng giao dịch trong
thương mại điện tử thì hệ thống khuyến nghị sản phẩm tới người dùng là không thể
thiếu. Tuy nhiên việc giao dịch thông qua các website thương mại điện tử tạo ra
lượng dữ liệu vô cùng lớn và phức tạp. Dữ liệu này chính là thông tin về khách hàng

cũng như các sản phẩm giao dịch rất hữu ích cho việc xây dựng một hệ thống
khuyến nghị sản phẩm. Trong bối cảnh lượng dữ liệu thu thập được ngày càng
nhiều như vậy việc sử dụng các mô hình deep learning để phân tích nguồn dữ liệu
khổng lồ này là một hướng đi đúng. Chương tiếp theo, chúng tôi sẽ trình bày những
nghiên cứu của mình về deep learning.


9

CHƢƠNG 2 – MÔ HÌNH HỌC SÂU – DEEP LEARNING
2.1.

Giới thiệu

2.2.

Mạng nơ ron nhân tạo trong deep learning
2.2.1. Nơ ron sinh học

2.2.2. Mạng nơ ron nhân tạo(ANN - Artificial Neural Networks)
Quá trình hoạt động của mạng nơ ron nhân tạo như sau:
- Đầu tiên là nhận tín hiệu đầu vào từ một nơ ron khác truyền tới hoặc từ
input.
- Nhân các tín hiệu đầu vào với một trọng số w liên kết tương ứng.
- Tính tổng tất cả các tích của tín hiệu và trọng số.
- Đưa kết quả thu được tới một hàm truyền [3].
- Cuối cùng gửi kết quả tới một nơ ron tiếp theo hoặc đưa ra output.
- Quá trình tiếp tục lặp lại đối với tất cả các nơ ron trong mạng. Các nơ ron
phối hợp với nhau tạo thành hoạt động chính của mạng nơ ron nhân tạo.


Hình 2.3: Cấu tạo một nơ ron nhân tạo [3]

2.2.3. Kiến trúc mạng nơ ron
2.3.

Huấn luyện mạng nơ ron nhân tạo
2.3.1. Học có giám sát
2.4.2. Học không có giám sát


10

2.5.

Một số mô hình mạng học sâu
2.5.1. Multi layer Perceptron

Hình 2.7: Mô hình mạng MPL 3 lớp ẩn và lớp output [4]

Mỗi lớp mạng trong mạng MPL có vector input tín hiệu đầu vào, các trọng
số w, ngưỡng bias b, và vector tín hiệu đầu ra. Để phân biệt các lớp mạng với nhau
người ta dùng chỉ số phụ cho các tham số trong mỗi lớp mạng. Thuật toán dùng để
huấn luyện cho mô hình mạng truyền thẳng nhiều lớp thường là thuật toán lan
truyền ngược [2] sẽ được trình bày cụ thể ở chương 3.

2.5.2. Mạng Hopfield
Cấu trúc thì mạng Hopfield là mạng chỉ có một lớp nơ ron, trong đó mỗi nơ
ron đều nối với tất cả các nơ ron còn lại. Mạng Hopfield được xây dựng dưới dạng
mạng một lớp, mỗi nơ ron được truyền ngược lại làm tín hiệu đầu vào cho các nơ
ron khác nhưng bản thân các nơ ron không tự liên kết với chính nó.


2.5.3. Mô hình Boltzmann Machine
Các nút của một Boltzmann Machine được chia làm 2 lớp, một là khối các
nút hiện có thể nhìn thấy (visible units) trong đó là dữ liệu được giữ trên nó, và một
là khói các nút ẩn ( hidden units) chính là các nội dung tiềm ẩn. Các nút được kết
nối với nhau đối xứng tùy ý nhưng không kết nối với chính mình.

2.5.4. Mô hình Restricted Boltzmann Machine
Mô hình Restricted Boltzmann Machine (RBM [5]) là một Boltzmann
Machine có kiến trúc hạn chế hơn. Hạn chế hơn ở điểm ở Boltzmann Machine các


11

nút hiện có thể kết nối với nhau và các nút ẩn cũng vậy nhưng ở RBM thì không.
Mô hình RBM cũng gồm hai lớp, một lớp là các nút hiện (visible units) và một lớp
là các nút ẩn (hidden units) nhưng không có sự kết nối giữa các nút hiện với nút
hiện (visible - visible) hoặc nút ẩn với nút ẩn (hidden - hidden) giữa chúng là hoàn
toàn độc lập. Với tính năng hạn chế giữa các nút đó làm cho việc đào tạo RBM trở
lên dễ dàng hơn Boltzmann Machine.

2.6.

Kết luận chƣơng
Ở chương 2 đã trình bày nghiên cứu về mô hình học sâu deep learning. Deep

learning được biết đến như việc tiếp thu nhiều tầng biểu đạt, cả cụ thể lẫn trừu
tượng, qua đó làm rõ nghĩa của các loại dữ liệu ví dụ như hình ảnh, âm thanh và
văn bản. Trên thế giới đã có nhiều công trình nghiên cứu đạt những kết quả khả
quan, các ông lớn như Google, Microsoft và Facebook, họ đã tự thành lập những

nhóm nghiên cứu và tiếp tục đầu tư vào lĩnh vực này.
Mặc dù nghiên cứu về AI cũng như Deep Learning vẫn còn chưa phổ biến ở
Việt Nam, chúng vẫn là những xu hướng mà các nhà khoa học của ta cần nắm bắt.
Với mong muốn nghiên cứu sâu hơn, trong chương 3, luận văn sẽ trình bày vào bài
toán cụ thể là nghiên cứu hệ thống khuyến nghị sản phẩm với deep learning.


12

CHƢƠNG 3 – XÂY DỰNG HỆ THỐNG KHUYẾN NGHỊ
SẢN PHẨM VỚI DEEP LEARNING

3.1. Giới thiệu bài toán và phƣơng pháp tiếp cận
Bài toán khuyến nghị sản phẩm mục đính là đưa ra sản phẩm chính xác
nhất cho người dùng dựa vào quá trình phân tích, khai phá dữ liệu thu được của
người dùng. Việc khuyến nghị này càng chính xác càng tốt, nó giúp tăng lượng
giao dịch trong thương mại điện tử.
Một vài năm gần đây mô hình nhân tố ẩn (latent factor models [9]) thường
được sử dụng để giải quyết bài toán trên và phương pháp ma trận trọng số
(Matrix Factorization [9]) trong mô hình nhân tố ẩn tỏ ra khá thành công. Cụ thể
phương pháp ma trận thừa số được trình bày như sau:
Ta có ma trận m x n với m là số người dùng và n là số sản phẩm hay còn
gọi là ma trận đánh giá R ( Rating matrix).

i1

i2

i3




u1

5

?

2

?

4

u2

1

3

1

1

?

2

1


5

?

?

?

4

2

?

3

ij



in


ua

um

Hình 3.2: Minh họa ma trận đánh giá R ( Rating matrix) [6]

Giá trị trong ma trận đánh giá này thể hiện đánh giá của người U dùng lên

sản phẩm I nếu không có đánh giá nào thì giá trị của nó bằng . Công việc tiếp


13

theo là phân giã ma trận này thành hai ma trận nhỏ hơn để phục vụ công việc
huấn luyện. Cụ thể được trình bày như sau:
Cho tập dữ liệu dùng để huấn luyện:
- Ma trận đầu vào Rm*n ( với m người dùng và n sản phẩm).
- V là tập dữ liệu huấn luyện của ma trận đầu vào R, chính là những đánh
giá thực tế của người dùng u cho sản phẩm i.
Không gian tham số:
-

Ma trận Um*k :(với k là một trọng số bất kỳ) là một hàng nhân tố ẩn của
người dùng trong ma trận R.

-

Ma trận Hk*n :(với k là một trọng số bất kỳ) là một cột nhân tố ẩn của
sản phẩm trong ma trận R.

Khi đó ma trận R phân tích thành 2 ma trận con:

Rm*n

Um*k Ik*n

(3.1)


Trong đó: k < m, n.
Như đã biết, qua quá trình phân tích ma trận sẽ xảy ra vấn đề về tổn thất,
ta có giá trị bị tổn thất được ký hiệu là: Lij(Ui*, I*j) thể hiện sự giá trị tổn thất tại
(i,j). Giá trị trung bình của hàm tổn thất càng nhỏ thì tính hiệu quả của mô hình
được đánh giá cao và ngược lại.
Tuy nhiên, khó khăn gặp phải khi sử dụng ma trận đó là việc kết hợp hai
ma trận sau khi phân giã không linh hoạt và vấn đề thêm mới bổ sung thông tin.
Hướng tiếp cận của chúng tôi là đi vào nghiên cứu kết hợp mô hình học sâu deep
learning và phân tích ma trận. Trên cơ sở các mô hình từ ngữ liên tục [11] thay vì
ở đây chúng ta tìm cách phân tích ma trận thành hai ma trận nhỏ hơn thì chúng
tôi sẽ dùng kỹ thuật embedding [11] để cố gắng đưa chúng vào một mạng lưới
học sâu feedforward để tìm ra kết quả. Vector đầu vào của bài toán sẽ bao gồm
cả thông tin người dùng và sản phẩm.


14

3.2. Hệ thống khuyến nghị sản phẩm với deep learning
3.2.1. Embedding
Lấy ý tưởng word embedding [16] trong bài toán xử lý ngôn ngữ tự nhiên
(NPL). Thay vì sử dụng ma trận để biểu diễn dữ liệu chúng tôi xử dụng vector để
biểu diễn dữ liệu người dùng và dữ liệu của sản phẩm. Về cơ bản đây chỉ là
vector trọng số tương ứng với id của người dùng và id sản phẩm. Với số chiều
ban đầu của vector rất lớn, việc tiếp theo là giảm số chiều của vector.
Vector x
ban đầu có
n chiều

Vector y
chỉ còn

k chiều

x= a1v1 + a2v2 + … + anvn

Không gian n chiều
với hệ cơ sở
v1, v2,…,vn

Ánh xạ
tuyến tính T
cần tìm
(phép chiếu)

y= b1u1 + b2u2 + … + bnun

Không gian k chiều
(k< n) với hệ cơ sở
u1, u2,…,un

Hình 3.3: Giảm số chiều của vector

3.2.3. Xây dựng mạng
Sau khi dữ liệu ban đầu được nhúng (nhúng Users và Items) sẽ được đưa
vào một mạng nơ ron feedforward [2]. Các lớp nhúng này được đưa vào cùng
huấn luyện với thuật toán lan truyền ngược ( sẽ được trình bày ở phần tiếp theo).
Các đặc tính ban đầu được nối với một lớp nơ ron rộng tiếp sau đó là một vài lớp
mạng fully connected Rectified Linear Units (ReLU) [14]. Hình 3-5 mô tả kiến
trúc của mạng:



15

Hình 3-5: Kiến trúc mạng của bài toán

3.2.4. Huấn luyện mạng
Huấn luyện mạng là quá trình điều chỉnh các trọng số và ngưỡng trên các
nơ ron trong hệ thống mạng để đạt được giá trị mong muốn nào đó. Đối với bài
toán này chúng tôi chọn thuật toán huấn luyện là thuật toán lan truyền ngược
Back Propagation [2], phương pháp học là phương pháp học có giám sát.
Bài toán này tập đầu vào là 1 vector gồm cả users và Items (sau khi
embedded) tạm gọi là X tập đầu ra là các ratings dự đoán tạm gọi là K thuật toán
lan truyền ngược sai số thực hiện hai giai đoạn sau:
- Giai đoạn thứ nhất, mẫu đầu vào X được truyền từ lớp vào tới lớp ra, và
ta có kết quả đầu ra tính toán được là Y.


16

- Giai đoạn tiếp theo, tín hiệu lỗi được tính toán từ sự khác nhau giữa đầu
ra quan sát được K với đầu ra tính toán Y sẽ được lan truyền ngược lại từ
lớp ra đến các lớp trước để điều chỉnh các tham số của mạng.
Quá trình cứ tiếp tục như vậy cho tới khi nào đạt được một kết quả mong
muốn, lúc này ta sẽ có một mạng nơ ron gồm các trọng số đã được điều chỉnh sao
cho đạt được kết quả tốt nhất.
Thuật toán lan truyền ngược được xây dựng như sau:
Xét một mạng nơ-ron truyền thẳng có:
- Q lớp, q = 1, 2, …, Q,
- neti là tín hiệu vào.
- yi là tín hiệu ra của nơ-ron thứ i trong lớp q.
- Mạng này có m đầu vào và n đầu ra. Đặt qwij là trọng số của liên kết từ

nơ-ron thứ j trong lớp q-1 tới nơ-ron thứ i trong lớp q.
Đầu vào : Một tập các cặp mẫu học {(x (k), d (k)) | k= 1, 2, …, p }.
Trong đó: x là tín hiệu đầu vào và d là tín hiệu đầu ra mong muốn.
Theo [2] ta có các bước và các công thức tính như sau:
Bước 0:
Chọn một hằng số η > 0 và Emax (dung sai cho phép). Khởi tạo ngẫu nhiên
các trọng số trong khoảng giá trị nhỏ. Đặt E =0 và k = 1.
Bước 1: (thực hiện một quá trình lặp cho việc huấn luyện mạng)
Sử dụng mẫu học thứ k :
Theo [2] tại lớp vào (q =1), với mọi i ta có :
q

yi = 1 yi = x(k) i

(3.2)

Bước 2: (Lan truyền tín hiệu từ lớp vào tới lớp ra)
q

yi = g(q neti ) = g(∑

)

(3.3)


17

Bước 3: (Xác định tín hiệu lỗi


Q

δi tại lớp ra)


(

)

(3.4)
(3.5)

Bước 4: (Lan truyền ngược sai số)
(3.6)
(3.7)


Bước 5: (Kiểm tra điều kiện lặp)
Kiểm tra:
if ( k < p )
Begin
k=k+1;
Chuyển tới bước1;
End
Else
Chuyển tới bước 6;
Bước 6: (Kiểm tra lỗi tổng cộng hiện thời đã chấp nhận được chưa)
If (E < Emax)
{ kết thúc quá trình học và đưa ra bộ trọng số cuối cùng }
Else

Begin
E=0;
K=1;
Chuyển tới bước1 {để bắt đầu một lần học tiếp theo };
End;

(3.8)


18

Hình 3.7: Lƣu đồ hoạt động của hàm huấn luyện [2]

3.2.5. Dự đoán
3.3.

Tiêu chuẩn và đánh giá
3.3.1. Mean absolute error (MAE)
3.3.2. Root mean square error (RMSE)

3.4. Kết luận chƣơng
Trong chương 3 đã trình bày bài toán khuyến nghị sản phẩm, phân tích bài
toán và phương pháp xây dựng hệ thống khuyến nghị sản phẩm với deep
learning, tiêu chuẩn để đánh giá phương pháp dựa vào chỉ số MAE và RMSE.
Chương 4 tiếp theo sẽ tiến hành cài đặt bài toán với bộ dữ liệu dành cho
nghiên cứu Movielens, dựa vào kết quả thu được để đưa ra các đánh giá cho
phương pháp này.


19


CHƢƠNG 4 – XÂY DỰNG HỆ THỐNG VÀ THỬ NGHIỆM
4.1. Môi trƣờng thực nghiệm
Tôi tiến hành thực nghiệm dựa trên các cơ sở sau:
- Cấu hình máy: Chip Intel(R) Core i5, Ram 4GB, windows 10 64-bit.
- Ngôn ngữ lập trình: Python.
- Phần mềm hỗ trợ: Python 3,5 và Miniconda, cmd trên Windows 10.
- Tập dữ liệu sử dụng để thực nghiệm: bộ dữ liệu Movielens.

4.2. Dữ liệu thực nghiệm
Để thực nghiệm tôi sử dụng một trong bộ dữ liệu Movielens được tải từ
liên kết chứa các dữ liệu
đánh giá rõ ràng cho các phim, có đặc điểm sau:
- Với 1000.000 đánh giá được thực hiện bởi 6000 người dùng trên 4000
bộ phim. Các phim nhận giá trị đánh giá trong khoảng từ 1 đến 5.
- Thông tin cá nhân đơn giản cho người sử dụng (tuổi, giới tính, nghề
nghiệp, zip code - mã bưu chính).
- Trong bộ dữ liệu này, người sử dụng có ít hơn 20 xếp hạng hoặc không
có thông tin cá nhân hoàn chỉnh sẽ bị loại bỏ khỏi bộ dữ liệu.

4.3. Cài đặt bài toán
4.3.1. Bài toán
Dưới góc nhìn kỹ thuật bài toán của chúng ta như sau: Cho một tập hữu
hạn gồm có m người dùng U ={u1, u2, … , um} và một danh sách n sản phẩm I =
{i1, i2,…, in}. Mỗi người dùng ui có danh sách các sản phẩm Su mà người dùng đã
đánh giá về sản phẩm đó. Chú ý rằng Su là tập con của I và Iui có thể là rỗng
(nghĩa là người dùng u không có đánh giá nào cho sản phẩm i).


20


Nhiệm vụ của bài toán:
- Dự đoán: cho ra giá trị Raj thể hiện đánh giá của người dùng a lên tài
nguyên i.
- Tư vấn: cho ra danh sách N tài nguyên {TiN} mà người dùng a thích
nhất.

4.3.2. Thư viện sử dụng, sơ đồ khối và cài đặt
Kiến trúc mạng xây dựng cho bài toán:

Hình 4.1: Kiến trúc mạng xây dựng cho bài toán

4.3.3. Kết quả và đánh giá
Sau khi cài đặt và chạy chúng tôi thu được kết quả như sau:
Thứ nhất: Biểu đồ độ lỗi loss training và loss validation sao khi huấn
luyện 20 lần.


loss

21

epoch

Hình 4.2: Bảng kết quả độ lỗi sau 20 epochs và biểu đồ

Thứ 2: Chỉ số Mean absolute error (MAE) : sai số tuyệt đối trung bình
sau 20 epochs.

Hình 4.3: MAE validation


-

MAE validation

0.678.

Hình 4.4: MAE training.

-

MAE train

0.652.


22

Thứ 3: Chỉ số Root mean square error (RMSE): sai số toàn phương trung
bình trên 2 tập training và validation.

Hình 4.5: RMSE training và validation

-

RMSE Training

0.999 và RMSE Validation

1.012.


Kết quả của những phương pháp khác cùng sử dụng trên bộ dữ liệu chúng
tôi sử dụng trong nghiên cứu này được công bố trên website:
/>
Hình 4.6: Kết quả của những phƣơng pháp khác


23

Ta nhận thấy rằng chỉ số MAE thu được từ mô hình trên khá tốt so với
những phương pháp trước đây, chỉ số RMSE ở mức chấp nhận được. Cho thấy
hiệu quả của phương pháp này đem lại.

4.4. Kết luận chƣơng
Trong chương này đã cài đặt thử nghiệm mô hình trên bộ dữ liệu
Movielens. Nhìn chung khi sử dụng deep learning cho hệ thống khuyến nghị sản
phẩm cho một kết quả khá tốt so với các phương pháp khác cùng áp dụng trên
cùng bộ dữ liệu như chúng tôi sử dụng. Điều này cho thấy hiệu quả của phương
pháp của chúng tôi nghiên cứu.


×