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

Nghiên cứu xây dựng hệ thống khuyến nghị cộng tác (khóa luận tốt nghiệp)

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 (3.55 MB, 47 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

TRẦN MINH KHÔI - 18520947

KHÓA LUẬN TỐT NGHIỆP
NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG CL-PUB
KHUYẾN NGHỊ CỘNG TÁC HỌC THUẬT
BUILDING CL-PUB: AN EMPIRICAL STUDY ON
ACADEMIC COLLABORATOR RECOMMENDATION
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN
TS. HUỲNH NGỌC TÍN

TP. HỒ CHÍ MINH, 2022

1


THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định
số ........................ngày........................của Hiệu trưởng Trường Đại học Công
nghệ Thông tin.
1.
2.
3.
4.

Chủ tịch.
Thư ký.


Ủy viên.
Ủy viên.

2


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC
CÔNG NGHỆ THÔNG TIN

Độc Lập - Tự Do - Hạnh Phúc
TP. HCM, ngày ... tháng ... năm 20....

NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
(CỦA CÁN BỘ HƯỚNG DẪN)
Tên khóa luận:
Nghiên cứu xây dựng hệ thống khuyến nghị cộng tác
Nhóm SV thực hiện:
Trần Minh Khơi

Cán bộ hướng dẫn:
TS. Huỳnh Ngọc Tín

18520947

Đánh giá khóa luận:
1. Về cuốn báo cáo

Số trang

65

Số chương

4

Số bảng số liệu

5

Số hình vẽ

15

Số tài liệu tham khảo

11

Sản phẩm

1

Một số nhận xét về hình thức cuốn báo cáo:

3


2. Về nội dung nghiên cứu:


3. Về chương trình ứng dụng:

4. Về thái độ làm việc của sinh viên:

Đánh giá khóa luận:

Điểm sinh viên:
Trần Minh Khơi:.............../10

Người nhận xét

(Ký và ghi rõ họ tên)

4


LỜI CẢM ƠN
Nhóm xin chân thành cảm ơn giảng viên hướng dẫn Huỳnh Ngọc Tín đã kiên trì theo sát,
thúc đẩy nhóm trong suốt q trình làm việc. Tài liệu tham khảo do thầy cung cấp đã góp
phần lớn giúp nhóm hồn thiện đề tài nói riêng và nắm bắt kiến thức thực tiễn về ứng
dụng hệ khuyến nghị nói chung.

5


ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Nghiên cứu và xây dựng hệ thống CL-PUB khuyến nghị cộng tác học
thuật
TÊN ĐỀ TÀI (TIẾNG ANH): Building CL-PUB: An empirical study on academic

collaborator recommendation
Cán bộ hướng dẫn: TS. Huỳnh Ngọc Tín
Thời gian thực hiện: Từ ngày 25/2/2022 đến ngày 15/6/2022
Sinh viên thực hiện:
Trần Minh Khôi – 18520947
Nội dung đề tài
● Bối cảnh
○ Một người làm nghiên cứu, người theo học các chương trình thạc sĩ, tiến
sĩ có nhu cầu tìm kiếm người cộng tác tiềm năng. Hệ thống có thể tìm
kiếm và gợi ý các hợp tác nghiên cứu dựa trên thông tin về hướng nghiên
cứu và tổ chức cơng tác.
○ Một đồn nghiên cứu trường NUS đến thăm và tìm kiếm cơ hội hợp tác
với trường UIT. Hệ thống có thể tìm kiếm và gợi ý các quan hệ hợp tác
tiềm năng.
● Mục tiêu
○ Nghiên cứu đề tài khuyến nghị cộng tác, tìm kiếm thơng tin, khai thác dữ
liệu mạng xã hội.
○ Ứng dụng xây dựng hệ thống khuyến nghị cộng tác viên tiềm năng trên
tập dữ liệu nghiên cứu.

6


● Phạm vi
○ Các quan hệ tương tác chiết xuất từ bộ dữ liệu Arnet Citation V13
○ Các framework hỗ trợ lập trình máy học, xử lý đại số, hiển thị dữ liệu:
Tensorflow, Numpy, Matplotlib.
○ Các framework dữ liệu lớn, xử lý dữ liệu: Apache Hadoop, Apache
Spark.
○ Các thư viện hỗ trợ xây dựng ứng dụng web: Flask, SqlAlchemy, React.

● Phương pháp
○ Đọc hiểu văn bản, báo cáo khoa học.
○ Nghiên cứu mã nguồn.
○ Thực nghiệm đánh giá
● Kết quả mong đợi
○ Hệ thống sau deploy phản hồi nhanh.
○ Độ chính xác dự đốn cao.
○ Giao diện web cho phép người dùng tương tác.
Kế hoạch thực hiện
Đề án sẽ được chia làm 3 giai đoạn
1. Tìm hiểu, nghiên cứu các giải pháp khuyến nghị cộng tác. Các framework hỗ trợ
máy học
2. Xử lý dữ liệu thô, xây dựng hệ thống. Chạy thực nghiệm kết quả, canh chỉnh
thông số
3. Xây dựng giao diện web demo
Meeting định kỳ giảng viên hướng dẫn
● Hàng tuần thứ 5 - 9:30 PM

7


25/02 - 15/04
● Nghiên cứu các bài báo liên quan
● Nghiên cứu framework hỗ trợ máy học
● Viết báo cáo giai đoạn 1
16/04 - 29/04
● Xử lý dữ liệu từ dblp. Xây dựng hệ thống lưu trữ, truy xuất dữ liệu lớn
● Canh chỉnh thông số hệ thống
● Viết báo cáo giai đoạn 2
30/04 - 14/05

● Cài đặt thuật toán huấn luyện
● Chạy số liệu
● Viết báo cáo giai đoạn 3
15/05 - 5/06
● Giao diện demo
● Deploy hệ thống
● Viết báo cáo giai đoạn 4 (cuối)
5/06 - 11/06
● Tổng hợp báo cáo
Xác nhận của CBHD

TP. HCM, ngày 25 tháng 2 năm 2022

(Ký tên và ghi rõ họ tên)

8


DANH MỤC HÌNH VẼ

12

DANH MỤC BẢNG

12

DANH MỤC THUẬT NGỮ

12


DANH MỤC CHỮ VIẾT TẮT

12

TÓM TẮT KHÓA LUẬN

12

Chương 1 - Tổng quan đề tài
1.1. Dẫn nhập
1.2. Mục tiêu
1.3. Nội dung thực hiện
1.4. Phạm vi thực hiện
1.5. Bố cục báo cáo
1.6. Kết quả đạt được
1.7. Kết chương 1

13
13
14
14
14
14
15
15

Chương 2 - Những nghiên cứu liên quan, hướng phát triển
2.1. Bài toán khuyến nghị
2.1.1. Khái niệm hệ khuyến nghị
2.1.2. Phát biểu bài toán

2.2. Khảo sát nghiên cứu liên quan
2.2.1. Các phương pháp lọc truyền thống
2.2.1.1. Lọc nội dung (Content-base)
2.2.1.2. Lọc cộng tác (Collaborative filtering)
2.2.1.3. Lọc nhân khẩu (Demographic filtering)
2.2.1.4. Kết luận hướng phát triển
2.2.2. Tìm kiếm hàng xóm gần nhất (NNS)
2.2.2.1. Tìm kiếm tuyến tính (Linear search)
2.2.2.2. Tìm kiếm xấp xỉ (Approximate nearest neighbor, ANN)
2.2.2.3. Mơ hình khuyến nghị 2 giai đoạn (2 phase recommender)
2.2.3.4. Kết luận hướng phát triển
2.2.3. Xếp hạng trang (PageRank)
2.2.3.1. Xếp hạng trang truyền thống
2.2.3.2. Lướt ngẫu nhiên với xác suất khởi động (RWR)
2.2.3.3. Kết luận hướng phát triển
2.3. Kết chương 2

15
15
15
15
17
17
17
18
20
21
22
23
23

25
26
27
28
29
30
31
9


Chương 3 - Khuyến nghị cộng tác dựa trên phân tích mạng xã hội
3.1. Phát biểu bài tốn
3.2. Tổng quan tiếp cận
3.3. Dữ liệu mạng xã hội
3.3.1. Định nghĩa
3.3.2. Hiện thực lưu trữ, khai thác dữ liệu mạng xã hội
3.4. Phân tích dữ liệu
3.4.1. Giới thiệu bộ dữ liệu
3.4.2. Tương đồng nội dung
3.4.2.1. Biểu diễn vector nội dung
3.4.2.2. Phân tích số liệu
3.4.3. Tương đồng trích dẫn
3.4.3.1. Lướt ngẫu nhiên với xác suất khởi động (RWR)
3.4.3.2. Phân tích số liệu
3.4.4. Tổ chức cộng tác
3.4.4.1. Tổ chức cộng tác tiềm năng
3.4.4.2. Phân tích số liệu
3.4.4. Tần suất hoạt động
3.4. Mơ hình khuyến nghị
3.2.1. Chiết xuất đặc trưng

3.2.2. Chỉ mục vector
3.2.2. Xếp hạng bằng phân loại SVM
3.5. Huấn luyện mơ hình
3.3.1. Xử lý dữ liệu
3.3.1.1. Đồ thị tổ chức
3.3.1.2. Đồ thị trích dẫn
3.3.1.3. Độ tương tự nội dung
3.3.1.4. Mức độ tích cực hoạt động
3.3.2. Lấy mẫu
3.4. Kết chương

31
31
32
32
33
33
34
34
35
36
36
39
39
40
41
42
43
43
44

44
44
44
44
44
44
44
44
44
44
44

Chương 4 - Hiện thực hệ thống
4.1. Cơ sở dữ liệu
4.1.1. Dữ liệu lớn
4.1.1.1. Thiết kế luồng đầu vào
4.1.1.2. Cấu trúc bảng

44
44
44
44
44
10


4.1.2. Tra cứu điểm dữ liệu
4.2. Kiến trúc tổng quan

44

45

Chương 5 - Thực nghiệm và đánh giá
5.1. Dữ liệu thực nghiệm
5.2. Phương pháp đánh giá
5.2.1. Độ đo Precision
5.2.2. Độ đo Average Precision
5.2.3. Độ đo Recall
5.2.4. Độ đo TopN
5.3. Kết quả thực nghiệm
5.3.1. Độ đo Precision
5.3.2. Độ đo Average Precision
5.3.3. Độ đo Recall
5.3.4. Độ đo TopN

45
45
45
45
45
45
45
45
45
45
45
45

Kết luận và hướng phát triển


45

Tài liệu tham khảo

45

Phụ lục

46

11


DANH MỤC HÌNH VẼ
DANH MỤC BẢNG
DANH MỤC THUẬT NGỮ
DANH MỤC CHỮ VIẾT TẮT
TÓM TẮT KHÓA LUẬN

12


Chương 1 - Tổng quan đề tài
1.1. Dẫn nhập
Nghiên cứu và xuất bản báo khoa học là hoạt động không thể thiếu ở các trường đại học.
Không chỉ dành cho cấp bậc đào tạo thạc sĩ, tiến sĩ. Bất kỳ sinh viên đại học nào cũng
được chào đón tham gia hoạt động, và thực tế cho thấy càng ngày càng có nhiều bài báo
được xuất bản ở các đầu báo khoa học nổi tiếng với tác giả là các bạn sinh viên chương
trình cử nhân, kỹ sư… Nghiên cứu khoa học trở nên sôi nổi, tạo tiền đề ứng dụng các giải
pháp khuyến nghị vào việc khuyến nghị các mối quan hệ cộng tác tiềm năng. Một hệ

khuyến nghị cộng tác, khơng những góp phần nâng cấp hoạt động nghiên cứu khoa học
trong nội tại tổ chức. Mà thông qua kết quả khuyến nghị cộng tác viên trực thuộc tổ chức
khác góp phần khơng nhỏ thúc đẩy sự hợp tác giữa các trường đại học trong và ngồi
nước.
Các bài tốn khuyến nghị học thuật phổ biến như: khuyến nghị báo khoa học, khuyến
nghị cộng tác viên, khuyến nghị hội đồng nộp báo… Cũng như các giải pháp khuyến nghị
kinh điển như lọc lý lịch (Demographic Filtering), lọc nội dung (Content-Based
Filtering), lọc cộng tác (Collaborative Filtering), kết hợp các giải pháp lọc (Hybrid), tiếp
cận mơ hình (Model-Based), tương đồng gần nhất (K-Nearest neighbor)... có nhiều bất
cập. Một số có thể kể đến là dữ liệu lớn (Big Data), dữ liệu thưa (Sparse), chưa có cách
thức chuẩn để đánh giá mơ hình (Benchmark), khởi động lạnh (Cold start).

Một trong những xu thế trong khai thác dữ liệu là chiết xuất đặc trưng từ dữ liệu mạng xã
hội. Quan hệ tương tác xã hội giữa người với người có vai trị khơng nhỏ trong việc ra
quyết định của một cá nhân. Sinh viên nghiên cứu khoa học thông thường sẽ phát triển
tiếp công trình nghiên cứu có sẵn của giảng viên hướng dẫn, hoặc làm chung đề tài với
bạn bè cùng hội nhóm nghiên cứu. Mạng xã hội dường như là cách tiếp cận khuyến nghị
cộng tác sát với thực tế, do đó đề tài khóa luận chọn tiếp cận khai thác mạng xã hội để
phát triển và thực nghiệm mơ hình, ứng dụng xây dựng hệ thống khuyến nghị cộng tác
tiềm năng.

13


1.2. Mục tiêu
● Nghiên cứu đề tài khuyến nghị cộng tác, tìm kiếm thơng tin, khai thác dữ liệu
mạng xã hội.
● Ứng dụng xây dựng hệ thống khuyến nghị cộng tác viên tiềm năng dựa trên dữ
liệu thu thập được.
● Khuyến nghị trên dữ liệu lớn.

● Truy vấn khuyến nghị thời gian thực.

1.3. Nội dung thực hiện
● Tìm hiểu, khảo sát các cơng trình nghiên cứu xoay quanh bài tốn khuyến nghị
cộng tác, tìm kiếm thơng tin, khai thác dữ liệu mạng xã hội.
● Xử lý bộ dữ liệu thô Arnet Citation V13.
● Xây dựng cấu trúc dữ liệu mạng xã hội, cài đặt các giải thuật đồ thị chiết suất đặc
trưng từ mạng.
● Cài đặt và thực nghiệm mô hình dự đốn.
● Ứng dụng xây dựng hệ thống.
● Xây dựng sản phẩm website demo.

1.4. Phạm vi thực hiện
Khóa luận tập trung nghiên cứu, thử nghiệm mơ hình dựa trên các đặc trưng chiết xuất từ
bộ dữ liệu trích dẫn Arnet Citation V13. Ứng dụng xây dựng hệ thống khuyến nghị cộng
tác học thuật trên tập dữ liệu nghiên cứu.

1.5. Bố cục báo cáo
Báo cáo gồm có 5 chương:
● Chương 1 - Tổng quan đề tài. Giới thiệu bài toán, đặt mục tiêu và phạm vi thực
hiện.
● Chương 2 - Những nghiên cứu liên quan, cơ sở lý luận. Mô tả bài toán khuyến
nghị cộng tác học thuật và nghiên cứu các báo cáo khoa học liên quan. Tổng kết,
phân tích ra đưa ra cách tiếp cận của khóa luận.
● Chương 3 - Khuyến nghị cộng tác học thuật trên dữ liệu mạng xã hội. Khai
thác dữ liệu mạng xã hội, đề xuất mơ hình dự đốn, huấn luyện mơ hình.
● Chương 4 - Hiện thực hệ thống. Đặc tả use-case, thiết kế cơ sở dữ liệu, thiết kế
kiến trúc, thiết kế API, thiết kế giao diện, triển khai.

14



● Chương 5 - Thực nghiệm và đánh giá. Dữ liệu thực nghiệm, các độ đo, kết quả
thực nghiệm.

1.6. Kết quả đạt được






Học hỏi kiến thức cơ bản trong lĩnh vực học máy.
Tích lũy kinh nghiệm làm việc với các công nghệ dữ liệu lớn.
Nắm bắt kiến thức về hệ khuyến nghị, ứng dụng giải quyết vấn đề liên quan.
Xây dựng thành cơng mơ hình dự đốn với độ chính xác cao.
Sản phẩm website demo.

1.7. Kết chương 1
Đến thời điểm này, chúng tơi đã:
● Giới thiệu bài tốn
● Xác định cụ thể mục tiêu và phạm vi bài toán

Chương 2 - Những nghiên cứu liên quan, hướng phát
triển
2.1. Bài toán khuyến nghị
2.1.1. Khái niệm hệ khuyến nghị
● Hệ khuyến nghị là những hệ thống được thiết kế giúp tìm kiếm những thơng tin
người dùng có thể quan tâm, u thích, khi lượng thông tin trở nên quá lớn cho
một người dùng thông thường.

● Các hệ thống khuyến nghị lớn hiện nay được xây dựng dưới dạng mơ đun tích hợp
trong các nền tảng thương mại điện tử (Amazon, Ebay…) hoặc mạng xã hội
(Tiktok, Facebook…). Có vai trị tạo đề xuất hữu ích, giữ chân người dùng, tăng
lưu lượng truy cập cho hệ thống phần mềm.

2.1.2. Phát biểu bài toán
Định nghĩa 1.1: Không gian người dùng
Không gian người dùng là tập tất cả người dùng mà hệ thống thu thập được từ các nguồn
dữ liệu. Dữ liệu người dùng sẽ được phân tích, chiết xuất đặc trưng phục vụ khuyến nghị.
Ký hiệu là

.
15


Định nghĩa 1.2: Không gian đối tượng khuyến nghị
Không gian đối tượng khuyến nghị là tập tất cả các đối tượng (hoặc ứng viên) sẽ được đề
xuất cho người dùng. Tùy vào bài tốn cần giải quyết, đối tượng có thể là phim ảnh
(Movie Recommendation), sản phẩm thương mại điện tử (Product Recommendation),
báo khoa học (Scientific Paper Recommendation), người cộng tác (Collaborator
Recommendation)... Ký hiệu là

.

Định nghĩa 1.3: Đại diện vector
Máy móc khơng thể hiểu được thuộc tính, tính chất, định danh của đối tượng. Tất yếu
phải chuyển đổi những đại lượng này sang số học. Trong các nghiên cứu về máy học nói
chung, đây là vấn đề mã hóa dữ liệu (Encoding), sản phẩm đầu cuối của quá trình mã hóa
là vector đại diện (Vector presentation). Ký hiệu là
.

Định nghĩa 1.4: Hàm hữu ích
Hàm hữu ích f là ánh xạ
, dùng để tính mức độ hữu ích của
đối với
. Với R là tập hợp các số nguyên hoặc số thực, V là biểu diễn vector của
người dùng hoặc đối tượng khuyến nghị. Các ứng dụng hệ khuyến nghị đa số trường hợp
tập R mặc định là số thực, chỉ các trường hợp cần dự đoán đánh giá người dùng dựa trên
thang điểm có sẵn R được ánh xạ thành số ngun khơng âm.
Phát biểu bài tốn khuyến nghị
Cho tập người dùng U và tập khuyến nghị P. Mục đích của hệ khuyến nghị là:
● Mã hóa dữ liệu thơ sang vector đại diện V.
● Tìm hàm hữu ích f, ước lượng giá trị của
. Giá trị của
giúp
tiên đoán mức độ yêu thích của người dùng với đối tượng khuyến nghị. Một hệ
khuyến nghị cần chọn ra tập N đối tượng khuyến nghị có giá trị tiên đốn
cao nhất (TopN recommendations). N sẽ được quyết định bởi hệ thống
đầu cuối.

16


2.2. Khảo sát nghiên cứu liên quan
2.2.1. Các phương pháp lọc truyền thống

Hình 1.1: Các phương pháp lọc truyền thống
Các phương pháp lọc truyền thống, ra đời trong bối cảnh từ năm 2000 đến năm 2010.
Khoảng thời gian các sàn thương mại điện tử, trang tin tức và mạng xã hội ra đời. Động
lực chính của hệ khuyến nghị chủ yếu xoay quanh khuyến nghị sản phẩm (Phim, sách),
khuyến nghị tin tức, khuyến nghị quảng cáo…

2.2.1.1. Lọc nội dung (Content-base)

Hình 1.2: Lọc nội dung minh họa (Internet)

17


Các phương pháp lọc nội dung phần lớn công việc chủ yếu nằm ở giai đoạn mã hóa dữ
liệu hệ thống sang biểu diễn vector. Tổng quát thông qua 3 bước:
1. Biểu diễn vector đối tượng khuyến nghị p.
2. Biểu diễn vector theo hồ sơ người dùng u.
3. Xây dựng hàm ước lượng mức độ yêu thích của u với p

.

Hàm ước lượng
có thể sử dụng cơng thức tính độ tương tự 2 vector như Cosine
(tương tự về góc), Euclidean (tương tự về khoảng cách). Hoặc ứng với mỗi hồ sơ người
dùng lưu trữ trực tiếp vector thông số mô hình [3]. Trong trường hợp này hàm ước lượng
có thể dùng các mơ hình dự đốn hồi quy như (Linear regression, Softmax
regression) hoặc mơ hình dự đốn phân loại (Classification) với dữ liệu huấn luyện là lịch
sử phản hồi của người dùng lên đối tượng khuyến nghị.
Hạn chế của tiếp cận lọc nội dung
● Kết quả khuyến nghị thiếu đa dạng, tiếp cận khuyến nghị Content-based thông
thường chỉ đưa ra đề xuất tương đồng với đối tượng đã nhận sự tương tác trước đó
từ người dùng [1]. Kết quả khuyến nghị nhàm chán.
● Dữ liệu lớn. Lấy ví dụ các nền tảng thương mại điện tử như Amazon, tập đối
tượng khuyến nghị là rất lớn. Ước lượng sắp xếp trên toàn bộ tập hợp cho thời
gian truy vấn lâu.
2.2.1.2. Lọc cộng tác (Collaborative filtering)


Hình 1.3: Lọc cộng tác minh hoạ [2]

18


Khác với phương pháp lọc nội dung, lọc cộng tác tạo đề xuất dựa trên tương tác của
người dùng khác với đối tượng khuyến nghị. Khuyến nghị với người dùng A có xu hướng
đề xuất các đối tượng mà người dùng B đã thích trong quá khứ, cho rằng người dùng A
tương đồng người dùng B. Có thể tổng quát khuyến nghị cộng tác thông qua 4 bước:
1. Biểu diễn vector đối tượng khuyến nghị p.
2. Biểu diễn vector theo hồ sơ người dùng u.
3. Xây dựng hàm ước lượng mức độ tương đồng giữa 2 người dùng u
4. Xây dựng hàm ước lượng mức độ yêu thích của u với p
Theo (Rahul và cộng sự 2) hàm ước lượng
đồng Cosine, Pearson, Euclidean. Từ hàm
trung bình độ u thích theo cơng thức sau [4].

.

.

có thể sử dụng cơng thức tương
, có thể xây dựng hàm ước lượng

● Với r là đánh giá của người dùng với đối tượng khuyến nghị.
Lọc cộng tác là một trong những phương pháp khuyến nghị thành công nhất hiện nay.
Lọc cộng tác là nền tảng cho nhiều bài toán biến thể ứng dụng máy học sau này: nghiên
cứu thừa số hóa ma trận (Matrix Factorization) trên bộ dữ liệu Netflix [5]; kết hợp thừa
số hóa ma trận với định lý Bayes trên dữ liệu phản hồi ngầm (Implicit feedback) [6]; tối

ưu trọng số bình phương xen kẽ (WALs) [7].
Hạn chế của tiếp cận lọc cộng tác
● Ma trận thưa (Sparse) [2], dữ liệu đánh giá của người dùng trong các hệ thống
thường không nhiều, chỉ chiếm một phần nhỏ trong tập đối tượng khuyến nghị.
Với cách tiếp cận khơng mơ hình, kết quả khuyến nghị gần như ngẫu nhiên vì
khơng có dữ liệu để dự đoán xếp hạng sản phẩm, xếp hạng bằng 0. Với cách tiếp
cận mơ hình, tập dữ liệu huấn luyện bị mất cân bằng nghiêm trọng, quá nhiều mẫu
thử âm (Negative sample).
● Khởi động lạnh (Cold start) [2], người dùng có rất ít dữ liệu tương tác, kết quả
hàm
khơng thuyết phục.
● Dữ liệu lớn. Có phần nghiêm trọng hơn lọc nội dung, lọc cộng tác xét cả 2 tập
hợp, tập người dùng và tập đối tượng khuyến nghị để tạo đề xuất. Ước lượng độ
yêu thích trên từng đối tượng và sắp xếp dẫn đến thời gian truy vấn lâu.
19


2.2.1.3. Lọc nhân khẩu (Demographic filtering)

Hình 1.4: Lọc nhân khẩu minh hoạ [8]
Dữ liệu nhân khẩu là các số liệu như tuổi tác, giới tính, vùng lãnh thổ, dân tộc… được
dùng để thống kê, tổng hợp thông tin về kinh tế, xã hội. Lọc nhân khẩu thực chất chỉ là
phân nhóm người dùng theo tính chất nhân khẩu, cách thức tồn tại từ rất lâu trong các
giải pháp phần mềm quản trị.
Trong bài tốn khuyến nghị nói riêng, giả sử tồn tại một nhóm người dùng đã được phân
chia theo tính chất nhân khẩu xác định. Cho rằng kết quả khuyến nghị khơng có tính cá
nhân hóa mà có tính tổng quát trên một tập thể, danh sách đề xuất cho nhóm người này là
như nhau đối với từng người dùng. Có thể nói kết quả khuyến nghị này tương đối, nếu
kết quả được sắp xếp theo lưu lượng tương tác, khả năng khá cao người dùng sẽ tìm được
sản phẩm yêu thích trong đề xuất khuyến nghị.

Lọc nhân khẩu là cách tiếp cận khuyến nghị đơn giản, dễ cài đặt, khơng cần huấn luyện
mơ hình. Với kết quả khuyến nghị tương đối tốt, lọc nhân khẩu được ứng dụng để giải
quyết các vấn đề như: vấn đề khởi động lạnh ở tiếp cận lọc cộng tác [8]; một giải pháp
lọc cộng tác tăng cường [9]; phân loại dữ liệu lọc nhân khẩu nhằm tăng cường kết quả lọc
cộng tác [11]; sử dụng dữ liệu nhân khẩu để chiết xuất đặc trưng, xây dựng hàm ước
lượng tương đồng

[10].

20


Hạn chế của tiếp cận lọc nhân khẩu
● Kết quả khuyến nghị khơng có tính cá nhân hóa. Hạn chế này chỉ hiện hữu với ứng
dụng lọc nhân khẩu đơn lẻ, kết hợp với lọc cộng tác hạn chế này được khắc phục.
2.2.1.4. Kết luận hướng phát triển
● Dựa trên đặc thù về dữ liệu thu thập khơng có q nhiều thông tin người dùng
trong tập người dùng U, chúng tôi nhận định phương pháp lọc nhân khẩu không
phù hợp với bài tốn đặt ra của khóa luận.
● Dựa trên đặc thù về bài tốn, đó là: khuyến nghị cộng tác. Nếu chỉ xem xét tương
đồng nội dung, tương đồng từ khóa, kết quả khuyến nghị sẽ cho ra các cặp cộng
tác có lịch sử xuất bản tương đồng chủ đề. Chúng tôi cho rằng các yếu tố ngoại
cảnh ảnh hưởng không nhỏ đến quan hệ cộng tác. Trên thực tế 2 ứng viên có thể
cùng cộng tác trên một chủ đề hồn tồn khác, hoặc có ít liên quan đến lịch sử
cộng tác. Do đó chúng tơi cân nhắc thử nghiệm tương đồng nội dung giữa 2 ứng
viên như một đặc trưng trong đại diện vector.
● Phương pháp còn lại cuối cùng là lọc cộng tác, được chúng tôi ứng dụng như một
cách tiếp cận tự nhiên để giải quyết bài toán đặt ra. Ứng dụng thuật toán phù hợp
(Đề mục 3.4) để phân tích và chiết xuất mức độ tương đồng giữa 2 ứng viên.
Như vậy để xây dựng một hệ thống khuyến nghị hồn chỉnh, chúng tơi cần giải quyết 3

vấn đề sau:
● Khởi động lạnh (Cold Start).
● Ma trận thưa (Sparse).
● Dữ liệu lớn (Big Data).

21


2.2.2. Tìm kiếm hàng xóm gần nhất (NNS)

Hình 1.5: Minh họa hàng xóm gần nhất (Internet)
Giả sử tồn tại một bảng dữ liệu lớn, chạy giải thuật chọn lọc trên tập dữ liệu với kích
thước lớn cho thời gian truy vấn lâu. Điều này là không thực tế với các hệ thống thời gian
thực, khi một câu truy vấn cần phải phản hồi trong chưa đến 1 giây tính ln cả thời gian
hiển thị. Tiếp cận tìm kiếm hàng xóm gần nhất ra đời giúp giải quyết vấn đề tìm kiếm
trên dữ liệu lớn, dựa trên nền tảng là các cơng trình nghiên cứu về mã hóa dữ liệu.
Định nghĩa 1.5: Khơng gian vector
Cho trước một hàm hữu ích E với E là ánh xạ
. Tập hợp D là tập các điểm
dữ liệu trong hệ thống, thông qua ánh xạ E cho ra tập hợp V = E(D), là tập hợp các vector
đại diện cho điểm dữ liệu.
Một không gian dữ liệu lớn, với từng điểm dữ liệu có cấu trúc thuộc tính riêng biệt
(Schemaless, Dynamic Schema) hoặc cấu trúc thuộc tính giống nhau (Strict Schema
Enforcement) với tiếp cận tìm kiếm lọc thơng thường cho thời gian tìm kiếm lâu. Tuy
nhiên khi chuyển đổi từ không gian dữ liệu sang khơng gian vector, với đặc thù mỗi
vector có kích thước cố định (Fixed length) với từng phần tử vector thuộc tập số tự nhiên.
Kích thước xử lý và độ phức tạp sẽ giảm đáng kể, chỉ lưu trữ số liệu khơng tốn nhiều bộ
nhớ.
Bài tốn hàng xóm gần nhất
Giả sử không gian vector đã được xây dựng, cho một truy vấn q là vector với cùng kích

thước các vector trong tập V. Mục tiêu của bài tốn là tìm k hàng xóm gần nhất với q
(Hình 1.5).

22


2.2.2.1. Tìm kiếm tuyến tính (Linear search)
Tiếp cận đơn giản nhất cho bài tốn này là áp dụng tìm kiếm tuyến tính trên khơng gian
vector. Xây dựng hàm ước lượng tương đồng
để tính mức độ tương đồng giữa 2
vector. Có thể sử dụng lại các cơng thức để ước tính độ tương đồng như Cosine,
Euclidean, Pearson như đã đề cập (Đề mục 2.2.1), hoặc chỉ đơn giản là phép nhân 2
vector và tính tổng phần tử (Inner Product).
Với mỗi truy vấn q, chạy hàm
tính độ tương đồng của q đối với tồn bộ vector
trong khơng gian cho trước. Sau cùng chạy giải thuật sắp xếp trên danh sách độ tương
đồng và lọc lấy k phần tử đầu tiên.
Hạn chế của tìm kiếm tuyến tính
● Phải duyệt qua tồn bộ khơng gian vector, thời gian xử lý lâu.
● Không giải quyết được vấn đề dữ liệu lớn, tìm kiếm tuyến tính trực tiếp trên tập dữ
liệu D cho mức độ hiệu quả tính tốn tương tự.
2.2.2.2. Tìm kiếm xấp xỉ (Approximate nearest neighbor, ANN)

Hình 1.6: Biểu đồ vùng Voronoi, dùng
cơng thức Euclidean (Wikipedia)

Hình 1.7: Biểu đồ vùng Voronoi, dùng
cơng thức Manhattan (Wikipedia)

23



Hình 1.8: Biểu đồ thể hiện hiệu năng các giải thuật ANN, với mỗi truy vấn q cho k = 10
(ann-benchmarks.com)
Cách tiếp cận tìm kiếm tuyến tính cho thời gian xử lý lâu, nhưng không thể phủ nhận đây
là cách tiếp cận cho độ chính xác tuyệt đối. Bằng cách hi sinh một ít độ chính xác để đổi
lấy tốc độ truy vấn nhanh, tìm kiếm xấp xỉ ra đời giải quyết được vấn đề tìm kiếm trên dữ
liệu lớn.
Tiếp cận tìm kiếm xấp xỉ nói chung có ngun lý hoạt động dựa trên hàm băm (Hashing),
xây dựng hàm băm
gom các vector có độ tương quan gần nhau vào cùng một
cụm (Cluster hoặc Index). Độ tương quan được quyết định bởi hàm ước lượng độ tương
đồng
, có thể sử dụng Cosine, Euclidean, Manhattan, Pearson hoặc Inner
Product. Hình 1.6 và 1.7 thể hiện hiệu ứng gom cụm thông qua biểu đồ Voronoi.

24


Với từng truy vấn q, chạy hàm
với c là cụm, ước lượng độ tương quan giữa truy
vấn và tất cả cụm trong khơng gian vector, chọn số n cụm có độ tương quan gần nhất với
truy vấn để tiến hành ước lượng và sắp xếp. Việc tìm kiếm xấp xỉ chỉ tìm kiếm trên một
phần khơng gian vector, tuy nhiên vẫn giữ được độ chính xác cao (Hình 1.8). Nghiên cứu
về xây dựng cấu trúc dữ liệu cây hiện thực truy vấn cụm ghi nhận độ chính xác 99% [12].
Nhóm nghiên cứu Facebook [13] tối ưu truy vấn cụm sử dụng các kỹ thuật định lượng
(Quantizer) cho độ chính xác cao trên khơng gian vector kích thước 1 tỷ.
Hạn chế của tìm kiếm xấp xỉ
● Mất thời gian khởi tạo để xây dựng cấu trúc dữ liệu cụm cho không gian vector.
Nếu một vector trong không gian thay đổi, xây dựng lại cụm (Rebuild index).

2.2.2.3. Mơ hình khuyến nghị 2 giai đoạn (2 phase recommender)

Hình 1.9: Mơ hình khuyến nghị Youtube DNN [15]
Giải thuật khuyến nghị nói chung gặp hạn chế về dữ liệu lớn với thời gian truy vấn lâu,
như đã đề cập (Đề mục 2.2.1). Một trong những ý tưởng thành công nhất được ứng dụng
rộng rãi trong các hệ thống hiện nay đó là mơ hình khuyến nghị 2 giai đoạn (Hình 1.9).

25


×