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

Tìm kiếm thực thể dựa trên đánh giá của người dùng và ứng dụng mapreduce trong bài toán tìm kiếm đối tượng

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 (2.14 MB, 79 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------HUỲNH TUẤN ANH

Huỳnh Tuấn Anh

CÔNG NGHỆ THÔNG TIN

TÌM KIẾM THỰC THỂ DỰA TRÊN ĐÁNH GIÁ CỦA NGƯỜI
DÙNG VÀ ỨNG DỤNG MAPREDUCE TRONG BÀI TOÁN TÌM
KIẾM ĐỐI TƯỢNG

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

KHOÁ 2010

Hà Nội – Năm 2012


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------Huỳnh Tuấn Anh

TÌM KIẾM THỰC THỂ DỰA TRÊN ĐÁNH GIÁ CỦA NGƯỜI DÙNG VÀ
ỨNG DỤNG MAPREDUCE TRONG BÀI TOÁN TÌM KIẾM ĐỐI TƯỢNG

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 :
PGS.TS. Huỳnh Quyết Thắng

Hà Nội – Năm 2012


LỜI CAM ĐOAN
Tôi xin cam đoan những gì mà tôi viết ra trong luận văn này là do sự tìm hiểu
và nghiên cứu của bản thân. Mọi kết quả nghiên cứu cũng nhƣ ý tƣởng của các tác
giả khác nếu có đều đƣợc trích dẫn đầy đủ.
Luận văn này cho đến nay vẫn chƣa hề đƣợc bảo vệ tại bất kỳ một hội đồng
bảo vệ luận văn thạc sĩ nào trên toàn quốc cũng nhƣ nƣớc ngoài và cho đến nay chƣa
hề đƣợc công bố trên bất kỳ phƣơng tiện thông tin nào.
Tôi xin hoàn toàn chịu trách nhiệm về những gì mà tôi đã cam đoan trên đây.

Hà Nội, ngày 30 tháng 8 năm 2012
Tác giả

Huỳnh Tuấn Anh

i


LỜI CẢM ƠN
Trƣớc tiên, tôi xin phép bày tỏ sự biết ơn chân thành đến PGS.TS Huỳnh
Quyết Thắng đã tận tình giúp đỡ tôi hoàn thành luận văn này.
Tôi cũng xin chân thành cảm ơn các thầy cô ở viện Công nghệ Thông tin và
Truyền thông Đại học Bách khoa Hà Nội đã tận tình giảng dạy, truyền đạt cho tôi
những kiến thức quí báu trong suốt thời gian của khóa Thạc sĩ 2010.

Xin cảm ơn các đồng nghiệp ở Đại học Nha Trang đã tạo điều kiện, động viên
tôi trong thời gian thực hiện luận văn.
Hà Nội, ngày 30 tháng 8 năm 2012

Huỳnh Tuấn Anh

ii


MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
LỜI CẢM ƠN ........................................................................................................... ii
DANH MỤC CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT ............................................. v
DANH MỤC CÁC HÌNH VẼ .................................................................................. vi
DANH MỤC CÁC BẢNG BIỂU ............................................................................ vii
MỞ ĐẦU .................................................................................................................. 1
0.1

Giới thiệu về tìm kiếm thực thể ....................................................................... 2

0.2 Tìm kiếm thực thể dựa vào đánh giá ngƣời dùng ............................................. 3
0.2.1 Đánh giá sản phẩm của cộng đồng ngƣời dùng.......................................... 3
0.2.2 Tìm kiếm sản phẩm dựa vào đánh giá của ngƣời dùng .............................. 5
0.3

Nhiệm vụ trong luận văn ................................................................................. 6

0.4

Các nghiên cứu liên quan ................................................................................. 7


0.5

Cấu trúc của luận văn ...................................................................................... 7

CHƢƠNG 1. BÀI TOÁN TÌM KIẾM THÔNG TIN ................................................. 9
1.1.

Đánh chỉ mục văn bản (indexing) .................................................................... 9

1.2 Tìm kiếm văn bản .......................................................................................... 10
1.2.1 Mô hình không gian vector (Vector Space Model - VSM)....................... 11
1.2.2 Mô hình thống kê .................................................................................... 14
1.3

Kiến trúc cơ bản của một hệ thống IR ........................................................... 16

Kết chƣơng .............................................................................................................. 17
CHƢƠNG 2. TÌM KIẾM THỰC THỂ DỰA TRÊN CÁC ĐÁNH GIÁ ................... 18
2.1

Xếp hạng thực thể dựa trên các đánh giá ........................................................ 19

2.2 Tính điểm đánh giá có xét các chiều hƣớng đánh giá của ngƣời sử dụng trong
các đánh giá ............................................................................................................. 21
2.2.1 Tính mức độ tích cực (positive) hay tiêu cực (negative) của đánh giá ...... 23
2.2.1.1 Phân lớp Sentiment (Sentiment Classification) ................................ 23
2.2.1.2 Tính điểm đánh giá của một đánh giá với câu truy vấn có xét đến SO
của đánh giá ..................................................................................................... 24
2.2.1.3. Tính chỉ số SO .................................................................................... 24

2.2.1.4. Chỉ số SO đối với một khía cạnh của thực thể ..................................... 25
2.2.2 Tính trọng số của các từ đánh giá trong hai vector pos và neg ................. 27
2.2.3 Tóm tắt mô hình tính chỉ số SO đối với các khía cạnh của thực thể ......... 31
iii


Kết chƣơng .............................................................................................................. 32
CHƢƠNG 3. THUẬT TOÁN TÌM KIẾM THỰC THỂ DỰA TRÊN CÁC ĐÁNH
GIÁ VỚI MAPREDUCE ........................................................................................ 33
3.1 MapReduce Framework................................................................................. 33
3.1.1 Cấu trúc dữ liệu trong MapReduce ......................................................... 33
3.1.2 Map và Reduce hai hàm cơ bản trong MapReduce .................................. 33
3.1.3. Partitioner và Combiner: 2 thành phần phụ của MapReduce ................... 35
3.1.4 Ví dụ minh họa MapReduce .................................................................... 37
3.2.

Giới thiệu Apache Hadoop ........................................................................... 38

3.3. Thuật toán MapReduce Entity Search cho bài toán tìm kiếm thực thể dựa trên
các đánh giá ............................................................................................................. 41
3.3.1 Thành phần Mapper ................................................................................ 43
3.3.2 Thành phần Reducer ............................................................................... 44
3.3.3 Thành phần Combiner ............................................................................. 44
Kết chƣơng .............................................................................................................. 46
CHƢƠNG 4. CÀI ĐẶT THỬ NGHIỆM VÀ ĐÁNH GIÁ ....................................... 47
4.1

Dữ liệu cho cài đặt thử nghiệm ...................................................................... 47

4.2 Các công cụ sử dụng ...................................................................................... 48

4.2.1 Lucene .................................................................................................... 48
4.2.2 Từ điển đồng nghĩa WordNet .................................................................. 52
4.2.3. MIT Java Wordnet Interface (JWI) ......................................................... 52
4.2.4. SentiWordNet ......................................................................................... 53
4.2.5 Mô hình thống kê BM25 trong Lucene ....................................................... 53
4.3.

Xác định hai vector pos và neg ...................................................................... 53

4.4 Đánh giá ........................................................................................................ 57
4.4.1 Tiêu chuẩn đánh giá ................................................................................ 57
4.4.3 Kết quả thử nghiệm ................................................................................. 58
4.4.4 Một số ví dụ về kết quả tìm kiếm ................................................................ 62
Kết chƣơng: ............................................................................................................. 65
KẾT LUẬN ............................................................................................................. 66
Đánh giá chung về luận văn ..................................................................................... 66
Các đóng góp khoa học của luận văn ................................................................... 67
Hƣớng phát triển của luận văn ................................................................................. 67
TÀI LIỆU THAM KHẢO ....................................................................................... 68
iv


DANH MỤC CÁC THUẬT NGỮ VÀ TỪ VIẾT TẮT
Số thứ tự

Từ viết tắt

Từ đầy đủ

Giải nghĩa tiếng Việt


1

ESE

Entity Search Engine

Máy tìm kiếm thực thể

2

OSE

Object Search Engine

Máy tìm kiếm đối tƣợng

3

IR

Information Retrieval

Truy hồi thông tin

4

VSM

Vector Space Model


5

TF

Term Frequency

6

IDF

Inverted Document
Frequency

Mô hình không gian
vector
Tần số xuất hiện của
một từ trong văn bản
Tần số văn bản ngƣợc
của một từ

7

BM

Best Match

So khớp tối ƣu

8


PMI

Pointwise Mutual
Information

Thông tin tƣơng hỗ giữa
hai sự kiện

9

SO

Sentiment Orientation

Định hƣớng thiện cảm

10

HDFS

Hadoop Distributed File
System

11

AAR

Average Aspect Rating


12

MAAR

Multi-Average Aspect
Rating

Hệ thống file phân tán
Hadoop
Điểm số đánh giá trung
bình cho một khía cạnh
Điểm số đánh giá trung
bình cho nhiều khía
cạnh
Điểm số
(điểm số đánh giá liên
quan)
Đánh giá
(Đánh giá của ngƣời
dùng về thực thể)

13

score

14

review

v



DANH MỤC CÁC HÌNH VẼ
Hình 0.1: Tóm tắt các đặc tính của một cellular phone dựa trên các đánh giá [1] ....... 2
Hình 1.1. Ví dụ về postings list cho term “windows” trong inverted index .............. 10
Hình 1.2. Ví dụ về một inverted index với vị trí xuất hiện của term windows trong
văn bản. ................................................................................................................... 10
Hình 1.3. độ tƣơng tự giữa hai văn bản d1, d2 và câu truy vấn q ............................... 12
Hình 1.4. Kiến trúc cơ bản của một hệ thống IR [17] .............................................. 16
Hình 2.1. Mô hình tìm kiếm thực thể dựa trên đánh giá. .......................................... 19
Hình 2.1. Đồ thị của hàm relate(x) với k=5; β=2. .................................................... 27
Hình 3.1. Hai pha map và reduce của một MapReduce job [8] ................................ 34
Hình 3.2. MapReduce với đầy đủ các thành phần [8] ............................................... 36
Hình 3.3. Sơ đồ một ứng dụng MapReduce ở mức cao [20]..................................... 37
Hình 3.4. Sơ đồ theo dõi một ứng dụng MapReduce [6] .......................................... 39
Hình 3.5. Sơ đồ thực thi chi tiết một ứng dụng MapReduce [20]. ............................ 40
Hình 3.6. Sơ đồ thuật toán MapReduce Entity Search cho bài toán tìm kiếm thực thể
dựa trên các đánh giá. .............................................................................................. 42
Hình 4.1. Điểm số chi tiết cho một đánh giá trong tập posReviwew, negReview .... 48
Hình 4.2 Một khối các document biểu diễn các đánh giá về một mẫu xe ................ 50
Hình 4.3 nDCG trung bình của top 10 kết quả trả về trong từng trƣờng hợp thử
nghiệm .................................................................................................................... 61
Hình 4.4 So sánh nDCG trong hai trƣờng hợp tốt nhất khi f=2 và f=0. .................... 61
Hình 4.5. top 10 kết quả tìm kiếm với câu truy vấn: good + fuel economy, với f=0,
sum score, BM25. nDCGaspect=0.933. nDCGoverall=0.965 ......................................... 63
Hình 4.6 top 10 kết quả tìm kiếm với câu truy vấn: q= fuel với f=2, α=0.4, BM25,
nDCGaspect=0.967, nDCGoverall=0.977 ....................................................................... 63

vi



DANH MỤC CÁC BẢNG BIỂU
Bảng 2.1. Các phƣơng pháp tổng hợp điểm đánh giá ............................................... 20
Bảng 4.1. Lucene Document của một đánh giá ........................................................ 49
Bảng 4.2. Lucene Document của một thực thể ......................................................... 49
Bảng 4.3. Danh sách các từ trong vector pos ........................................................... 55
Bảng 4.4. Danh sách các từ trong vector neg ........................................................... 56
Bảng 4.5. Các câu truy vấn trên từng khía cạnh thực thể có xét đến ảnh hƣởng của
các từ đánh giá ........................................................................................................ 58
Bảng 4.6. Các câu truy vấn trên từng khía cạnh thực thể không xét đến ảnh hƣởng
của các từ đánh giá .................................................................................................. 59
Bảng 4.7. nDCG của top 10 kết quả trả về của các câu truy vấn ở bảng 4.6 với f=0. 60
Bảng 4.8. nDCG của top 10 kết quả trả về của các câu truy vấn ở bảng 4.5 với f=2. 60

vii


MỞ ĐẦU
Sự phát triển nhanh chóng các ứng dụng của công nghệ thông tin và Internet
vào các lĩnh vực trong đời sống xã hội đã tạo ra nhiều nguồn dữ liệu khổng lồ.
Trong số đó phải kể đến một lƣợng rất lớn các nhận xét, đánh giá (sau đây gọi là
các đánh giá-review) về các sản phẩm trên các trang thƣơng mại điện tử và các diễn
đàn, các hồ sơ liên quan đến các cá nhân…
Các ý kiến đánh giá của các chuyên gia hay của cộng đồng ngƣời dùng
Internet rất có ích trong việc trợ giúp khách hàng lựa chọn sản phẩm muốn mua. Ví
dụ, khách hàng thƣờng đọc qua các đánh giá về một sản phẩm trƣớc khi ra quyết
định mua nó. Nhƣng với một số lƣợng rất lớn các đánh giá, khách hàng không thể
nào đọc hết tất cả các đánh giá về các sản phẩm. Thông thƣờng với sự trợ giúp của
các công cụ tìm kiếm hiện tại nhƣ Google, Yahoo, Bing, khách hàng thƣờng tìm
đọc các đánh giá về sản phẩm sau khi cung cấp cho máy tìm kiếm tên của sản phẩm.

Việc lựa chọn sản phẩm nhƣ vậy chủ yếu dựa vào sự chủ quan của khách hàng chứ
không dựa trên các đánh giá sẵn có.
Với sự phát triển của kỹ thuật máy tính và khai phá dữ liệu, đã có một số
nghiên cứu trên dữ liệu các đánh giá nhằm trợ giúp khách hàng có thể đƣa ra các
quyết định của mình dựa trên các đánh giá nhƣ:
1. Tóm tắt các đánh giá [1] [10], [11]: Tóm tắt các đặc tính của một sản phẩm từ các
đánh giá của ngƣời dùng. Kết quả tóm tắt có thể đƣợc trình bày một cách trực quan.
Khách hàng có thể xem một cách tổng quan về sự đánh giá của ngƣời dùng đối với
một sản phẩm. Khi cần thiết, khách hàng có thể “khoan sâu” trên một thuộc tính cụ
thể để xem xét từng đánh giá cho thuộc tính đó.

1


Hình 0.1: Tóm tắt các đặc tính của một cellular phone dựa trên các đánh giá [1]

2. Sentiment classification [2], [3], phân lớp các đánh giá thành các lớp phân cực:
positive, negative và neutral. Sentiment classification tƣơng tự nhƣ phân lớp văn
bản, nhƣng nó cũng có những điểm khác biệt. Trong phân lớp văn bản thành các
chủ đề (topic), các từ chủ đề đóng vai trò quan trọng. Trong khi đó, các từ đánh giá
thể hiện sự đánh giá tích cực (positive) hay tiêu cực (negative) đóng vai trò quan
trọng trong sentiment classification.
3. Tìm kiếm thực thể dựa vào các đánh giá: Chủ yếu dựa vào sự so khớp các đánh
giá với câu truy vấn, sau đó tổng hợp các điểm đánh giá (score) giữa câu truy vấn và
các đánh giá và đƣa ra kết quả là các thực thể có các đánh giá khớp với câu truy vấn
nhất [12].

0.1

Giới thiệu về tìm kiếm thực thể

Tìm kiếm thực thể là một lĩnh vực nghiên cứu mới trong thời gian gần đây.

Khác với các hệ thống tìm kiếm thông thƣờng, các hệ thống tìm kiếm thực thể
(Entity Search Engine - ESE) và hệ thống tìm kiếm đối tƣợng (Object Search
Engine - OSE) trả về các thực thể theo yêu cầu của ngƣời dùng thay vì trả về một
tập các trang web. Các thực thể trong hệ thống ESE là các đối tƣợng đƣợc rút trích
từ các trang web [18] hoặc là một đối tƣợng có nhiều văn bản liên quan [12], [15].
Một số hệ thống ESE điển hình:
- Hệ thống Cazoodle, do nhóm nghiên cứu của
giáo sƣ Kevin Chang Chuan của trƣờng University of Illinois at Urbana-Champain

2


(UIUC, USA) phát triển. Cazoodle cho phép tìm kiếm các đối tƣợng ở hai lĩnh vực:
Các thiết bị điện tử (máy tính, thiết bị giải trí, camera, video…) và các căn hộ cho
thuê.
- Hệ thống tìm kiếm các chuyên gia, nhà nghiên cứu, Arnetminer,
, do nhóm nghiên cứu Knowledge Engineeging Tsinghua
University China phát triển.
Khác với các máy tìm kiếm thông thƣờng, hiện nay chƣa có một hệ thống
tìm kiếm thực thể chung. Mỗi hệ thống tìm kiếm thực thể thƣờng hƣớng tới một
lĩnh vực nào đó. Các hệ thống tìm kiếm nhƣ vậy gọi là các máy tìm kiếm theo lĩnh
vực (Vertical Seach Engine).

0.2

Tìm kiếm thực thể dựa vào đánh giá ngƣời dùng

0.2.1 Đánh giá sản phẩm của cộng đồng ngƣời dùng

Sự phát triển thƣơng mại điện tử đã làm thay đổi thói quen mua sắm của
ngƣời dùng. Khách hàng thƣờng tìm hiểu thông tin về sản phẩm muốn mua bằng
cách đọc các đánh giá của những ngƣời đã sử dụng qua sản phẩm đó trên Internet.
Ngƣợc lại, ngày càng có nhiều ngƣời dùng chia sẽ các đánh giá, cảm nhận của mình
về một sản phẩm mà họ đã dùng. Theo một nghiên cứu trên 2000 ngƣời dùng ở Mỹ
[2]:
81% ngƣời dùng (hoặc 60% ngƣời dùng Mỹ) đã từng tham gia các khảo sát
trực tuyến ít nhất một lần.
20% ngƣời dùng (hoặc 15% ngƣời dùng Mỹ) thực hiện những công việc này
hàng ngày.
Trong số những thành viên của các trang web đánh giá nhà hàng, khách sạn
và các dịch vụ khác, từ 73% đến 87% cho rằng đánh giá của cộng đồng
ngƣời dùng có tầm ảnh hƣởng quan trọng đến hành vi mua hàng của họ.
Ngƣời dùng có thể trả thêm từ 20% đến 99% cho một sản phẩm 5 sao so với
giá của một sản phẩm 4 sao.
32% ngƣời dùng cung cấp những đánh giá trên sản phẩm, dịch vụ cho một

3


trang web đánh giá trực tuyến, và 30% (bao gồm cả 18% ngƣời dùng lâu
năm) cung cấp những ý kiến cá nhân hoặc đánh giá cho một sản phẩm nào
đó.
Mong muốn sử dụng sản phẩm hoặc dịch vụ tốt không phải là nguyên nhân
duy nhất dẫn tới việc ngƣời dùng tìm kiếm đánh giá của cộng đồng trên mạng. Một
trong những nguyên nhân chủ chốt nữa là sự thôi thúc cần có những thông tin chính
thống. Cũng theo khảo sát trên [2]:
28% cho rằng lý do chính cho việc tìm kiếm các thông tin trên mạng là để
thu thập những thông tin dƣới góc nhìn của cộng đồng mà ngƣời dùng có
tham gia, còn 34% cho rằng lý do chính cho việc tìm kiếm các thông tin trên

mạng là để thu thập những thông tin dƣới góc nhìn của các cộng đồng khác.
27% đã từng tìm kiếm trực tuyến cho các chứng thực hay đánh giá của các tổ
chức bên ngoài.
28% cho rằng hầu hết những trang web họ sử dụng có cùng quan điểm, còn
29% lại cho rằng hầu hết những trang web họ sử dụng có quan điểm trái
ngƣợc nhau, tức là rất nhiều ngƣời không chỉ đơn giản là tìm kiếm những
chứng thực cho những đánh giá đã tồn tại trƣớc đó.
8% cung cấp những quan điểm chính trị của bản thân cho những trang web
trực tuyến.
Đánh giá sản phẩm của cộng đồng ngƣời dùng tồn tại dƣới rất nhiều hình
thức khác nhau trên Web: Các trang web chuyên đánh giá một hoặc một vài loại sản
phẩm nào đó (nhƣ là máy tính xách tay hoặc máy nghe nhạc MP3), các trang báo
hoặc tạp chí điện tử, các trang kết hợp việc đánh giá với việc bán sản phẩm (nhƣ là
Amazon) và các trang tập trung vào thu thập những đánh giá của chuyên gia trên
nhiều lĩnh vực khác nhau (Cnet, ZDnet, ...). Những đánh giá kém hình thức hơn có
thể tìm thấy ở các trang thảo luận hoặc danh sách thƣ tín, hoặc các nhóm thảo luận
trên mạng. Ngƣời dùng cũng đăng tải những đánh giá về sản phẩm họ đang dùng
trên những trang web cá nhân hoặc blog [13].

4


Khi tìm kiếm thông tin về một sản phẩm nào đó, những công cụ tìm kiếm
thông thƣờng trả về một hoặc một vài trang web đánh giá hữu ích, nhƣng tìm những
thông tin đặc trƣng về sản phẩm từ những trang web đó là một công việc không hề
dễ dàng: Tốn thời gian và làm nản chí những ngƣời không kiên trì.
Sự quan tâm của từng ngƣời dùng vào các trang web đánh giá trực tuyến và
ảnh hƣởng tiềm tàng của những đánh giá này mang lại là những điều đang đƣợc
những nhà cung cấp sản phẩm ngày càng quan tâm đến. Với sự bùng nổ của nền
tảng Web 2.0 nhƣ là blog, diễn đàn thảo luận, mạng ngang hàng và nhiều loại khác,

ngƣời dùng có thể dễ dàng chia sẻ những kinh nghiệm và đánh giá của bản thân về
một nhãn hiệu nào đó. Đánh giá có thể là tốt hoặc xấu đối với bất kỳ loại sản phẩm
hay dịch vụ nào. Cùng với đó là việc những công ty lớn càng ngày càng nhận ra tầm
ảnh hƣởng quan trọng của ý kiến của ngƣời dùng trong việc đánh giá và hình thành
ý kiến của những ngƣời dùng khác. Các công ty có thể đáp lại ý kiến đánh giá của
cộng đồng ngƣời dùng bằng việc phân tích những đánh giá, qua đó điều chỉnh chiến
lƣợc tiếp thị, vị trí thƣơng hiệu, phát triển sản phẩm và những hoạt động khác.
Nhƣng những nhà phân tích cũng cho rằng sự tận dụng các công cụ trực
tuyến để theo dõi hình ảnh của một sản phẩm nào đó đòi hỏi những công nghệ mới.
Các nhà tiếp thị luôn cần các phƣơng tiện truyền thông theo dõi về những thông tin
liên quan đến công ty của họ - đó là những hoạt động quảng bá, sự vi phạm pháp lý,
thông tin về đối thủ cạnh tranh. Nhƣng sự phân đoạn các phƣơng tiện truyền thông
và sự thay đổi thói quen của ngƣời tiêu dùng đã làm tê liệt các phƣơng thức theo dõi
truyền thống. Technorati đã ƣớc lƣợng rằng mỗi ngày có khoảng 75000 blog đƣợc
tạo ra cùng với 1200000 bài viết, rất nhiều trong số đó là đánh giá của ngƣời dùng
về sản phẩm [2]. Những chiến lƣợc cũ đã không còn chỗ đứng trong thế giới hiện
tại.
0.2.2 Tìm kiếm sản phẩm dựa vào đánh giá của ngƣời dùng
Các đánh giá về một sản phẩm rất có ích đối với khách hàng trong việc lựa
chọn sản phẩm mà họ cần. Nhƣng với một lƣợng rất lớn các đánh giá về các sản

5


phẩm nhƣ hiện nay trên các trang thƣơng mại điện tử, diễn đàn, blog, ngƣời sử dụng
khó có thể đƣa ra một lựa chọn khách quan để chọn ra một sản phẩm phù hợp với
mình. Muốn đƣa ra một quyết định đúng đắn, khách hàng phải đọc qua tất cả các
đánh giá về sản phẩm mà họ muốn mua. Điều này làm cho khách hàng tốn khá
nhiều thời gian.
Các công cụ tìm kiếm hiện nay, Google, Yahoo, Bing…chỉ có thể trợ giúp

ngƣời sử dụng trong việc tìm kiếm các đánh giá về sản phẩm khi ngƣời dùng cung
cấp các thông tin về sản phẩm, thƣờng là tên của sản phẩm, cho máy tìm kiếm.
Trong khi đó, khách hàng lại mong muốn có những hệ thống tìm kiếm có thể đƣa ra
những danh sách sản phẩm khi ngƣời dùng cung cấp cho máy tìm kiếm các từ khóa
là những đặc tính của các sản phẩm đó.

0.3

Nhiệm vụ trong luận văn
Luận văn tập trung vào việc nghiên cứu phƣơng pháp tìm kiếm thực thể dựa

trên ý kiến ngƣời dùng bằng cách mở rộng mô hình tìm kiếm văn bản theo từ khóa.
Khi ngƣời dùng đƣa ra câu truy vấn, hệ thống tìm kiếm sẽ tìm tất cả các đánh giá
của từng thực thể khớp với câu truy vấn. Sau đó, hệ thống tính điểm đánh giá giữa
thực thể và câu truy vấn dựa trên việc tổng hợp điểm của các đánh giá về thực thể
đã khớp với câu truy vấn. Với mong muốn nghiên cứu phát triển một hệ thống tìm
kiếm sản phẩm dựa vào đánh giá của ngƣời dùng, luận văn đề ra 04 nhiệm vụ chính
sau đây:
1. Xây dựng phƣơng pháp tìm kiếm thực thể dựa trên đánh giá của ngƣời
dùng.
2. Xây dựng và thử nghiệm công thức tính điểm đánh giá, Sum-Average,
giữa thực thể và câu truy vấn dựa trên điểm của từng đánh giá về thực thể đã khớp
với câu truy vấn.
3. Xây dựng phƣơng pháp cải thiện kết quả tìm kiếm thực thể bằng cách xét
đến các chiều hƣớng đánh giá (tích cực hay tiêu cực) của ngƣời dùng trong các đánh
giá về thực thể. Đề xuất phƣơng pháp tính điểm đánh giá giữa từng đánh giá và câu

6



truy vấn.
4. Đề xuất giải thuật tìm kiếm thực thể dựa trên đánh giá ngƣời dùng bằng
MapReduce Framework

0.4

Các nghiên cứu liên quan
Tìm kiếm thực thể là một trong những vấn đề đƣợc tập trung nghiên cứu hiện

nay. Một trong số đó là tìm cách xếp hạng (rank) các thực thể liên quan tới yêu cầu
truy vấn của ngƣời dùng thay cho việc xếp hạng các văn bản liên quan đến câu truy
vấn. Do sự tồn tại của một lƣợng lớn đánh giá về các sản phẩm trên Internet nên đã
đặt ra các vấn đề về khai thác chúng để phục vụ cho việc tìm kiếm sản phẩm, phát
triển và tiêu thụ sản phẩm. Một số các nghiên cứu điển hình về các đánh giá của
ngƣời dùng đƣợc giới thiệu sau đây:
- Sentiment Analysis: Phân lớp các đánh giá của ngƣời dùng thành các lớp
nhƣ: “positive”, “negative” và “neutral”. Các phƣơng pháp đƣợc sử dụng nhƣ phân
lớp có giám sát hay không có giám sát hay cả hai cách tiếp cận [1], [2], [3], [4].
Sentiment analysis chỉ ra các mức độ phân cực của một đánh giá (“positive” hay
“negative”) một cách tổng quát chứ không phân cực theo một khía cạnh cụ thể nào
đó của thực thể.
- SentiWordnet: Một công cụ tra cứu từ vựng đƣợc dùng để hỗ trợ cho việc
phân lớp và khai phá các đánh giá do các tác giả Stefano Baccianella, Andrea Esuli,
and Fabrizio Sebastiani phát triển dựa trên từ điển WordNet của Stanford
University. Hiện tại, SentiWordNet đã đƣợc phát triển lên phiên bản 3.0 và đƣợc
cung cấp miễn phí cho công việc nghiên cứu [15].
- Xếp hạng thực thể dựa trên các đánh giá (Opinion-Based Entity
Ranking): Đƣa ra mô hình tìm kiếm các thực thể dựa trên các đánh giá bằng cách
mở rộng mô hình tìm kiếm văn bản. Nghiên cứu cũng đƣa ra các cách cải thiện độ
chính xác của kết quả tìm kiếm dựa trên việc mở rộng câu truy vấn bằng cách thêm

các từ đánh giá tƣơng đƣơng vào câu truy vấn [12].

0.5

Cấu trúc của luận văn

7


Luận văn đƣợc trình bày trong 4 chƣơng:
- Phần mở đầu: Giới thiệu sơ lƣợc về luận văn, nhu cầu tìm kiếm thực thể
dựa trên các đánh giá của ngƣời dùng, các nghiên cứu liên quan trên các đánh giá
của ngƣời dùng.
- Chƣơng 1: Trình bày tổng quan về truy vấn thông tin bao gồm các phần:
Đánh chỉ mục tập văn bản; tìm kiếm văn bản theo mô hình không gian vector và
theo mô hình thống kê.
- Chƣơng 2: Phần chính của luận văn, trình bày phƣơng pháp tìm kiếm thực
thể dựa trên các đánh giá của ngƣời dùng bao gồm:
1. Các phƣơng pháp tính điểm đánh giá giữa thực thể và câu truy vấn,
đề xuất công thức tính điểm: Sum-Average.
2. Cải thiện kết quả xếp hạng thực thể bằng cách xét các chiều hƣớng
đánh giá của ngƣời dùng về thực thể.
3. Đề xuất công thức tính điểm đánh giá giữa mỗi đánh giá và câu truy
vấn.
- Chƣơng 3: Đề xuất giải thuật tìm kiếm thực thể dựa trên đánh giá ngƣời
dùng bằng MapReduce Framework.
- Chƣơng 4: Cài đặt thử nghiệm phƣơng pháp tìm kiếm thực thể đề xuất ở
chƣơng 2 và đánh giá kết quả.
- Phần kết luận: Đánh giá kết quả đạt đƣợc của luận văn và các hƣớng phát
triển tiếp theo.


8


CHƢƠNG 1. BÀI TOÁN TÌM KIẾM THÔNG TIN
Tìm kiếm thông tin (Information Retrieval - IR ) chủ yếu giải quyết các vấn
đề về biểu diễn, tìm kiếm và xử lý trên những tập lớn các văn bản điện tử hay dữ
liệu ngôn ngữ. Thông thƣờng, các hệ thống IR tìm kiếm thông tin dựa trên các từ
khóa, đƣợc biểu diễn thành các câu truy vấn gọi là query. Các văn bản liên quan đến
câu truy vấn đƣợc hệ thống IR xếp hạng dựa trên điểm đánh giá giữa văn bản trả về
và câu truy vấn. Danh sách các văn bản trả về đƣợc hệ thống IR sắp xếp theo thứ tự
giảm dần của điểm hay mức độ liên quan giữa văn bản và câu truy vấn.
Tiến trình IR đƣợc mô tả vắn tắt nhƣ sau, trƣớc hết văn bản đƣợc phân tích
thành các phần cơ bản, gọi là các token, để đánh chỉ mục. Câu truy vấn cũng đƣợc
phân tích thành các token (gọi là query token). Hệ thống IR xác định văn bản xuất
hiện các query token, tính toán điểm đánh giá giữa câu truy vấn và văn bản sau đó
sắp xếp kết quả và trả về cho ngƣời dùng.

1.1.

Đánh chỉ mục văn bản (indexing)
Cấu trúc chỉ mục ngƣợc (Inverted index) đƣợc sử dụng để đánh chỉ mục các

từ trong văn bản. Inverted index, đôi khi còn đƣợc gọi là inverted file, là một cấu
trúc dữ liệu chính trong hầu hết các hệ thống IR. Một inverted index cung cấp một
ánh xạ giữa các từ (sau đây đƣợc gọi là term) và vị trí xuất hiện của chúng trong tập
văn bản C [17]. Một inverted index có hai thành phần cơ bản:
- Từ điển (dictionary): là một danh sách các term trong tập từ vựng, V, của
tập văn bản C.
- Mỗi term đƣợc liên kết với một danh sách các văn bản mà nó xuất hiện

trong tập C. Danh sách này đƣợc gọi là postings list.
Nếu biểu diễn các số hiệu của văn bản (docid) trong index bằng các số
nguyên thì postings list cho một term có thể đƣợc biểu diễn bằng một dãy các số
nguyên, docid, tăng dần và một dãy số nguyên nhỏ tƣơng ứng biểu diễn tần số xuất
hiện của term trong các văn bản.
Ví dụ 1.1:

9


docId

1

5

20

50

frequency

1

2

1

3


windows
Hình 1.1. Ví dụ về postings list cho term “windows” trong inverted index

Trong ví dụ 1.1 term “windows” xuất hiện trong các văn bản 1, 5, 20, 50 với
tần số lần lƣợt là 1, 2, 1, 3.
Để hệ thống IR có thể tìm kiếm các văn bản liên quan đến sự xuất hiện của
cả một cụm từ trong một văn bản, cấu trúc chỉ mục ngƣợc còn lƣu trữ cả vị trí xuất
hiện của term trong các văn bản trong tập C. Do đó bên cạnh 2 dãy docid và tần số
(frequency) xuất hiện của term trong văn bản, dãy số nguyên nhỏ biểu diễn vị trí
xuất hiện của term trong các văn bản cũng đƣợc lƣu trữ.
Ví dụ 1.2:
Một ví dụ về lƣu trữ inverted index cho từ windows của mã nguồn mở Lucene
1

5

20

50

1

2

1

3

windows
vị trí term


3

3

100

1

10

30

100

Hình 1.2. Ví dụ về một inverted index với vị trí xuất hiện của term windows trong văn bản.

Độ dài của dãy số nguyên biểu diễn vị trí của các term trong một văn bản bằng tổng
tần số xuất hiện của chúng trong văn bản đó.
Trong ví dụ 1.2, term “windows” xuất hiện trong văn bản có docid=50 với tần số
freq=3, tại các vị trí 10, 30 và 100.

1.2

Tìm kiếm văn bản
Quá trình tìm kiếm các văn bản liên quan đến câu truy vấn có thể đƣợc tóm

tắt nhƣ sau: Đầu tiên câu truy vấn đƣợc token hóa thành các term theo cùng cách
token hóa các văn bản để tạo chỉ mục ngƣợc. Ở bƣớc thứ hai, dựa vào cấu trúc chỉ
mục ngƣợc, các danh sách các văn bản có sự xuất hiện mỗi term trong câu truy vấn

đƣợc tìm thấy. Ở bƣớc cuối cùng, danh sách các văn bản có sự xuất hiện của các
term trong câu truy vấn đƣợc tổng hợp từ các danh sách ở bƣớc thứ hai và liệt kê

10


cho ngƣời dùng theo sự giảm dần của điểm đánh giá giữa văn bản và câu truy vấn.
Một hệ thống IR thƣờng đƣợc đánh giá dựa trên 3 chỉ số sau [7]:
Precision: Phần trăm của các văn bản đƣợc tìm thấy thật sự liên quan đến
câu truy vấn:

{relevant} {retrieved }
{retrieved }

precision

(1.1)

Recall: Phần trăm của các văn bản liên quan đến câu truy vấn đƣợc tìm thấy:

recall

{relevant} {retrieved}
{relevant}

(1.2)

Một hệ thống IR thƣờng cần phải cân bằng hai chỉ số recall và precision. Chỉ
số cần bằng thƣờng đƣợc sử dụng là F_score:


F _ score

recall precision
(recall precision) / 2

(1.3)

Trong đó:
- {relevant}: Tập các văn bản liên quan đến câu truy vấn.
- {retrieved}: Tập các văn bản đƣợc hệ thống IR tìm thấy
Thông thƣờng, các văn bản đƣợc cho là khớp (matching) với câu truy vấn
nếu có ít nhất một term trong câu truy vấn xuất hiện trong văn bản. Do đó tập văn
bản tìm thấy đƣợc có thể rất lớn nên các hệ thống IR luôn tìm cách trả về các kết
quả mà nó cho là khớp nhất ở các vị trí đầu tiên. Một hệ thống IR tốt luôn cho kết
quả mà ngƣời dùng mong đợi nhất ở n vị trí đầu tiên (top n).
1.2.1 Mô hình không gian vector (Vector Space Model - VSM)
VSM là một trong những mô hình tìm kiếm văn bản đầu tiên. VSM đƣợc
phát triển bởi Gerald Salton trong thập niên 1960 và tiếp tục phát triển trong trong
thập niên 1990. Gần đây, các ứng dụng của VSM bị thu hẹp lại do sự phát triển của
một số mô hình khác nhƣ: Mô hình thống kê (Propabilistic Models), mô hình ngôn
ngữ (Language Model) và các tiếp cận học máy khác (Machine Learning).

11


Trong mô hình vector, các câu truy

A

d2


vấn và các văn bản đƣợc biểu diễn bằng

θ2

các vector trong một không gian đa chiều.

q

Trong đó, mỗi thành phần của vector
tƣơng ứng với một term trong bộ từ vựng

θ2

của tập văn bản. Cho một vector truy vấn
(query vector) và một tập các vector văn

d1

bản (document vector), độ tƣơng tự của
một văn bản và câu truy vấn chính là độ
tƣơng tự của document vector và query

B
Hình 1.3. độ tương tự giữa hai văn
bản d1, d2 và câu truy vấn q

vector và cũng chính là góc giữa hai vector. Hai vector có độ tƣơng tự càng cao thì
góc giữa chúng càng nhỏ và ngƣợc lại.
Kí hiệu document vector biểu diễn cho văn bản d và câu truy vấn q lần lƣợt

là: d và q . Độ tƣơng tự giữa d và q, sim( d , q) , là cosin của góc giữa hai vector d
và q :

sim(d , q)

d q
|d | |q|

(1.4)

Trong VSM, các thành phần của document vector và query vector đƣợc biểu
diễn bằng trọng số của term trong văn bản hay câu truy vấn tƣơng ứng với thành
phần đó. Trọng số thƣờng sử dụng trong VSM cho document vector là TF-IDF.
Trọng số của term t trong văn bản, d, kí hiệu là tf-idf , đƣợc tính bằng tích:
tf-idf = tf(t, d )∙idf (t)

(1.5.1)

Trọng số của term t trong câu query, q, đƣợc tính bằng tích:
tf-idf = tf(t, q)·idf (t)

(1.5.2)

tf(t, d): Hàm theo tần số xuất hiện của t trong d ( kí hiệu là freq(t, d)); tf(t, d) có giá
trị càng lớn khi tần số xuất hiện của t trong d càng cao.

12


tf (t , d )


log( freq(t , d )) 1
0

if freq(t , d ) 0
freq(t, d ) 0

(1.6)

Đối với câu truy vấn, q, trong công thức tính tf(t,q) ở phƣơng trình (1.6),
freq(t, d) đƣợc thay thế bởi q(t), tần số xuất hiện của term t trong câu truy vấn:
log(q(t )) 1
0

tf (t , q)

if q(t ) 0
q (t ) 0

(1.7)

idf(t): Hàm theo tần số văn bản ngƣợc của t; idf(t) có giá trị càng lớn nếu t
xuất hiện trong ít văn bản và ngƣợc lại

idf (t ) log(

N
)
Nt


(1.8)

N: Tổng số văn bản trong tập C, Nt: Số văn bản trong tập C có xự xuất hiện của
term t. Nếu Nt = N, idf(t)=0. Để tránh giá trị 0, công thức tính idf(t), đƣợc đƣợc thay
thế bởi:

idf (t ) log(

N 1
)
Nt

(1.8.1)

Trong mã nguồn mở Lucene phiên bản 3.5 [19], tf và idf đƣợc tính nhƣ sau:

tf (t, d )

freq(t, d )

idf (t ) 1 log(

N

)
Nt 1

VSM không đòi hỏi văn bản đƣợc tìm thấy phải có sự xuất hiện của tất cả
các term của câu truy vấn trong nó. Thay vào đó VSM xếp hạng các văn bản mà nó
cho là liên quan đến câu truy vấn dựa vào độ tƣơng tự của giữa văn bản d và câu

truy vấn q.

score(d , q)

1
N
tf (t , d ) log
Nt
|d | |q|t q

Trong đó:

wt2 , wt

d
t d

13

tf (t , d ) idf (t )

(1.9)




wt2 , wt

q


tf (t , q) idf ( t)

t q

Trong thực tế, ứng dụng VSM trong các tác vụ tìm kiếm văn bản thƣờng bỏ
qua hai nhân tố chuẩn hóa chiều dài của văn bản và câu truy vấn để tăng hiệu năng
của hệ thống. Vì khi chuẩn hóa chiều dài, các hệ thống IR phải biểu diễn văn bản
bằng mô hình “bag of word”. Hơn nữa, phép chuẩn hóa chiều dài bằng khoảng
cách Euclide đã đƣợc chứng minh là không hiệu quả trong trƣờng hợp tập văn bản
C có các văn bản khác biệt nhau về chiều dài nên VSM cần phải đƣợc điều chỉnh
đƣợc sử dụng tốt trong những tập văn bản nhƣ vậy [17]. Một trong những công thức
đƣợc điều chỉnh là:

score(d , q)

q(t ) log(
t (q

d)

N
) (log( f (t , d )) 1)
Nt

(1.10)

Đây là một trong những biến thể hiệu quả nhất của công thức tính điểm đánh
giá trong mô hình VSM. công thức (1.10) trở thành công thức tính điểm đánh giá
chuẩn của mô hình VSM trong những năm đầu thập niên 1990 [17].
1.2.2 Mô hình thống kê

Mô hình thống kê xuất phát từ nguyên lý xếp hạng xác xuất

(Probability

Ranking Principle - PRP):
Nếu một hệ thống IR đưa ra kết quả cho mỗi câu truy vấn là một tập các văn
bản được sắp xếp theo sự giảm dần của xác xuất liên quan, hiệu quả tổng thể của
hệ thống tới người sử dụng sẽ được cực đại hóa [17].
Cho câu truy vấn, q, mô hình thống kê tìm xác xuất liên quan, p, của mỗi
văn bản trong tập văn bản, C, với câu truy vấn q và sắp xếp các văn bản theo thứ tự
giảm dần của xác xuất p. Robertion và các cộng sự (1994) đã đƣa ra công thức tính

score d , q nổi tiếng trong chuỗi các mô hình Best-Match (BM) nhƣ sau:
score(d , q)

tf (t , q)
t q

tf (t , d ) (k1 1)
wt
tf (t , d ) k1 ((1 b) b(ld / lavg ))

14

(1.11)


wt

log


(nt ,r

0.5)( N

Nt

nt ,r

0.5)( Nt

(nr

nr

nt ,r
nt ,r

0.5)

(1.12)

0.5)

ld và lavg lần lƣợt là chiều dài của văn bản d và chiều dài trung bình của một
văn bản trong tập C.
nr: Số lƣợng các văn bản trong tập C liên quan đến câu truy vấn.
nt,r: Số lƣợng văn bản trong tập C chứa term t và liên quan đến câu truy vấn.
N: Số lƣợng văn bản trong tập C.
Nt: Số lƣợng văn bản trong tập C có chứa term t.

Nếu không có những thông tin về nr, nt,r, công thức (1.12) có thể viết đơn
giản nhƣ sau:

wt

log

( N Nt 0.5)
( Nt 0.5)

Công thức (1.11) có hai tham số tự do:

(1.13)


. k1 và b

nhận các giá trị mặc định lần lƣợt là 1.2 và 0.75. Công thức (1.11) thƣờng đƣợc gọi
là công thức Okapi BM25 hay chỉ đơn giản là BM25.
Nếu N – Nt +0.5 ≤ Nt + 0.5 hay N ≤ 2Nt,, wt có giá trị nhỏ hơn hay bằng 0.
Để tránh trƣờng hợp này, wt có thể tính bẳng công thức tính idf(t) (1.8.1):

wt

log(

N 1
)
Nt


15

(1.13.1)


1.3

Kiến trúc cơ bản của một hệ thống IR

Hình 1.4. Kiến trúc cơ bản của một hệ thống IR [17]

Hình 1.4 là kiến trúc cơ bản của một hệ thống IR [17]. Nhu cầu thông tin
(Information Need) của ngƣời dùng (User) là những thông tin, thƣờng là những văn
bản, đã đƣợc máy tìm kiếm đánh chỉ mục. Tùy vào nhu cầu thông tin của mình,
ngƣời dùng xây dựng câu truy vấn (Query) cung cấp cho hệ thống IR. Thông
thƣờng, câu truy vấn có độ dài khoảng một vài term, từ hai đến ba term, cho các tác
vụ tìm kiếm thông tin trên Web.
Câu truy vấn của ngƣời dùng đƣợc xử lý bởi một máy tìm kiếm (Search
Engine) thƣờng chạy trên máy cục bộ hay một cụm máy ở một vị trí cách xa ngƣời
dùng. Nhiệm vụ chính của máy tìm kiếm là quản lý và xử lý trên một inverted
index của một tập văn bản. Sau khi câu truy vấn của ngƣời dùng đã đƣợc xử lý
xong, máy tìm kiếm trả về một danh sách các kết quả (Result) đã đƣợc xếp hạng

16


×