GIẢI PHÁP XÂY DỰNG HỆ THỐNG GỢI Ý BÀI BÁO KHOA HỌC BẰNG
PHƯƠNG PHÁP TẬP HỢP CÁC MÔ HÌNH PHÂN RÃ MA TRẬN
Sử Kim Anh, Nguyễn Thái Nghe
Trường Đại học Cần Thơ
Khu 2, Đường 3/2, TP. Cần Thơ
[email protected], [email protected]
TÓM TẮT— Hệ thống gợi ý được ứng dụng để gợi ý những mục tin (items) cho người dùng bằng cách dựa vào dữ liệu về hành vi trong
quá khứ của người dùng để dự đoán những mục tin mới trong tương lai mà họ có thể thích. Trong nghiên cứu này, chúng tôi đề xuất
giải pháp xây dựng hệ thống gợi ý bài báo khoa học nhằm gợi ý cho bạn đọc những bài báo mới được hệ thống dự đoán là phù hợp với
sở thích và lĩnh vực nghiên cứu của họ.
Để xây dựng hệ thống, trước hết chúng tôi đề xuất phương pháp thu thập thông tin phản hồi (feedbacks) từ người dùng, sau đó đề xuất
sử dụng phương pháp tập hợp các mô hình phân rã ma trận để dự đoán các phản hồi đó. Do mỗi bài báo khoa học chỉ phù hợp cho một
số đối tượng nhất định trong cùng lĩnh vực (chuyên ngành) nên chúng tôi cũng đề xuất áp dụng phương pháp gợi ý lọc theo ngữ cảnh
đầu ra trên các kết quả đã được dự đoán từ đó gợi ý top-N bài báo phù hợp. Sau khi xây dựng xong mô hình gợi ý, bước kế đến là việc
phân tích, thiết kế và cài đặt hệ thống quản lý bài báo đồng thời tích hợp giải thuật đã xây dựng vào hệ thống. Khi đã có hệ thống hoàn
chỉnh, chúng tôi thu thập ý kiến phản hồi từ người dùng thực để đánh giá hiệu quả. Kết quả cho thấy khả năng gợi ý phù hợp cho người
dùng đạt độ tin cậy 80%. Hệ thống đang được thử nghiệm trên dữ liệu thực lấy từ hệ thống quản lý các bài báo của trường Đại học Cần
Thơ.
Từ khóa— Phân rã ma trận, hệ thống gợi ý, hệ thống quản lý bài báo, gợi ý bài báo khoa học.
I.
GIỚI THIỆU
Hiện nay, bên cạnh công tác giảng dạy thì nghiên cứu khoa học là một trong hai nhiệm vụ quan trọng của bất cứ một
trường đại học nào. Hoạt động nghiên cứu khoa học là tất yếu trước xu thế phát triển ngày một sâu và rộng trên tất cả lĩnh
vực của thế giới. Do đó, để đảm bảo chất lượng đào tạo thì vấn đề nghiên cứu khoa học phải được đầu tư xuyên suốt, song
hành với quá trình đào tạo của mình, chính vì thế mà các công trình khoa học của các trường cũng không ngừng tăng lên.
Với lượng bài ngày càng tăng, việc tìm kiếm tốn thời gian hơn thì việc tự động gợi ý bài báo thật sự đáp ứng yêu cầu
nghiên cứu và tìm kiếm thông tin của từng cán bộ hoặc sinh viên đồng thời phù hợp với chuyên ngành, trình độ, và lĩnh
vực nghiên cứu của người sử dụng là vấn đề rất có ý nghĩa và cần thiết. Bên cạnh đó, Hệ thống gợi ý hiện nay được phát
đoán xếp hạng (hay nói cách khác là đo tính hữu ích) của bài báo ứng với người dùng thì người ta đưa ra hàm tiện ích rˆ :
1
UxI
R trong đó R là tập được thứ tự toàn phần (ví dụ số nguyên dương hoặc số thực trong tập xác định). Với mỗi
người dùng u Є U, chúng ta có thể chọn được mục (item) i’Є I sao cho hàm tiện ích của người dùng là lớn nhất.
(1)
Tập users U (u ∈ U ; |U| = n), tập items I (i ∈ I; | I | = m), và rui ∈ R là xếp hạng của user u cho item i. Trong hệ thống
gợi ý, tính tiện ích của mục tin (item) thường biểu thị mức độ quan tâm của người dùng tới một mặt hàng cụ thể thông qua
trọng số; ví dụ An đánh giá bài báo Số 4 có trọng số là 4/5 như trong bảng 1.
Bảng 1.
Item
User
An
Bình
Chi
Lan
Một ví dụ về ma trận trọng số (đánh giá) của hệ gợi ý
Bài báo 1
4
∅
2
3
là nó không cần thiết phải tạo ra các hồ sơ tường minh (explicit feedback) cho người dùng. Để gợi ý được các mục tin, hệ
thống CF cần so sánh các đối tượng cơ bản khác nhau như các mục tin (items) và người dùng (users). Với tiếp cận lọc
cộng tác có nhiều phương pháp sử dụng để mô hình như: neighborhood-based và latent factor models [3]. Đặc biệt với tiếp
cận mô hình nhân tố tiềm ẩn thì phương pháp phân rã ma trận hiện đang là một state-of-the-art trong hệ thống gợi ý. Hầu
hết các tiếp cận chung nhất của CF là dựa trên mô hình láng giềng (Neighborhood Models), mô hình user-user (user-based
CF) [8]. Bên cạnh đó, một tiếp cận trong [6] dựa trên độ tương tự giữa các phần tử (item-based CF) với quy mô tập dữ liệu
rất lớn và đưa ra các đề xuất chất lượng cao trong thời gian thực. Mô hình nhân tố tiềm ẩn có dạng tương tự như phương
pháp phân tích giá trị đơn (Singular Value Decomposition), chuyển đổi cả các mục tin và người dùng vào cùng một không
gian tiềm ẩn của các nhân tố, điều này làm chúng có khả năng so sánh trực tiếp. Bên cạnh đó, nhờ vào khả năng biểu diễn
và so sánh các khía cạnh dữ liệu khác nhau, tiếp cận này có xu hướng cung cấp kết quả dự đoán cao hơn mô hình láng
giềng [3]. Tuy nhiên hầu hết các hệ thống thương mại (Amazon, Tivo,…) vẫn còn sử dụng mô hình láng giềng. Sự phổ
biến của mô hình này một phần là nhờ vào tính dễ cài đặt và dễ hiểu.
Trong hệ thống gợi ý bài báo này chúng tôi sử dụng hai giải thuật của hệ gợi ý là Matrix Factorization (MF) và Biased
Matrix Factorization (BMF) cùng với nhân tố phản hồi tiềm ẩn là số lần click trên item và nhân tố phản hồi tường minh
(rate) là mức độ quan tâm của người dùng đến mỗi bài báo. Tích hợp thông tin dự đoán bằng phương pháp tập hợp mô
hình cho cả hai nhân tố trên.
b. Kỹ thuật phân rã ma trận (Matrix Factorization- MF)
Kỹ thuật MF hiện vẫn là state-of-the-art trong hệ thống gợi ý [1][3]. Trong bài toán này, mỗi người dùng (giảng viên,
sinh viên) được xem như là một user, mỗi bài báo khoa học là item, và người dùng đó đạt bao nhiêu lần truy cập vào từng
bài báo hay số bình chọn của người dùng trên mỗi bài báo được xem là rating. Minh họa như trong Hình 1.
Hình 1. Minh họa kỹ thuật phân rã ma trận
2
UxI
R trong đó R là tập được thứ tự toàn phần (ví dụ số nguyên dương hoặc số thực trong tập xác định). Với mỗi
người dùng u Є U, chúng ta có thể chọn được mục (item) i’Є I sao cho hàm tiện ích của người dùng là lớn nhất.
(1)
4
5
Bài báo 4
4
5
∅
2
Ký hiệu ∅ nghĩa là người dùng không xếp hạng cho bài báo tương ứng. Vì thế, hệ thống gợi ý có thể đánh giá (dự
đoán) trọng số của những bài báo không được xếp hạng trên tổ hợp người dùng để từ đó đưa ra những gợi ý thích hợp dựa
trên những dự đoán này. Khi các trọng số đã được đánh giá, thì trọng số lớn nhất thường được lựa chọn để gợi ý cho người
dùng theo công thức (1). Chúng ta có thể gợi ý N bài báo tốt nhất cho một hoặc một tập người dùng.
a. Các nhóm kỹ thuật chính trong hệ thống gợi ý
Có rất nhiều giải thuật trong hệ thống gợi ý, tuy nhiên có thể gom lại thành 3 nhóm chính [1][2]: (i) Gợi ý dựa trên
cộng tác: người dùng sẽ được gợi ý những bài báo được ưa chuộng xuất phát từ những người có cùng thị hiếu và sở thích
với mình. (ii) Gợi ý dựa trên nội dung: người dùng sẽ được gợi ý những bài báo tương tự với những bài báo đã được người
dùng đó ưa thích trước đây. (iii) Gợi ý dựa trên cách tiếp cận kết hợp: kết hợp hai phương pháp tiếp cận dựa trên nội dung
và cộng tác.
Hệ thống gợi ý dựa trên lọc cộng tác (Collaborative filtering - CF) thường được sử dụng nhất. Chúng dựa vào những
hành vi quá khứ của người dùng, ví dụ như: lịch sử giao dịch, đánh giá sản phẩm, thời gian xem một mục tin… và đặc biệt
là nó không cần thiết phải tạo ra các hồ sơ tường minh (explicit feedback) cho người dùng. Để gợi ý được các mục tin, hệ
thống CF cần so sánh các đối tượng cơ bản khác nhau như các mục tin (items) và người dùng (users). Với tiếp cận lọc
cộng tác có nhiều phương pháp sử dụng để mô hình như: neighborhood-based và latent factor models [3]. Đặc biệt với tiếp
cận mô hình nhân tố tiềm ẩn thì phương pháp phân rã ma trận hiện đang là một state-of-the-art trong hệ thống gợi ý. Hầu
hết các tiếp cận chung nhất của CF là dựa trên mô hình láng giềng (Neighborhood Models), mô hình user-user (user-based
CF) [8]. Bên cạnh đó, một tiếp cận trong [6] dựa trên độ tương tự giữa các phần tử (item-based CF) với quy mô tập dữ liệu
rất lớn và đưa ra các đề xuất chất lượng cao trong thời gian thực. Mô hình nhân tố tiềm ẩn có dạng tương tự như phương
pháp phân tích giá trị đơn (Singular Value Decomposition), chuyển đổi cả các mục tin và người dùng vào cùng một không
gian tiềm ẩn của các nhân tố, điều này làm chúng có khả năng so sánh trực tiếp. Bên cạnh đó, nhờ vào khả năng biểu diễn
k =1
Với giá trị µ là giá trị trung bình toàn cục, là năng lực trung bình của tất cả các người dùng trên tất cả các bài báo
với tập dữ liệu huấn luyện.
µ=∑
(u, i, r ) ∈ D
trainR
(14)
train
D
Giá trị bu là độ lệch của người dùng (là giá trị lệch trung bình của so với giá trị trung bình toàn cục).
∑ (u′, i, r) ∈ D
train
bu =
{(u′, i, r) ∈ D
u′ = u(r − µ )
train
III.
TẬP HỢP CÁC MÔ HÌNH PHÂN RÃ MA TRẬN TRONG XÂY DỰNG HỆ THỐNG GỢI Ý BÀI BÁO
Trước tiên chúng tôi đề xuất phương pháp thu thập các thông tin phản hồi từ người dung, sau đó đề xuất và cài đặt
các mô hình tương ứng và đánh giá các mô hình đó trước khi tích hợp chúng vào hệ thống thực.
a.
Phương pháp thu thập thông tin phản hồi từ người dùng
Hệ thống được xây dựng dưới dạng một website cung cấp thông tin về bài báo giúp người dùng có thể chọn các bài
báo mà mình cần đến. Khi người dùng truy cập vào hệ thống, có thể tìm kiếm, xem và tải những bài báo về máy của mình.
Ngoài ra, hệ thống còn phân loại các bài báo theo từng thể loại, nhằm mang đến sự tiện lợi cho người sử dụng và cung cấp
thông tin chi tiết về các bài báo như: tên bài báo, tác giả, tóm tắt…
Với đặc điểm là một hệ thống gợi ý, hệ thống phải có chức năng thu thập những phản hồi từ người dùng. Thông
thường hệ thống ghi nhận sự phản hồi của người dùng dưới hình thức ghi nhận một giá trị xếp hạng cụ thể (thích (1) /
không thích (0), từ 1 đến 5) gọi là phản hồi tường minh (explicit feedback). Tuy nhiên, với cách này thì hệ thống thường
khó có thể ghi nhận được nhiều phản hồi từ người dùng. Vì người dùng phải tự thể hiện sự phản hồi của mình một cách
tường minh. Điều này bất tiện và thường làm cho người dùng không thích.
Do đó, để tạo sự tiện lợi cho người dùng và hệ thống có thể thu thập được nhiều phản hồi một cách dễ dàng, trong hệ
thống gợi ý bài báo này, chúng tôi đề xuất ghi nhận các phản hồi của người dùng dưới dạng phản hồi tiềm ẩn (implicit
feedback). Hệ thống sẽ tự động ghi nhận lại thông tin của người dùng thông qua đăng ký tài khoản, ngoài ra giá trị phản
hồi - trọng số xếp hạng được ghi nhận bằng số lần click vào bài báo khi người dùng lựa chọn bài báo khi truy xuất hay
đăng nhập vào hệ thống. Chức năng lưu trữ số lần chọn (click) xem bài báo được hệ thống tự động cập nhật vào cơ sở dữ
liệu và được đếm theo địa chỉ IP (IP address) của người truy xuất. Khi thực hiện đăng nhập vào tài khoản, hệ thống sẽ so
sánh giữa IP address và người dùng và lưu trữ lại số liệu này theo tài khoản người sử dụng và được sử dụng làm trọng số
(rate) cho xếp hạng của người sử dụng.
4
K
rˆ2 ui = ∑ w2 uk h2 ik
(18)
k =1
Kết quả dự đoán sau cùng
rˆui =
( r1ui + r2 ui )
2
(19)
Ngoài ra, khi gợi đến người dùng, để tăng sự hợp lý và độ chính xác hệ thống còn lưu ý đến việc xử lý ngữ cảnh đầu ra
(contextual post-filtering [7]) là lĩnh vực của bài báo và lĩnh vực nghiên cứu của người dùng đồng thời sắp xếp kết quả dự
đoán theo thứ tự giảm dần nhằm giúp cho người dùng có thể tìm được những bài báo mà mình cần một cách nhanh chóng
và tiện ích.
Hình 3. Giải thuật Phân rã ma trận (MF)
5
1. Procedure BMF( Dtrain , K, β, λ, stopping-condition)
Let u ∈ U be a user, i ∈ I a item, r ∈ R a rate
9.
10.
11.
i
Dutrain
∑ u ( pui − µ )
Ditrain
end for
W ← Ν 0, σ 2
Η ← Ν (0, σ 2 )
while (Stopping criterion is NOT met) do
(
)
(u, i, rui ) from D train
12.
Draw randomly
13.
rˆui ← µ + bu [u ] + bi [i ] + ∑ k (W [u ][k ] ∗ H [i ][k ]) ;
K
Hình 4. Giải thuật Phân rã ma trận thiên vị (BMF)
d.
Độ đo dùng để đánh giá giải thuật
Chúng tôi sử dụng độ đo lỗi RMSE (Root Mean Squared Error) là độ đo phổ biến mà cộng đồng người dùng trong
lĩnh vực máy học (machine learning) thường sử dụng. Mặc dù có nhiều phương pháp khác nhau mà chúng ta có thể sử
dụng để đánh giá giải thuật như: F-Meansure, Area Under the ROC curve(AUC),…nhưng mỗi phương pháp đánh giá sẽ
thích hợp cho từng lĩnh vực cụ thể, như F-Meansure và AUC được dùng trong truy tìm thông tin và phân lớp. Trong khi
RMSE dùng dự đoán xếp hạng( Rating Prediction) và MAE dùng dự đoán mục tin (Item Prediction) phù hợp với lĩnh vực
của đề tài. RMSE và MAE được xác định bằng công thức:
RMSE =
MAE =
1
2
∑ (rui − rˆui )
| D test | u, i, r∈D test
1
∑ (rui − rˆui )
| D test | u,i, r∈D test
(20)
(21)
Trong đó: Dtest ⊆ U × I × R là tập dữ liệu kiểm thử; U: tập người dung (user); I: Tập bài báo (item); rui: giá trị thực tế;
BMF
1.0236
0.9413
0.9455
0.9701
MF
1.0441
0.9707
0.9084
0.9744
GlobalAVG
1.1112
1.0524
1.0509
1.0715
GlobalAVG
1.1112
1.0524
1.0509
1.0715
IV.
Trung bình
XÂY DỰNG HỆ THỐNG và TÍCH HỢP GIẢI THUẬT
Tương tự như những hệ thống thông tin quản lý khác, hệ thống này cũng phải được phân tích, thiết kế các mô hình, cài
đặt và triển khai hệ thống. Phần quan trọng nhất của hệ thống này là tích hợp các giải thuật gợi ý vào hệ thống. Do giới hạn
về số trang của bài viết, chúng tôi chỉ giới thiệu một vài mô hình cơ bản như bên dưới.
a. Đặc tả hệ thống
Hệ thống quản lý các tạp chí khoa học cho phép cán bộ và sinh viên trường có thể quản lý, tìm kiếm và xem các bài
báo khoa mà họ cần. Hệ thống sẽ hiển thị các bài báo và các nội dung theo đúng nhu cầu khách hàng quan tâm. Hệ thống
có chức năng cho khách hàng chấm điểm, đánh giá chất lượng của bài báo. Đặc biệt hệ thống sẽ gợi ý các cho người dùng
trong quá trình lựa chọn sử dụng kỹ thuật phân rã ma trận và hiển thị các bài báo tương tự mà họ đang xem, sử dụng các
thuộc tính về chủ đề bài báo và lĩnh vực của người dùng.
Giảng viên và sinh viên muốn thực hiện các chức năng trên chỉ khi là thành viên của hệ thống. Sau khi đăng nhập vào
hệ thống, nếu là người dùng mới thì hệ thống sẽ dựa vào thông tin về chuyên ngành của họ để tư vấn theo thông tin vừa
thu thập. Tuy nhiên, nếu người dùng đã có chấm điểm cho bài báo, hệ thống sẽ gợi ý các bài báo theo giải thuật đã đề xuất.
Ngoài ra, hệ thống còn cung cấp các công cụ quản trị như: quản trị người dùng, quản trị thông tin bài báo, công cụ cho
Dự đoán
Gợi ý
1…
2….
3….
CSDL
Hình 7. Mô hình tổng thể của hệ thống
V.
KẾT QUẢ MINH HỌA
a. Kết quả minh họa hệ thống
Hệ thống được phát triển trên môi trường web, dùng ngôn ngữ PHP và hệ quản trị cơ sở dữ liệu MySQL. Hệ thống
đang được triển khai tại địa chỉ: http://crd.ctu.edu.vn/journals/, trang chủ của hệ thống được minh họa trong Hình 8. Hệ
thống chia thành 2 phần chính kết nối và tương tác nhau là Giao diện người dùng và Giao diện quản trị.
Tại giao diện trang chính: người dùng có thể truy cập vào thông tin các bài báo ở mức độ: tên bài báo, tác giả, lĩnh vực
và tóm tắt bài báo. Khi người dùng click chọn hệ thống sẽ tự động lưu trữ số lần chọn, mã bài báo dựa vào địa chỉ IP của
mỗi người dùng. Các bài báo được hiển thị theo các tiêu chí như: Bài báo được xem (click) nhiều nhất; Bài báo được hiển
thị dựa vào giá trị dự đoán trung bình toàn cục; Bài báo được hiển thị theo Năm, Theo Loại, Theo lĩnh vực và theo từng
Số. Khi người dùng đăng ký/ đăng nhập vào hệ thống sẽ tự động lưu trữ số lần chọn của người dùng vào cơ sở dữ liệu so
sánh với địa chỉ IP. Với sự tương tác của người dùng thông qua giải thuật sẽ thấy được kết quả dự đoán của hệ thống dựa
vào ngữ cảnh được áp dụng là lĩnh vực ở mỗi bài báo và lĩnh vực của người dùng.
Hình 8. Trang chủ của hệ thống
9
Tạo tập dữ liệu train và test theo từng user. Với mỗi user (người dùng) chọn 70% dữ liệu cho train, 30% còn lại
dùng vào tập test.
• Tiến hành huấn luyện mô hình trên tập dữ liệu train vừa tạo.
• Dự đoán cho từng user trên tất cả các item không có trong tập train.
• Lấy Top K (K=10) item có giá trị dự đoán cao nhất để kiểm tra, so sánh các giá trị này với tập dữ liệu test. Với
mỗi lần gợi ý Top K như thế, nếu các item này có trong tập test của user tương ứng, xem như lần gợi ý đó là phù
hợp.
• Lặp lại cho tất cả các user được chọn thử nghiệm.
Do hệ thống chỉ thu thập với khoảng 40 user, nên chúng tôi chọn ngẫu nhiên 5 user để thử nghiệm tính hiệu quả. Thử
nghiệm trên 5 lần chạy, với mỗi lần lấy Top 10 bài báo trong danh sách dự đoán để kiểm tra trong tập test, kết quả trình
bày trong bảng 4 bên dưới. Trong bảng này, mỗi cột là một người dùng, mỗi hàng là kết quả thống kê số lượng bài đã được
gợi ý trong Top 10 có xuất hiện trong tập test với các mã bài báo cụ thể. Ví dụ: ở lần kiểm tra thứ nhất, các bài báo được
gợi ý cho user 25 có xuất trong tập test là 1 bài với mã bài báo là 68. Như vậy, trong lần gợi ý này, user 25 có sản phẩm
phù hợp (chính xác) với sở thích của mình. Lặp lại tương tự cho các user khác.
Bảng kết quả thống kê sau dự đoán
Bảng 4.
User 25
Số lần
chạy
2.
Số
tìm
thấy
1
1
2
User 44
68
Số
tìm
thấy
1
68,69
0
Mã bài
báo
Mã bài
báo
81
User 36
Số
tìm
thấy
1
User 40
102
1
102
0
1
81
1
102
2
102,100
0
2
102,101
2
102,100
nghiệm trên dữ liệu thực lấy từ hệ thống quản lý các bài báo của trường Đại học Cần Thơ, kết quả cho thấy việc tích hợp
hệ gợi ý vào hệ thống quản lý bài báo khoa học là hoàn toàn khả thi.
TÀI LIỆU THAM KHẢO
1.
2.
3.
Li Chen, Guanliang Chen, and Feng Wang. 2015. Recommender systems based on user reviews: the state of the
art. User Modeling and User-Adapted Interaction 25, 2 (June 2015), 99-154. DOI=10.1007/s11257-015-9155-5
http://dx.doi.org/10.1007/s11257-015-9155-5
Francesco Ricci, Lior Rokach, Bracha Shapira, and Paul B. Kantor. 2010. Recommender Systems Handbook (1st
ed.). Springer-Verlag New York, Inc., New York, NY, USA.
Yehuda Koren, Robert Bell, and Chris Volinsky. 2009. Matrix Factorization Techniques for Recommender
Systems. Computer 42, 8 (August 2009), 30-37. DOI=10.1109/MC.2009.263
11
4.
Guy Shani and Asela Gunawardana. Evaluating recommendation systems. In Recommender Systems Handbook,
pages 257–297. Springer, 2011.
5. HERLOCKER J. L., KONSTAN J. A., BORCHERS A., ANDRIEDL J. (1999), “An algorithmic framework for
performing collaborative filtering”. In Proceedings of the 22nd Annual International ACM SIGIR Conference on
Research and Development in Information Retrieval (SIGIR’99). ACM, New York, NY, 230–237.
6. Thomas G. Dietterich, Ensemble Methods in Machine Learning. Lecture Notes in Computer Science Volume
1857, 2000, pp 1-15. Springer.
7. Gediminas Adomavicius, Alexander Tuzhilin. Context-Aware Recommender Systems, Recommender Systems
Handbook. 2011, pp 217-253. Spinger.