Cần Thơ skanh@ctu.edu.vn, ntnghe@cit.ctu.edu.vn 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 n
Trang 1GI Ả I PHÁP XÂY D Ự NG H Ệ TH Ố NG G Ợ I Ý BÀI BÁO KHOA H Ọ C B Ằ NG
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ơ
skanh@ctu.edu.vn, ntnghe@cit.ctu.edu.vn
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 triển và ứng dụng rất mạnh mẽ [1][2] Ở Việt Nam, mặc dù đây là lĩnh vực còn tương đối mới nhưng tầm quan trọng và sự phát triển của nó cũng tăng rất mạnh trong những năm gần đây và đặc biệt là ở lĩnh vực thương mại như Hệ thống gợi ý sản phẩm [9], lĩnh vực giáo dục như Hệ thống gợi ý môn học [8], lĩnh vực giải trí như hệ thống gợi ý phim ảnh [10]… Tuy vậy, việc ứng dụng hệ thống gợi ý trong lĩnh vực nghiên cứu khoa học, đặc biệt là hỗ trợ công tác tìm kiếm, gợi ý nguồn tài nguyên học tập, gợi ý các tài liệu hay cụ thể ở đây là gợi ý các bài báo khoa học vẫn còn chưa được khai thác tốt
Trong bài viết này, chúng tôi đề xuất giải pháp “Xây dựng hệ thống quản lý bài báo khoa học tích hợp hệ gợi ý”
nhằm xây dựng hệ thống, tích hợp hệ gợi ý để tối ưu hóa việc hiển thị nội dung các bài báo phù hợp với từng đối tượng người đọc
II HỆ THỐNG GỢI Ý
Hệ thống gợi ý (Recommender Systems - RS) là một dạng của hệ thống lọc thông tin (information filtering), nó được
sử dụng để dự đoán sở thích (preference) hay xếp hạng (rating) 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ứ (item có thể là bài báo, bộ phim, đoạn video clip, sách, ) [11] nhằm gợi ý các mục thông tin “có thể được quan tâm” bởi người dùng Hệ thống gợi ý sẽ đưa ra các gợi ý dựa trên quá trình thu thập,
xử lý và phân tích dữ liệu từ người dùng Dữ liệu đó được chia làm 2 loại là tường minh (explicit) bằng cách yêu cầu người dùng phản hồi trực tiếp và tiềm ẩn (implicit) bằng cách tự động suy luận dựa trên những tương tác của người dùng
với hệ thống như: số lần nhấp chuột, thời gian quan sát Trong hầu hết các trường hợp, bài toán gợi ý được coi là bài toán dự đoán việc xếp hạng (rating) của các sản phẩm (phim, sản phẩm tiêu dùng, sách, nhạc…) chưa được người dùng biết đến Việc dự đoán này thường dựa trên những đánh giá đã có của chính người dùng đó hoặc những người dùng khác
Ví dụ, những bài báo được dự đoán là sẽ có xếp hạng cao nhất sẽ được dùng để gợi ý Có khá nhiều ứng dụng nổi tiếng về
hệ thống gợi ý như: gợi ý sản phẩm của Amazon và Ebay, hệ thống gợi ý phim của NetFlix và Youtube,
Hệ thống gợi ý đã chứng minh được ý nghĩa to lớn: giúp cho người sử dụng trực tuyến đối phó với tình trạng quá tải thông tin Hệ thống gợi ý trở thành một trong những công cụ mạnh mẽ và phổ biến trong thương mại điện tử Mục đích của hệ thống gợi ý là dựa vào hành vi từ thói quen, nhu cầu trong quá khứ của người sử dụng để dự đoán sở thích trong tương lai của họ
Một cách hình thức, gọi U là tập tất cả người dùng và I là tập tất cả các mục tin có thể được gợi ý như máy tính, sách, phim ảnh, bài báo Trường hợp I là tập các bài báo, nó có thể lên đến hàng trăm, hàng nghìn hoặc thậm chí là hàng triệu bài báo trong một số ứng dụng Tương tự như vậy, tập người dùng U có thể rất lớn lên đến hàng triệu trường hợp Để dự đ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ˆ:
Trang 2U x I 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
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
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 Item
Trang 3Mục tiêu chính của kỹ thuật này là phân rã ma trận X thành 2 ma trận nhỏ hơn W và H sao cho ta có thể xây dựng lại X từ
2 ma trận con này
(1) Với W và H là 2 ma trận con
K U
W = ℜ ×
K I
K: là số nhân tố tiềm ẩn (latent factors) K << |U|; K << |I | Sau quá trình phân rã ta có được W và H, và sử công thức dự đoán là:
∑
=
=
= K
k
T i u ik uk
r
1
ˆ
(3) Chi tiết về giải thuật học, chúng ta thực hiện huấn luyện sao cho tìm được hai ma trận W và H được tối ưu theo một điều kiện nào đó (chẳng hạn như RMSE) Ví dụ, hàm mục tiêu cần tối ưu là:
∑
∈
= Ο
train D r i u ui MF
e
) , (
2
(4)
=
−
=
−
k
ik uk ui
ui ui
e
1
2 2
2
) (
) ˆ
ik ui ui ik
ui ui
uk
h r r h
e e
∂
∂
(6)
uk ui ui uk
ui ui
ik
w r r w
e e
∂
∂
(7)
Tiếp theo, chúng ta cần giảm thiểu tối đa độ lỗi này và cập nhật giá trị lại cho wuk và hik được lặp đi lặp lại (tối ưu hóa bằng kỹ thuật stochastic gradient descent [3]) – kỹ thuật giảm gradient ngẫu nhiên
ik ui ui uk
ik ui uk
ui uk uk
w w
∂
∂
−
uk ui ui ik
uk ui ik
ui ik ik
h h
∂
∂
−
β: tốc độ học (learning rate) Sau quá trình tối ưu, ta có được giá trị của W và H
“Học vẹt” xảy ra khi mô hình dự đoán cho kết quả tốt trên dữ liệu huấn luyện, nhưng cho kết quả kém trên dữ liệu thử nghiệm Để giảm bớt việc học vẹt, người ta thêm vào hàm mục tiêu một đại lượng gọi là hàm chính tắc (Regularization) Hàm mục tiêu cần tối ưu bây giờ là:
+ +
−
=
train D r i u
K
k
F F
ik uk ui
) ,
2 2
2
)
Và giá trị W và H sau tối ưu với hàm mục tiêu mới ta được:
) 2
(
) 2
( 'ik hik euiwuk hik
Sau khi có được giá trị gradient, chúng ta cập nhật lại giá trị của wuk và hik với tốc độ học là β Lặp lại quá trình cập nhật giá trị của W và H cho đến khi đạt độ lỗi chấp nhận ɛ hoặc lặp lại đến số lần qui định trước
Trang 4Quá trình dự đoán: Sau quá trình huấn luyện ta được 2 ma trận W và H đã tối ưu thì quá trình dự đoán (công thức 2) được thực hiện như minh họa trong Hình 2
Hình 2 Minh họa cách dự đoán người dùng số 3 cho bài báo 3
c Kỹ thuật phân rã ma trận thiên vị (Biased Matrix Factorization - BMF)
Dựa vào các khái niệm cơ sở của giải thuật Matrix Factorization (MF) và thêm giá trị lệch (bias) vào MF để được giải thuật BMF [3] Để dự đoán được bài báo của người dùng u cho bài báo i được biểu diễn với công thức sau:
∑
=
+ + +
k ik uk i
u
r
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
D
D
train
trainR
r i u
∑ ∈
= ( , )
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 u u}
r u u D r i u
train train u
Giá trị bi là độ lệch của bài báo (là giá trị lệch trung bình của các bài báo so với giá trị trung bình toàn cục)
{ u i r D i i }
r i i D r i u
train train i
b = ∑ ( ( , ′ , , ′ , ) ∈ ) ∈ ′ = ′ = ( − µ )
(16) Quá trình dự đoán: Sau quá trình huấn luyện ta được các giá trị biases và 2 ma trận W và H đã tối ưu, quá trình dự đoán được thực hiện tương tự như MF, dùng công thức (13)
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
Trang 5b Cài đặt các giải thuật
Sử dụng phương pháp stochastic gradient descent, chúng tôi cài đặt các giải thuật MF và BMF như trong Hình 3 và Hình 4
c Tích hợp các mô hình dự đoán
Trong các hệ thống gợi ý truyền thống, người ta thường sử dụng một thông tin phản hồi tường minh từ người dùng như xếp hạng (từ 1 đến 5) hay dựa trên thông tin tiềm ẩn (như số lần click chuột trên item) Trong hệ thống gợi ý bài báo này, chúng tôi đề xuất sử dụng phương pháp tập hợp mô hình (ensemble method) để tận dụng cả thông tin phản hồi tường minh và tiềm ẩn do trong những nghiên cứu trước đây đều cho thấy phương pháp tập hợp mô hình cho độ chính xác cao hơn bất kỳ một phương pháp đơn lẽ nào [6] Cụ thể, hệ thống được tích hợp giải thuật gợi ý MF1 (BMF1) để gợi ý các bài báo mới phù hợp cho từng người dùng dựa vào các phản hồi tiềm ẩn (click) và MF2 (BMF2) dựa trên phản hồi tường minh (bình chọn theo mức độ quan tâm của người dùng từ 1 đến 5), kết quả dự đoán sau cùng sẽ dùng phương pháp tập hợp mô hình (ví dụ, trung bình) của cả hai kết quả dự đoán này Cách tính được mô tả như sau:
Gọi r là kết quả dự đoán sử dụng phản hồi là số lần mà người dùng click chuột trên bài báo, sử dụng mô hình MF1 1
∑
=
=
K k
ik uk
r
1 1 1 1
Gọi r là kết quả dự đoán sử dụng phản hồi là xếp hạng mà người dùng đã đánh giá trên bài báo, sử dụng mô hình MF2 2
∑
=
= K
k
ik uk
r
1
2 2 2
Kết quả dự đoán sau cùng
2
) (
ˆui r1ui r2ui
(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)
Trang 6Hì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:
( )
∑
∈
−
=
test
D r i, u,
2 ui ui test r rˆ
| D
|
1
∑
∈
−
=
test
D r i, u,
ui ui test r rˆ
| D
|
1
MAE
(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ế;
rˆ: giá trị dự đoán
1 Procedure BMF( Dtrain , K, β, λ, stopping-condition)
Let u ∈ U be a user, i ∈ Ia item, r ∈ R a rate
Let W[ ]U [ ]K ,H [ ] I [ ] K ,bu[ ] U , and bi[ ] I
2 r train D
D
r
train
∑
µ
3 for each user udo
4 [ ] (train )
u
ui i u
D
r u
←
5 end for
6 for each task ido
7 [ ] (train )
i
ui u i
D
p I
←
8 end for
9 ( )2
,
0σ Ν
←
W
,
0σ
Ν
←
Η
11 while (Stopping criterion is NOT met) do
12 Draw randomly ( u , , i rui) from Dtrain
13 ← + [ ] [ ]+ +∑K( [ ][ ] [ ][ ]∗ )
k i
u
ui b u b i W u k H i k
14 eui = rui− r ˆui;
15 µ ← µ + β ∗ eui;
17 b u[ ]u ←b u[ ]u +β∗(e ui−λ∗b u[ ]u);
18 b i[ ]i ←b i[ ]i +β∗(e ui−λ∗b i[ ]i);
19 for k ← 1 , , Kdo
20 W[ ][ ]u k ←W[ ][ ]u k +β∗(2e ui∗H[ ][ ]i k −λ∗W[ ][ ]u k)
21. H [ ][ ] i k ← H [ ][ ] i k + β ∗ ( 2 eui∗ W [ ][ ] u k − λ ∗ H [ ][ ] i k )
22 end for
23 end while
24 return { W , H , bu, bi, µ }
25 end function
Trang 7e Đánh giá giải thuật trên tập dữ liệu chuẩn
Để kiểm tra tính đúng đắn của việc cài đặt giải thuật, chúng tôi kiểm tra các mô hình bằng cách sử dụng tập dữ liệu
về tạp chí khoa học Bisonomy để đánh giá giải thuật (www.bibsonomy.org) với khoảng 15.000 người dùng, khoảng 1.800.000 bài báo và có trên 3 triệu đánh giá Đây là tập dữ liệu được dùng để đánh giá giải thuật gợi ý dùng cho các tạp chí khoa học Trong quá trình đánh giá giải thuật, đề tài chỉ sử dụng khoảng 30000 đánh giá (dùng nghi thức 3-fold cross validation) trên tập dữ liệu và được chia làm 2 phần: lấy ngẫu nhiên 2/3 dữ liệu dùng để huấn luyện (train) và 1/3 còn lại dùng để kiểm tra (test) Sau đó, so sánh dữ liệu dự đoán với dữ liệu tập kiểm tra để đo độ lệch của giải thuật Sau khi tìm được siêu tham số, hệ thống tiếp tục tính độ tương tự của tất cả người dùng trên 2/3 tập huấn luyện ban đầu, sử dụng siêu tham số vừa tìm được để dự đoán đánh giá của người dùng và tiến hành so sánh dữ liệu dự đoán với 1/3 tập dữ liệu kiểm tra ban đầu để đo độ lệch của giải thuật Kết quả thực nghiệm trên tập dữ liệu thực tế được trình bày trong Bảng 2 và
3 dưới đây (trong đó GlobalAVG dùng công thức (14))
Lần 1 Lần 2 Lần 3 Trung bình
IV 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 phép người quản trị có thể xuất thông tin đánh giá của người dùng trên bài báo để huấn luyện lại mô hình của giải thuật và chức năng kiểm tra hiệu quả của hệ thống gợi ý bài báo
b Sơ đồ các trường hợp sử dụng của người dùng
Trang 8Hình 5 Sơ đồ use case của người dùng
c Sơ đồ thực thể kết hợp
Hình 6 Sơ đồ thực thể kết hợp của hệ thống
d Thiết kế hệ thống và tích hợp giải thuật
Hệ thống được xây dựng trên nền Web với ngôn ngữ lập trình PHP kết hợp với hệ quản trị cơ sở dữ liệu MySQL theo
mô hình MVC (Model-View-Controller) Thành phần Controller sẽ nhận các dữ liệu GET/POST, xử lý những dữ liệu này,
Trang 9sau đó chuyển sang Model xử lý Model sẽ trả dữ liệu về phía Controller, sau đó Controller sinh mã HTML/XHTML để thể hiện trên View Mô hình tổng thể của hệ thống được mô tả thông qua hình:
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
User
Web server
CSDL Internet
Hệ thống gợi ý
Giải thuật:
MF BMF
Dự đoán
Gợi ý
1…
2…
3…
Trang 10Gợi ý bài báo cho người dùng
Người dùng có thể chấm điểm cho bài báo hoặc gửi góp ý (feedback) cho bài báo đó như trong Hình 9 Sau khi người dùng đã chấm điểm bài báo, hệ thống sẽ gợi ý một số bài báo mới cho người dùng thông qua các mô hình đã được tích hợp như minh họa trong Hình 10 Bên cạnh đó, hệ thống cũng có thêm các mục chức năng khác như: gợi ý TOP các bài báo được nhiều người xem, các bài báo cùng thể loại, cùng lĩnh vực với bài báo đang xem
Hình 9 Giao diện đánh giá bài báo
Hình 10 Giao diện gợi ý bài báo mới cho người dùng
Huấn luyện lại mô hình
Ở giao diện của người quản trị: Các chức năng thông thường để quản trị một hệ thống quản lý các bài báo như: Quản lý bài báo, Quản lý người dùng, Quản lý số bài báo, Quản lý lĩnh vực bài báo, Tìm kiếm thông tin Hệ thống cũng có thể thống
kê các bài báo theo năm, theo lĩnh vực, theo các rating của người dùng
Bên cạnh đó, hệ thống cũng cho phép người quản trị huấn luyện lại các mô hình sau một thời gian sử dụng Người quản trị còn được cung cấp công cụ để tìm các siêu tham số cho giải thuật cũng như đánh giá giải thuật thông qua các độ đo lỗi RMSE, MAE và tính độ chính xác (precision) của hệ thống
b Đánh giá hiệu quả sử dụng gợi ý
Sau khi tích hợp giải thuật gợi ý và và xây dựng hoàn chỉnh hệ thống, chúng tôi tiến hành thu thập phản hồi từ người dùng thực để kiểm tra hiệu quả của việc gợi ý Dữ liệu thu thập từ người dùng (Giảng viên ĐHCT) đánh giá khoảng 40 bài báo thuộc 4 lĩnh vực: Công nghệ thông tin, Công nghệ, Môi trường và Tự nhiên Dữ liệu được thu thập khoảng 40 thành viên với khoảng trên 400 đánh giá bài báo theo mức độ từ 1 đến 5 (từ Rất quan tâm đến không quan tâm)