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 qu
Trang 1HỌ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
Trang 2Luận văn được hoà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Ô XUÂN 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
Trang 31
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 toà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ề
Trang 42
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
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:
Trang 5- 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 toá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 toá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
Trang 64
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 toá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ụ hoà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
Trang 75
đá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
Trang 86
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 ngoà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 toá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 toá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 quá 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
Trang 9Độ đ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ố
Xếp hạng dựa trên độ quan trọng
1.4.2
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 chính là gán nhãn cho các câu trả lời { , ,…, } các nhãn tương ứng là { , ,…, }
Trang 108
trong đó = “Good” nếu là câu trả lời hợp lý, có liên quan đến câu hỏi , =
“PotentiallyUseful” nếu 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
Nền tảng của học máy
1.6.1
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 toá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ự đoá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
Nền tảng của học máy xếp hạng
1.6.2
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 quá 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ư
Trang 119
độ 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 toán sẽ sử dụng
Trang 1210
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 toá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]: http://alt.qcri.org/semeval2016/task3
Hình 2.1: Giải pháp tổng thể của bài toán
Trang 1311
2.2 Các đặc trưng trong xếp hạng câu trả lời
Đặc trưng N-gram
2.2.1
Đặ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
Đặc trưng chồng chéo n-gram từ giữa câu hỏi và câu trả lời
2.2.2
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 toá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 toán sự chồng chéo từ sử dụng n-gram từ (n = 1, 2, 3)
Đặc trưng dựa trên thông tin người trả lời
2.2.3
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