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

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

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 (714.62 KB, 12 trang )

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ơ
,
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ˆ :

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


Bài báo 2
3
4
2


Bài báo 3
2
5
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
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)

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

Bài báo 2
3
4
2


Bài báo 3
2
5

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

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


Quá 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

rˆui = µ + bu + bi + ∑ wuk hik

(13)


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


}

u′ = u

(15)

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).

bi =

∑ (u, i′, r) ∈ D

train

{(u, i′, r ) ∈ D

i′ = i ( r − µ )

train

}

i′ = i

(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.

4



b.

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 r1 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
K

rˆ1 ui = ∑ w 1 uk h1 ik

(17)

k =1

Gọi r2 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

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


[ ]

Let W U [K ] , H
2. µ ←

[ I ][K ] , b [U ] , and b [ I ]
u

∑ r∈Dtrain r
D train

4.

for each user u do
∑ i (rui − µ )

5.
6.

end for
for each task i do

3.

bu [u ] ←

bi [I ] ←

7.
8.

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


eui = rui − rˆui ;

14.

18.

µ ← µ + β ∗ eui ;
bu [u ] ← bu [u ] + β ∗ (eui − λ ∗ bu [u ]) ;
bi [i ] ← bi [i] + β ∗ (eui − λ ∗ bi [i ]) ;

19.

for

15.
17.

20.

k ← 1,..., K do

W [u ][k ] ← W [u ][k ] + β ∗ (2eui ∗ H [i ][k ] − λ ∗ W [u ][k ])

21. H [i ][k ] ← H [i ][k ] + β ∗ (2eui ∗W [u ][k ] − λ ∗ H [i ][k ])
22. end for
23. end while
24. return {W , H , bu , bi , µ}
25. end function.


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ế;

rˆ : giá trị dự đoán

6


e.

Đá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)).
Bảng 2.

Bảng độ lỗi RMSE

Lần 1

Lần 2

Lần 3

Trung bình


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


Bảng độ lỗi MAE

Bảng 3.

Lần 1

Lần 2

Lần 3

BMF

0.8049

0.7366

0.7381

0.7599

MF

0.8205

0.7603

0.7045

0.7618


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

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

7


Hì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,

8


sau đó 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ệ thống gợi ý
Giải thuật:
MF
BMF

User

Web server

Internet


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ỉ: 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



Gợ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).

10


Tiếp theo, chúng tôi tiến hành đánh giá hiệu quả của việc gợi ý xem nó có phù hợp cho mỗi người dùng hay không dựa
theo hướng dẫn và điều chỉnh từ tài liệu [4]. Gợi ý được xem là phù hợp khi người dùng có chọn bài báo từ danh sách
những bài báo đã được gợi ý cho họ. Các bước được thực hiện như sau:



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


3.

1

4.

0

5.

1

1.

Tỉ lệ

80%

Mã bài
báo
68
68
68
68

User 31
Số
tìm
thấy
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


Mã bài
báo

Số tìm
thấy

Mã bài
báo

102

2

102,101

1

102

1

102

0

1

81

1


102

1

102

0

1

81

1

102

2

102,100

0

2

102,101

2

102,100


60%

100%

1
60%

68

100%

Nhận xét: Độ chính xác của kết quả gợi ý qua mỗi lần kiểm tra khá cao đối với các người dùng, trung bình cho 5 người
dùng được chọn ngẫu nhiên là 80%. Người dùng đăng nhập có bình chọn và tham gia càng nhiều thì độ chính xác của hệ
thống sẽ đạt giá trị cao.
VI.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Trong nghiên cứu 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 có tích hợp hệ gợi ý 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ọ. Sở
thích của người dùng trên các bài báo mới được dự đoán dựa trên kết hợp giữa dữ liệu về lĩnh vực chuyên ngành của người
dùng và xếp hạng của người dùng trên các bài báo trong quá khứ.
Sau quá trình dự đoán, chúng tôi cũng đã đề xuất phương pháp xử lý ngữ cảnh đầu ra (contextual post-filtering, ví dụ lọc
lại theo chuyên môn của người dùng) nhằm hiển thị kết quả phù hợp hơn nữa cho từng đối tượng sử dụng.
Để xây dựng hệ thống, bài viết đã đề xuất phương pháp thu thập thông tin phản hồi từ người dùng, sau đó cài đặt kỹ thuật
phân rã ma trận – đang được áp dụng thành công trong nhiều ứng dụng gợi ý hiện nay. Tiếp theo, chúng tôi kiểm tra tính
đúng đắn của giải thuật trên tập dữ liệu chuẩn. 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 gợi ý vào hệ thống để có thể gợi ý bài báo phù hợp cho người dùng. Sau 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ả của hệ thống. 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ơ, 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
/>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.
8. Huỳnh Lý Thanh Nhàn, Nguyễn Thái Nghe (2013): Hệ thống dự đoán kết quả học tập và gợi ý lựa chọn môn học.

Kỷ yếu hội thảo quốc gia lần thứ XVI: Một số vấn đề chọc lọc của CNTT&TT (@2013), trang 110-118. Nhà xuất
bản Khoa học kỹ thuật. ISBN: 987-604-67-0251-1
9. Nguyễn Hùng Dũng, Nguyễn Thái Nghe (2014): Hệ thống gợi ý sản phẩm trong bán hàng trực tuyến sử dụng kỹ
thuật lọc cộng tác. Tạp chí Khoa học Trường Đại học Cần Thơ, số 31a (2014), trang 36-51. ISSN: 1859-2333
10. Triệu Vĩnh Viêm, Triệu Yến Yến, Nguyễn Thái Nghe (2013): Xây dựng hệ thống gợi ý phim dựa trên mô hình
nhân tố láng giềng. Số chuyên đề: Công nghệ Thông tin (2013): 170-179, Tạp chí Khoa học Trường Đại học Cần
Thơ, ISSN: 1859-2333
11. Nguyen Thai-Nghe. 2013. An introduction to factorization technique for building recommendation systems. Vol.
6/2013, pp. 44-53, Journal of Science - University of Da Lat, ISSN 0866-787X

AN APPROACH FOR BUILDING PAPER RECOMMENDATION SYSTEM
USING ENSEMBLE OF MATRIX FACTORIZATION MODELS
Sử Kim Anh, Nguyễn Thái Nghe
TÓM TẮT— Recommender systems are used to recommend appropriate items to users based on their feedbacks in the past. In this
work, we propose an approach for building paper recommendation system using ensemble of matrix factorization models. The system
can recommend suitable papers to the users based on their implicit feedbacks in the past, e.g., the number of user clicks/downloads on
the papers as well as explicit feedbacks, e.g., user rating. Since each user has his/her own specialized/major knowledge, we also
propose a post-filtering recommendation approach so that the recommended papers can meet the user major/knowledge.
For building the system, first, we propose methods for collecting the user feedbacks, then we propose using ensemble method which is a
combination of matrix factorization models. After building the system, we collect the feedbacks from the real users to re-evaluate the
system. Results show that the system can recommend the papers to the users at 80% of accuracy.
Từ khóa— Matrix factorization, recommender systems, paper recommendation, ensemble methods.

12



×