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

Ứng dụng các mô hình học sâu vào kĩ thuật lọc cộng tác dựa trên mô hình cho các hệ thống khuyến nghị thương mại

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 (997.95 KB, 69 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

TRẦN ANH DŨNG

Ứng dụng các mơ hình học sâu vào kĩ
thuật lọc cộng tác dựa trên mơ hình cho
các hệ thống khuyến nghị thương mại

Ngành:

Công nghệ thông tin

Chuyên ngành:

Quản lý Hệ thống thông tin

Mã số:

8480205.01

LUẬN VĂN THẠC SĨ QUẢN LÝ HỆ THỐNG THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS. TRẦN TRỌNG HIẾU

Hà Nội – 09/2020


Mục lục
LỜI CẢM ƠN ..................................................................................................................... iii


LỜI CAM ĐOAN ................................................................................................................iv
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT .................................................................... v
DANH MỤC HÌNH VẼ ......................................................................................................vi
DANH MỤC BẢNG BIỂU .............................................................................................. viii
Chương 1: Tổng quan về hệ thống khuyến nghị .................................................................. 1
1. Giới thiệu .................................................................................................................... 1
2. Một số khái niệm chung về hệ thống khuyến nghị .................................................... 2
3. Phương thức hoạt động của Hệ khuyến nghị ............................................................. 4
3.1.

Phát biểu bài toán khuyến nghị............................................................................ 5

3.2.

Các phương pháp tiếp cận xây dựng hệ thống khuyến nghị. .............................. 5

4. Các tiêu chuẩn đánh giá hệ khuyến nghị .................................................................. 12
4.1.

Trung bình lỗi tuyệt đối ..................................................................................... 13

4.2.

Sai số bình phương trung bình........................................................................... 13

Chương 2: Hệ khuyến nghị dựa trên lọc cộng tác sử dụng kỹ thuật học sâu ..................... 15
1. Bài toán khuyến nghị dựa trên cộng tác ................................................................... 15
1.1.

Lọc cộng tác dựa vào bộ nhớ ............................................................................. 15


1.2.

Lọc cộng tác dựa trên mơ hình .......................................................................... 18

2. Các mơ hình học sâu kết hợp với hệ khuyến nghị ................................................... 21
2.1.

Phân loại hệ thống khuyến nghị dựa trên kiến trúc hệ thống ............................ 21

2.2.

Vai trò của các kỹ thuật học sâu trong bài toán khuyến nghị ............................ 27

2.3.

Một số hạn chế khi áp dụng các mơ hình học sâu cho hệ khuyến nghị ............ 28

Chương 3: Đề xuất mơ hình hệ khuyến nghị sử dụng kỹ thuật học sâu............................. 29
1. Kiến trúc mơ hình ..................................................................................................... 29
1.1.

Lớp nhúng (Embedding layer): ......................................................................... 29

1.2.

Lớp nối (Concatenate layer): ............................................................................. 31

1.3.


Các lớp ẩn (Fully-connected layers): ................................................................. 32

1.4.

Đầu ra hồi quy tuyến tính (Linear Regression Output): .................................... 36
i


1.5.

Hàm mục tiêu của mơ hình: ............................................................................... 37

2. Một số nhận xét về mơ hình ..................................................................................... 38
Chương 4: Cài đặt, thử nghiệm mơ hình đề xuất ............................................................... 39
1. Mơi trường và các công cụ được sử dụng ................................................................ 39
1.1.

Bộ dữ liệu mẫu Movielens................................................................................. 39

1.2.

Thư viện MxNet ................................................................................................ 39

1.3.

Máy chủ Colaboratory ....................................................................................... 41

2. Thực nghiệm và đánh giá ......................................................................................... 42
2.1.


Bộ dữ liệu Movielens-20M: .............................................................................. 42

2.2.

Cài đặt thí nghiệm và đánh giá kết quả thu được .............................................. 47

2.3.

Đánh giá ............................................................................................................. 52

Kết luận............................................................................................................................... 55
Tài liệu tham khảo .............................................................................................................. 57

ii


LỜI CẢM ƠN
Trước tiên tôi xin dành lời cảm ơn chân thành và sâu sắc đến thầy giáo TS. Trần
Trọng Hiếu – người đã hướng dẫn, khuyến khích, chỉ bảo và tạo cho tôi những điều kiện
tốt nhất từ khi bắt đầu cho tới khi hồn thành cơng việc của mình.
Tơi xin dành lời cảm ơn chân thành tới các thầy cô giáo khoa Công nghệ thông tin,
trường Đại học Công nghệ, Đại học Quốc gia Hà Nội đã tận tình đào tạo, cung cấp cho tơi
những kiến thức vơ cùng quý giá, bổ ích và đã tạo những điều kiện tốt nhất cho tơi trong
suốt q trình học tập, nghiên cứu tại trường.
Cuối cùng, tôi xin cảm ơn tất cả những người thân u trong gia đình cùng tồn thể
bạn bè, đồng nghiệp những người đã luôn giúp đỡ, động viên tơi trong q trình học tập và
nghiên cứu chương trình sau đại học tại Đại học Cơng nghệ, ĐHQGHN.
Luận văn này được tài trợ bởi đề tài cấp ĐHQGHN mã số QG-19.23.

iii



LỜI CAM ĐOAN
Tôi xin cam đoan rằng luận văn thạc sĩ Quản lý hệ thống thông tin “Ứng dụng các
mô hình học sâu vào kĩ thuật lọc cộng tác dựa trên mơ hình cho các hệ thống khuyến nghị
thương mại” là cơng trình nghiên cứu của riêng tơi, khơng sao chép lại của người khác.
Trong toàn bộ nội dung của luận văn, những điều đã được trình bày hoặc là của chính cá
nhân tơi hoặc là được tổng hợp từ nhiều nguồn tài liệu. Tất cả các nguồn tài liệu tham khảo
đều có xuất xứ rõ ràng và hợp pháp.
Tơi xin hồn tồn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho
lời cam đoan này.
Hà Nội, ngày … tháng … năm 2020
Tác giả luận văn

Trần Anh Dũng

iv


DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
STT
1

Ký hiệu
RS

Diễn giải
Recommender

Tiếng Việt

Hệ khuyến nghị

System/RecSys
2

U

User

Người dùng

3

I

Item

Sản phẩm

4

IF

Information Filtering

Lọc thông tin

5

CBF


Content-Based Filtering

Lọc thông tin dựa trên nội dung

6

CF

Collaborative Filtering

Lọc thông tin dựa trên cộng tác

7

R

Interaction Matrix/Utility Ma trận ghi nhận đánh giá của người
Matrix

dùng đối với sản phẩm được tương tác

Relevant

Độ phù hợp

9

Sparsity problem


Vấn đề dữ liệu thưa

10

Cold-start problem

Vấn đề khởi động nguội

8

r

11

ML

Machine Learning

Học máy

12

DL

Deep Learning

Học sâu

13


RMSE

Root

Mean

Squared Hàm sai số trung bình bình phương

Error
14

MF

Matrix Factorization

Phân tích thừa số ma trận

v


DANH MỤC HÌNH VẼ
Hình 1.1: Ma trận tương tác Người dùng – Sản phẩm ......................................................... 3
Hình 1.2: Cách thức hoạt động của lọc cộng tác .................................................................. 6
Hình 1.3: Cơ chế hoạt động lọc theo nội dung ..................................................................... 7
Hình 1.4: Cơ chế lọc kết hợp .............................................................................................. 12
Hình 2.1: Quy trình khuyến nghị dựa trên cộng tác ........................................................... 15
Hình 2.2: Lọc cộng tác dựa theo người dùng ..................................................................... 16
Hình 2.3: Lọc cộng tác dựa theo sản phẩm ........................................................................ 17
Hình 2.4: Phân loại kiến trúc hệ khuyến nghị dựa trên các kỹ thuật học sâu .................... 21
Hình 2.5: Mạng noron đa lớp ............................................................................................. 22

Hình 2.6: Bộ mã hóa tự động ............................................................................................. 23
Hình 2.7: Mạng noron tích chập ......................................................................................... 24
Hình 2.8: Mạng noron hồi tiếp ........................................................................................... 25
Hình 2.9: Mạng noron sáng tạo đối nghịch ........................................................................ 25
Hình 2.10: Mơ hình học sâu tăng cường [27]..................................................................... 26
Hình 3.1: Kiến trúc mơ hình Lọc cộng tác sâu ................................................................... 29
Hình 3.2: Vector thưa đại diện cho người dùng u .............................................................. 30
Hình 3.3: Nối vector đặc tính ẩn của các đối tượng để tạo thành vector đặc tính mới ...... 32
Hình 3.4: Hoạt động của lớp ẩn .......................................................................................... 33
Hình 3.5: Kiến trúc mạng sâu MLP.................................................................................... 34
Hình 3.6: Đồ thị hàm sigmoid ............................................................................................ 35
Hình 3.7: Minh họa thuật tốn hồi quy tuyến tính ............................................................. 36
Hình 4.1: Kiến trúc khung phần mềm MxNet .................................................................... 40
Hình 4.2: Số lượng phim xuất bản theo năm ...................................................................... 43
Hình 4.3: Số lượng phim theo từng thể loại ....................................................................... 43
Hình 4.4: Định dạng dữ liệu movies.csv ............................................................................ 44
Hình 4.5: Thống kê bộ dữ liệu ml-20m .............................................................................. 44
Hình 4.6: Thống kê dữ liệu rating theo thể loại phim ........................................................ 45
Hình 4.7: Số lượng rating theo từng thể loại phim ............................................................. 45
Hình 4.8: Định dạng dữ liệu genome_scores.csv ............................................................... 46
Hình 4.9: Ma trận điểm phù hợp Phim - Thẻ ..................................................................... 47
vi


Hình 4.10: Input layer với thơng tin thể loại phim ............................................................. 49
Hình 4.11: Kết quả tiền xử lý dữ liệu genome-scores ........................................................ 50
Hình 4.12: Input layer với thơng tin thể loại phim và thơng tin thẻ phim.......................... 50
Hình 4.13: Biểu đồ RMSE theo Epochs ............................................................................. 53
Hình 4.14: Biểu đồ RMSE với kịch bản khởi động nguội ................................................. 54


vii


DANH MỤC BẢNG BIỂU
Bảng 4-1: So sánh công cụ Colab và Colab Pro ................................................................. 42
Bảng 4-2: Thông số dữ liệu mẫu Movielens-20M ............................................................. 43
Bảng 4-3: Thống kê sự ảnh hưởng của việc thay đổi cấu hình MLP lên giá trị RMSE ..... 51
Bảng 4-4: Thống kê kết quả thí nghiệm ............................................................................. 51
Bảng 4-5: Kết quả thí nghiệm kịch bản cold-start.............................................................. 52

viii


Chương 1: Tổng quan về hệ thống khuyến nghị
1. Giới thiệu
Trong quá trình phát triển của ngành thương mại bán lẻ hàng hóa, dịch vụ, vấn đề
nắm bắt thị hiếu, sở thích của người tiêu dùng là một vấn đề có tính nền tảng, sống cịn của
ngành mà bất kì người bán lẻ nào nếu muốn tồn tại trong thương trường đều cần phải giải
quyết thật tốt. Trước khi máy tính ra đời, những người bán lẻ đã thực hiện nhiều biện pháp
để ghi nhận thói quen của người tiêu dùng như sử dụng các hóa đơn bán hàng để xem xét
các mặt hàng thường được mua sắm cùng nhau, phỏng vấn người mua về sở thích mua sắm
của họ để từ đó đưa ra những biện pháp giúp tối đa hóa doanh thu, tối ưu hóa chi phí của
doanh nghiệp. Ví dụ, khi đi vào một cửa hàng sách quen thuộc, chủ cửa hàng sẽ giới thiệu
cho người khách một vài quyển sách hoặc tờ báo mà người khách đó có thể quan tâm dựa
trên sở thích hoặc thói quen của khách.
Hiện nay với sự phát triển bùng nổ của Internet đã làm xuất hiện các nhà cung cấp
hàng hóa, dịch vụ hoạt động trực tuyến và mạng xã hội cung cấp vô số thông tin và sản
phẩm, dịch vụ mới. Ví dụ, năm 2019 mỗi phút có khoảng 500 giờ phát video clip được tải
lên Youtube [35] , danh mục sản phẩm của Amazon năm 2018 vào khoảng 12.000.000 sản
phẩm [36], năm 2019 số lượng tweet xuất hiện mỗi ngày trên Twitter là 500 triệu dòng

[37],... Với lượng thơng tin đồ sộ như vậy, có thể nói Internet đã làm cho người dùng khơng
cịn có đủ thời gian để xem xét lựa chọn tất cả các thông tin, phim, tạp chí hay bài hát…
Người dùng khơng biết mình nên xem phim gì, đọc cuốn sách nào phù hợp với sở thích,
nhu cầu của bản thân. Hơn nữa, đối với các doanh nghiệp việc phục vụ hàng hóa, dịch vụ
đúng sở thích, thị hiếu của khách hàng giúp tối đa hóa doanh thu, đồng thời giúp lập kế
hoạch dự trữ hàng hóa thích hợp để tối ưu hóa chi phí vận hành, từ đó làm gia tăng lợi
nhuận cho doanh nghiệp.
Trong lĩnh vực xây dựng hệ tư vấn có 2 nhiệm vụ cơ bản cần được giải quyết là dự
đoán xếp hạng cho từng mặt hàng và gợi ý danh sách mặt hàng [1]. Nhiệm vụ dự đoán xếp
hạng (rate prediction) nhằm mục tiêu tối ưu hóa dự đốn mức độ ưa thích của người dùng
đối với từng mặt hàng cụ thể, trong khi đó nhiệm vụ gợi ý danh sách mặt hàng (ranking)
nhằm giải quyết vấn đề gợi ý cho người dùng danh sách mặt hàng mà họ nhiều khả năng
1


có tương tác nhất. Trong hai nhiệm vụ nói trên, nhiệm vụ dự đoán xếp hạng của người dùng
cho sản phẩm đóng vai trị quan trọng vì điểm xếp hạng của người dùng phản ánh mức độ
hài lòng của người dùng đối với sản phẩm/dịch vụ. Trong luận văn sẽ tập trung giải quyết
nhiệm vụ dự đoán xếp hạng của người dùng đối với sản phẩm.
2. Một số khái niệm chung về hệ thống khuyến nghị
Hệ thống khuyến nghị (Recommender System viết tắt là RS) là hệ thống sử dụng các
kỹ thuật và công cụ phần mềm xử lý dữ liệu người dùng và dữ liệu về sản phẩm nhằm đáp
ứng nhu cầu của người dùng về một sản phẩm hoặc dịch vụ nào đó. Trên cơ sở thơng tin
trong quá khứ về hành vi của người dùng, hệ thống thực hiện khai phá thơng tin về sở thích,
thị hiếu tiêu dùng từ đó đưa ra những gợi ý để hỗ trợ người dùng đưa ra quyết định lựa chọn
sản phẩm, dịch vụ đáp ứng đúng sở thích của mình.
Mặt hàng (Item) là thuật ngữ chung để chỉ những gì người dùng có tương tác trong
hệ thống khuyến nghị. Item có thể là sách, phim, truyện, tin tức... Thơng thường hệ thống
khuyến nghị sẽ được xây dựng phù hợp với một loại hình sản phẩm nhất định để đảm bảo
hiệu quả khuyến nghị cho Item đó.

Trên thực tế để thu thập dữ liệu Hồ sơ người dùng (User profile), người ta thường
sử dụng theo hai phương pháp chính là phương pháp phản hồi tường minh (explicit
feedback) và phương pháp phản hồi ẩn (implicit feedback). Đối với phương pháp phản hồi
tường minh, hệ thống yêu cầu người dùng thực hiện xếp hạng cụ thể cho từng Item để xây
dựng hồ sơ người dùng. Phương pháp này cung cấp dữ liệu người dùng trực tiếp cho hệ
thống khuyến nghị (không phải thực hiện các công đoạn biến đổi trung gian) và kết quả
khuyến nghị được đánh giá là đáng tin cậy hơn cả [1]. Tuy được cho là đem lại kết quả
khuyến nghị đáng tin cậy hơn nhưng phương pháp này yêu cầu người dùng phải thực hiện
thêm một số thao tác với hệ thống, do đó trong một số trường hợp làm giảm trải nghiệm
người dùng. Bên cạnh đó, tâm lý chung của người dùng không muốn chia sẻ quá nhiều
thông tin mang tính chất riêng tư do đó làm cho phương thức thu thập phản hồi tường minh
thường gặp khó khăn trong quá trình triển khai thực tế.
Nhằm khắc phục mặt hạn chế của phương pháp thu thập phản hồi tường minh,
phương pháp thu thập phản hồi ẩn ghi nhận những dấu vết mà người dùng để lại trên hệ
2


thống như lịch sử mua hàng, lịch sử truy cập website, thời gian xem một trang web, số lần
click chuột vào các siêu liên kết,… để suy luận thông tin về sở thích của người dùng.
Phương pháp này giúp cải thiện trải nghiệm của người dùng đối với hệ thống tuy nhiên khả
năng mơ tả sở thích của người dùng được cho là không tốt bằng phương pháp phản hồi
tường minh do hệ thống phải thực hiện các khâu biến đổi trung gian để trích xuất thơng tin
từ hành vi của người dùng [1].
Ma trận tương tác Người dùng – Sản phẩm (Utility Matrix/User – Item matrix) là
một cơ sở dữ liệu mơ tả sở thích của mỗi User với từng Item trong hệ thống. Về mặt hình
thức, cơ sở dữ liệu này có thể biểu diễn dưới dạng ma trận trong đó mỗi hàng tương ứng
với một User, mỗi cột tương ứng với một Item, giá trị tại mỗi ô của ma trận chính là giá trị
rating của User cho Item đó.
Mặt hàng 1


Mặt hàng 2

Mặt hàng 3

Mặt hàng n

Người dùng 1

1

3

5



?

Người dùng 2

2

?

4



2














Người dùng m

?

2

1



3

𝑹
Hình 1.1: Ma trận tương tác Người dùng – Sản phẩm
Xuất phát từ nguyên nhân tâm lý, người dùng không phải khi nào cũng đánh giá tất
cả các Item mà họ đã từng trải nghiệm, thông thường người dùng chỉ đánh giá Item trong
trạng thái tích cực (rất thích) hoặc tiêu cực (rất ghét). Vì vậy trên thực tế ma trận tương tác
Người dùng – Sản phẩm nói trên thường bị khuyết giá trị ở rất nhiều ô, vấn đề này được

gọi là vấn đề dữ liệu thưa (data sparsity)[2]. Vấn đề dữ liệu thưa của ma trận tương tác dẫn
đến hệ quả các thuật toán khuyến nghị dựa trên bộ nhớ (memory-based recommendation
algorithms)[1] hoạt động khơng hiệu quả. Bên cạnh đó, trường hợp trong hệ thống xuất
hiện người dùng hoặc item mới chưa có tương tác nào thì ma trận Người dùng – Sản phẩm
sẽ xuất hiện các hàng/cột bị trống hoàn toàn. Vấn đề này được gọi là vấn đề khởi động
nguội (cold-start problem)[2] xảy ra đối với các hệ khuyến nghị dựa trên cộng tác khi hệ
thống gặp phải những item hồn tồn khơng có tương tác nào, hệ khuyến nghị không thể
3


khai thác được thơng tin sở thích giống nhau giữa các nhóm người dùng/item để đưa ra
khuyến nghị.
3. Phương thức hoạt động của Hệ khuyến nghị
Trong thực tế, khi người tiêu dùng thực hiện hành vi mua hàng, việc ra quyết định
của họ thường được đưa ra theo hai cách tiếp cận chính: Một là xem xét những thơng tin
chi tiết về sản phẩm như tính năng, cơng dụng, thành phần,… tùy thuộc vào mức độ phù
hợp với nhu cầu sử dụng để đưa ra quyết định. Hai là người dùng có thể tham khảo ý kiến
của những người xung quanh về mức độ hài lòng đối với sản phẩm để đưa ra quyết định
mua sắm của mình.
Xuất phát từ quan sát nêu trên, hệ thống RS mô phỏng lại quá trình ra quyết định của
người dùng theo hai cách tiếp cận chính là khuyến nghị dựa trên lọc theo nội dung và
khuyến nghị dựa trên lọc theo cộng tác.
Trong cách tiếp cận dựa trên lọc theo nội dung, hệ thống RS dựa trên lịch sử tương
tác của người dùng với đối tượng và thơng tin về thuộc tính của đối tượng (nội dung của
đối tượng) để tìm ra các thuộc tính (đặc tính) có ảnh hưởng lớn đến đánh giá của người
dùng đó. Đặc điểm sở thích của người dùng dựa trên đặc tính của sản phẩm được biểu diễn
bởi vector 𝑃𝑟𝑜𝑓𝑖𝑙𝑒(𝑈) = (𝑤1 , 𝑤2 , … , 𝑤𝑛 ) có các phần tử tương ứng với các yếu tố nội dung
cấu tạo nên sản phẩm, giá trị trọng số 𝑤𝑖 mô tả tầm quan trọng của thành phần nội dung thứ
𝑖 ảnh hưởng tới sở thích của người dùng. Tương tự với việc xây dựng User Profile, hệ thống
RS sử dụng các kỹ thuật Truy hồi thông tin (Information Retrieval – IR) nhằm phân tích đối

tượng I dưới dạng vector trọng số 𝐶𝑜𝑛𝑡𝑒𝑛𝑡(𝐼) = (𝑤1 , 𝑤2 , … , 𝑤𝑛 ) của các thành phần nội
dung. Ví dụ, thơng thường thơng tin mơ tả về đối tượng thường được thể hiện dưới dạng
văn bản như các đoạn văn, bài viết, mẩu tin ngắn,… hệ thống RS sẽ sử dụng các kỹ thuật
IR trích xuất đặc tính như từ khóa, n-grams, thực thể,… để xây dựng mơ hình đối tượng
dưới dạng vector từ khóa [3]. Như vậy, theo cách tiếp cận lọc dựa trên nội dung, hệ thống
RS đã thực hiện ánh xạ sở thích của người dùng và nội dung của đối tượng vào cùng một
không gian vector (khơng gian thuộc tính của sản phẩm). Do đó để đánh giá độ phù hợp
giữa sản phẩm I với người dùng U, hệ thống RS có thể sử dụng độ đo cosine để đo lường
sự tương đồng giữa 2 vector:
4


⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ , ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗
𝑟(𝑈, 𝐼) = 𝑐𝑜𝑠(𝑃𝑟𝑜𝑓𝑖𝑙𝑒(𝑈)
𝐶𝑜𝑛𝑡𝑒𝑛𝑡(𝐼))

(1)

Trong cách tiếp cận dựa trên lọc theo cộng tác, hệ thống RS khai phá những nhóm
người dùng “tương tự” nhau dựa trên hành vi quá khứ của người dùng được ghi nhận trong
ma trận tương tác Người dùng – Sản phẩm. Hệ thống RS sẽ dự đoán độ phù hợp 𝑟(𝑈, 𝐼)
giữa người dùng hiện tại 𝑈 với đối tượng 𝐼 thông qua độ phù hợp 𝑟(𝑈𝑗 , 𝐼) của những người
dùng 𝑈𝑗 khác có cùng sở thích với 𝑈.
3.1.

Phát biểu bài tốn khuyến nghị
Inputs:
-

Cho 𝑈 là tập hợp tất cả người dùng trong hệ thống; mỗi người dùng 𝑢𝑖 ∈ 𝑈 có

các đặc điểm 𝑢𝑖 = {𝑢𝑖1 , 𝑢𝑖2 , … 𝑢𝑖𝑘 }

-

Cho 𝐼 là tập tất cả các đối tượng (sách, bài hát, phim…); mỗi đối tượng 𝑣𝑗 ∈ 𝑉
có các đặc điểm 𝑣𝑗 = {𝑣𝑗1 , 𝑣𝑗2 , … 𝑣𝑗𝑥 }.

-

Dữ liệu xếp hạng 𝑟𝑖𝑗 ∈ ℝ

là giá trị xếp hạng của người dùng 𝑢𝑖 đối với sản

phẩm 𝑣𝑗 .
Output:
-

Giá trị xếp hạng dự đoán 𝑟̂𝑖𝑗 của người dùng 𝑢𝑖 cho những đối tượng 𝑣𝑗 chưa có
tương tác (xếp hạng).

Để giải bài toán này cần xây dựng hàm 𝑟(𝑢𝑖 , 𝑣𝑗 ) ước lượng giá trị xếp hạng của
người dùng 𝑢𝑖 cho đối tượng 𝑣𝑗 sao cho sai số giữa giá trị dự đoán 𝑟̂𝑖𝑗 với các giá trị xếp
hạng 𝑟𝑖𝑗 đã biết trong ma trận tương tác là nhỏ nhất.
3.2.

Các phương pháp tiếp cận xây dựng hệ thống khuyến nghị.
Sau đây chúng ta xem xét về tổng quan các phương pháp tiếp cận để xây dựng hệ

thống khuyến nghị dựa theo [1].
3.2.1. Lọc nội dung

Hệ thống khuyến nghị ghi nhận user profile dưới dạng vector 𝑢
⃗ = (𝑢1 , 𝑢2 , … , 𝑢𝑛 ),
trong đó 𝑢𝑖 là trọng số thể hiện mức độ quan tâm của người dùng đối với từng thuộc tính
của sản phẩm. Vector item profile 𝑣 = (𝑣1 , 𝑣2 , … , 𝑣𝑛 ) biểu diễn thông tin sản phẩm thông
5


qua các thuộc tính 𝑣𝑖 . Như vậy thơng tin về sở thích của người dùng và thơng tin của sản
phẩm được ánh xạ vào cùng không gian vector các thuộc tính của sản phẩm, sự phù hợp
giữa sở thích của người dùng và sản phẩm được đo bằng góc lệch giữa 2 vector profile như
minh họa trong Hình 1.2.

Hình 1.2: Cách thức hoạt động của lọc cộng tác
Để đánh giá độ tương đồng giữa 2 vector 𝑢
⃗ và 𝑣 để đưa ra khuyến nghị, hệ thống so
sánh bằng cosine góc lệch giữa 2 vector:
𝑢
⃗𝑣
𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦 = 𝑐𝑜𝑠(𝜃) =
=
‖𝑢
⃗ ‖ ⋅ ‖𝑣 ‖

∑𝑛𝑖=1 𝑢𝑖 . 𝑣𝑖
𝑛

𝑛

√∑𝑖=1 𝑢𝑖2 . √∑𝑖=1 𝑣𝑖2


(2)

6


Đã thích

Các bộ phim
tương tự nhau

Khuyến nghị

Hình 1.3: Cơ chế hoạt động lọc theo nội dung
Những ưu điểm của phương pháp khuyến nghị dựa trên nội dung:
Một là, hệ thống khơng u cầu cần có q nhiều dữ liệu từ những người dùng khác để đạt
được độ chính xác khuyến nghị chấp nhận được. Đối với phương pháp lọc dựa trên cộng
tác hệ thống RS cần phải phân tích tồn bộ dữ liệu tương tác để tìm ra các quy luật (là
những sản phẩm được người dùng ưa thích) thì mới có thể đưa ra gợi ý, tuy nhiên với
phương pháp lọc dựa trên nội dung thì hệ thống chỉ dựa trên thông tin nội dung sản phẩm
và dữ liệu tương tác của từng người dùng cụ thể để đưa ra gợi ý.
Hai là, có thể đưa ra khuyến nghị về các sản phẩm mới dựa trên thông tin mô tả có sẵn mà
khơng cần phải có dữ liệu tương tác từ người dùng. Điều này xuất phát từ cơ chế hoạt động
của lọc nội dung dựa trên phân tích về nội dung cấu tạo nên sản phẩm để đưa ra gợi ý, do
đó khi một sản phẩm mới xuất hiện trong hệ thống thì chỉ cần nội dung của sản phẩm này
“tương tự” với những sản phẩm trước đó đã được người dùng ưa thích sẽ được hệ thống
khuyến nghị cho người dùng.
Ba là, trong trường hợp người dùng có những sở thích đặc thù dựa trên nội dung của sản
phẩm nhưng những sản phẩm này lại không phổ biến trong dữ liệu ma trận tương tác thì hệ
thống vẫn có khả năng khám phá được nhờ thơng tin nội dung.
7



Bốn là, mơ hình có khả năng giải thích tốt (self-explanable) về những nhân tố có ảnh hưởng
đến sở thích của người dùng thông qua các giá trị trọng số của vector profile của người
dùng. Giá trị trọng số càng lớn chứng tỏ mức độ quan tâm càng cao của người dùng đối với
yếu tố nội dung của sản phẩm, nhờ vậy nhà kinh doanh có thể dựa vào thơng tin này để
tăng cường những đặc tính/nội dung phù hợp với người dùng.
Bên cạnh những ưu điểm đã nêu, phương pháp khuyến nghị dựa trên nội dung gặp
một số nhược điểm như sau:
Hệ thống yêu cầu chất lượng thông tin nội dung của sản phẩm cao: Đối với các sản phẩm
multimedia (phim ảnh, âm nhạc,…) hiện nay chưa có các phương pháp rút trích thơng tin
có hiệu quả với những loại dữ liệu này, do đó việc xây dựng vector thuộc tính cho những
sản phẩm dạng này gặp rất nhiều khó khăn, chất lượng thơng tin khơng tốt. Khi chất lượng
thơng tin mơ tả đối tượng có chất lượng kém hoặc bị lỗi thì phương pháp khuyến nghị dựa
trên nội dung hoạt động không hiệu quả.
Kết quả khuyến nghị do hệ thống đưa ra gặp hiện tượng “cứng nhắc” (Overspecialization):
Hệ thống chỉ gợi ý được các sản phẩm có các đặc tính đúng với profile của từng người dùng
mà khơng tận dụng được thông tin từ những người dùng khác có sở thích tương tự.
3.2.2. Lọc cộng tác
3.2.2.1. Lọc cộng tác dựa trên bộ nhớ (Memory-based Collaborative Filtering)
Dựa trên giá trị xếp hạng của người dùng trong ma trận Người dùng – Sản phẩm, hệ
thống tính tốn độ tương đồng giữa người dùng hiện tại với những người dùng tương tự
theo thủ tục gồm 02 bước như sau:
Bước 1: Hệ thống tính tốn độ tương tự giữa những người dùng.
𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦 (𝑥, 𝑦) = 𝑐𝑜𝑠(𝑥 , 𝑦) =

𝑥⋅𝑦
=
‖𝑥 ‖2 × ‖𝑦‖2


𝛴𝑟𝑥,𝑖 ⋅ 𝑟𝑦,𝑖
2
2
√𝛴𝑟𝑥,𝑖
√𝛴𝑟𝑦,𝑖

(3)

Bước 2: Tính tốn giá trị xếp hạng dự đốn theo cơng thức:

8


𝑟(𝑎, 𝑖 ) = 𝑟̅𝑎 +

𝑛
(𝑟𝑢,𝑖 − 𝑟̅𝑢 ) × 𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦(𝑥, 𝑦)
𝛴𝑖=1
𝑛
𝛴𝑖=1
𝑠𝑖𝑚𝑖𝑙𝑎𝑟𝑖𝑡𝑦(𝑥, 𝑦)

(4)

Những ưu điểm của phương pháp lọc cộng tác dựa trên bộ nhớ:
Một là, hệ thống RS không yêu cầu cần có tri thức chuyên biệt miền để xây dựng mơ hình
người dùng/sản phẩm. Bản chất của phương pháp lọc dựa trên cộng tác là khai thác thông
tin về sở thích của nhóm người dùng có sở thích giống nhau về những sản phẩm nhất định,
do đó khi phát hiện được những sản phẩm được ưa thích thì hệ thống RS hồn tồn có thể
đưa ra gợi ý trực tiếp đến sản phẩm đó mà khơng cần quan tâm đến bản chất (nội dung) của

sản phẩm đó. Điều này giúp cho hệ thống có khả năng mở rộng khuyến nghị cho nhiều loại
đối tượng có bản chất khác nhau.
Hai là, có khả năng tận dụng thơng tin của những người dùng tương tự để đưa ra khuyến
nghị (khai thác xu hướng, sở thích của những nhóm người dùng giống nhau).
Tuy nhiên phương pháp dựa trên bộ nhớ còn tồn tại tương đối nhiều điểm hạn chế
như sau:
Một là, hệ thống ít có khả năng đưa ra được các khuyến nghị đặc thù cho sở thích của từng
người dùng, kết quả khuyến nghị đưa ra bởi hệ thống lọc cộng tác là những sản phẩm phổ
biến đối với người dùng trong hệ thống.
Hai là, chất lượng khuyến nghị dựa trên lọc cộng tác dựa trên bộ nhớ hoạt động kém hiệu
quả khi dữ liệu tương tác quá thưa thớt (data sparsity). Trên thực tế tâm lý của người dùng
thường chỉ đánh giá sản phẩm khi ở trong trạng thái tâm lý rất tích cực hoặc rất tiêu cực đối
với sản phẩm, do đó dữ liệu ma trận tương tác Người dùng – Sản phẩm thường gặp hiện
tượng khuyết giá trị ở rất nhiều vị trí do người dùng khơng thực hiện đánh giá đối với sản
phẩm đó. Trong trường hợp này, việc xác định độ tương tự giữa những người dùng bằng
độ đo cosine trở nên không hiệu quả.
Ba là, phương pháp lọc cộng tác dựa trên bộ nhớ có thời gian tính tốn lâu và u cầu bộ
nhớ lớn: Phương pháp dựa trên bộ nhớ thuộc nhóm phương pháp instance-based nghĩa là
với mỗi người dùng 𝑢 hệ thống phải thực hiện xây dựng một mơ hình riêng dựa trên toàn

9


bộ dữ liệu ma trận tương tác để tìm ra giá trị xếp hạng trung bình 𝑟̅𝑎 của tập người dùng có
cùng sở thích với 𝑢 trước khi dự đốn giá trị xếp hạng theo công thức (2).
3.2.2.2. Lọc cộng tác dựa trên mơ hình (Model-based Collaborative Filtering):
Nhằm khắc phục nhược điểm về thời gian tính tốn và u cầu dung lượng bộ nhớ
lớn, người ta đã phân biệt rõ ràng hai tác vụ chính trong phương pháp lọc cộng tác: Một là
tác vụ xây dựng mơ hình từ dữ liệu huấn luyện; Hai là tác vụ tính tốn kết quả khuyến nghị
từ mơ hình nhận được [4]. Cụ thể, hệ thống RS sử dụng các thuật toán học máy có giám sát

hoặc khơng có giám sát để huấn luyện mơ hình rút gọn mơ phỏng sở thích của người dùng.
Các thuật tốn học máy có thể là cây quyết định, bộ phân loại Bayes, hồi quy, máy vector
hỗ trợ (support vector machines), mạng noron…
Sau khi nhận được mơ hình từ bước huấn luyện, hệ thống RS sử dụng trực tiếp mơ
hình này để đưa ra kết quả khuyến nghị.
Những ưu điểm của phương pháp dựa trên mơ hình so với phương pháp dựa trên bộ
nhớ là:
Một là tiết kiệm bộ nhớ của máy tính: Thơng thường sau q trình huấn luyện mơ hình từ
dữ liệu tương tác, kích thước của mơ hình thu được là rất nhỏ so với với kích thước của dữ
liệu gốc. Trong khi đó phương pháp dựa trên bộ nhớ yêu cầu lưu trữ toàn bộ ma trận tương
tác vào bộ nhớ máy tính để thực hiện tính tốn lại kết quả khuyến nghị cho từng người
dùng.
Hai là tốc độ tính tốn ra kết quả tính tốn nhìn chung được rút ngắn hơn khá nhiều so với
phương pháp dựa trên bộ nhớ. Nguyên nhân cũng xuất phát từ kích thước mơ hình sau khi
huấn luyện là tương đối nhỏ, do đó thời gian cần thiết để truy vấn mơ hình cũng ít hơn
nhiều so với việc truy vấn lại toàn bộ dữ liệu huấn luyện.
3.2.3. Lọc kết hợp/lai ghép (Hybrid)
Nhằm kết hợp ưu điểm của cả hai phương thức khuyến nghị dựa trên lọc cộng tác
và khuyến nghị dựa trên lọc nội dung, người ta đã tìm cách kết hợp kết quả gợi ý từ cả hai
phương pháp theo một cách nào đó. Cụ thể một số phương pháp lai ghép đã được nghiên
cứu như sau:
10


Lai ghép theo trọng số (Weighted): Hệ thống RS sử dụng giá trị xếp hạng từ thuật
toán lọc theo nội dung và giá trị xếp hạng từ thuật toán lọc cộng tác để kết hợp lại thành
một giá trị xếp hạng duy nhất bằng cách tính tổng theo trọng số đối với từng phương pháp.
Claypool và cộng sự trong [5] đã xây dựng hệ thống khuyến nghị tin tức P-tango bao gồm
02 bộ phận khuyến nghị dựa trên nội dung và khuyến nghị dựa trên cộng tác. Ban đầu kết
quả khuyến nghị đưa ra bởi từng bộ khuyến nghị được gán trọng số bằng nhau, tuy nhiên

trọng số sẽ được điều chỉnh theo kết quả khuyến nghị của bộ phận nào đưa ra là chính xác
hoặc khơng chính xác. Ưu điểm của phương pháp khuyến nghị lai ghép theo trọng số là
tính tường minh của kết quả khuyến nghị.
Lai ghép bằng cách chuyển đổi (Switching): Hệ thống RS tự động chuyển đổi qua
lại giữa các phương pháp khuyến nghị tùy thuộc vào tình huống cụ thể. Một ví dụ là hệ
thống DailyLearner [6] gợi ý tin tức cho người dùng chuyển đổi giữa hai mơ hình NearestNeighbor (short-term model) và mơ hình Nạve Bayesian Classifier (long-term model) để
dự đốn sở thích về tin tức của người dùng trong ngắn hạn và dài hạn tùy thuộc vào mơ
hình nào đem lại kết quả dự đốn có độ tin cậy cao hơn.
Lai ghép hỗn hợp (Mixed): Đối với bài toán gợi ý danh sách sản phẩm cho người
dùng, hệ thống RS có thể tạo ra một danh sách khuyến nghị từ kết quả của nhiều thuật toán
khác nhau.
Lai ghép bằng cách kết hợp nhiều đặc tính (Feature combination): Các đặc tính trích
xuất từ nhiều nguồn dữ liệu khác nhau được đưa vào một thuật toán khuyến nghị duy nhất
đưa ra kết quả. Ví dụ hệ thống Pipper [7] sử dụng giá trị xếp hạng (ratings) như là một đặc
tính đầu vào của thuật toán khuyến nghị dựa trên nội dung.
Lai ghép bằng việc xếp tầng (Cascaded): Hệ thống RS sử dụng một thuật toán
khuyến nghị để điều chỉnh kết quả tư vấn được sinh ra bởi một thuật toán khác. Nhờ nguyên
lý sàng lọc kết quả này mà hệ thống RS lai xếp tầng có khả năng chống nhiễu (tolerant to
noise) khá tốt. Ví dụ hệ thống khuyến nghị nhà hàng Entree Chicago [8] dựa trên hệ khuyến
nghị tri thức (knowledge-based RS) FindMe để hiệu chỉnh kết quả đưa ra bởi thuật toán
lọc cộng tác.

11


Lai ghép tăng cường đặc tính (Feature Augmentation): Trong phương pháp lai ghép
này, kết quả của một thuật toán khuyến nghị được sử dụng làm đầu vào bổ trợ cho một
thuật toán khuyến nghị khác bên cạnh các đầu vào từ dữ liệu thơ có sẵn.

Dữ liệu đầu

vào

Hệ khuyến nghị dựa trên
lọc cộng tác

Bộ kết hợp

Dữ liệu đầu
vào

Khuyến
nghị

Hệ khuyến nghị dựa trên
lọc nội dung

Hình 1.4: Cơ chế lọc kết hợp
4. Các tiêu chuẩn đánh giá hệ khuyến nghị
Phụ thuộc vào đặc thù của từng trường hợp sử dụng hệ khuyến nghị, các nhà khoa
học đã đưa ra nhiều tiêu chí đánh giá khác nhau để phù hợp với trường hợp sử dụng cụ thể.
Một cách tổng quan, các tiêu chí đánh giá được chia thành 02 nhóm chính như sau [1]:
-

Nhóm tiêu chí đánh giá độ chính xác về mặt thống kê (statistical accuracy metrics):
Nhóm tiêu chí này phục vụ việc đánh giá độ chính xác giữa giá trị xếp hạng dự đoán
đưa ra bởi thuật toán khuyến nghị và giá trị xếp hạng thực tế của người dùng. Một
số tiêu chí đánh giá thuộc nhóm này là tiêu chí MAE, RMSE, trong đó tiêu chí RMSE
được sử dụng rất phổ biến sau khi được hãng Netflix chọn làm tiêu chí đánh giá
trong cuộc thi The Netflix prize.


-

Nhóm tiêu chí đánh giá độ chính xác trong hỗ trợ ra quyết định (decision support
accuracy metrics): Đối với trường hợp sử dụng hệ thống khuyến nghị để gợi ý cho
người dùng một danh sách các đối tượng ưa thích thì mối quan tâm của người dùng
là khả năng gợi ý đúng đối tượng họ cần, do đó bài tốn khuyến nghị được chuyển
thành bài toán phân lớp đối tượng. Trong trường hợp này, các tiêu chí đánh giá độ
chính xác phân loại như Precision, Recall và F-measure tỏ ra phù hợp.

12


Trong phạm vi luận văn này, tác giả hướng đến bài toán tối ưu khả năng dự đoán giá
trị xếp hạng của người dùng đối với một sản phẩm do đó lựa chọn loại tiêu chuẩn đánh giá
độ chính xác về mặt thống kê là phù hợp.
4.1.

Trung bình lỗi tuyệt đối
Sai số tuyệt đối trung bình (Mean Absolute Error – MAE) được đo lường bằng giá

trị trung bình của sai số tuyệt đối giữa giá trị xếp hạng thực tế và giá trị xếp hạng dự đốn
theo cơng thức sau:
𝑁

1
𝑀𝐴𝐸 = ∑|𝑟𝑖 − 𝑟̂𝑖 |
𝑁

(5)


𝑖=1

Ưu điểm của tiêu chuẩn trung bình lỗi tuyệt đối: Là tiêu chuẩn đánh giá dễ hiểu,
phép tốn dễ thực hiện, bên cạnh đó tiêu chuẩn này đã được nghiên cứu kỹ lưỡng và áp
dụng rộng rãi để đánh giá sự khác biệt về mặt thống kê giữa hai hệ thống khác nhau. Tuy
nhiên tiêu chuẩn trung bình lỗi chỉ phù hợp với bài tốn hồi quy, ước lượng thống kê mà
chưa phù hợp với một số bài toán khuyến nghị cụ thể khác như bài toán gợi ý danh sách N
sản phẩm cho người dùng.
4.2.

Sai số bình phương trung bình
Sai số bình phương trung bình theo căn bậc hai (Root Mean Square Error – RMSE)

được định nghĩa là căn bậc hai của trung bình bình phương sai số giữa giá trị xếp hạng thực
tế và giá trị xếp hạng dự đoán:
𝑅𝑀𝑆𝐸 = √

2
∑𝑁
𝑖=1(𝑟𝑖 − 𝑟̂𝑖 )
𝑁

(6)

So sánh với tiêu chuẩn MAE thì tiêu chuẩn RMSE có tính nhấn mạnh các sai số có
giá trị lớn hơn 1.
Vào năm 2007, tiêu chuẩn RMSE đã được lựa chọn làm tiêu chuẩn đánh giá trong
cuộc thi The Netflix Prize nhằm tìm ra những mơ hình mới có khả năng dự đoán giá trị xếp
hạng của người dùng vượt trội hơn mơ hình Cinematch của hãng Netflix [9].
13



Trong chương này chúng ta đã tìm hiểu những khái niệm cơ bản và phát biểu bài
toán khuyến nghị cùng với các phương pháp tiếp cận xây dựng và đánh giá các thuật toán
khuyến nghị. Trong chương tiếp theo chúng ta sẽ đi sâu vào các mơ hình khuyến nghị cộng
tác sử dụng kỹ thuật học sâu và đề xuất một mơ hình ứng dụng mạng học sâu MLP (MultiLayer Perceptron) cho hệ khuyến nghị.

14


Chương 2: Hệ khuyến nghị dựa trên lọc cộng tác sử dụng kỹ thuật học sâu
1. Bài toán khuyến nghị dựa trên cộng tác
Inputs:
-

Tập hợp người dùng 𝑈 = {𝑢1 , 𝑢2 , … , 𝑢𝑀 }

-

Tập hợp sản phẩm 𝐼 = {𝑖1 , 𝑖2 , … , 𝑖𝑁 }

-

Ma trận 𝑅 = (𝑟𝑖𝑗̇ ) với 𝑖 = 1, ⋯ , 𝑀; 𝑗 = 1, ⋯ , 𝑁 thông tin tương tác giữa tập
người dùng 𝑈 và tập sản phẩm 𝐼. Trong đó 𝑟𝑖𝑗̇ là đánh giá của người dùng 𝑢𝑖 đối
với sản phẩm 𝑖𝑗 . Nếu người dùng 𝑢𝑖 chưa đánh giá hoặc chưa từng biết đến sản
phẩm 𝑖𝑗 thì 𝑟𝑖𝑗 = ∅.

Output:
-


Ma trận đầy đủ 𝑅, tức là với ∀𝑟𝑖𝑗 ∈ R, 𝑟𝑖𝑗 ≠ ∅.

Mơ hình lọc cộng tác
Dự đoán giá trị xếp hạng

Ma trận tương tác Người dùng - Sản phẩm

Hình 2.1: Quy trình khuyến nghị dựa trên cộng tác
Nhằm giải quyết bài tốn khuyến nghị nói trên có hai cách tiếp cận chính là Lọc
cộng tác dựa trên bộ nhớ (Memory-based CF/Neighborhood-based CF) [1]và Lọc cộng tác
dựa trên mơ hình (Model-based CF)[1].
1.1.

Lọc cộng tác dựa vào bộ nhớ
Kỹ thuật lọc cộng tác dựa trên bộ nhớ bao gồm 02 bước chính:

-

Bước 1: Tính tốn độ tương tự giữa người dùng/sản phẩm đang xét với những người
dùng lân cận với dữ liệu từ ma trận tương tác.

15


𝑠(𝑎, 𝑢) =

𝑛
(𝑟𝑎,𝑖 − 𝑟̅𝑎 )(𝑟𝑢,𝑖 − 𝑟̅𝑢 )
𝛴𝑖=1

2

𝑛
𝑛
√𝛴𝑖=1
(𝑟𝑎,𝑖 − 𝑟̅𝑎 ) √𝛴𝑖=1
(𝑟𝑢,𝑖 − 𝑟̅𝑢 )

(7)

2

Trong đó: 𝑟𝑎,𝑖 là điểm xếp hạng cho mặt hàng 𝑖 của người dùng 𝑎, 𝑟̅𝑎 là điểm xếp
hạng trung bình của người dùng 𝑎 cho tất cả các mặt hàng mà anh ta đã đánh giá.
-

Bước 2: Tính giá trị đánh giá (rating) dự đốn.
𝑟(𝑎, 𝑖 ) = 𝑟̅𝑎 +

𝑛
(𝑟𝑢,𝑖 − 𝑟̅𝑢 ) × 𝑠(𝑎, 𝑢)
𝛴𝑖=1
𝑛
𝛴𝑖=1
𝑠(𝑎, 𝑢)

(8)

Kỹ thuật lọc cộng tác dựa trên bộ nhớ có thể thực hiện thơng qua người dùng và
thơng qua đối tượng:

Kỹ thuật dựa trên người dùng: Kỹ thuật này tính tốn độ tương đồng giữa những
người dùng đã từng rating những sản phẩm giống nhau bằng cách so sánh xếp hạng
của họ trên cùng một mặt hàng. Giá trị rating dự đoán cho mặt hàng đang xét của
người dùng hiện tại bằng giá trị rating trung bình đối với mặt hàng đó nhân với trọng
số đo mức độ tương đồng của người dùng hiện tại những người dùng tương tự.

A
Tương quan cao

-

B

C
Hình 2.2: Lọc cộng tác dựa theo người dùng
16


×