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

Xếp hạng câu trả lời trong hỏi đáp cộng đồng (tt)

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 (749.96 KB, 24 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
---------------------------------------

PHẠM MINH LUẬN

XẾP HẠNG CÂU TRẢ LỜI
TRONG HỎI ĐÁP CỘNG ĐỒNG

CHUYÊN NGÀNH : KHOA HỌC MÁY TÍNH
MÃ SỐ : 8.48.01.01

TĨM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

HÀ NỘI - 2018


Luận văn được hồn thành tại:
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG

Người hướng dẫn khoa học: TS. NGƠ XN BÁCH

Phản biện 1: PGS.TS. TRẦN ĐĂNG HƯNG
Phản biện 2: PGS.TS. PHẠM VĂN CƯỜNG

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại
Học viện Công nghệ Bưu chính Viễn thơng
Vào lúc: 09 giờ .45 phút, ngày 14 tháng 07 năm 2018
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Cơng nghệ Bưu chính Viễn thông



1

LỜI MỞ ĐẦU
Trong đời sống hiện nay, cuộc cách mạng cộng nghệ thông tin ngày càng bùng
nổ. Công nghệ thông tin đã phát triển mạnh mẽ và tác động lớn đến sự phát triển của
toàn thế giới. Tuy nhiên trong mọi lĩnh vực của cuộc sống, người sử dụng ngày càng
yêu cầu những ứng dụng thông minh, hỗ trợ nhiều trong công việc. Mặc dù vậy vẫn
tồn tại khoảng cách lớn giữa con người và máy tính, một trở ngại lớn nhất là vấn đề
ngôn ngữ. Ngôn ngữ tự nhiên của con người và ngơn ngữ của máy tính có nhiều khác
biệt. Chính sự khác nhau này đã cho ra đời lĩnh vực nghiên cứu và xử lý ngôn ngữ tự
nhiên.
Xử lý ngôn ngữ tự nhiên là lĩnh vực đạt được nhiều bước tiến quan trọng trong
những năm gần đây. Giúp máy tính hiểu được ngơn ngữ của con người qua đó hướng
dẫn máy tính thực hiện và giúp đỡ con người trong những cơng việc có liên quan đến
ngơn ngữ, phân tích dữ liệu văn bản, tìm kiếm thơng tin, dịch thuật, v.v. [5].
Vấn đề hỏi đáp đã thu hút nhiều sự chú ý trong những năm qua. Đặc biệt là
trong hỏi đáp cộng đồng có chứa một lượng lớn thơng tin hỏi – đáp có giá trị sinh ra
bởi những người sử dụng. Người dùng có thể gửi các câu hỏi, trả lời các câu hỏi của
người khác, và cung cấp thông tin phản hồi cho những câu hỏi/câu trả lời. Tuy nhiên
với lượng thông tin lớn từ dữ liệu hỏi đáp cộng đồng sẽ có rất nhiều thơng tin chính
xác và thơng tin khơng chính xác. Bài tồn đặt ra là, làm thế nào có thể tìm được
những câu trả lời thích hợp nhất cho câu hỏi. Và để làm được điều đó thì việc xếp
hạng câu trả lời mà cộng đồng cung cấp theo độ liên quan đến câu hỏi là hết sức cần
thiêt [1].
Tuy nhiên các nghiên cứu về hỏi – đáp trên thế giới chủ yếu tập trung vào việc
tìm câu trả lời chính xác cho câu hỏi được đưa ra trong các tài liệu liên quan (câu hỏi
factoid). Các đánh giá nổi tiếng nhất về nhiệm vụ hỏi – đáp factoid là hội nghị truy
hồi văn bản (Text REtrieval Conference - TREC). Các câu hỏi và câu trả lời được
phát hành bởi TREC đã trở thành nguồn dữ liệu cho các nhà nghiên cứu xây dựng các

hệ thống hỏi đáp tự động. Nhưng khi phải đối mặt với các câu hỏi như các câu hỏi về


2

lý do tại sao, như thế nào, hoặc những gì về (câu hỏi non-factoid) hầu như khơng có
hệ thống hỏi đáp tự động nào làm việc tốt [1].
Các câu hỏi câu trả lời do người dùng tạo ra chắc chắn sẽ rất quan trọng để giải
quyết vấn đề trả lời câu hỏi non-factoid. Và nhưng câu hỏi câu trả lời tự nhiên thường
được tạo ra trong quá trình giao tiếp của con người với con người thông qua phương
tiện truyền thơng xã hội internet, trong đó em đặc biệt quan tâm đến những dữ liệu
hỏi đáp cộng đồng. Dữ liệu mà cộng đồng cung cấp là dữ liệu quan trọng để phục vụ
cho những nghiên cứu sau này.
Vì vậy dưới sự hướng dẫn của TS. Ngô Xuân Bách em quyết định chọn đề tài
“Xếp hạng câu trả lời trong hỏi đáp cộng đồng”. Mục đích sẽ giúp người dùng có thể
được câu trả lời tốt, có liên quan đến câu hỏi và dữ liệu đó cũng sẽ là ngồn dữ liệu hết
sức hữu ích để phát triển hệ thống hỏi đáp tự động tốt hơn.
Để xây dựng hệ thống xếp hạng câu trả lời trong hỏi đáp cộng đồng, em sẽ sử
dụng tập dữ liệu cung cấp bởi SemEval 2016 trong thực nghiệm [3]. Em sẽ tiến hành
đánh giá thực nghiệm rộng rãi để chứng minh tính hiệu quả của phương pháp tiếp cận
của em.
Input: Một câu hỏi và nhiều câu trả lời.
Output: Danh sách câu trả lời được sắp xếp giảm dần theo mức độ liên quan so
với câu hỏi.
Ví dụ:
Input: Câu hỏi: “Where is the best place to catch fish in Qatar?”. (Đâu là nơi tốt
nhất để bắt cá ở Qutar)
Câu trả lời 1: “I think the best place is Fish Market. Guys dont get angry. Just
kidding”. (Mình nghĩ nơi tốt nhất là chợ cá. Bạn đừng tức giận. Chỉ đùa thôi)
Câu trả lời 2: “What do you use for bait?”. (Bạn dùng gì để làm mồi)

Câu trả lời 3: “Around sofitel hotel”. (Xung quanh khách sạn sofitel)
Output: Là danh sách câu trả lời được sắp xếp theo thứ tự: Câu trả lời 3, Câu trả
lời 1, Câu trả lời 2.
Luận văn sẽ làm rõ và giải quyết các vấn đề dưới đây:


3

- Nghiên cứu phương pháp học máy phù hợp cho bài toàn xếp hạng câu trả lời
trong hỏi đáp cộng đồng.
- Nghiên cứu các đặc trưng về ngôn ngữ phù hợp với bài tốn xếp hạng câu trả
lời.
- Tìm ra phương pháp trính chọn phù hợp qua thực nghiệm.
- Tiến hành thực nghiệm và phất tích kết quả.
- Nghiên cứu với nguồn dữ liệu tiếng anh.
Để xây dựng chương trình xếp hạng câu trả lời, luận văn đưa ra các phương
pháp xếp hạng đã có trước đây như thuật tốn SVM_Rank và thực hiện thêm hai
thuật toán ListNet, ListMLE để cài thiện kế quả thu được.
Nội dung luận văn chia làm 4 phần:
Chương 1: Luận văn giới thiệu về lĩnh vực xử lý ngôn ngữ tự nhiên, giới thiệu
về hỏi đáp cộng đồng, phát biểu về bài toán xếp hạng câu trả lời trong hỏi đáp cộng
đồng, trình bày các phương pháp nghiên cứu liên quan.
Chương 2: Luận văn trình bày về các phương pháp học máy và các đặc trưng
cho bài toán xếp hạng câu trả lời trong hỏi đáp cộng đồng. Trình bày thuật tốn xếp
hạng bao gồm: Ranking SVMs, ListNet, ListMLE.
Chương 3: Luận văn trình bày kết quả thực nghiệm thuật toán để cuối cùng đưa
ra kết quả so sánh, phân tích, đánh giá kết quả thu được và đưa ra kết luận.
Phần kết luận: Tổng kết thành quả nghiên cứu và phương hướng mở rộng.



4

Chương 1. TỔNG QUAN VỀ XẾP HẠNG CÂU TRẢ LỜI
Chương này của luận văn trình bày ba nội dung chính là: Trình bày về lĩnh vực
xử lý ngơn ngữ tự nhiên, giới thiệu về hỏi đáp tự động, giới thiệu về hỏi đáp cộng
đồng, tổng quan về xếp hạng và học máy, trình bày về bài tốn xếp hạng trong hỏi
đáp cộng đồng.
1.1 Giới thiệu về xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên (Natural language processing - NPL) là một nhánh của
trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con người. Trong trí
tuệ nhân tạo thì xử lý ngơn ngữ tự nhiên là một trong những phần khó nhất vì nó liên
quan đến việc phải hiểu ý nghĩa ngơn ngữ, là cơng cụ hồn hảo nhất của tư duy và
giao tiếp [4].
NPL là một lĩnh vực liên ngành nghiên cứu sự tương tác giữa người và máy qua
ngôn ngữ tự nhiên của con người. Mục tiêu là làm cho máy tính thực hiện hiệu quả
những nhiệm vụ liên quan đến ngôn ngữ của con người như giao tiếp giữa người và
máyhoặc đơn giản là nâng cao hiệu quả xử lý văn bản và lời nói.
1.2 Giới thiệu về hỏi đáp tự động
Hệ thống hỏi đáp tự động là một hệ thống thơng minh được xây dựng với mục
đích tìm kiếm câu trả lời cho câu hỏi của người dùng từ các tập dữ liệu một các chính
xác và nhanh gọn. Ba lĩnh vực lớn liên quan đến hỏi đáp tự động là xử lý ngơn ngữ tự
nhiên, tìm kiếm thơng tin, truy xuất thông tin. Đầu vào của một hệ thống hỏi đáp tự
động là một câu hỏi dưới dạng ngôn ngữ tự nhiên và đâu ra là đoạn văn bản trả lời
cho câu hỏi đó.
Các phương pháp xây dựng hệ thống hỏi đạp tự động có thể được chia thành hai
loại chính là: truy xuất thơng tin và dựa trên tri thức.
1.3 Giới thiệu về hỏi đáp cộng đồng
Hỏi đáp cộng đồng là một việc thành viên đưa ra câu hỏi và cộng đồng mạng
tham gia và việc trả lời câu hỏi đó thơng qua hiểu biết của người trả lời, chứ không
phải do các quy tắc rõ ràng thành văn bản. Đây là điểm khác biệt lớn nhất giữa hỏi



5

đáp cộng đồng và hỏi đáp tự động. Hỏi đáp tự động trước đây chỉ giải quyết được bài
toán với những câu trả lời theo luật, có logic và theo những quy tắc trong tài liệu văn
bản. Còn hỏi đáp cộng đồng với lượng câu trả lời vô cùng lớn từ cộng đồng mạng sẽ
giải quyết được hầu hết các vấn đề về hỏi đáp đặc biệt về những câu hỏi tại sao. Đây
cũng sẽ là một ngồn dữ liệu vơ cùng bổ ích để cải thiện tốt cho hệ thống hỏi đáp tự
động sau này.

Hình 1.4: Yahoo website hỏi đáp cộng đồng
 Các bài toàn trong hỏi đáp cộng đồng.
- Sự giống nhau giữa câu hỏi và bình luận (Question – Comment Similarity):
Đầu vào là một câu hỏi và các câu bình luận của câu hỏi đó. Nhiệm vụ là
phải sắp xếp các câu bình luận đó. Sao cho những câu bình luận liên quan
đến câu hỏi sẽ đứng trên những câu khơng liên quan đến câu hỏi thì ở phía
dưới.
- Sự giống nhau giữa câu hỏi và câu hỏi (Question – Question Similariy): Đầu
vào là một câu hỏi mới (hay còn gọi là câu hỏi gốc) và tập hợp các câu hỏi


6

liên quan đến câu hỏi gốc (được tìm kiếm bởi cơng cụ tìm kiếm). Nhiệm vụ
là sắp xếp những câu hỏi sao cho những câu hỏi liên quan đến câu hỏi gốc thì
ở bên trên và những câu hỏi khơng liên quan đến câu hỏi gốc thì nằm phía
dưới.
- Sự giống nhau giữa câu hỏi và bên ngồi bình luận (Question – External
Comment Similarity): Đầu vào là một câu hỏi mới (hay còn gọi là câu hỏi

gốc) và tập hợp các câu hỏi liên quan đến câu hỏi gốc (được tìm kiếm bởi
cơng cụ tìm kiếm), mỗi câu được liên kết với các chú thích đầu tiên xuất hiện
trong tập của nó.
Luận văn sẽ tập trung nghiên cứu và giải quyết bài tốn Question – Comment
Similarity. So sánh các bình luận (hay các câu trả lời) và sắp xếp chúng so với độ liên
quan đối với câu hỏi.
1.4 Giới thiệu về bài tốn xếp hạng
Xếp hạng nói chung được hiểu là sự sắp xếp. Nhiều ứng dụng, phần mềm có sự
sắp xếp, đơn giản như MS Excel, MS Dos, sự sắp xếp theo chiều tang hay giảm theo
“khóa” nào đó của dữ liệu. Hay phức tạp hơn, trong các máy tìm kiếm, sắp xếp các
kết quả trả về sao cho phù hợp [2].
Sự phát triển bùng nổ thông tin của thế giới Website dẫn đến tràn ngập thông tin
trên internet. Số lượng tài liệu đang tăng lên ngày một nhanh chóng. Việc trao đổi
giữa con người với con người do vấn đề rào cản địa lý đã bị xóa bỏ. Nhưng cũng
chính vì lượng thơng tin q lớn như vậy dẫn đến một người dùng thơng thường khó
có thể tìm kiếm được thông tin mà họ mong muốn một cách nhanh và chính xác. Vì
vậy việc tìm và trích xuất thông tin đã trở nên quan trọng, và công cụ tìm kiếm đã dần
trở thành cơng cụ thiết yếu của mọi người dùng internet.
Có rất nhiều mơ hình xếp hạng nhưng ta có thể chia thành 2 mơ hình chính là
xếp hạng dựa trên độ liên quan và xếp hạng dựa trên độ quan trọng.


7

1.4.1 Xếp hạng dựa trên độ liên quan
Mục tiêu là tạo ra một danh sách các tài liệu được xếp hạng theo mức độ liên
quan giữa tài liệu và truy vấn. Sau đó sắp xếp theo thứ tự giảm dần mức độ liên quan
của chúng.
Độ đo liên quan là mô hình khơng gian vector. Tài liệu và truy vấn được định
nghĩa như là các vector trong một không gian Euclid, trong đó tích của 2 vector được

sử dụng để do độ liên quan giữa truy vấn và tài liệu. Để tạo ra vector có kết quả tốt
nhát thì mỗi term trong khơng gian vector sẽ có một trọng số.
1.4.2 Xếp hạng dựa trên độ quan trọng
Có rất nhiều mơ hình xếp hạng dựa trên độ quan trọng. Mộ mơ hình nổi tiếng đó
là PageRank, mơ hình này được áp dụng phổ biến trên Website bởi vì nó sử dụng cấu
trúc siêu liên kết để xếp hạng.

Hình 1.6: Minh họa thuật toán PageRank [26]
1.5 Giới thiệu bài toán
Việc xếp hạng câu trả lời cho câu hỏi trong hỏi đáp cộng đồng là nhằm tìm ra
những câu trả lời có ý nghĩa cho câu hỏi tương ứng trong một tập lớn các luồng hỏi
và đáp. Vì vậy trong luận văn này em coi việc xếp hạng câu hỏi câu trả lời như là vấn
đề phân loại các cặp câu hỏi và câu trả lời được phát biểu như sau:
Cho một tập Q các câu hỏi, ở đó mỗi câu hỏi
{

,

,…,

có một tập các câu trả lời

} (n = 1, 2,…). Việc xếp hạng câu trả lời cho câu hỏi

nhãn cho các câu trả lời {

,

,…,


} các nhãn tương ứng là {

chính là gán
,

,…,

}


8

trong đó

= “Good” nếu

“PotentiallyUseful” nếu

là câu trả lời hợp lý, có liên quan đến câu hỏi

,

là câu trả lời có độ liên quan đến câu hỏi thấp hơn, chưa

chắc là câu trả lời đúng cho câu hỏi nhưng cũng có chứa thông tin trả lời câu hỏi
= “Bad” nếu

=

là câu trả lời khơng liên quan đến câu hỏi


,

.

Đến nay có rất nhiều thuật toán xếp hạng như: Ranking SVMs, LisNet,
ListMLE, RankRLS, SoftRank, CRR,… Trong luận văn này, em áp dụng thuật toán
Ranking SVMs, ListNet, ListMLE cho bài toán xếp hạng câu trả lời trong hỏi đáp
cộng đồng.
1.6 Tổng quan về học máy xếp hạng
1.6.1 Nền tảng của học máy
Học máy bao gồm 4 thánh phần chính:
 Khơng gian đầu vào: Chứa các đối tượng cần nghiên cứu, thường được biểu
diễn bằng các vector đặc trưng được trích xuất từ dữ liệu ban đầu.
 Không gian đầu ra: Chứa các mô hình dữ liệu được tính tốn từ dữ liệu đầu
vào.
 Không gian theo giả thuyết: định nghĩa hàm chuyển đổi giữa đầu vào và
đầu ra. Hoạt động dựa vào những vector đặc trưng của khơng gian đầu vào
và dự đốn của không gian đầu ra.
 Bộ huấn luyện: chưa các nhãn thực sự của nó. Cho dữ liệu đầu vào và kết
quả của quá trình học máy từ dữ liệu đầu vào.
1.6.2 Nền tảng của học máy xếp hạng
Sử dụng phương pháp học xếp hạng để xây dựng mơ hình tính hạng, cần xây
dựng tập dữ liệu huấn luyện là đầu vào của q trình học. Có ba hướng tiếp cận cho
mơ hình học máy đó là hướng tiếp cận pairwise, pairwise và pointwise.
1.7 Các nghiên cứu liên quan
Các nghiên cứu gần đây trong việc đánh giá câu trả lời được cung cấp bởi cộng
đồng thường thông qua các đặc trưng biểu diễn văn bản của câu hỏi và câu trả lời như



9

độ dài của câu hỏi, tỷ lệ độ dài giữa câu hỏi và câu trả lời, có độ đo tương tự giữa câu
hỏi và câu trả lời [19, 20, 21]. Sử dụng độ đo phổ biến và tương tác xác hội [22]
chẳng hạn như số lượng câu trả lời của người trả lời. Kết hợp sự biểu diễn cho câu
hỏi và câu trả lời qua đặc trưng văn bản và phi văn bản như là đầu vào của mơ hình
[23]. Đề xuất xếp hạng các câu trả lời lấy từ trang web hỏi đáp cộng đồng Yahoo!
Answers và chọn câu trả lời có thứ hạng cao và xem câu trả lời đó là tốt nhất cho câu
hỏi [24]. Trước đây cũng đã có một số nghiên cứu về chủ đề xếp hạng như xếp hạng
dòng cập nhật trên mạng xã hội Twitter [16].
1.8 Kết chương
Trong chương 1, luận văn giới thiệu khái quát về lĩnh vực xử lý ngôn ngữ tự
nhiên, trình bày tổng quan về hỏi đáp cộng đồng, giới thiệu tổng quan về bài toán xếp
hạng, tổng quan về học máy. Giới thiệu bài toán xếp hạng câu trả lời trong hỏi đáp
cộng đồng và các phương pháp sẽ áp dụng.
Chương tiếp theo, em trình bày cụ thể hơn về phương pháp học máy, các đặc
trưng cho bài toán xếp hạng câu trả lời trong hỏi đáp cộng đồng. Trình bày chi tiết
hơn về các thuật tốn sẽ sử dụng.


10

Chương 2. XẾP HẠNG CÂU TRẢ LỜI DỰA TRÊN HỌC MÁY
Chương này đi vào trình bày về bài tốn và giải pháp tổng thể, các phương
pháp học máy và các đặc trưng cho bài toán xếp hạng câu trả lời trong hỏi đáp cộng
đồng.
2.1 Bài toán và giải pháp tổng thể
Bài toán dựa vào bộ dữ liệu huấn luyện và bộ dữ liệu kiểm tra được lấy từ bộ dữ
liệu trên website [3]: />
Hình 2.1: Giải pháp tổng thể của bài toán



11

2.2 Các đặc trưng trong xếp hạng câu trả lời
2.2.1 Đặc trưng N-gram
Đặc trưng N-gram cũng có thể biết đến như là một mơ hình ngơn ngữ N-gram.
Nó cho biết xác xuất cho một chuỗi m phần tử (thường là từ)

tức là cho

phép dự đoán khả năng một chuỗi từ xuất hiện trong ngơn ngữ đó
Để trích rút các đặc trưng n-gram, bất kỳ n từ liên tiếp nào trong một cặp câu hỏi
và câu trả lời đề được coi là một đặc trưng.
2.2.2 Đặc trưng chồng chéo n-gram từ giữa câu hỏi và câu trả lời
Khi trả lời một câu hỏi nào đó, người trả lời thường có xu hướng sử dụng lại một
số từ ở câu hỏi trong câu trả lời. Vì vậy nếu trong câu trả lời có chứa từ hoặc cụm từ
của câu hỏi thì câu trả lời đó có khả năng là một câu trả lời liên quan đến câu hỏi. Để
tính tốn sự chồng chéo giữa câu hỏi và câu trả lời, em thực hiện loại bỏ các
stopword trong mỗi câu hỏi, câu trả lời sau đó mới tính tốn sự chồng chéo từ sử
dụng n-gram từ (n = 1, 2, 3).
2.2.3 Đặc trưng dựa trên thông tin người trả lời
Số lượng câu trả lời của người trả lời chính là thơng tin về tổng số câu trả lời của
người trả lời trong toàn tập dữ liệu. Em nhận thấy những người thường xuyên trả lời
các câu hỏi của người khác thì câu trả lời của họ cũng thường mang độ chính xác cao
hơn so với những người ít trả lời. Chính vì vậy em cũng dựa vào đặc trưng này để
phân loại các cặp câu hỏi và câu trả lời. Đây cũng sẽ là một đặc trưng trong vector
đặc trưng giúp em xếp hạng câu trả lời trong hỏi đáp cộng đồng được tốt hơn.
2.3 Các thuật toán xếp hạng
2.3.1 Thuật toán Ranking SVMs

Xếp hạng SVM (SVM-rank) là một ứng dụng của hỗ trợ máy vector (Support
vector machine) được sử dụng để giải quyết bài toán xếp hạng bằng việc sử dụng
thuật toán học giám sát SVM. SVM-rank được Joachims công bố năm 2002 với mục
đích cải thiện hiệu suất của các cơng cụ tìm kiếm trên Internet. SVM-rank là thuật
tốn học xếp hạng theo hướng tiếp cận pairwise. Chẳng hạn ta có tập sắp thứ tự D =


12

{(


),

), (
), cặp (

,(
,

) khi đó có các cặp so sánh thứ tự (

,

) và (

) không xác định thứ tự so sánh [29].

2.3.2 Thuật toán ListNet
ListNet là phương pháp học mới được dùng để tối ưu hóa chức năng sắp xếp

danh sách dựa vào xác suất trên cùng, Với mạng noron là mơ hình và Gradient
Descent làm thuật tốn tối ưu hóa [30].
2.3.3 Thuật tốn ListMLE
ListMLE là một thuật toán học hiện đại, được chứng minh là hoạt động rất tốt
trong ứng dụng. Nó xác định việc phân bố xác suất dựa trên mơ hình Plackett-Luce
theo kiểu từ trên xuống để tính đến vị trí thơng tin [31].
2.4 Kết chương
Trong chương 2 luận văn đã trình bày được bài tốn và giải pháp tổng thể nêu rõ
được mơ hình bài tốn, các q trình thực hiện được mơ tar theo từng bước rõ ràng từ
dữ liệu đầu vào đến khi có kết quả và đánh giá kết quả thực nghiệm. Nêu được các
đặc trưng sử dụng để xếp hạng câu trả lời trong hỏi đáp cộng đồng như đặc trưng
Unigram, Bigram, Trigram và các thuật toán sẽ áp dụng để thực hiện trong bài toán
xếp hạng là thuật toán SVM_Rank, ListNet, ListMLE.


13

Chương 3. THỰC NGHIỆM VÀ ĐÁNH GIÁ
Chương này trình bày quá trình thực và đánh giá kết quả thực nghiệm, luận văn
sẽ tổng kết lại kết quả thực nghiệm và phân tích, đánh giá khả năng ứng dụng của
các phương pháp đã trình bày.
3.1 Dữ liệu thực nghiệm
Dữ liệc thực nghiệm em sử dụng bộ dữ liệu bằng tiếng anh được lấy trên
Website [3]. Nó được dựa trên dữ liệu từ diễn đàn Living Qutar. Dữ liệu tiếng anh có
chứa các chú thích. Nó bao gồm một danh sách các câu hỏi ban đầu và mười câu trả
lời liên quan.
Dữ liệu được định dạng bằng XML với mã hóa UTF-8. Em phân chia dữ liệu
thành 2 loại là dữ liệu đào tạo và dữ liệu kiểm tra. Tập dữ liệu là một chuổi các câu
hỏi ban đầu (OrgQuestion), trong đó mỗi câu hỏi có một chủ đề. Mỗi câu hỏi có
(ORGQID) để nhận dạng câu hỏi duy nhất. Mỗi thread có một câu hỏi liên quan và

mười ý kiến trả lời.
Bảng 3.1: Bảng mô tả dữ liệu thực nghiệm
Mô tả

Số lượng

Số lượng câu hỏi trong dữ liệu huấn luyện

2.034 câu

Số lượng câu trả lời trong dữ liệu huấn luyện

20.340 câu

Số lượng câu hỏi trên dữ liệu kiểm tra

244 câu

Số lượng câu trả lời trên dữ liệu kiểm tra

2.440 câu

3.2 Thiết lập thực nghiệm
3.2.1 Hướng tiếp cận thực nghiệm
Sau quá trình nghiên cứu và tìm hiểu các phương pháp, luận văn đã đề xuất mơ
hình giải quyết bài tốn như đã trình bày ở các phần trên. Để kiểm tra và đánh giá
được hiểu quả của mơ hình đề xuất, em đã tiến hành làm thực nghiệm.
Mục đích của thực nghiệm là kiểm tra độ khả thi, vì mơ hình mới dựa trên các
phân tích và nghiên cứu liên quan, chưa có kết quả thực tế.



14

3.2.2 Phương pháp đánh giá
Em dựa vào 2 độ đo để đánh giá kết quả thực nghiệm là: Mean Average
Precision (MAP) và Normalized Discounted Cumulative Gain (NDCG).
 MAP: là độ chính xác trung bình, có nghĩa là nếu chúng ta có 1000 trường
hợp, thì em tính tổng độ chính xác của mỗi trường hợp rồi chia cho 1000. Trong các
phương pháp đánh giá MAP là một phương pháp đánh giá tốt.
 NDCG: được thiết kế cho các tình huống của các khái niệm không nhị phân về
mức độ liên quan. Giống như độ chính xác thứ k, nó được đánh giá trên số k của kết
quả tìm kiếm hàng đầu.
3.3 Công cụ thực nghiệm
3.3.1 Môi trường thực nghiệm
Bảng 3.2: Bảng cấu hình thơng tin phần cứng
Thành phần
CPU
RAM
Bộ nhớ ngồi (HDD)
Hệ điều hành (OS)

Chỉ số
Intel Core I5 2.6GHz
8GB
SATA 1000GB
Windows 10 Professional 64bit

3.3.2 Công cụ phần mềm
Bảng 3.3: Bảng công cụ phần mềm
Tên công cụ

Visual Studio Enterprise 2015
SVM_rank
ListNet
ListMLE
Strawberry Perl

a. Học máy theo SVM_rank

Mơ tả
IDE lập trình ngơn ngữ C#
Bộ học máy và xếp hạng bằng thuật toán SVM
Bộ học máy và xếp hạng bẳng thuật toán
ListNet.
Bộ học máy và xếp hạng bẳng thuật toán
ListMLE.
Tạo mỗi trường để đánh giá kết quả thực nghiệm
với độ đo MAP và DNCG.


15

Định dạng dữ liệu đầu vào:
<line> .=. <target> qid:<qid> <feature>:<value>... <feature>:<value>
<target> .=. <float>
<qid> .=.
<feature> .=.
<value> .=. <float>
<info> .=. <string>
Ví dụ một file dữ liệu:
3 qid:1 1:1 2:1 3:0 4:0.2 5:0 # 1A

2 qid:1 1:0 2:0 3:1 4:0.1 5:1 # 1B
1 qid:1 1:0 2:1 3:0 4:0.4 5:0 # 1C
1 qid:1 1:0 2:0 3:1 4:0.3 5:0 # 1D
1 qid:2 1:0 2:0 3:1 4:0.2 5:0 # 2A
2 qid:2 1:1 2:0 3:1 4:0.4 5:0 # 2B
1 qid:2 1:0 2:0 3:1 4:0.1 5:0 # 2C
1 qid:2 1:0 2:0 3:1 4:0.2 5:0 # 2D
2 qid:3 1:0 2:0 3:1 4:0.1 5:1 # 3A
3 qid:3 1:1 2:1 3:0 4:0.3 5:0 # 3B
4 qid:3 1:1 2:0 3:0 4:0.4 5:1 # 3C
1 qid:3 1:0 2:1 3:1 4:0.5 5:0 # 3D
Dựa vào file dữ liệu đầu vào ta có thể tham chiếu như sau:
1A>1B, 1A>1C, 1A>1D, 1B>1C, 1B>1D, 2B>2A, 2B>2C, 2B>2D, 3C>3A, 3C>3B,
3C>3D, 3B>3A, 3B>3D, 3A>3D
Cú pháp học máy của thuật toán.
 svm_rank_learn -c 3 train.dat model
Trong đó:
- Train.dat là file huấn luyện.
- Model là file cấu trúc đầu ra khi được huấn luyện.


16

 svm_rank_classify test.dat model predictions
Trong đó:
- Test.dat là file cần kiểm tra.
- Model là file cấu trúc được tạo ra khi huấn luyện.
- Predictions là file được đánh số score với mỗi câu trả lời. (Dựa vào kết
quả này ta có thể xếp hạng được các câu trả lời đối với từng câu hỏi).
b. Học máy theo ListNet

Cú pháp học máy của thuật tốn:
 learn data_train_file iteration learning_rate model_file
Trong đó:
- data_train_file: là file huấn luyện
- interation: số vòng lặp
- learning_rate: tốc độ học
- model_file: là file cấu trúc đầu ra khi được huấn luyện.
 test model_file data_test_file output_file
Trong đó:
- model_file: là file cấu trúc được tạo ra khi huấn luyện.
- data_test_file: là file kiểm tra
- output_file: là file được đánh số score với mỗi câu trả lời. (Dựa vào kết
quả này ta có thể xếp hạng được các câu trả lời đối với từng câu hỏi).
c. Học máy theo ListMLE
 learn data_train_file tolerance_rate learning_rate model_file
Trong đó:
- data_train_file: là file huấn luyện
- tolerance_rate: số vòng lặp
- learning_rate: tốc độ học


17

- model_file: là file cấu trúc đầu ra khi được huấn luyện.
 test model_file data_test_file output_file
Trong đó:
- model_file: là file cấu trúc được tạo ra khi huấn luyện.
- data_test_file: là file kiểm tra
- output_file: là file được đánh số score với mỗi câu trả lời. (Dựa vào kết
quả này ta có thể xếp hạng được các câu trả lời đối với từng câu hỏi).

d. Đánh giá đô đo bằng Strawberry
Cú pháp đánh giá khi dùng perl:
perl mslr-eval-score-mslr.pl_.txt argv[1] argv[2] argv[3] argv[4]
Trong đó:
- mslr-eval-score-mslr.pl_.txt: là file thư viện
- argv[1]: là file dữ liệu test.
- argv[2]: là file prediction (file được tạo ra khi dùng các thuật toán xếp hạng).
- argv[3]: là file kết quả (tạo ra một file output gồm dữ liệu kết quả của độ đo
MAP và NDCG).
- argv[4]: Là một biến đầu vào. Nếu biến = 1 thì xuất kết quả cho mỗi truy
vấn, nếu biến = 0 thì xuất kết quả trung bình. (Đánh giá ở luận văn em dùng
biến = 0 để đo kết quả trung bình)
3.4 Kết quả thự nghiệm
 Thuật toán SVM_Rank
Bảng 3.4: Bảng số kết quả thực nghiệm với thuật toán SVM_Rank
SVM_Rank
Đặc trưng

MAP

NDCG

Unigram

0.7296

0.7663

Bigram


0.6700

0.7297

Trigram

0.6737

0.7262

Unigram + Bigram + Trigram

0.7416

0.7819


18

 Thuật toán ListNet
Tham số khi sử dụng ListNet là:
Interation (số vòng lặp): 20
Learning_rate (tốc độ học): 0.1
Bảng 3.5: Bảng số kết quả thực nghiệm với thuật toán ListNet
ListNet
Đặc trưng

MAP

NDCG


Unigram

0.7336

0.7577

Bigram

0.6700

0.7298

Trigram

0.6679

0.7282

Unigram + Bigram + Trigram

0.7092

0.7631

 Thuật toán ListMLE
Tham số khi sử dụng ListMLE là:
Tolerance_rate (độ chịu lỗi): 0.1
Learning_rate (tốc độ học): 0.1
Bảng 3.6: Bảng số kết quả thực nghiệm với thuật toán ListMLE

ListMLE
Đặc trưng

MAP

NDCG

Unigram

0.7112

0.7647

Bigram

0.6693

0.7291

Trigram

0.6650

0.7257

Unigram + Bigram + Trigram

0.7205

0.7606



19

3.5 Phân tích và đánh giá kết quả sau thực nghiệm

Hình 3.1: So sánh độ chính xác giữa các thuật tốn với độ đo MAP

Hình 3.2: So sánh độ chính xác giữa các thuật toán với độ đo NDCG
Em cũng thấy khi kết hợp các đặc trưng lại với nhau cho ta kết quả tốt hơn so
với dùng từng đực trưng một. Khi dùng từng đặc trưng một em thấy đặc trưng
Trigram kết quả thấp vì tỷ lệ giữa câu hỏi và câu trả lời có 3 từ liên tiếp giống nhau ít.
Dùng đặc trưng Unigram cho kết quả khả quan hơn, khi dùng thuật toán ListNet với


20

đặc trưng Unigram thì độ đo MAP cịn cho kết quả cao hơn cả khi sử dụng kết hợp
các đặc trưng lại với nhau.
3.6 Kết chương
Nội dung chương này trình bày quá trình thực tế hế thống xếp hạng câu trả lời
trong hỏi đáp cộng đồng. Trên cơ sở kết quả thực nghiệm cở chương này luận văn
đưa ra phân tích đánh giá về phương pháp thực hiện. Các kết quả cho thấy việc sử
dụng các đặc trưng riêng mang lại độ chính xác khơng cao. Khi tăng dần việc kết hợp
các đặc trưng, độ chính xác phân lớp được cải thiện hơn. Điều này chứng tỏ việc trích
chọn các đặc trưng hợp lý là rất quan trọng và kết hợp chúng tốt sẽ còn quan trọng
hơn rất nhiều để đem lại một kết quả cao cho bài toán.


21


KẾT LUẬN
Trong thời đại hiện nay, những đột phá về công nghệ các ứng dụng phục vụ đời
sống con người ngày càng phát triển mạnh mẽ. Việc tìm kiếm thơng tin theo tri thức
con người ngày một nâng cao và dần là nhu cầu thiết yếu của những người dùng
internet. Thì việc xếp hạng những câu trả lời trong hỏi đáp cộng đồng sẽ giúp con
người giải quyết được nhiều vấn đề, nhiều bài tốn một cách nhanh chóng, chính xác
hiệu quả cao mà không bị dư thừa thông tin. Tiếp cận chi thức một cách dễ dàng hơn.
Nghiên cứu về xử lý ngơn ngữ tự nhiên nói chung và bài toán xếp hạng câu trả
lời trong hỏi đáp cộng đồng nói riêng với em là cơng nghệ mới, thời gian nghiên cứu
còn ngắn nên vẫn còn nhiều vấn đề chưa thực sự nắm bắt tốt. Tuy nhiên quá trình
nghiên cứu luận văn em cũng thu được một số kết quả cũng như nhận ra một vài hạn
chế như sau:
 Kết quả đạt được
Về mặt lý thuyết:
- Tìm hiểu về xử lý ngôn ngữ tự nhiên, hỏi đáp cộng đồng.
- Nghiên cứu bài tốn xếp hạng, vài trị, ý nghĩa, khó khăn và thách thức trong
việc xếp hạng câu trả lời trong hỏi đáp cộng đồng.
- Trình bày về hướng tiếp cận, phương pháp giải quyết, các kỹ thuật liên quan.
Đi sâu vào phương pháp học máy SVM, ListNet, ListMLE, cách biểu diễn
vector đặc trưng N-gram.
Về thực nghiệm:
- Đề xuất mơ hình giải quyết bài tốn xếp hạng câu trả lời trong hỏi đáp cộng
đồng.
- Tiến hành cài đặt thực nghiệm.
- Đưa ra phân tích, đánh giá kết quả thực nghiệm
 Hạn chế:
Do hạn chế về mặt thời gian và kiến thức nên luận văn còn một số tồn tại sau:
- Dữ liệu sử dụng chưa đủ lớn.



22

- Dữ liệu mới sử dụng trong luận văn mới chỉ là ngơn ngữ tiếng anh.
- Bài tốn mới dùng lại ở mức tổng quát.
 Hướng phát triển:
Trong thời gian tới, em sẽ tiếp tục nghiên cứu các phương pháp để nâng cao chất
lượng kết quả của bài toán xếp hạng. Tìm hiểu và sử dụng thêm nhiều đặc trưng hơn
nữa để tăng độ chính xác của thực nghiệm. Sẽ nghiên cứu áp dụng với ngôn ngữ là
tiếng việt. Cùng với đó xây dựng ứng dụng thực tế về hỏi đáp để phục vụ chính như
cầu của người dân Việt Nam. Ngoài ra, cũng cần phải nâng cao tốc độ xử lý, hoàn
thiện hơn về hệ thống.



×