Tải bản đầy đủ

Hệ tìm kiếm và gợi ý thông tin

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------Phạm Việt Hưng

HỆ TÌM KIẾM VÀ GỢI Ý THÔNG TIN
Chuyên ngành: Công nghệ thông tin

LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS. NGUYỄN BÌNH MINH

Hà Nội –2017


LỜI CẢM ƠN!
Em xin chân thành cảm ơn TS. Nguyễn Bình Minh - Viện Công nghệ thông
tin và Truyền thông – Trường Đại học Bách Khoa Hà Nội, người đã định hướng, đã
tận tình hướng dẫn, giúp đỡ em trong suốt quá trình thực hiện luận văn tốt nghiệp.
Em xin chân thành cảm ơn các thầy, cô giáo - Viện Công nghệ Thông tin và

Truyền thông - Trường Đại học Bách Khoa Hà Nội, những người đã tận tình truyền
đạt các kiến thức, quan tâm, động viên em trong suốt thời gian em học tập và
nghiên cứu tại Trường.
Nhân đây, tôi cũng gửi lời cảm ơn tới các bạn học cùng lớp 2015A chuyên
ngành công nghệ thông tin, các bạn đồng nghiệp đã thường xuyên quan tâm, giúp
đỡ, chia sẻ kinh nghiệm, cung cấp các tài liệu hữu ích trong suốt thời gian tôi học
tập và đặc biệt là trong quá trình thực hiện luận văn tốt nghiệp vừa qua.
Do trong quá trình nghiên cứu, tìm hiểu và thực nghiệm luận văn chắc chắn
không thể tránh khỏi những sai sót nhất định, tôi rất mong nhận được sự góp ý của
thầy, cô giáo và các bạn để luận văn được hoàn chỉnh hơn.
Tôi xin trân trọng cảm ơn!
Hà Nội, tháng 04 năm 2017
Tác giả luận văn

Phạm Việt Hưng


LỜI CAM ĐOAN
Tôi xin cam đoan luận văn “Hệ tìm kiếm và gợi ý thông tin” này là công
trình nghiên cứu của tôi dưới sự hướng dẫn khoa học của TS. Nguyễn Bình Minh.
Tất cả những tài liệu tham khảo tôi đã liệt kê rõ ở phần cuối của luận văn. Các nội
dung công bố và kết quả trình bày trong luận văn này là trung thực và không có sự
sao chép của người khác.
Hà Nội, tháng 04 năm 2017
Tác giả luận văn

Phạm Việt Hưng


DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT..............................................7
DANH MỤC CÁC HÌNH ...........................................................................................8
DANH MỤC CÁC BẢNG........................................................................................10
CHƯƠNG 1 – MỞ ĐẦU ..........................................................................................11
1.1. ĐẶT VẤN ĐỀ ...................................................................................................11
1.2. MỤC TIÊU .......................................................................................................11
1.3. CÁCH TIẾP CẬN ............................................................................................12
1.4. PHẠM VI NGHIÊN CỨU ...............................................................................12
1.5. CẤU TRÚC LUẬN VĂN .................................................................................13
CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ..............................................15
2.1. TRUY HỒI THÔNG TIN................................................................................15


2.1.1. Mô hình không gian Vector......................................................................16
2.1.1.1. Khái niệm ............................................................................................16
2.1.1.2. Trọng số từ ..........................................................................................17
2.1.1.3. Độ tương đồng giữa văn bản và truy vấn ........................................17
2.1.1.4. Chuẩn hóa độ dài tài liệu ...................................................................19
2.1.1.5. Ký hiệu SMART .................................................................................20
2.1.2. Đánh giá kết quả tìm kiếm .......................................................................20
2.1.3. Công cụ Elasticsearch ...............................................................................21
2.2. HỆ THỐNG GỢI Ý .........................................................................................24
2.2.1. Kỹ thuật k láng giềng ................................................................................26
2.2.1.1. Dựa trên người dùng (User-based) ...................................................26
2.2.1.2. Dựa trên sản phẩm (Item-based) ......................................................27


2.2.2. Kỹ thuật phân tích ma trận (Matrix factorization) ...............................28
2.2.2.1. Tối ưu bằng phương pháp SGD........................................................29
2.2.2.2. Tối ưu bằng phương pháp ALS ........................................................31
2.2.3. Đánh giá kết quả gợi ý ..............................................................................31
2.2.3.1. Đánh giá độ tin cậy của giải thuật ....................................................31
2.2.3.2. Đánh giá hiệu quả của việc gợi ý ......................................................32
2.2.4. Công cụ Apache Mahout ..........................................................................33
CHƯƠNG 3 – ĐÁNH GIÁ CÁC PHƯƠNG PHÁP GỢI Ý ....................................35
3.1. DỮ LIỆU ĐÁNH GIÁ......................................................................................35
3.2. PHƯƠNG PHÁP ĐÁNH GIÁ .........................................................................35
3.3. KẾT QUẢ .........................................................................................................35
3.3.1. Gợi ý dựa trên sản phẩm (Item-based) ...................................................35
3.3.2. Gợi ý dựa trên người dùng (User-based) ................................................36
3.3.2.1. Phương pháp Fixed-size neighborhoods ..........................................36
3.3.2.2. Phương pháp Threshold neighborhoods..........................................38
3.3.3. Gợi ý dựa trên phân tích ma trận ............................................................40
3.3.3.1. Phương pháp tối ưu SGD ..................................................................40
3.3.3.2. Phương pháp tối ưu ALS ...................................................................44
3.4. KẾT LUẬN .......................................................................................................48
CHƯƠNG 4 – THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG ......................................50
4.1. GIỚI THIỆU HỆ THỐNG ..............................................................................50
4.2. KIẾN TRÚC HỆ THỐNG ..............................................................................50
4.3. CÁC BIỂU ĐỒ CHỨC NĂNG .......................................................................52
4.3.1. Biểu đồ use-case .........................................................................................52


4.3.2. Biểu đồ hành động.....................................................................................54
4.3.3. Biểu đồ tuần tự ..........................................................................................55
4.4. GIAO DIỆN HỆ THỐNG ...............................................................................56
4.4.1. Chức năng tìm kiếm ..................................................................................56
4.4.2. Chức năng quản lý đăng nhập .................................................................57
4.4.3. Chức năng gợi ý theo sản phẩm tương đồng ..........................................58
4.4.4. Chức năng gợi ý theo người dùng............................................................59
CHƯƠNG 5 - KẾT LUẬN, HƯỚNG PHÁT TRIỂN ..............................................60
5.1. KẾT LUẬN .......................................................................................................60
5.1.1. Kết quả đạt được .......................................................................................60
5.1.2. Hạn chế .......................................................................................................60
5.1. HƯỚNG PHÁT TRIỂN...................................................................................61
TÀI LIỆU THAM KHẢO.........................................................................................63


DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Ký hiệu

Tiếng Anh

Tiếng Việt

TF

Term Frequency

Tần suất xuất hiện từ

IDF

Inverse Document Weighting Trọng số nghịch đảo văn bản

MAP

Mean Average Precision

Bình quân độ chính xác trung bình

RS

Recommender Systems

Hệ thống gợi ý

CF

Collaborative Filtering

Thuật toán gợi ý lọc cộng tác

MF

Matrix Factorization

Phân tích ma trận

SGD

Stochastic Gradient Descent

Thuật toán tối ưu SGD

ALS

Alternating Least Squares

Thuật toán tối ưu ALS

MAE

Mean Absolute Error

Giá trị lỗi trung bình

RMSE

Root Mean Squared Error

Giá trị lỗi bình phương trung bình

JSON

JavaScript Object Notation

Một định dạng trao đổi dữ liệu


DANH MỤC CÁC HÌNH
Hình 1: Mô hình không gian Vector .........................................................................17
Hình 2: Khoảng cách Euclide ...................................................................................18
Hình 3: Tương đồng cosine .......................................................................................19
Hình 4: Kí hiệu SMART [11] ...................................................................................20
Hình 5: Minh họa quá trình index tài liệu [24] .........................................................22
Hình 6: Lưu trữ phân tán trong Elasticsearch [12] ...................................................24
Hình 7: Kỹ thuật phân tích ma trận ...........................................................................28
Hình 8: Cố định số láng giềng gần nhất [13] ............................................................33
Hình 9: Cố định khoảng cách láng giềng gần nhất [13]............................................34
Hình 10: Biểu đồ lỗi trên các độ đo tương đồng .......................................................36
Hình 11: Biểu đồ lỗi trên số láng giềng ....................................................................38
Hình 12: Biều đồ lỗi trên khoảng cách láng giềng ....................................................39
Hình 13: Biểu đồ lỗi trên số bước lặp khi tối ưu bằng SGD .....................................41
Hình 14: Biểu đồ lỗi trên tốc độ học khi tối ưu bằng SGD.......................................43
Hình 15: Biểu đồ lỗi trên hệ số phạt khi tối ưu bằng SGD .......................................44
Hình 16: Biểu đồ lỗi trên số bước lặp khi tối ưu bằng ALS .....................................45
Hình 17: Biểu đồ lỗi trên số nhân tố ẩn khi tối ưu bằng ALS ..................................46
Hình 18: Biểu đồ lỗi trên số nhân tố ẩn khi tối ưu bằng ALS ..................................47
Hình 19: So sánh lỗi 3 phương pháp gợi ý................................................................49
Hình 20: Kiến trúc hệ thống ......................................................................................51
Hình 21: Biểu đồ use-case.........................................................................................53
Hình 22: Biểu đồ hành động .....................................................................................54
Hình 23: Biểu đồ tuần tự ...........................................................................................55
Hình 24: Giao diện tìm kiếm .....................................................................................56
Hình 25: Kết quả tìm kiếm ........................................................................................57
Hình 26: Giao diện đăng nhập ..................................................................................57
Hình 27: Giao diện đăng kí .......................................................................................58
Hình 28: Gợi ý theo sản phẩm tương đồng ...............................................................58


Hình 29: Gợi ý cho người dùng đăng nhập ...............................................................59


DANH MỤC CÁC BẢNG
Bảng 1: Bảng lỗi trên các độ đo tương đồng.............................................................35
Bảng 2: Bảng lỗi trên số láng giềng ..........................................................................37
Bảng 3: Bảng lỗi trên khoảng cách láng giềng .........................................................39
Bảng 4: Bảng lỗi trên số bước lặp khi tối ưu bằng SGD ..........................................40
Bảng 5: Bảng lỗi trên số nhân tố ẩn khi tối ưu bằng SGD ........................................42
Bảng 6: Bảng lỗi trên tốc độ học khi tối ưu bằng SGD ............................................42
Bảng 7: Bảng lỗi trên hệ số phạt khi tối ưu bằng SGD .............................................44
Bảng 8: Bảng lỗi trên số bước lặp khi tối ưu bằng ALS ...........................................45
Bảng 9: Bảng lỗi trên số nhân tố ẩn khi tối ưu bằng ALS ........................................46
Bảng 10: Bảng lỗi trên hệ số phạt khi tối ưu bằng ALS ...........................................47
Bảng 11: Bảng lỗi trên các phương pháp học ...........................................................48


CHƯƠNG 1 – MỞ ĐẦU
1.1. ĐẶT VẤN ĐỀ
Tìm kiếm và gợi ý là hai chức năng đang trở nên ngày càng phổ biến trong
các hệ thống thông tin ở nhiều lĩnh vực khác nhau. Một số ứng dụng của hệ tìm
kiếm và gợi ý thông tin nổi tiếng trên thế giới có thể kể đến như: Amazon (lĩnh vực
thương mại điện tử), Netflix (lĩnh vực phim), Last.fm (lĩnh vực ca nhạc), Facebook
(mạng xã hội),.... Lấy ví dụ Amazon, đối với mỗi truy vấn của người mua, hệ thống
không chỉ tìm kiếm và trả lại thông tin sản phẩm, mà còn đưa ra các gợi ý liên quan
tới sản phẩm đó. Điều này không chỉ thỏa mãn trải nghiệm khách hàng, mà còn ảnh
hưởng lớn tới doanh thu và lợi nhuận của doanh nghiệp. Theo một số báo cáo cho
thấy: 30% doanh thu của Amazon đến từ việc gợi ý sản phẩm [14], trong khi 65%
những gì người dùng quyết định xem nằm trong danh sách gợi ý của Netflix [15].
Năm 2006, Netflix tổ chức cuộc thi mang tên Netflix Prize, với giải thưởng là 1
triệu USD giành cho cá nhân hoặc nhóm đầu tiên có thể tạo ra được một thuật toán
mà có thể cải thiện độ chính xác hơn 10% so với CineMatch – tên của thuật toán mà
Netflix đang sử dụng vào thời điểm đó [14], để thấy được tầm quan trọng và sự
quan tâm của doanh nghiệp dành cho lĩnh vực này. Ở trong nước cũng có nhiều
trang thương mại điện tử, nghe nhạc trực tuyến, phim trực tuyến có tích hợp hai tính
năng này như: nhaccuatui.com, mp3.zing.vn, lazada.vn, adayroi.com, pub.vn,....
Vì lí do đó, tôi lựa chọn việc tìm hiểu và xây dựng một hệ tìm kiếm và gợi ý
thông tin nói chung, cũng như ứng dụng nó trong lĩnh vực phim nói riêng, với mục
đích trải nghiệm, đồng thời khẳng định tính khả thi về mặt tích hợp công nghệ.
1.2. MỤC TIÊU
 Tìm hiểu cơ sở lý thuyết phục vụ cho việc tìm kiếm, gợi ý thông tin.
 Thực nghiệm, đánh giá hiệu quả một số phương pháp gợi ý.
 Đề xuất giải pháp xây dựng một hệ thống tìm kiếm và gợi ý phim
hoàn chỉnh.

11


1.3. CÁCH TIẾP CẬN
 Đối với lý thuyết tìm kiếm: tìm hiểu tổng quan lý thuyết truy hồi
thông tin, lựa chọn nghiên cứu một mô hình được sử dụng phổ biến.
 Đối với lý thuyết gợi ý: tìm hiểu một số phương pháp gợi ý và đánh
giá, so sánh hiệu năng của các phương pháp này.
 Lựa chọn các công cụ phù hợp để xây dựng, tích hợp thành một hệ
thống tìm kiếm và gợi ý phim hoàn chỉnh một cách nhanh chóng, đơn
giản.
1.4. PHẠM VI NGHIÊN CỨU
Có rất nhiều mô hình phục vụ cho việc truy hồi và gợi ý.
Chẳng hạn, với truy hồi thông tin có thể có một số mô hình như:
 Mô hình dựa trên độ tương tự (Similarity-based models): Mô hình
không gian vector (Vector space model)
 Mô hình xác suất (Probabilistic models): Mô hình xác suất cổ điển
(Classic probabilistic model), Mô hình ngôn ngữ (Language model),
Mô hình phân kỳ từ ngẫu nhiên (Divergence-from-randomness model)
 Mô hình suy diễn xác suất (Probabilistic inference model)
 Mô hình tiên đề (Axiomatic model)
Trong số đó, mô hình không gian vector và những biến thể của nó hiện nay
vẫn là cách phổ biến để biểu diễn văn bản trong lĩnh vực khai phá dữ liệu và truy
hồi thông tin [16].
Đối với gợi ý, có nhiều giải thuật được đề xuất, tuy nhiên có thể gom chúng
vào các nhóm chính như:
 Nhóm giải thuật lọc cộng tác (Collaborative Filtering): trong nhóm này,
các giải thuật chủ yếu sử dụng là:
 Phương pháp láng giềng (Neighborhood-based, còn gọi là Memory
based), trong đó hoặc là dựa trên dữ liệu quá khứ của người dùng
“tương tự” (user-based approach), hoặc là dựa trên dữ liệu quá khứ
của những item “tương tự” (item-based approach). Trong thực tế

12


thì gợi ý dựa trên sản phẩm thường tốt hơn là gợi ý dựa trên người
dùng bởi sản phẩm thì đơn giản hơn, còn người dùng thì có thể có
rất nhiều sở thích. Chẳng hạn một bộ phim thì có thể thuộc thể loại
hành động hoặc tâm lý tình cảm (rất khó để bộ phim đó thuộc cả
hai thể loại này cùng một lúc), nhưng người dùng thì có thể thích cả
hai thể loại này.
 Phương pháp dựa trên mô hình (Model-based): Nhóm này liên
quan đến việc xây dựng các mô hình dự đoán dựa trên dữ liệu thu
thập được trong quá khứ. Như mô hình Bayesian, mô hình nhân tố
tiềm ẩn (latent factor models): trong đó kỹ thuật phân rã ma trận
(matrix factorization) là một điển hình.
 Nhóm giải thuật lọc trên nội dung (Content-based Filtering): Gợi ý sản
phẩm dựa vào hồ sơ (profiles) của người dùng hoặc dựa vào nội
dung/thuộc tính (attributes) của những sản phẩm tương tự như sản phẩm
mà người dùng đã chọn trong quá khứ.
 Nhóm lai ghép: Kết hợp cả lọc trên nội dung lẫn lọc cộng tác.
 Nhóm kỹ thuật không cá nhân hóa (non-personalization): Gợi ý như nhau
đối với mọi người dùng. Chẳng hạn như gợi ý sản phẩm phổ biến nhất,
được xem nhiều nhất…
Một trong những khuyết điểm của phương pháp lọc theo nội dung là khó
khăn trong việc thu thập thông tin, trong khi phần lớn các mô hình dựa trên lọc cộng
tác chỉ cần 3 thông tin (user id, item id, feedback) là có thể hoạt động tốt.
Từ những phân tích trên, luận văn sẽ tập trung nghiên cứu những phương
pháp phổ biến, được sử dụng rộng rãi, cụ thể đó là: sử dụng mô hình không gian
vector cho truy hồi thông tin và phương pháp lọc cộng tác cho gợi ý. Phần cơ sở lý
thuyết sau đây sẽ trình bày kỹ hơn về các vấn đề này.
1.5. CẤU TRÚC LUẬN VĂN
Cấu trúc của luận văn bao gồm các phần như sau:
Chương 1 - Mở đầu: Nội dung phần mở đầu chỉ ra lý do chọn đề tài; mục
đích, cách tiếp cận và phạm vi nghiên cứu của luận văn.

13


Chương 2 - Cở sở lý thuyết và các công cụ: Nội dung chương này trình
bày tổng quan về truy hồi thông tin, các phương pháp gợi ý và các công cụ hỗ trợ
liên quan sẽ sử dụng để cài đặt.
Chương 3 - Đánh giá các phương pháp gợi ý: Chương này mô tả chi tiết
quá trình thực nghiệm các giải thuật gợi ý trong phần cơ sở lý thuyết, so sánh và kết
luận.
Chương 4 - Cài đặt và đánh giá hệ thống: Chương này trình bày giải pháp
đề xuất để xây dựng một hệ thống tìm kiếm và gợi ý phim dựa trên tập dữ liệu có
sẵn của Movielens.
Chương 5 - Kết luận: Nội dung phần này tổng kết, đánh giá về toàn bộ luận
văn và đưa ra một số hướng phát triển của luận văn.
Tài liệu tham khảo

14


CHƯƠNG 2 – CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ
2.1. TRUY HỒI THÔNG TIN
Nếu không giới hạn các dạng thể hiện của thông tin cũng như những đối
tượng chứa thông tin, thì tìm kiếm thông tin là một khái niệm vô cùng rộng lớn. Đặt
ra giả thiết rằng những gì có thể biết đều đã được mô tả dưới dạng văn bản số và
được lưu trữ trên các hệ thống máy tính. Trong giới hạn đó, tìm kiếm thông tin là
tìm kiếm các văn bản chứa những thông tin hữu ích nhằm đáp ứng nhu cầu thông tin
của người dùng.
Nếu xét trên khía cạnh tương tác người - máy, thì tìm kiếm thông tin là một
quá trình tương tác. Trong quá trình tương tác này, người dùng là người đi tìm, còn
máy tính phản hồi lại những thông tin có thể đáp ứng nhu cầu đó. Hành động đầu
tiên trong quá trình tương tác này được thực hiện bởi người dùng. Trước khi có thể
phản hồi lại kết quả, hệ thống phải thực hiện tìm kiếm.
Có nhiều mô hình truy hồi thông tin như:
 Mô hình dựa trên độ tương tự (Similarity-based models): Mô hình
không gian vector (Vector space model)
 Mô hình xác suất (Probabilistic models): Mô hình xác suất cổ điển
(Classic probabilistic model), Mô hình ngôn ngữ (Language model),
Mô hình phân kỳ từ ngẫu nhiên (Divergence-from-randomness model)
 Mô hình suy diễn xác suất (Probabilistic inference model)
 Mô hình tiên đề (Axiomatic model)
Trong số này, mô hình không gian vector và những biến thể của nó hiện nay
vẫn là cách phổ biến để biểu diễn văn bản trong lĩnh vực khai phá dữ liệu và truy
hồi thông tin [16]. Phạm vi luận văn sẽ tập trung nghiên cứu về mô hình này.

15


2.1.1. Mô hình không gian Vector
2.1.1.1. Khái niệm
Mô hình không gian vector là một mô hình thể hiện thông tin văn bản như
một vector, các phần tử của vector này thể hiện mức độ quan trọng của một từ và cả
sự xuất hiện hay không xuất hiện của nó trong một tài liệu.
Mô hình này biểu diễn văn bản như những điểm trong không gian Euclid nchiều, mỗi chiều tương ứng với một từ trong tập hợp các từ. Mỗi từ trong không
gian vector sẽ có một trọng số. Có nhiều phương pháp đánh trọng số khác nhau,
nhưng tf-idf (term frequency–inverse document frequency) là một phương pháp phổ
biến để đánh giá và xếp hạng một từ trong một tài liệu. Về cơ bản thì tf-idf là một
kỹ thuật giúp chuyển đổi thông tin dưới dạng văn bản thành một vector thông qua
các trọng số. Mô hình không gian vector và tf-idf được phát triển bởi Gerard Salton
vào đầu thập niên 1960s.
Mô hình không gian vector và những biến thể của nó hiện nay vẫn là cách
phổ biến để biểu diễn văn bản trong lĩnh vực khai phá dữ liệu (Data mining) và truy
hồi thông tin (Information retrieval).

16


Hình 1: Mô hình không gian Vector
2.1.1.2. Trọng số từ
Trọng số từ thể hiện tầm quan trọng của từ đối với văn bản. Trọng số từ đồng
biến với số lần từ được sử dụng trong văn bản và nghịch biến với số văn bản sử
dụng nó.
Trọng số từ tf.idf được tính như sau:
𝑊𝑡𝑓.𝑖𝑑𝑓 (𝑡, 𝑑 ) = 𝑊𝑡𝑓 (𝑡, 𝑑 ). 𝑖𝑑𝑓(𝑡)
Trong đó: 𝑊𝑡𝑓 (𝑡, 𝑑 ) là phương pháp tính trọng số tần suất logarit, còn idf(t) là
phương pháp tính trọng số nghịch đảo văn bản
Trọng số tần suất logarit: 𝑊𝑡𝑓 (𝑡, 𝑑 ) được tính như sau:
𝑊𝑡𝑓 (𝑡, 𝑑) = {

1 + 𝑙𝑜𝑔10 (𝑡𝑓𝑡,𝑑 ),
0,

𝑁ế𝑢 𝑡𝑓𝑡,𝑑 > 0
𝑁ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖

Với tft,d là số lần từ t được sử dụng trong văn bản d
Trọng số nghịch đảo văn bản: idf(t) được tính như sau:
idf(t) = 𝑙𝑜𝑔10 (𝑁/𝑑𝑓𝑡 )
Với N là số văn bản trong bộ dữ liệu và dft là số văn bản chứa từ t
2.1.1.3. Độ tương đồng giữa văn bản và truy vấn
Để tìm một cụm từ trong tập hợp các tài liệu sẵn có thì chúng ta cần so sánh
cụm từ đó với các tài liệu sẵn có. Ý tưởng là chúng ta cũng xem các câu truy vấn
như là một vector và sẽ xếp hạng các tài liệu mà chúng ta có dựa vào sự tương đồng
với câu truy vấn.
Để xếp hạng các tài liệu trả về, chúng ta so sánh câu truy vấn với tập hợp tài
liệu. Tài liệu nào càng gần với câu truy vấn thì có điểm cao hơn.

17


Để so sánh hai vector chúng ta có thể tính khoảng cách giữa hai vector, hoặc
tính góc tạo ra bởi hai vector. Tuy nhiên cách tính khoảng cách có nhược điểm, bởi
vì khoảng cách lớn với các vector có chiều dài khác nhau.

Hình 2: Khoảng cách Euclide
Như hình trên, khoảng cách Euclid giữa ⃗⃗⃗⃗
d2 và q
⃗ là rất lớn ngay cả khi sự
phân phối của các từ trong query q và trong tài liệu d2 là rất giống nhau.
Do vậy người ta thường dựa vào góc trong không gian vector hơn là khoảng
cách giữa cách điểm. Có thể xếp hạng văn bản theo thứ tự tăng dần của góc (hay
theo thứ tự giảm dần cosine) giữa các biểu diễn vector của văn bản và truy vấn.
Tương đồng cosine được tính như sau:

𝑆𝑖𝑚𝑐𝑜𝑠 (𝑑, 𝑞)=

𝑑 .𝑞⃗
‖𝑑 ‖.‖𝑞⃗ ‖

|𝑉|

=

∑𝑖=1(𝑤𝑖,𝑑 .𝑤𝑖,𝑞 )
2 √∑|𝑉| 𝑤 2
√∑|𝑉|
𝑖=1 𝑤𝑖,𝑑 .
𝑖=1 𝑖,𝑞

Trong đó:

18


 wi,d là trọng số tf-idf của từ i trong văn bản
 wi,q là là trọng số tf-idf của từ i trong câu truy vấn
 Simcos (d, q): tương đồng cosine giữa ⃗d và q


Hình 3: Tương đồng cosine
2.1.1.4. Chuẩn hóa độ dài tài liệu
Tài liệu dài hơn thì có tần suất các từ xuất hiện cao hơn. Một từ giống nhau
sẽ có khả năng xuất hiện thường xuyên hơn. Có nhiều từ hơn, tăng khả năng xuất
hiện của các từ trùng với câu truy vấn. Chuẩn hóa độ dài tài liệu làm giảm sự ảnh
hưởng của tài liệu dài so với tài liệu ngắn.
Một trong những cách chuẩn hóa độ dài vector phổ biến nhất là chuẩn hóa
cosin bằng cách chia từng phần tử của vector cho độ dài của nó. Độ dài của vector
(định mức L2 hay L2 norm) được tính như sau:

‖𝑥 ‖2 = √∑ 𝑥𝑖2
𝑖

19


2.1.1.5. Ký hiệu SMART
Trong thực tế, cách biểu diễn vector cho văn bản và truy vấn có thể khác
nhau. Ký hiệu SMART mô tả vắn tắt cách xác định biểu diễn vector cho văn bản và
truy vấn theo định dạng ddd.qqq. Phương pháp chuẩn là lnc.ltc, có ý nghĩa như sau:
 Văn bản: Tần suất từ lấy theo log tf, tần suất văn bản không sử dụng idf,
và chuẩn hóa cosine
 Truy vấn: Tần suất từ lấy log tf, tần suất văn bản sử dụng idf, và chuẩn
hóa cosine

Hình 4: Kí hiệu SMART [11]
2.1.2. Đánh giá kết quả tìm kiếm
Trong phần lớn các nghiên cứu, việc đánh giá và so sánh thực nghiệm giữa
các hệ thống chủ yếu tập trung vào tiêu chí về độ chính xác của kết quả. Các độ đo
đánh giá cung cấp một cách để định lượng độ chính xác tìm kiếm.
Độ chính xác và độ bao phủ: Hai độ đo độ chính xác phổ biến nhất để tổng
kết và so sánh các kết quả tìm kiếm là độ chính xác (precision) và độ bao phủ
(recall). Độ bao phủ đo hệ thống tìm kiếm thực hiện việc tìm tất cả các tài liệu liên
quan cho một truy vấn tốt như thế nào, và độ chính xác đo nó thực hiện việc loại bỏ
tài liệu không liên quan tốt như thế nào.
precision =

𝑅𝑒𝑙𝑒𝑣𝑒𝑛𝑡 ∩ 𝑅𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑
𝑅𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑

20


recall =

𝑅𝑒𝑙𝑒𝑣𝑒𝑛𝑡 ∩ 𝑅𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑
𝑅𝑒𝑙𝑒𝑣𝑒𝑛𝑡

Trong đó: Relevant là tập các tài liệu liên quan đến truy vấn, Retrieved là tập
các tài liệu mà hệ thống tìm được.
Kết hợp độ chính xác và độ bao phủ: Độ đo F kết hợp độ chính xác và độ
đầy đủ thành một tiêu chí duy nhất
F=

(𝛽2 + 1)𝑃𝑅
𝛽2𝑃 + 𝑅

 Nếu β = 1 thì F là trung bình điều hòa của P và R, kí hiệu F1
 Nếu β = 0 thì F là độ chính xác
 Nếu β = Inf thì F là độ đầy đủ
Bình quân độ chính xác trung bình (MAP): Một hệ thống tìm kiếm
thường được chạy thử nghiệm trên nhiều truy vấn. Do đó, các độ đo đã đề cập ở
trên thường được tính trung bình trên tất cả truy vấn này.
MAP =

1
𝑄



1
𝑅𝑖

∑ 𝑃@𝑘𝑖

Trong đó: Ri là số văn bản trong bộ dữ liệu phù hợp với truy vấn qi, P@k là
độ chính xác ở thứ hạng k, được tính như sau:
P@k =

𝑅𝑒𝑙𝑒𝑣𝑒𝑛𝑡 ∩ 𝑅𝑒𝑡𝑟𝑖𝑒𝑣𝑒𝑑@𝑘
𝑘

Với Retrieved@k là tập gồm k tài liệu đầu mà hệ thống tìm được.
2.1.3. Công cụ Elasticsearch
ElasticSearch là một công cụ tìm kiếm (search engine) kế thừa và phát triển
từ Lucene, khá giống với Apache Solr. Tuy nhiên Elasticsearch rất mạnh về tính
phân tán và khả năng mở rộng nên xu thế các công ty hiện nay đang chọn sử dụng

21


Elasticsearch, có thể kể đến như: Mozilla, Quora, SoundCloud, GitHub, Stack
Exchange, Center for Open Science, Reverb, Netflix..
Khi đẩy tài liệu (document) vào Elasticsearch, chúng sẽ được index, và kết
quả là tạo ra bộ từ điển (dictionary) và bộ thẻ định vị (posting): Mỗi một từ (term)
được liên kết với một danh sách chứa thông tin về những văn bản sử dụng từ này.
Mỗi phần tử của danh sách lưu thông tin ứng với một văn bản có vai trò hỗ trợ xác
định vị trí xuất hiện của một từ, vì vậy được gọi là thẻ định vị (posting). Tương ứng,
danh sách gắn với mỗi từ được gọi là danh sách thẻ định vị (hoặc danh sách ngược),
và tất cả các thẻ định vị gộp lại được gọi là bộ thẻ định vị.

Hình 5: Minh họa quá trình index tài liệu [24]
Elasticsearch cũng mượn những khái niệm về tf-idf, mô hình không gian
vector, tuy nhiên có sử dụng thêm một số nhân tố khác vào hàm tính điểm (scoring
function) [23]:
score(q,d) = queryNorm(q) * coord(q,d) *
∑ (𝑡𝑓(𝑡 𝑖𝑛 𝑑 ) ∗ 𝑖𝑑𝑓(𝑡)2 ∗ 𝑡. 𝑔𝑒𝑡𝐵𝑜𝑜𝑠𝑡() ∗ 𝑛𝑜𝑟𝑚(𝑡, 𝑑))
𝑡 𝑖𝑛 𝑞

Trong đó:

22


1. score(q,d): điểm phù hợp của văn bản d cho truy vấn q.
2. queryNorm(q): chuẩn hóa truy vấn
queryNorm = 1 / √𝑠𝑢𝑚𝑂𝑓𝑆𝑞𝑢𝑎𝑟𝑒𝑑𝑊𝑒𝑖𝑔ℎ𝑡𝑠
 sumOfSquaredWeights tính bằng tổng bình phương IDF của mỗi
từ trong truy vấn
3. coord(q,d): tổng trọng số của mỗi từ t trong truy vấn q cho văn bản d.
Tuy nhiên yếu tố này dựa trên có bao nhiêu từ trong truy vấn xuất hiện
trong văn bản. Chẳng hạn chúng ta có 1 truy vấn "quick brown fox", và
trọng số của mỗi từ là 1.5. Khi đó coord(q,d) của 3 văn bản sau sẽ được
tính là:
 Văn bản chứa "fox" → score: 1.5 * 1 / 3 = 0.5
 Văn bản chứa "quick fox" → score: 3.0 * 2 / 3 = 2.0
 Văn bản chứa "quick brown fox" → score: 4.5 * 3 / 3 = 4.5
4. tf(t in d): tần suất từ t trong văn bản d
tf(t in d) = √𝑓𝑟𝑒𝑞𝑢𝑒𝑛𝑐𝑦
5. idf(t): tần suất nghịch của từ t trong tập văn bản
idf(t) = 1 + log ( numDocs / (docFreq + 1))
 numDocs là số văn bản trong chỉ mục
 docFreq là số văn bản có chứa từ t
6. t.getBoost(): hệ số khuếch đại của từ
7. norm(t,d) = 1 / √𝑛𝑢𝑚𝑇𝑒𝑟𝑚𝑠
 numTerms là số từ có trong trường
Điểm mạnh nhất của Elasticsearch như đã đề cập ở trên là tính phân tán và
khả năng mở rộng. Elasticsearch có khả năng mở rộng theo chiều ngang một cách

23


hoàn toàn tự động, và phía ứng dụng không phải thay đổi gì. Dưới đây là một mô
hình đơn giản minh họa cho kiến trúc này của Elasticsearch.

Hình 6: Lưu trữ phân tán trong Elasticsearch [12]
Nhìn vào hình trên có thể thấy, dữ liệu được lưu trữ ở cluster với 3 nodes
trong đó node 1 là master. Có 3 primary shards, 2 trong số đó được đặt ở node 1,
còn lại ở node 3. Mỗi primary shard có 2 replica shard (ví dụ primary shard P0 ở
Node3 thì có replica shard R0 ở node 1 và một shard nữa ở Node 2).
Ngoài ra, hệ sinh thái của Elasticsearch rất phong phú, bao gồm:
 Plugins: các thành phần mở rộng nhỏ, chẳng hạn: plugin_head
 Clients: hỗ trợ nhiều ngôn ngữ lập trình như Java, JavaScript,
Groovy, .NET, PHP, Perl, Python, Ruby.
 Logstash: hỗ trợ import dữ liệu từ file log
 Kibana: hỗ trợ báo cáo thống kê
 Hadoop integration: hỗ trợ tích hợp với hadoop
 Marvel: hỗ trợ giám sát trạng thái các node
2.2. 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 (preferences)
hay xếp hạng (rating) mà người dùng có thể dành cho một sản phẩm (item) nào đó

24


mà họ chưa xem xét tới trong quá khứ (sản phẩm ở đây có thể là bài hát, bộ phim,
đoạn video clip, sách, bài báo,..).
Ví dụ, trong hệ thống bán hàng trực tuyến, nhằm tối ưu hóa khả năng mua
sắm của khách hàng, người ta quan tâm đến việc những khách hàng nào đã ‘thích’
những sản phẩm nào bằng cách dựa vào dữ liệu quá khứ của họ (dữ liệu này có thể
là xếp hạng mà người dùng đã bình chọn trên sản phẩm, thời gian duyệt trên sản
phẩm, số lần click chuột trên sản phẩm,..) từ đó hệ thống sẽ dự đoán được người
dùng có thể thích sản phẩm nào và đưa ra những gợi ý phù hợp cho họ.
Ngoài lĩnh vực thương mại điện tử như ví dụ trên, hiện tại RS cũng được ứng
dụng khá thành công trong nhiều lĩnh vực khác như trong giải trí: gợi ý bài hát cho
người nghe (ví dụ LastFM), gợi ý phim ảnh (ví dụ Netflix), gợi ý các video clip (ví
dụ YouTube); trong giáo dục và đào tạo (gợi ý nguồn tài nguyên học tập như sách,
bài báo, địa chỉ web,… cho người học);
Hệ thống gợi ý không chỉ đơn thuần là một dạng Hệ thống thông tin mà nó
còn là cả một lĩnh vực nghiên cứu hiện đang rất được các nhà khoa học quan tâm.
Kể từ năm 2007 đến nay, hàng năm đều có hội thảo chuyên về hệ thống gợi ý của
ACM (ACM RecSys) cũng như các tiểu bang dành riêng cho RS trong các hội nghị
lớn khác như ACM KDD, ACM CIKM,..
Hiện tại, trong RS có rất nhiều giải thuật được đề xuất, tuy nhiên có thể gom
chúng vào trong các nhóm chính:
 Nhóm giải thuật lọc cộng tác (Collaborative Filtering): trong nhóm này,
các giải thuật chủ yếu sử dụng:
 Phương pháp láng giềng (Neighborhood-based, còn gọi là
Memorybased), trong đó hoặc là dựa trên dữ liệu quá khứ của
người dùng “tương tự” (user-based approach), hoặc là dựa trên dữ
liệu quá khứ của những sản phẩm “tương tự” (item-based
approach)
 Dựa trên mô hình (Model-based): Nhóm này liên quan đến việc xây
dựng các mô hình dự đoán dựa trên dữ liệu thu thập được trong quá
khứ. Như mô hình Bayesian, các mô hình nhân tố tiềm ẩn (latent

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×