TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
LUẬN VĂN THẠC SĨ
Nghiên cứu ứng dụng học sâu cho bài toán
hệ gợi ý
NGUYỄN VIẾT VIỆT
Ngành Khoa học dữ liệu
Giảng viên hướng dẫn:
TS. Đinh Viết Sang
Viện:
Công nghệ thông tin và truyền thông
HÀ NỘI, 04/2021
Chữ ký của GVHD
Lời cảm ơn
Trong thời gian làm đồ án tốt nghiệp, em đã nhận được nhiều sự giúp đỡ, đóng góp
ý kiến và chỉ bảo nhiệt tình của thầy cơ, gia đình và bạn bè.
Em xin gửi lời cảm ơn chân thành đến TS. Đinh Viết Sang, giảng viên Bộ môn
Khoa học máy tính - trường ĐH Bách Khoa Hà Nội người đã tận tình hướng dẫn,
chỉ bảo em trong suốt q trình làm khố luận.
Em cũng xin chân thành cảm ơn các thầy cô giáo trong trường ĐH Bách khoa nói
chung, các thầy cơ trong Bộ mơn Khoa học máy tính nói riêng đã dạy dỗ cho em
kiến thức về các môn đại cương cũng như các môn chuyên ngành, giúp em có được
cơ sở lý thuyết vững vàng và tạo điều kiện giúp đỡ em trong suốt quá trình học
tập.
Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều kiện,
quan tâm, giúp đỡ, động viên em trong suốt quá trình học tập và hồn thành luận
văn tốt nghiệp.
Tóm tắt nội dung luận văn
Luận văn xuất phát từ nhu cầu về việc đưa được sản phẩm thích hợp tới cho người
dùng. Với sự bùng nổ về dữ liệu như hiện nay, để một người sử dụng có thể tìm
thấy thứ mà họ muốn ở trên mạng internet là việc rất khó khăn. Vì thế các hệ thống
gợi ý được nghiên cứu và ra đời với mục đích giúp việc đưa sản phẩm tới người
dùng được chính xác và hiệu quả hơn. Từ đó tiết kiệm được chi phí và thời gian
cho cả người cung cấp lẫn người sử dụng. Luận văn tập trung nghiên cứu về bài
toán hệ gợi ý cho dữ liệu phiên sử dụng dựa trên việc mơ hình hóa dữ liệu về dạng
đồ thị và sử dụng học sâu để tìm ra những đặc trưng ẩn về sản phẩm. Cuối cùng
đưa ra gợi ý chính xác cho người sử dụng.
MỤC LỤC
CHƯƠNG 1. GIỚI THIỆU ................................................................................. 1
1.1
Tính cấp thiết của đề tài ............................................................................. 1
1.2
Mục tiêu nghiên cứu .................................................................................. 3
1.3
Đối tượng và phạm vi nghiên cứu ............................................................. 3
1.4
Cấu trúc luận văn ....................................................................................... 3
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT ................................................................... 4
2.1
2.2
2.3
Tổng quan về học máy ............................................................................... 4
2.1.1
Phân loại bài toán trong học máy ................................................. 4
2.1.2
Cấu trúc thuật toán học máy ........................................................ 5
2.1.3
Độ phức tạp của mơ hình ............................................................. 6
2.1.4
Xử lý dữ liệu ................................................................................ 8
Tổng quan về học sâu ................................................................................ 9
2.2.1
Học sâu ......................................................................................... 9
2.2.2
Lịch sử học sâu ............................................................................ 9
Cấu trúc mạng nơ ron nhân tạo ................................................................ 10
CHƯƠNG 3. NGHIÊN CỨU LIÊN QUAN .................................................... 19
3.1
Bài toán hệ gợi ý ...................................................................................... 19
3.2
Phân loại bài toán hệ gợi ý ....................................................................... 19
3.3
3.2.1
Dựa vào nội dung sản phẩm ....................................................... 19
3.2.2
Bộ lọc cộng tác ........................................................................... 20
3.2.3
Phương pháp kết hợp cho hệ gợi ý............................................. 22
Ứng dụng học sâu cho hệ gợi ý ............................................................... 23
CHƯƠNG 4. GIẢI PHÁP ĐỀ XUẤT .............................................................. 25
4.1
Đồ thị học sâu (Graph Neural Network) .................................................. 25
4.2
Nhúng đỉnh đồ thị (Node Embedding) .................................................... 28
4.3
Công thức và ký hiệu ............................................................................... 33
4.4
Khởi tạo đồ thị phiên sử dụng .................................................................. 33
4.5
Học nhúng véc tơ của sản phẩm từ đồ thị ................................................ 34
4.6
Nhúng đồ thị ............................................................................................ 35
4.7
Xây dựng hệ gợi ý và huấn luyện mơ hình .............................................. 36
CHƯƠNG 5. Kết quả thử nghiệm và đánh giá ............................................... 37
5.1
Mô tả dữ liệu ............................................................................................ 37
5.2
Phân tích và tiền xử lý dữ liệu ................................................................. 38
5.3
Xây dựng mơ hình ................................................................................... 40
5.4
Đánh giá ................................................................................................... 41
CHƯƠNG 6. Kết luận và hướng cải tiến ......................................................... 44
6.1
Kết luận .................................................................................................... 44
6.2
Hướng cải tiến .......................................................................................... 44
TÀI LIỆU THAM KHẢO ................................................................................. 45
PHỤ LỤC............................................................................................................ 47
DANH MỤC HÌNH VẼ
Hình 1: Mơ tả hệ thống gợi ý (trích từ web) .......................................................... 1
Hình 2: Hệ gợi ý dựa trên phiên sử dụng của người dùng ..................................... 2
Hình 3: Các hiện tượng thường gặp trong quá trình huấn luyện (trích từ web) .... 7
Hình 4: Mối liên hệ giữa độ phức của mơ hình và hệ số lỗi (trích từ web) ........... 8
Hình 5: Cấu trúc nơ ron [29]................................................................................ 11
Hình 6: Một số hàm kích hoạt cơ bản (trích blog machinelearningcoban) ......... 12
Hình 7: Cấu trúc một mạng nơ ron (trích từ blog viblo)...................................... 13
Hình 8: Ý tưởng của Nesterov accelerated gradient (trích từ web paperwithscode)
............................................................................................................................. 16
Hình 9: Phân loại bài tốn hệ gợi ý (trích từ blog towardsdatascience) .............. 19
Hình 10: Mơ tả đồ thị ........................................................................................... 25
Hình 11: Các bài tốn điển hình của đồ thị (trích từ blog viblo) ......................... 26
Hình 12: Ứng dụng của bài tốn sử dụng đồ thị (trích từ blog viblo) ................. 27
Hình 13: Đồ thị học sâu (trích từ blog viblo)....................................................... 27
Hình 14: Nhúng đỉnh đồ thị (trích từ blog viblo)................................................. 29
Hình 15: Tổng quan về thuật tốn bước đi ngẫu nhiên [15] ................................ 31
Hình 16: Mơ tả DeepWalk [18] ........................................................................... 32
Hình 17: Bước ngẫu nhiên trên Node2Vec [19] .................................................. 32
Hình 18: Mã giả thuật tốn Node2Vec [19] ........................................................ 33
Hình 19: Ma trận vào ra của đồ thị Gs ................................................................. 35
Hình 20: Biểu đồ phân bố số lượng click theo ngày và giờ ................................. 38
Hình 21: Biểu đồ phân bố số lượng người mua hàng theo ngày và giờ .............. 39
Hình 22: Phân bố chiều dài của phiên sử dụng .................................................... 39
Hình 23: Biểu đồ phân bố tương quan giữa click và mua theo giờ ..................... 40
Hình 24: Mơ tả mơ hình mạng GNN cho bài tốn phiên sử dụng [20] ............... 41
Hình 25: Biểu đồ kết quả ..................................................................................... 43
DANH MỤC BẢNG BIỂU
Bảng 1: Bộ lọc cộng tác dựa vào người dùng ...................................................... 21
Bảng 2: Thống kê dữ liệu Yoochoose.................................................................. 37
Bảng 3: Kết quả đạt được .................................................................................... 42
Bảng 4: Mô tả phần cứng sử dụng ....................................................................... 48
CHƯƠNG 1. GIỚI THIỆU
1.1 Tính cấp thiết của đề tài
Ngày nay, việc phát triển trang web thương mại điện tử ngày càng phổ biến, đặc
biệt là những năm gần đây trong lĩnh vực thương mại điện tử phát triển nhanh
chóng. Với đặc thù của trang web thương mại điện tử ít chi phí, ngày càng được
làm chủ người chọn hình thức kinh doanh này. Tuy nhiên với sự phát triển không
ngừng của các trang web thương mại điện tử cũng phát sinh ra một số định thức,
một công thức là người dùng làm thế nào để chọn được sản phẩm mà họ cần trong
vô số sản phẩm trong thế giới. Khi một khách hàng vào một trang web thương mại
điện tử thì có hai xu hướng: thứ nhất là họ đã định hướng được sản phẩm mà họ
đã mua, thứ hai là họ chỉ định hướng được sản phẩm mà họ sẽ mua. Đối với thứ
nhất trường, đơn giản là họ đã định sẵn sẽ mua sản phẩm nào rồi, vấn đề chỉ là
chọn mua ở đâu mà thôi. Trường hợp thứ hai đối diện, người dùng sẽ gặp khó khăn
hơn nhiều, họ sẽ phải chọn sản phẩm phù hợp nhất với nhu cầu của họ. Đặt vấn đề
là làm sao họ có thể làm được điều đó trong vơ số sản phẩm giống nhau mà họ
đang tìm kiếm. Trong trường hợp này người dùng sẽ cần đến sự trợ giúp của hệ
thống gợi ý để giải quyết vấn đề về vấn đề này. Hệ thống tham gia sử dụng sẽ được
khuyến khích đưa ra những thơng tin phản hồi về sản phẩm thơng tin mà họ đang
tìm kiếm; phản hồi hệ thống sẽ xử lý và đưa ra danh sách các sản phẩm phù hợp
nhất với yêu cầu của người dùng. Ngày nay các hệ thống gợi ý ngày càng được
chú trọng, nhất là đối với các nhà cung cấp dịch vụ trực tuyến như: Amazon,
Netflix, Youtube, ... Một hệ thống gợi ý có thể là vấn đề sống còn đối với nhà cung
cấp đặc biệt dịch vụ nâng cấp gần đây tính tốn ngày càng lớn, một hệ thống gợi ý
có thể làm tăng sự hài lịng của khách hàng, giữ chân người dùng.
Hình 1: Mơ tả hệ thống gợi ý (trích từ web)
1
Cùng với sự phát triển của thương mại điện tử cũng như tương tác trực tuyến của
con người trong giai đoạn hiện nay. Việc bùng nổ về số lượng dữ liệu khổng lồ, vì
thế việc tìm kiếm và đánh giá để đưa được sản phẩm phù hợp tới người dùng là
một thách thức lớn cho các công ty, tổ chức lớn.
Theo thống kê có tới 300 giờ video khác cũng được đăng tải mỗi phút trên Youtube.
Không người dùng nào có thể xem hết được tồn bộ thời lượng của các video này
và trong số hàng tỷ người dùng kia, mỗi người sẽ có những sở thích khác nhau và
đối với mỗi người, 99,99% nội dung ở trên đó là không phù hợp với họ. Tương tự
là vấn đề của Amazon, một người dùng khơng thể lướt qua tồn bộ cả trăm triệu
sản phẩm khi mua sắm.
Từ đó, hệ thống gợi ý đã được nghiên cứu và ứng dụng một cách mạnh mẽ và
mang lại lợi ích cho cả người cung cấp dịch vụ và người sử dụng dịch vụ. Ý tưởng
đằng sau một hệ thống gợi ý là sử dụng các dữ liệu thu thập được từ người dùng
và dự đoán, gợi ý cho người dùng những sản phẩm, tính năng, dịch vụ mà người
dùng có thể thích, từ đó nâng cao được chất lượng dịch vụ và thu lại lợi nhuận.
Hiện nay các trang thương mại điện tử lớn như Tiki, Shopee, … đã có thu thập
được dữ liệu về người dùng, định danh họ và nắm bắt được các hành vi của người
dùng thông qua phiên truy cập của họ trên trang web. Từ đó, thách thức của các
công ty xây dựng được hệ thống gợi ý dựa trên dữ liệu phiên sử dụng của người
dùng mà mơ hình có thể xử lý được dữ liệu dạng chuỗi thời gian, các hành vi tuần
tự. Từ đó có thể tăng trải nghiệm của người sử dùng, tăng doanh số bán hàng thông
qua các sản phẩm được gợi ý hợp lý.
Hình 2: Hệ gợi ý dựa trên phiên sử dụng của người dùng
2
1.2 Mục tiêu nghiên cứu
Luận văn này giải quyết bài toán hệ gợi ý cho dữ liệu phiên sử dụng của người
dùng, nghiên cứu tập trung vào các vấn đề sau:
-
-
Giới thiệu tổng quan về bài toán hệ gợi ý.
Cơ sở lý thuyết về học máy, học sâu. Nêu và làm rõ các cấu thành của một
thuật toán học máy và học sâu. Từ đó có thể nghiên cứu, ứng dụng và cải
tiến nó.
Các phương pháp học sâu giải quyết bài toán hệ gợi ý cho dữ liệu phiên sử
dụng.
Tiếp cận phương pháp biến đổi dữ liệu phiên sử dụng thành đồ thị và sử
dụng mạng đồ thị (Graph Neural Network) để giải quyết bài toán.
Thử nghiệm và đánh giá trên dữ liệu Yoochoose (dữ liệu được công bố
trong cuộc thi RecSys Challenge 2015).
1.3 Đối tượng và phạm vi nghiên cứu
Luận văn này chỉ tập trung nghiên cứu tổng quan học máy, học sâu, các bài toán
liên quan về hệ gợi ý, các phương pháp tiếp cận giải quyết bài toán hệ gợi ý và đi
sâu vào bài toán hệ gợi ý cho dữ liệu phiên sử dụng của người dùng dựa trên
phương pháp xây dựng đồ thị học sâu. Ứng dụng các nghiên cứu trước đó để giải
quyết bài thực tế cho tập dữ liệu Yoochoose và đưa ra kết quả.
1.4 Cấu trúc luận văn
Luận văn được trình bày với cấu trúc sau.
Phần 1 giới thiệu tổng quan về tính cấp thiết và mục tiêu của đề tài nghiên cứu.
Phần 2 đi sâu về cơ sở lý thuyết của học máy, học sâu bao gồm phân loại các bài
toán học máy. Phân tích cấu trúc của thuật tốn học máy nói chung. Các vấn đề
của học máy như overfiting, underfitting, … Cấu thành của thuật toán học sâu và
giới thiệu một số mạng học sâu điển hình.
Phần 3 giới thiệu những nghiên cứu liên quan, các nghiên cứu tổng quan về bài
toán hệ gợi ý và các nghiên cứu chuyên sâu về hệ gợi ý dựa trên dữ liệu phiên giao
dịch sử dụng đồ thị học sâu.
Phần 4 đưa ra giải pháp đề xuất để giải quyết bài toán hệ gợi ý dựa trên dữ liệu
phiên sử dụng của người dùng.
Phần 5 là kết quả đánh giá và thử nghiệm cho tập dữ liệu Yoochoose. Ở phần cuối
cùng là kết luận và hướng phát triển.
3
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về học máy
Học máy là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây
dựng các kỹ thuật cho phép hệ thống học tự động từ dữ liệu để giải quyết các vấn
đề cụ thể. Ví dụ như máy có thể học cách phân loại thư rác và tự động xếp vào
mục thư rác tương ứng.
2.1.1
Phân loại bài toán trong học máy
Học máy thường được phân làm hai loại, đó là:
-
Học khơng giám sát
Học có giám sát
Cả hai bài tốn đều có mục đích để giải quyết những bài tốn riêng biệt. Tuy nhiên,
theo góc nhìn của thống kê ta hồn tồn có thể sử dụng quy tắc của chuỗi chain
rules (được định nghĩa như sau: 𝑝(𝑥 ) = ∏%!&" 𝑝(𝑥! |𝑥" , 𝑥# , . . . , 𝑥!$" ) để kết luận
rằng để giải quyết bài tốn khơng giám sát ta có thể chia chúng thành n bài tốn có
giám sát và giải chúng.
Học khơng giám sát
Trong bài tốn này, mơ hình được huấn luyện bằng việc quan sát bộ dữ liệu khơng
có nhãn và phải tìm ra các mẫu (pattern) ẩn trong bộ dữ liệu. Phần lớn ứng dụng
của bài toán này là phân cụm (clustering), tức chúng tập trung vào ý tưởng phân
tích phân cụm hình học của bộ dữ liệu trong không gian đầu vào để xác định mối
liên kết của chúng. Điều này chỉ đúng khi giả định trước rằng phân cụm điểm dữ
liệu trong không gian đầu vào có các thuộc tính tương tự.
Một số mơ hình học không giám sát được kể tới là:
-
Kmeans clustering.
Principal Component Analysis.
Bài tốn học khơng giám sát thường ít được ứng dụng trong hệ gợi ý. Vì vậy, luận
văn này sẽ tập trung nhiều hơn về bài tốn học có giám sát
Học có giám sát
Đối với bài tốn học có giám sát, máy tính sẽ được nhìn thấy dữ liệu đã được gán
nhãn, từ đó có thể giám sát và điều chỉnh mơ hình trong q trình học. Q trình
học tn theo nguyên tắc sau: đầu tiên bộ dữ liệu huấn luyện được đưa vào mơ
hình để học, sau mỗi lần học máy sẽ tự động cập nhật lại bộ tham số sao cho nhãn
dự đoán gần với nhãn thật nhất. Cuối cùng ta sẽ thu được bộ tham số tối ưu có thể
dụng để dự đốn cho dữ liệu mới ở tương lai.
4
2.1.2
Cấu trúc thuật tốn học máy
Mặc dù các có rất nhiều thuật toán học máy, đa dạng cả về phương pháp luận và
ứng dụng thực tế, tuy nhiên tất cả đều tuân theo cấu trúc sau:
-
Đặc tả tập dữ liệu
Mô hình
Hàm mất mát
Thuật tốn tối ưu
Phần lớn các thuật tốn của học có giám sát có đặc tả tập dữ liệu giống nhau. Cịn
với ba thành phần cịn lại thì có nhiều sự biến đổi.
Đặc tả tập dữ liệu
Mỗi tập dữ liệu bao gồm n thực thể (hay còn gọi là mẫu) là véc tơ đầu vào, thường
được ký hiệu là x và đầu ra ký hiệu là y. Với giá trị i thể hiện thứ tự của mẫu và p
là số chiều của véc tơ đầu vào, ta biểu diễn véc tơ đầu vào như sau:
𝑥!' = [𝑥" , 𝑥# , … , 𝑥( ]
Các phần tử trong véc tơ phải có chung dạng dữ liệu, ví dụ trường hợp dữ liệu là
chuỗi thời gian, các phần tử phải được sắp xếp theo đúng thứ tự thời gian và được
chuẩn hóa. Gần như tất các các thuật tốn học máy nào cũng yêu cầu dữ liệu đầu
vào được chuẩn hóa để mơ hình có thể học tốt hơn.
Đầu ra y là biểu diễn nhãn của mẫu. Vì thế số lượng của chúng phải được xác định
sẵn từ trước.
Mơ hình
Mơ hình nhận giá trị đầu vào 𝑥! và đưa ra dự đốn là 𝑦/.
) Thơng thường, mỗi mơ
hình đều có một bộ tham số được biểu diễn bởi véc tơ θ. Véc tơ này được hiệu
chỉnh trong quá trình huấn luyện mơ hình. Ví dụ đơn giản nhất của mơ hình theo
dạng này là mơ hình hồi quy tuyến tính.
Tham số của mơ hình này được biểu diễn như sau:
θ' = 1θ" , … , θ( 2
PT 1
Với p là số chiều của dữ liệu đầu vào.
Khi đó dự đốn 𝑦3 của mơ hình sẽ là:
(
PT 2
𝑦3 = 4 𝑥* θ*
*&"
5
Tổng quát cho toàn bộ tập dữ liệu là:
𝑌6 = 𝑋θ
PT 3
Hàm mất mát
Để mơ hình có thể học được, ta cần phải đánh giá được dự đốn của mơ hình so
với nhãn thực tế thơng qua hàm mất mát (hay còn gọi là hàm mục tiêu). Khả năng
học của thuật tốn học máy phụ thuộc vào ước tính mức độ cải thiện của mơ hình
thơng qua thay đổi tham số. Do đó hàm mất mát tối thiểu phải khả vi. Trong trường
hợp của mơ hình hồi quy tuyến tính, hàm mất mát phổ biến nhất là sử dụng tổng
bình phương của sai số (Mean Squared Error). Lý do chính là khi ta áp dụng
phương pháp hợp lý hóa cực đại (Maximum likelihook) để tối ưu hóa θ, ta thu
được hàm này. Ngoài ra, đạo hàm của hàm này cho phép mơ hình hồi quy tuyến
tính chỉ có một cực tiểu tồn cục.
Hàm mất mát khi đó được định nghĩa là:
-
J(θ) = 4(y+ − y/,
)#
PT 4
+&"
-
= 4;y+ − x+. θ=
#
PT 5
+&"
= (𝑌 − 𝑋θ)' (𝑌 − 𝑋θ)
PT 6
Để tối ưu q trình tính tốn, hàm mất mát thường được sử dụng theo phương trình
PT4 (biểu diễn theo ma trận).
Thuật tốn tối ưu
Bước cuối cùng của thuật toán học máy là thuật toán tối ưu. Trong bước này, bộ
tham số θ của mơ hình sẽ được cập nhật nhằm tăng dự đốn của mơ hình. Nói cách
khác, tìm bộ tham số θ sao cho giá trị của hàm mất mát đạt giá trị nhỏ nhất.
Tuy nhiên, chỉ có những bài tốn cơ bản mới có thể sử dụng mơ hình hồi quy tuyến
tính. Các mơ hình phức tạp phải sử dụng hàm mất mát khác, dẫn đến quá trình tối
ưu thách thức hơn rất nhiều. Trong thực tế, việc tìm được cực tiểu tồn cục trong
các bài tốn này là khơng thể đảm bảo. Để khắc phục hiện tượng trên, thuật tốn
tối ưu cần được lặp lại. Hay nói một cách khác, các thuật tốn dần dần tiếp cận cực
tiểu thơng qua các lần lặp. Các phương pháp thuộc nhóm này gọi là tối ưu hóa dựa
trên gradient. Và phương pháp phổ biến nhất là Gradient Descent.
2.1.3
Độ phức tạp của mô hình
Có thể nói nhiệm vụ của học có giám sát là xây dựng được mơ hình thể hiện được
mối quan hệ của dữ liệu đầu vào và nhãn một cách chính xác. Song, định nghĩa
6
trên không thực tế bởi lẽ không bao giờ đủ dữ liệu để có thể nắm bắt được mối
quan hệ này. Vì vậy chính xác hơn, nhiệm vụ của học máy là thử đoán được mối
quan hệ dựa vào dữ liệu có sẵn.
Do đó, nhiệm vụ quan trọng nhất của mơ hình đó là tính tổng qt hóa. Tức là đưa
ra dự đốn chính xác nhất đối với cả dữ liệu chưa nhìn thấy (chưa được học). Khả
năng tổng quát hóa dựa vào độ phức tạp của mơ hình, đơi khi còn gọi là sức chứa
và độ phức tạp của mối quan hệ dữ liệu gốc. Hiện tượng mơ hình khơng thể nắm
bắt được độ phức tạp của bài tốn một cách hiệu quả được gọi là underfitting. Còn
hiện tượng độ phức tạp của mơ hình vượt q độ phức tạp của mối quan hệ của dữ
liệu được gọi là overfitting. Một cách hiểu khác là dựa vào đánh giá hàm mất mát,
nếu mơ hình khơng thể thu nhỏ tối đa giá trị của hàm mất mát trên tập huấn luyện
thì mơ hình bị underfitting. Cịn mơ hình thu nhỏ tối đa giá trị của hàm mất mát
trên tập dữ liệu huấn luyện song không thể làm tương tự trên tập dữ liệu kiểm tra
gọi là overfitting.
Hình 3: Các hiện tượng thường gặp trong q trình huấn luyện (trích từ web)
Trong cả hai trường hợp, tính tổng qt của mơ hình đều rất kém. Với underfitting,
mơ hình khơng thể nắm bắt được sự phức tạp thật sự của dữ liệu bài tốn, cịn với
overfitting, mơ hình khơng thể dự đốn đúng được dữ liệu trong tương lai vì chúng
chỉ tập trung học thuộc dữ liệu huấn luyện mà không học để tìm ra đặc trưng (Hình
trên).
Thơng thường, mơ hình học máy được huấn luyện trên càng nhiều dữ liệu càng
tốt. Đồng thời, để đánh giá mơ hình thì cần kiểm định dựa vào dữ liệu độc lập khác
với dữ liệu dùng để huấn luyện và đánh giá. Mơ hình được huấn luyện với dữ liệu
huấn luyện và đánh giá trên dữ liệu đánh giá, cuối cùng là kiểm tra trên tập dữ liệu
kiểm tra. Mối quan hệ về tỷ lệ lỗi giữa kiểm tra và huấn luyện được thể hiện trên
(Hình trên).
7
Hình 4: Mối liên hệ giữa độ phức của mơ hình và hệ số lỗi (trích từ web)
Chính quy hóa (Regularization)
“Chính quy hóa là bất kể thay đổi gì tác động đến thuật tốn học nhằm mục đích
giảm lỗi tổng quát nhưng không làm ảnh hưởng đến lỗi huấn luyện” [5]
Như đã định nghĩa ở trên, một đặc điểm thiết yếu của mơ hình là cân bằng được
giữa hiện tượng overfitting và underfitting. Từ đó, giúp mơ hình có thể làm điều
trên dễ dàng hơn, các thuật tốn chính quy hóa đã ra đời. Đây là một kỹ thuật giúp
chúng ta phạt mơ hình khi độ phức tạp của mơ hình trở nên quá cao. Ý tưởng cơ
bản của kỹ thuật này là cộng thêm một lượng tỷ lệ thuận với độ phức tạp của mơ
hình vào hàm mất mát. Giả sử với thuật toán L2, hàm mất mát của tổng sai số bình
phương sẽ như sau:
𝐽(𝜃 ) = (𝑌 − 𝑋𝜃 )' (𝑌 − 𝑋𝜃) + 𝜆𝜃 '
PT 7
Với λ là tham số điều khiển của hàm chính quy.
2.1.4
Xử lý dữ liệu
a. Mã hóa One-hot
Mã hóa One-hot là một cách biểu diễn nhãn thường được sử dụng cho loại biến
phân loại (categorical variable) để đưa chúng về dạng véc tơ số cho phép mơ hình
học máy có thể hiểu và xử lý chúng. Cụ thể, xác suất điều kiện 𝑝(𝑦|𝑥! ) (xác suất
của từng nhãn với dữ liệu đầu vào 𝑥! được biểu diễn như sau:
"%ế29&9
!
𝑝(𝑦|𝑥! ) = {/%ế2%3ượ67ạ!
PT 8
b. Kỹ thuật lấy mẫu dữ liệu
8
Có rất nhiều phương pháp lấy mẫu dữ liệu để áp dụng cho các dạng dữ liệu khác
nhau. Ví dụ đối với dữ liệu bị mất cân bằng dữ liệu thì ta có thể sử dụng các phương
pháp cân bằng dữ liệu như over sampling hoặc under sampling. Còn đối với các
dữ liệu về chuỗi thời gian thì ta cần phải lấy mẫu dữ liệu dựa vào các khoảng thời
gian trong quá khứ để dự đoán tương lai.
2.2 Tổng quan về học sâu
2.2.1
Học sâu
Học sâu là một dạng của học máy được hỗ trợ bởi một hệ thống các thuật tốn
nhằm mục đích tạo ra các mơ hình có khả năng tự trích xuất đặc trưng của dữ liệu
có độ trừu tượng cao nhờ việc sử dụng các lớp xử lý có cấu trúc phức tạp. Tuy
nhiên học sâu thuộc về mảng học máy nhưng các bài toán mà dữ liệu lớn và phức
tạp thì các thuật tốn học máy cơ bản không thể đem lại kết quả ưu việt như học
sâu. Chẳng hạn như các bài toán về dữ liệu văn bản, dữ liệu ảnh hay dữ liệu chuỗi
thời gian.
Mục tiêu của nhưng nghiên cứu trong lĩnh vực học sâu là tạo ra các cách biểu diễn
dữ liệu ngày càng tốt hơn và xây dựng các mơ hình từ dữ liệu không được gán
nhãn quy mô lớn. Cho đến bây giờ, đã có rất nhiều thuật tốn học sâu đã ra đời
như mạng nơ ron học sâu (Deep Neural Network), mạng nơ ron tái phát (Recurrent
Neural Network), mạng nơ ron tích chập (Convolutional Neural Network) đã được
sử dụng trong các lĩnh vực như thị giác máy tính, nhận dạng giọng nói, xử lý ngơn
ngữ tự nhiên, nhận dạng âm thanh và đặc biệt là bài toán chuỗi thời gian và đem
lại kết quả rất tốt.
2.2.2
Lịch sử học sâu
Lịch sử mạng nơ ron Neural Network (tiền nhiệm của học sâu và cũng là thuật ngữ
thường được sử dụng để nhắc tới học sâu) có thể được cho là bắt nguồn từ năm
1943, khi Warren Mcculloch và Walter Pitts nghĩ ra mơ hình tốn học lấy cảm
hứng từ sinh học về hệ thần kinh của động vật có vú [1].
Điều này đã truyền cảm hứng cho việc phát minh về Perceptron (được tạo ra vào
năm 1958 bởi Frank Rosenblatt [2]). Perceptron sử dụng mơ hình rất đơn giản mơ
phỏng tế bào thần kinh sinh học dựa trên mơ hình tốn học của Pitts và Mcculloch.
Định nghĩa về mơ hình Perceptron cũng mơ tả thuật tốn để học trực tiếp từ dữ
liệu. Ban đầu, Perceptron có vẻ rất hứa hẹn nhưng người ta sớm phát hiện ra rằng
nó có những hạn chế nghiêm trọng. Minsky đã xuất bản cuốn sách trong đó ông đã
chứng minh toán học rằng Perceptron không thể giải được bài tốn XOR [3]. Nói
cách khác, Perceptron chỉ có thể giải quyết các bài tốn có thể phân tách tuyến
tính.
Tuy lời chỉ trích của Minsky khơng phải là ác ý, nhưng nó thực sự đã kìm hãm sự
quan tâm về mạng nơ ron trong suốt thập kỷ đó. Giải pháp cho điểm yếu đó xuất
9
hiện khi phát minh về thuật toán học truyền ngược ra đời, cho phép khả năng tập
hợp các nơ ron thành các nhóm được gọi là các lớp, có thể xếp chồng lên nhau
thành các cấu trúc phân cấp để tạo thành một mạng. Mạng nơ-ron thuộc loại này
thường được gọi là Multilayer Perceptron (MLP).
Trong những năm 80 và 90, sự quan tâm đến mạng nơ ron lại tiếp tục giảm và
nghiên cứu chung về AI tập trung nhiều hơn vào các kỹ thuật học máy, ví dụ như
trong lĩnh vực của các bài toán phân loại, các thuật toán đáng chú ý bấy giờ là
SVM và ensemble.
Đến năm 2000, có rất ít nhóm nghiên cứu dành sự quan tâm sâu sắc và tồn tại sự
coi thường nhất định đối với mạng nơ ron trong giới học thuật và cộng đồng nghiên
cứu AI. Sau gần nửa thế kỷ, cuối cùng vào khoảng năm 2009, khi các mơ hình học
sâu đầu tiên với số lượng lớn các lớp ẩn được huấn luyện thành công và đem lại
kết quả đáng kinh ngạc thì học sâu mới có chỗ đứng của riêng mình. Tên gọi Deep
Neural Network (DNN), với từ “sâu” ở đây chỉ ra rằng mạng có số lượng lớn các
lớp ẩn. Vào thời điểm lúc bấy giờ DNN chỉ có 1 hoặc 2 lớp ẩn, ngày nay chúng
được coi là mạng nơng. Mạng sâu điển hình có thể có đến hàng chục và trong một
số trường hợp có thể lên đến hàng trăm [4].
Mặc dù quá trình phát triển của DNN theo hướng cấu trúc với số lớp ẩn cao là điều
hiển nhiên, tuy nhiên việc nghiên cứu và thử nghiệm gặp nhiều hạn chế như:
-
Khơng có kỹ thuật nào cho phép mở rộng số lớp ẩn.
Khơng có đủ dữ liệu được gán nhãn để huấn luyện.
Phần cứng tính tốn khơng đủ mạnh để huấn luyện các mạng đủ lớn và
phức tạp một cách hiệu quả.
Vấn đề thứ nhất được giải quyết khi có sự ra đời của nhiều mạng học sâu như
CNN, RNN. Vấn đề thứ hai được giải quyết khi đơn giản khi có nhiều nhóm nghiên
cứu cung cấp dữ liệu lớn có thể kể đến đó là các công ty lớn như: Google,
Facebook, Amazon, Youtube, v.v, kèm với sự giúp đỡ của cộng đồng lớn các
chuyên gia và những người có sở thích trong khoa học dữ liệu. Cuối cùng nhờ có
bước tiến trong các cơng nghệ phần cứng và cải tiến trong phương pháp huấn
luyện, vấn đề thứ ba cũng đã được xử lý. Một trong những bước tiến đột phá về kỹ
thuật trên là việc sử dụng các đơn vị xử lý đồ họa (GPU) để phục vụ nhu cầu tính
tốn cao trong việc huấn luyện. Ngồi ra, bởi vì việc huấn luyện mạng nơ ron chủ
yếu là các phép toán đơn giản (nhân ma trận, véc tơ, …), vì thế chúng có thể thiết
kế để xử lý song song, nhờ đó cải thiện được rất nhiều tốc độ về mặt tính tốn.
2.3 Cấu trúc mạng nơ ron nhân tạo
Thuật ngữ mạng nơ ron rất chung chung và nó mơ tả nhiều thể loại mơ hình khác
nhau. Trong bối cảnh này, mạng nơ ron là mô hình phân tán và song song có khả
10
năng tính gần đúng các hàm phi tuyến phức tạp. Mạng được cấu thành từ nhiều
đơn vị tính tốn được gọi là nơ ron được tập hợp trong cấu trúc liên kết cụ thể.
Mô tả cấu trúc của mạng nơ ron được tn theo mơ tả thuật tốn học máy được
nêu ở phần trước, có nghĩa là mơ tả thuật tốn học bao gồm mơ hình, hàm mất mát
và thuật tốn tối ưu. Sự khác biệt là mơ hình mạng nơ ron phức tạp hơn nhiều so
với mơ hình học máy. Do đó, phân tích mơ hình được chia thành mơ hình nơ ron
và cấu trúc liên kết của mạng.
Mơ hình nơ ron
Nơ ron là đơn vị tính tốn thực hiện biến đổi phi tuyến các đầu vào của chúng:
𝑦 = 𝑔 (𝑤 ' 𝑥 + 𝑏 )
PT 9
Hình 5: Cấu trúc nơ ron [29]
Như đã đề cập, mơ hình nơ ron được lấy cảm hứng từ sinh học. Các nghiên cứu
đầu tiên để tạo ra mơ hình nơ ron có nhiều yếu tố dựa vào nơ ron của não người.
Khi nghiên cứu tiến triển, sự tương đương này không cịn quan trọng nữa và các
mơ hình học sâu hiện đại chỉ tương ứng với các đối tác sinh học của chúng một
cách khá hời hợt.
-
Đầu vào
Mỗi nơ ron có một số đầu vào x được cặp với nhau để thực hiện một số thao tác
nhất định. Mỗi đầu vào sẽ được gán chung với một trọng số.
-
Trọng số (Weight)
Đầu vào của một nơ ron được tính trọng số bởi các tham số w được điều chỉnh
trong quá trình học. Mỗi tham số điều chỉnh độ quan trọng cho mỗi đầu vào riêng
11
lẻ tới nơ ron. Ý tưởng cơ bản là khi trọng lượng nhỏ, đầu vào cụ thể không ảnh
hưởng nhiều đến đầu ra của nơ ron và ngược lại, ảnh hưởng lớn khi trọng số lớn.
-
Thiên vị (Biases)
Một tham số có thể học khác là thiên vị (biases) b, có tác động trực tiếp tới giai
đoạn đầu ra tuyến tính của lớp.
-
Hàm kích hoạt
Hình 6: Một số hàm kích hoạt cơ bản (trích blog machinelearningcoban)
Để mạng nơ ron có thể biểu diễn xấp xỉ hàm phi tuyến, mỗi nơ ron phải được thực
hiện biến đổi phi tuyến đối với đầu vào của nó bằng hàm kích hoạt g(z). Việc chọn
hàm nào phụ thuộc vào loại mạng và loại lớp mà mạng sử dụng. Điều kiện tiên
quyết khi chọn hàm kích hoạt đó phải là hàm phi tuyến.
Một trong những hàm cổ điển nhất là hàm sigmoid:
𝑔(𝑧) =
1
1 + 𝑒 $:
PT 10
Điểm yếu của sigmoid là đạo hàm sẽ trở nên rất yếu và không đáng kể ở hai đầu
giá trị, dẫn đến việc làm chậm quá trình huấn luyện.
Một hàm kích hoạt khác cũng hay được sử dụng là hàm tanh, thường được sử dụng
trọng mạng RNN.
𝑔(𝑧) = 𝑡𝑎𝑛ℎ(−𝑧)
PT 11
12
Hiện nay, hàm kích hoạt được sử dụng nhiều nhất trong các mạng học sâu đó là
hàm ReLU. Hàm này được áp dụng rộng rãi vì đạo hàm của hàm này khá đơn giản
(PT ref).
𝑔(𝑧) = 𝑚𝑎𝑥(0, 𝑧)
PT 12
/%ế2:
𝑔(𝑧) = {"%ế2:;&/
PT 13
Điểm yếu của hàm này là đạo hàm bằng 0 nếu z < 0.
Cấu trúc topo của mạng
Có hai cấu trúc phố biến nhất được sử dụng trong học sâu là truyền thằng (feedforward) và tái phát (recurrent). Với mạng feed-forward thông tin chỉ chảy theo
hướng từ đầu vào cho đến đầu ra, cịn mạng lặp lại có một số loại vịng lặp phản
hồi.
Thơng thường, các mạng nơ ron được sắp xếp theo lớp, trong mỗi lớp có thể có từ
1 đến n nơ ron và được xếp chồng lên nhau có thứ bậc. Cụ thể, lớp đầu tiên được
gọi là lớp đầu vào, lớp cuối cùng được gọi là lớp đầu ra và các lớp ở giữa được gọi
là lớp ẩn.
Để mô tả mạng ta cần dựa vào kết nối của các lớp riêng lẻ, sơ đồ phổ biến nhất
được gọi là kết nối đầy đủ (fully-connected) trong đó mỗi nơ ron của lớp ẩn L có
các kết nối đầu vào từ tất cả các nơ ron từ lớp trước L -1 và đầu ra của nó được kết
nối với đầu vào của lớp L + 1. Toàn bộ cấu trúc được minh họa trên Hình 7.
Hình 7: Cấu trúc một mạng nơ ron (trích từ blog viblo)
13
Các giá trị của nơ ron phụ thuộc vào loại của lớp, hiện tại sự khác biệt chính là
hàm kích hoạt của chúng. Trong lịch sử, tất cả các lớp đều có nơ ron sử dụng hàm
kích hoạt sigmoid. Ngun nhân chủ yếu là do hàm sigmoid có đầu ra dễ dàng ánh
xạ vào phân bố xác suất, vì nó có giá trị từ 0 đến 1. Chỉ gần đây, người ta đã phát
hiện ra rằng, mạng bao gồm các nơ ron có hàm kích hoạt ReLU trong các lớp ẩn
có thể được huấn luyện nhanh chóng và có khả năng chống overfitting.
Các nơ ron trong lớp đầu ra cần có giá trị biểu diễn phân phối xác suất có thể được
sử dụng để ước lượng phân phối xác suất của nhãn. Vì lý do này, chức năng kích
hoạt nơ ron đầu ra được sử dụng phổ biến là softmax. Softmax là hàm mũ chuẩn
hóa, được sử dụng để biểu diễn xác suất của một cá thể là thành viên của lớp j với
tổng số lớp là K như sau:
𝑔(𝑧)* =
𝑒*:
PT 14
:
∑>
=&" 𝑒=
Hàm mất mát
Hàm mất mát của mạng nơ ron là một chủ đề khá phức tạp vượt quá phạm vi của
luận văn này. Một trong những hàm mất mát phổ biến nhất được sử dụng trong
mạng nơ ron để phân loại đa lớp là cross-entropy. Khi dùng hàm kích hoạt softmax,
hàm mất mát được định nghĩa là:
%
1
𝐶 = − 4 𝑦 (!) 𝑙𝑛 S𝑔 T𝑧 (!) + ;1 − 𝑦 (!) =𝑙𝑛 U1 − 𝑔;𝑧 (!) =VWX
𝑛
PT
15
!&"
Thuật toán tối ưu
Mọi thuật tốn tối ưu hóa cho mạng nơ ron đều dựa trên thuật tốn Gradient
Descent. Nói cách khác, đó là q trình lặp đi lặp lại nhằm mục đích giảm sai số
huấn luyện của mạng bằng đạo hàm riêng hàm mất mát và điều chỉnh các tham số
θ của mơ hình bằng cách tn theo hướng ngược của đạo hàm.
Vấn đề là hàm mất mát của toàn bộ mạng rất phức tạp và có nhiều tham số. Để tìm
gradient của hàm mất mát, cần phải đi qua tất cả các đơn vị trong mạng và ước
tính đóng góp của chúng vào sai số tổng thể. Kỹ thuật dùng để giải quyết vấn đề
này gọi là thuật toán lan truyền ngược.
-
Thuật tốn lan truyền ngược
Để ước tính ảnh hưởng của các đơn vị riêng lẻ trong mạng, lan truyền ngược được
sử dụng để tính tốn delta δ*7 trong đó 𝑙 là chỉ số lớp và j là chỉ số của nơ ron trong
lớp đó. Thuật tốn bắt đầu từ đầu ra của mạng nơ ron, cụ thể hơn là hàm mất mát
của nó.
14
𝛿 A = ∇B 𝐶 ⊙ 𝑔 C ( 𝑧 A )
PT 16
Trong đó, L là lớp cuối cùng của mạng và ∇B 𝐶 là gradient của hàm mất mát theo
x và ⊙ là tích Hadamard.
𝛿 của các lớp dưới được tính như sau:
𝛿 7 = ((𝑤 7D" )' δ7D") ⊙ g C (z E )
PT 17
Mỗi nơ ron sẽ gồm có hai tham số có thể học là b và w. Để tính được tỷ lệ thay đổi
của hai tham số trên, ta cần dùng công thức:
-
∂𝐶
= δ*7
∂𝑏*7
PT 18
𝜕𝐶
7$" 7
𝛿*
7 =𝑥
𝜕𝑤*=
PT 19
Thuật toán Gradient Descent.
Thuật toán lan truyền ngược tính gradient của mọi tham số b;w trọng mạng. Các
tham số này có thể được gọi tổng quát bởi véc tơ 𝜃. Vì vậy, gradient của hàm mất
mát có thể rút gọn thành ∇F"#$ 𝑓(𝜃G$" ).
Thuật toán chỉ sử dụng một siêu tham số duy nhất η, thường được gọi là tốc độ
học (learning rate). Siêu tham số này quyết định mơ hình có thể học nhanh tới mức
nào. Gradient Descent có điểm yếu là lượng giá trị cập nhật của bộ tham số luôn
tỷ lệ thuận với gradient, một vấn đề lớn nếu gradient thấp bởi lẽ khi này mơ hình
sẽ học rất chậm. Thuật tốn này có nhiều biến thể như Stochastic Gradient Descent.
Từ Stochastic ở đây thể hiện trong quá trình huấn luyện, dữ liệu sẽ được lấy ngẫu
nhiên một tập nhỏ để huấn luyện.
-
Thuật toán SGD với qn tính
Dưới góc nhìn vật lý, SGD với qn tính giúp cho việc hội tụ có gia tốc, làm nhanh
q trình hội tụ trên các đường cong có độ dốc lớn, nhưng đồng thời làm giảm sự
giao động khi gần hội tụ.
Bằng cách áp dụng trung bình trượt số mũ, thuật tốn này cịn có thể làm cho các
đạo hàm có hướng ngược nhau triệt tiêu và dẫn tới một quá trình hội tụ trơn tru và
hướng thẳng tới hội tụ hơn.
Thực hiện thuật tốn khơng khác với SGD thơng thường, ta thêm tích vận tốc của
lần trước, được biểu diễn bằng hệ số γ (thường sử dụng γ = 0.9).
15
-
vH = γvH$" + η∇I J(θ)
PT 20
θ = θ − 𝑣G
PT 21
Thuật tốn Nesterov accelerated gradient (NAG)
Hình 8: Ý tưởng của Nesterov accelerated gradient (trích từ web paperwithscode)
Qn tính có thể giúp cho mơ hình thốt ra khỏi dốc, cực tiệu cục bộ, tuy nhiên có
một hạn chế có thể quan sát thấy như sau: khi gần tới hội tụ, quán tính sẽ mất khá
nhiều thời gian cho đến khi dừng lại. Lý do cũng chính là do đà được tạo ra bởi
quán tính. Để khắc phục điều này, NAG đã được phát triển, giúp cho thuật toán
hội tụ nhanh hơn.
Ý tưởng cơ bản là dự đoán hướng đi trong tương lai, tức nhìn trước một bước. Cụ
thể, nếu sử dụng số hạng momentum γ𝑣G$" để cập nhật thì ta có thể xấp xỉ được vị
trí tiếp theo của mơ hình θ − 𝛾𝑣G$" . Thay vì sử dụng gradient của điểm hiện tại,
NAG đi trước một bước, sử dụng gradient của điểm tiếp theo.
Công thức của NAG được cho như sau:
𝑣G = 𝛾𝑣G$" + 𝜂∇F 𝐽(𝜃 − 𝛾𝑣G$" )𝜃
PT 22
Mọi thuật toán được bàn tới từ trước tập trung vào việc sử dụng một chung learning
rate cho mọi tham số tại mọi thời điểm. Tinh chỉnh chỉ số này là một quá trình rất
phức tạp, rất nhiều nghiên cứu đã tập trung vào các cách tự động tinh chinh learning
rate trong q trình huấn luyện (thậm chí cho từng tham số). Một số phương pháp
vẫn yêu cầu tinh chỉnh một số siêu tham số khác, tuy nhiên các siêu tham số này
có khoảng tinh chỉnh lớn hơn nhiều so với learning rate, vì vậy người sử dụng có
thể dễ dàng thực hiện các thuật tốn tìm kiếm để nhanh chóng tìm được gái trị phù
hợp. Sau đây là một số thuật toán tự động tinh chỉnh learning rate (adaptive
learning rate methods)
-
Adagrad
16
Thuật toán Adagrad là một trong những thuật toán adaptive đầu tiên được phát
triển bởi Duchi và cộng sự [6]. Cụ thể, thuật toán này cập nhật tham số với giá trị
lớn hơn khi gặp các dữ liệu có nhiều sự khác biệt và ngược lại với dữ liệu ít khác
biệt.
Adagrad chia learning rate với tổng bình phương của cộng dồn đạo hàm tính từ
trước.
cache = cache + ∇F 𝐽(𝜃)#
𝑥=𝑥+
η∇F 𝐽(θ)
PT 23
PT 24
√𝑐𝑎𝑐ℎ𝑒 + ϵ
Cụ thể, biến cache có kích thước tương tự như kích thước của gradient và chứa
tổng bình phương đạo hàm của từng tham số. Sau đó biến được sử dụng để chuẩn
hóa cho bước cập nhật tham số.
Những tham số mà có đạo hàm lớn sẽ có learning rate bé hơn bình thường, trong
khi learning rate của các tham số có đạo hàm nhỏ hơn sẽ được tăng cao hơn bình
thường. Việc sử dụng hàm căn bậc hai ở đây là vô cùng cần thiết, nếu khơng sử
dụng sẽ làm cho thuật tốn hoạt động kém hiệu quả đi rất nhiều.
Ngoài ra, 𝜖 (thường được để với giả trị trong khoảng [1𝑒 $" , 1𝑒 $J ] sẽ sử dụng với
mục đích tránh xảy ra phép chia cho không.
Điểm yếu của Adagrad khi sử dụng trong học sâu là learning rate đôi khi bị thay
đổi quá mạnh và làm cho việc học bị dừng quá sớm.
-
Thuật toán Adam
Thuật toán Adam [10] tận dụng được lợi thế của cả SGD với qn tính và
RMSProp. Thuật tốn sử dụng bình phương đạo hàm để tính độ lớn của learning
rate giống như RMSProp nhưng cũng dùng lợi thế của qn tính bằng cách sử dụng
trung bình trượt số mũ của đạo hàm. Cái tên Adam được đưa ra theo sự viết tắt của
Adaptive Moment estimation (khoảnh khắc có thích nghi), bởi lẽ trong Adam có
sử dụng cả khoảnh khắc thứ nhất và thứ hai (first and second moment) của đạo
hàm để tính tốn learning rate cho các tham số. Cụ thể, moment thứ n của một biến
nghẫu nhiên được định nghĩa là kỳ vọng của biến đó khi được áp dụng hàm mũ
bậc n (𝑚_𝑛 = 𝑒[𝑋^𝑛]).
Bởi vì đạo hàm được tính tốn trên một batch nhỏ ngẫu nhiên, chúng được coi như
là biến ngẫu nhiên. Moment thứ nhất của đạo hàm sẽ là trung bình của chúng, cịn
moment thứ hai là phương sai không tập trung (tức không trừ đi trung bình trong
khi tính tốn phương sai). Để dự tính hai giá trị này, Adam sử dụng trung bình
trượt số mũ:
17
mH = β" mH$" + (1 − β" )g H
PT 25
𝑣G = β# 𝑣G$" + (1 − β# )𝑔G#
PT 26
Bởi vì sử dụng thuật tốn trung bình trượt trọng số, hai đại lượng trên sẽ gặp hiện
tượng bias, vì vậy ta dùng kỳ vọng của chúng như một cách để sửa bias (bias
correction):
mH
1 − β"H
𝑣G
𝑣/G =
1 − βG#
m
uH =
PT 27
PT 28
Việc cuối cùng sau khi tính tốn được các đại lượng trên là tính tốn learning rate
cho từng tham số một và cập nhật chúng theo công thức sau:
𝑤G = 𝑤G − η
𝑚
uG
PT 29
v𝑣/G + ϵ
Một số thuộc tính đáng được nói tới của thuật tốn Adam là:
1. Bước cập nhật của Adam tại mỗi batch được giới hạn xấp xỉ bởi siêu tham
số được tính tốn tại bước đó.
2. Bước cập nhật Adam bất biến với độ lớn của gradient, điều này giúp ích
rất nhiều khi mơ hình đi qua các khu vực có độ dốc nhỏ (chẳng hạn như
điểm yên ngựa hoặc khe núi). Khi gặp phải vấn đề này, SGD rất khó để
nhanh chóng vượt qua.
3. Adam được thiết kế để kết hợp các ưu điểm của Adagrad, hoạt động tốt
với các gradient thưa thớt và RMSprop. Điều này cho phép ta sử dụng
Adam cho nhiều tác vụ hơn.
18
CHƯƠNG 3. NGHIÊN CỨU LIÊN QUAN
3.1 Bài toán hệ gợi ý
Hệ thống gợi ý (Recommender Systems) là một thành phần trong hệ thống thơng
tin. Mục đích của nó là hỗ trợ người dùng tìm kiếm được đúng thơng tin cần thiết,
dự đốn sở thích hay xếp hạng mà người dùng có thể dành cho một mục thơng tin
(item) nào đó mà họ chưa xem xét tới trong quá khứ.
Hệ gợi ý tính tốn dựa trên việc thu thập dữ liệu về người dùng như khi mua hàng,
khi đưa ra các đánh giá cá nhân. Việc thực hiện tính tốn được xây dựng trên các
thuật toán Học máy (Machine Learning), đưa ra các dự đoán tốt nhất về sản phẩm
mà người dùng có thể thích, giúp tối ưu hóa doanh thu qua up-sale, cross-sale. Cải
thiện trải nghiệm người dùng, tăng hiệu năng hoạt động bằng tự động hóa, biến
khách hàng tiềm năng trở thành khách hàng thật. Một khảo sát liên quan đến hệ
gợi ý được đưa ra mô tả tổng quan về hệ gợi ý [16].
Bài toán hệ gợi ý được phân loại thành các cách tiếp cận sau:
-
Phân loại dựa vào nội dung sản phẩm
-
Bộ lọc cộng tác
-
Phương pháp kết hợp
Hình 9: Phân loại bài tốn hệ gợi ý (trích từ blog towardsdatascience)
3.2 Phân loại bài tốn hệ gợi ý
3.2.1
Dựa vào nội dung sản phẩm
Phương pháp này là cách tiếp cận đơn giản nhất nhưng cũng là nền tảng quan trọng
trong lý thuyết của hệ gợi ý. Ý tưởng là giới thiệu ra những sản phẩm mà người
19