HỒ CHÍ MINHTRƯỜ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
Trang 1ĐẠ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
Trang 2THÔ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
Trang 3ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
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:
Cán bộ hướng dẫn:
TS Huỳnh Ngọc Tín
Đánh giá khóa luận:
1 Về cuốn báo cáo
Một số nhận xét về hình thức cuốn báo cáo:
Trang 42 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)
Trang 5LỜ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 quá trình làm việc Tài liệu tham khảo do thầy cung cấp đã gópphần lớn giúp nhóm hoàn thiện đề tài nói riêng và nắm bắt kiến thức thực tiễn về ứngdụng hệ khuyến nghị nói chung
Trang 6ĐỀ 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ìmkiế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êncứu và tổ chức công tác
○ Một đoàn nghiên cứu trường NUS đến thăm và tìm kiếm cơ hội hợp tácvới trường UIT Hệ thống có thể tìm kiếm và gợi ý các quan hệ hợp táctiềm năng
Trang 7● 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ự đoá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ỉnhthô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
Trang 825/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
Trang 92.2.1.2 Lọc cộng tác (Collaborative filtering) 182.2.1.3 Lọc nhân khẩu (Demographic filtering) 20
2.2.2.1 Tìm kiếm tuyến tính (Linear search) 232.2.2.2 Tìm kiếm xấp xỉ (Approximate nearest neighbor, ANN) 232.2.2.3 Mô hình khuyến nghị 2 giai đoạn (2 phase recommender) 25
2.2.3.2 Lướt ngẫu nhiên với xác suất khởi động (RWR) 29
Trang 10Chương 3 - Khuyến nghị cộng tác dựa trên phân tích mạng xã hội 31
Trang 114.1.2 Tra cứu điểm dữ liệu 44
Trang 13Chươ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ươngtrì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ảiphá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ọctrong 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ứckhá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à ngoàinước
Các bài toán khuyến nghị học thuật phổ biến như: khuyến nghị báo khoa học, khuyếnnghị 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ếpcận mô hình (Model-Based), tương đồng gần nhất (K-Nearest neighbor) có nhiều bấtcậ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áchthứ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 raquyế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ểntiế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ớibạ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áctiềm năng
Trang 14● 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 toá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 đặctrưng từ mạng
● Cài đặt và thực nghiệm mô hình dự đoá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ộngtá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ự đoá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
Trang 15● 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ự đoá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 toá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 tinngười dùng có thể quan tâm, yêu thích, khi lượng thông tin trở nên quá lớn chomộ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ợptrong 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ănglư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ị
Trang 16Đị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 toá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
Đị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ếuphả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óichung, đâ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ủangườ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ợptậ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ênthang điểm có sẵn R được ánh xạ thành số nguyên không âm
Phát biểu bài toá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úptiê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 đoán
cao nhất (TopN recommendations) N sẽ được quyết định bởi hệ thốngđầu cuối
Trang 172.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 Độnglự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)
Trang 18Cá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ườidù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ự đoán hồi quy như (Linear regression, Softmaxregression) hoặc mô hình dự đoá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ôngthườ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 đốitượ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ờigian 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]
Trang 19Khá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ủangườ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 Atươ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 có thể sử dụng công thức tươngđồng Cosine, Pearson, Euclidean Từ hàm , có thể xây dựng hàm ước lượngtrung bình độ yêu thích theo công thức sau[4]
● 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êncứ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ốngthườ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ếpcậ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ẫuthử â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ậphợ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
Trang 202.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… đượcdù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ácgiải pháp phần mềm quản trị
Trong bài toán khuyến nghị nói riêng, giả sử tồn tại một nhóm người dùng đã được phânchia 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ếukế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 đượcsả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ảiquyế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áplọ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ọccộ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 ướclượng tương đồng [10]
Trang 21Hạ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 ứngdụ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ó quá nhiều thông tin người dùngtrong 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ôngphù hợp với bài toán đặt ra của khóa luận
● Dựa trên đặc thù về bài toá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ộngtá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ạicả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ủ đề hoàn toà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 ứngviê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ộtcá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ị hoàn chỉnh, chúng tôi cần giải quyết 3vấn đề sau:
● Khởi động lạnh (Cold Start)
● Ma trận thưa (Sparse)
● Dữ liệu lớn (Big Data)
Trang 222.2.2 Tìm kiếm hàng xóm gần nhất (NNS)
Hình 1.5: Minh họahà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íchthướ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 gianthự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 luôn cả thời gianhiể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ếmtrê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 SchemaEnforcement) 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 Tuynhiên khi chuyển đổi từ không gian dữ liệu sang không gian vector, với đặc thù mỗivector 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 toá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íchthước các vector trong tập V Mục tiêu của bài toán là tìm k hàng xóm gần nhất với q(Hình 1.5)
Trang 232.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 toán này là áp dụng tìm kiếm tuyến tính trên không gianvector Xây dựng hàm ước lượng tương đồng để tính mức độ tương đồng giữa 2vector 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 2vector 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 toàn bộ vectortrong 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 toà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 toá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ùngcông thức Manhattan (Wikipedia)