MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT iii DANH SÁCH CÁC BẢNG iv DANH SÁCH CÁC HÌNH VẼ v LỜI MỞ ĐẦU 1 1.1 Tổng quan về forum 3 1.1.1 Forum và những đặc điểm của nó 3 1.1.2 Một số thành phần cơ bản của forum 4 1.1.3 Mối quan hệ giữa các thành phần trong forum 5 1.2 Hệ thống tư vấn bài viết trên forum 6 1.2.1 Tổng quan về một hệ tư vấn 6 1.2.2 Một số phương pháp tư vấn thông dụng 7 1.2.3 Phương pháp tư vấn bài viết dựa trên nội dung 9 CHƯƠNG 2: PHƯƠNG PHÁP TƯ VẤN DỰA TRÊN NỘI DUNG 11 2.1 Nguyên tắc chung 11 2.1.1 Bài toán tư vấn bài viết dựa trên nội dung 11 2.1.2 Hướng giải quyết 12 2.2 Phương pháp biểu diễn văn bản thành dạng vector (Vector Space Model VSM) 13 2.2.1 Tổng quan về phương pháp biểu diễn văn bản thành dạng vector (Vector Space Model VSM) 13 2.2.2 Một số định nghĩa 13 2.2.3 Một ứng dụng quan trọng của VSM Xếp hạng mức độ liên quan (Relevance Ranking) 14 2.2.4 TFIDF 16 2.2.5 Ưu điểm và nhược điểm của VSM 17 2.3 Mô hình Latent Dirichlet Allocation (LDA) 18 2.3.1 Sự phát triển của LDA 19 2.3.2 Tổng quan về mô hình sinh trong LDA 20 2.3.3 Khả năng Likelihood 24 2.3.4 Ước lượng các tham số (Parameter estimate) và suy luận(Inferences) 25 2.3.5 Ứng dụng 28 2.4 Phương pháp so sánh vector 29 2.4.1 Bộ phân loại Rocchio 29 2.4.2 Phân loại Bayessian 30 2.4.3 Cosine Similarity 31 2.4.4 Mô hình phân loại Kláng giềng gần nhất 31 2.5 Sử dụng phương pháp biểu diễn văn bản thành vector để tư vấn bài viết 32 2.5.1 Vấn đề tư vấn bài viết và cách giải quyết 32 2.5.2 Biểu diễn bài viết bằng TFIDF 34 2.5.3 Biểu diễn bài viết bằng Topic Distribution 35 2.6 Kết luận 35 3.1 Thu thập dữ liệu 37 3.1.1 Lựa chọn forum thực nghiệm 37 3.1.2 Thu thập thông tin 40 3.1.3 Tiền xử lý dữ liệu 45 3.1.4 Biểu diễn nội dung các bài viết thành dạng vector 50 3.2 Tư vấn bài viết và đánh giá kết quả 53 3.2.1 Phân chia bộ dữ liệu huấn luyện và bộ dữ liệu kiểm nghiệm 53 3.2.2 Lựa chọn tập người dùng để tư vấn và biểu diễn sự quan tâm của người dùng 54 3.2.3 Tư vấn bài viết 56 3.2.4 Đánh giá kết quả 57 3.3 Ứng dụng tư vấn chọn bài viết từ forum trên window 63 KẾT LUẬN 68 TÀI LIỆU THAM KHẢO 70
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
XÂY DỰNG HỆ THỐNG TƯ VẤN BÀI VIẾT
TRÊN FORUM CHO NGƯỜI DÙNG TRÊN CƠ SỞ
CÔNG NGHỆ WEB
HÀ NỘI – 2016
Trang 2TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
NGUYỄN THỊ KIỀU TRANG
XÂY DỰNG HỆ THỐNG TƯ VẤN BÀI VIẾT TRÊN FORUM CHO NGƯỜI DÙNG TRÊN CƠ SỞ
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là sản phẩm nghiên cứu của bản thân, được xuất phát từyêu cầu bài toán phát sinh trong công việc để hình thành hướng nghiên cứu được thực hiện dưới sự hướng dẫn của giáo viên hướng dẫn TS.Hà Mạnh Đào Mọi sự tham khảo sử dụng trong đồ án đều được trích dẫn các nguồn tài liệu trong báo cáo và danh mục tài liệu tham khảo Các sao chép không hợp
lệ, vi phạm quy chế của nhà trường, tôi xin hoàn toàn chịu trách nhiệm
Hà Nội, tháng 9 năm 2016
Người cam đoan
Trang 4LỜI CẢM ƠN
Để có thể hoàn thành được đồ án này, em xin chân thành cảm ơn các thầy
cô trong khoa Công nghệ thông tin – Trường Đại học Tài nguyên và Môitrường Hà Nội đã dạy dỗ em trong suốt bốn năm học vừa qua
Em xin gửi lời cảm ơn chân thành nhất tời thầy TS.Hà Mạnh Đào là người
đã trực tiếp hướng dẫn và chỉ bảo tận tình em trong quá trình làm đồ án này
Em đặc biệt cảm ơn thầy vì đã truyền đạt cho em rất nhiều kiến thức và kinhnghiệm trong qua trình làm đồ án Em xin cảm ơn thầy đã tạo cho em mộtđiều kiện làm đồ án tốt nhất có thể
Cuối cùng, em vô cùng cảm ơn tất cả thành viên trong gia đình, tất cả bạnbè; những người đã cho em sư động viên nhiệt tình nhất trong quá trình làm
đồ án này
Hà Nội, tháng 06 năm 2016
Nguyễn Thị Kiều Trang
Trang 5MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT iii
DANH SÁCH CÁC BẢNG iv
DANH SÁCH CÁC HÌNH VẼ v
LỜI MỞ ĐẦU 1
1.1 Tổng quan về forum 3
1.1.1 Forum và những đặc điểm của nó 3
1.1.2 Một số thành phần cơ bản của forum 4
1.1.3 Mối quan hệ giữa các thành phần trong forum 5
1.2 Hệ thống tư vấn bài viết trên forum 6
1.2.1 Tổng quan về một hệ tư vấn 6
1.2.2 Một số phương pháp tư vấn thông dụng 7
1.2.3 Phương pháp tư vấn bài viết dựa trên nội dung 9
CHƯƠNG 2: PHƯƠNG PHÁP TƯ VẤN DỰA TRÊN NỘI DUNG 11
2.1 Nguyên tắc chung 11
2.1.1 Bài toán tư vấn bài viết dựa trên nội dung 11
2.1.2 Hướng giải quyết 12
2.2 Phương pháp biểu diễn văn bản thành dạng vector (Vector Space Model - VSM) 13
2.2.1 Tổng quan về phương pháp biểu diễn văn bản thành dạng vector (Vector Space Model - VSM) 13
2.2.2 Một số định nghĩa 13
2.2.3 Một ứng dụng quan trọng của VSM - Xếp hạng mức độ liên quan (Relevance Ranking) 14
2.2.4 TF-IDF 16
2.2.5 Ưu điểm và nhược điểm của VSM 17
2.3 Mô hình Latent Dirichlet Allocation (LDA) 18
2.3.1 Sự phát triển của LDA 19
2.3.2 Tổng quan về mô hình sinh trong LDA 20
2.3.3 Khả năng - Likelihood 24
2.3.4 Ước lượng các tham số (Parameter estimate) và suy luận(Inferences) 25
2.3.5 Ứng dụng 28
Trang 62.4 Phương pháp so sánh vector 29
2.4.1 Bộ phân loại Rocchio 29
2.4.2 Phân loại Bayessian 30
2.4.3 Cosine Similarity 31
2.4.4 Mô hình phân loại K-láng giềng gần nhất 31
2.5 Sử dụng phương pháp biểu diễn văn bản thành vector để tư vấn bài viết 32
2.5.1 Vấn đề tư vấn bài viết và cách giải quyết 32
2.5.2 Biểu diễn bài viết bằng TF-IDF 34
2.5.3 Biểu diễn bài viết bằng Topic Distribution 35
2.6 Kết luận 35
3.1 Thu thập dữ liệu 37
3.1.1 Lựa chọn forum thực nghiệm 37
3.1.2 Thu thập thông tin 40
3.1.3 Tiền xử lý dữ liệu 45
3.1.4 Biểu diễn nội dung các bài viết thành dạng vector 50
3.2 Tư vấn bài viết và đánh giá kết quả 53
3.2.1 Phân chia bộ dữ liệu huấn luyện và bộ dữ liệu kiểm nghiệm 53
3.2.2 Lựa chọn tập người dùng để tư vấn và biểu diễn sự quan tâm của người dùng 54
3.2.3 Tư vấn bài viết 56
3.2.4 Đánh giá kết quả 57
3.3 Ứng dụng tư vấn chọn bài viết từ forum trên window 63
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 70
Trang 7LDA Latent Dirichlet Allocation
LSA Latent Semantic Analysis
MAP Mean Average Precision
pLSA Probabilistic Latent Semantic Analysis
SVM Support Vector Machine
TF-IDF Term Frequently – Invert Document Frequently
Trang 8DANH SÁCH CÁC BẢNG
Bảng 2.1 - Một số tham số có liên quan đến mô hình LDA 22
Bảng 3.1 - So sánh giữa VOZ và Webtretho 38
Bảng 3.2 - Thông tin thống kê của 2 bộ dữ liệu thực nghiệm 39
Bảng 3.3: Một số tham số cần được cài đặt để chạy bộ thư viện JGibbsLDA 52
Bảng 3.4: Thống kê của hai bộ dữ liệu kiểm nghiệm 55
Bảng 3.5: Kết quả đánh giá thực nghiệm của hai bộ dữ liệu 61
Trang 9DANH SÁCH CÁC HÌNH VẼ
Hình 2.1: Độ lớn của vector văn bản với vector truy vấn 15
Hình 2.2: Ví dụ về LDA Các chủ đề là các “bag-of-word” và các mũi tên biểu diễn xác suất của từng chủ đề trong văn bản 18
Hình 2.3: Mơ hình đồ họa của LDA 20
Hình 2.4: Mơ hình sinh của Latent Dirichlet Allocation[4 ] 21
Hình 2.5: Thuật tốn Gibbs Sampling cho LDA 27
Hình 2.6: Mơ hình bộ phân loại Rocchio 30
Hình 2.7: Cấu trúc Nạve-Bayes đơn giản 30
Hình 2.8: Ví dụ đơn giản về phân loại k-láng giềng gần nhất 32
Hình 3.1: Giao diện forum Điểm báo – VOZ Forum 40
Hình 3.2: Giao diện forum webtretho 40
Hình 3.3: Sơ đồ lớp của hệ thống tư vấn bài viết theo nội dung 42
Hình 3.4: Các thơng tin cĩ trong file chứa thơng tin bài viết 43
Hình 3.5: Các thơng tin cĩ trong file chứa thơng tin người dùng 44
Hình 3.6: Các thơng tin cĩ trong file chứa thơng tin bình luận 44
Hình 3.7: Các thơng tin cĩ trong file chứa thơng tin biểu thị mối quan hệ người dùng – bài viết – bình luận 45
Hình 3.8: Nội dung bài viết trước và sau khi được chuẩn hĩa 46
Hình 3.9: Nội dung bài viết sau khi đã tách câu 47
Hình 3.10: Nội dung bài viết sau khi đã tách từ 48
Hình 3.11: Một đoạn trong tập từ vựng (Bag-of-word) 49
Hình 3.12: Biểu đồ so sánh hiệu quả tư vấn của TF-IDF, mơ hình LDA và kết hợp hai phương pháp 62
Hình 3.13: Biểu đồ so sánh hiệu quả tư vấn trên hai forum Điểm báo – VOZ và Webtretho 62
Hình 3.14: Giao diện chính của ứng dụng tư vấn bài viết theo nội dung 63
Hình 3.15: Giao diện kết quả tư vấn theo các phương pháp 66
Hình 3.16: Danh sách người dùng đã bình luận vào bài viết 67
Trang 10LỜI MỞ ĐẦU
Ngày nay, với sự phổ biến của mạng Internet và máy tính cá nhân, hệ thốngcác trang web đã trở thành một công cụ hữu hiệu để thu thập thông tin Có rấtnhiều nguồn thông tin trên hệ thống những trang web này như: các website,blog, mạng xã hội, các forum… Sự kiện quan trọng nhất trong qua trình pháttriển của hệ thống web là sự ra đời của hệ thống web2.0 Đây là hệ thống web
mà những nội dung được tạo ra bởi người dùng chính là điểm đặc sắc nhất của
nó Tuy nhiên, sự bùng nổ của nguồn thông tin được tạo ra bởi người dùng đãđặt ra thách thức với việc tìm kiếm và thu thập những thông tin có ích trên hệthống Web Bởi có hàng tỷ người dùng sử dụng internet mỗi ngày, lượng thôngtin mà họ tạo ra là vô cùng lớn từ những đoạn status, tweet trên các mạng xã hội,những hình ảnh, đoạn video trên những trang chia sẻ ảnh, video, đến những bàiviết trên các forum
Ngày nay với sử phổ biến của mạng và mays tính cá nhân hệ thống các trang
đã trở thành một công cụ hữu hiệu để thu thập thong tin có rất nhiều nguồnthống tin trên hệ thống nhừn trang này như sự kiên quan trong nhất trong quátrình phát trienr cả hệ thống tuy nhiên sự bùng nổ của nguồn thong tin được tạo
ra có hang tử người đùng sư dung
Một trong những tác vụ quan trọng của việc tìm kiếm và thu thập thông tin làviệc tư vấn nội dung cần thiết cho người dùng internet Nhiệm vụ của việc tưvấn là đưa ra cho người dùng một danh sách các đối tượng mà có thể ngườidùng sẽ quan tâm từ một tập hợp những đối tượng hỗn độn có được từ các trangweb Đã có rất nhiều nghiên cứu được thực hiện để tìm ra phương pháp tư vấnhiệu quả Một số phương pháp đã được tìm ra và cho kết quả tốt như: phươngpháp lọc cộng tác, phương pháp lọc theo nội dung, phương pháp lọc dựa trên trithức và phương pháp lai giữa các phương pháp trên Hiện tại chưa có mộtnghiên cứu cụ thể nào cho vấn đề tư vấn bài viết cho người dung trên forum,trong khi đó các forum hiện nay và trước đây là một trong những nguồn thôngtin quan trọng và phổ biến của hệ thống website Ứng dụng những kết quả trên,
Đồ án này sẽ đi xây dựng một phương pháp tư vấn bài viết cho người dùng trênforum dựa trên nội dung, bên cạnh đó là viết ra một ứng dụng tư vấn bài viết chongười dùng trên forum
Mốt trong những tác vụ quan trong của việc tìm kiếm và th thập thong tin là
tư vấn nội dung cần thiết cho người dung nhiệm vụ của việc tự vấn là đưa ra nuy
Trang 11Do đó, nhiệm vụ cụ thể của đồ án sẽ là đi xây dựng một phương pháp tư vấnbài viết cho người dùng của các forum: đầu tiên sẽ là phân tích bài toán để hiểuđược những việc cần làm, sau đó là lựa chọn phương pháp tư vấn thích hợp cho
hệ tư vấn cho bài viết, tiếp đến là thu thập thông tin và huấn luyện bộ dữ liệu,cuối cùng là tính toán và đánh giá độ chính xác của phương pháp tư vấn Kếtquả của đồ án là xây dựng được một hệ thống tư vấn bài viết cho người dùng và
có thể triển khai hệ thống đó thành một ứng dụng cụ thể trên nền webapplication hoặc window application
Nội dung đồ án gồm 4 chương: trong đó hai chương đầu đi tìm phương pháp
tư vấn cho hệ thống được xây dựng ở chương 3, và chương cuối cùng sẽ đưa rakết luận cuối cùng
Bố cục chi tiết bao gồm:
Chương 1 – Tổng quan về forum và hệ thống tư vấn bài viết trên forum: nộidung của chương này là đưa ra cái nhìn sơ qua về các thành phần trong mộtforum, rồi từ đó xây dựng nên những ý tưởng đầu tiên về một hệ tư vấn bài viếttrên forum và lựa chọn phương pháp tư vấn sẽ sử dụng cho hệ thống
Chương 2 – Phương pháp tư vấn dựa trên nội dung: chương này đi tìm hiểumột cách rõ ràng, cụ thể về phương pháp tư vấn đã được lựa chọn ở chương 1 làphương pháp tư vấn theo nội dung Sau đó chương này sẽ đi ứng dụng phươngpháp này để xây dựng nên một hệ thống tư vấn bài viết theo nội dung về mặt lýthuyết
Chương 3 – Thực nghiệm và kết quả: nhiệm vụ của chương này là tiến hànhhành áp dụng hệ thống tư vấn bài viết theo nội dung đã được xây dựng ở chương
2 vào thực tế và đánh giá kết quả của phương pháp
Kết luận: chương này đi tổng kết lại những gì đã đạt được trong đồ án này vàđưa ra một số hướng phát triển từ nội dung đồ án
Trang 12CHƯƠNG 1: TỔNG QUAN VỀ FORUM VÀ HỆ THỐNG TƯ VẤN BÀI
VIẾT TRÊN FORUM
1.1 Tổng quan về forum
1.1.1 Forum và những đặc điểm của nó
Có rất nhiều cách nhìn nhận khác nhau về một forum Có người nói forum làmột bảng tin, hay một bảng các thông báo Trong khi đó có người lại cho rằngforum là một danh sách các thảo luận hay một nhóm các thảo luận Tuy nhiên cóthể mô tả về một forum như sau: forum là nơi một trang thảo luận trực tuyến, tại
đó mỗi người dùng có thể tạo ra một cuộc thảo luận (hay còn gọi là một thread)bằng cách đăng một đoạn tin lên trên forum, và đăng ý kiến bình luận vào mộtcuộc thảo luận khác Một forum có cấu trúc dạng cây Trong đó, mỗi forum lạibao gồm nhiều subforum, mỗi subforum chứa nhiều chủ đề khác nhau Mỗi chủ
đề lại chứa nhiều thread khác nhau, các thread được bình luận bởi nhiều ngườidùng
Tùy vào từng forum mà người dùng khi bình luận hoặc tạo một thread mới cócần phải đăng nhập vào hệ thống hay không Hầu hết các forum hiện nay đềuyêu cầu người dùng đăng nhập trước khi tạo thread hoặc viết bình luận vàothread Tùy vào mức độ truy nhập của người dùng, một thread được đăng bởingười dùng cần phải được sự chấp nhận của người quản lý forum hay không.Người dùng có thể bình luận vào các thread ở những thời điểm khác nhau, màkhông cần thiết tất cả người dùng phải online
Forum có nhiều điểm khác biệt so với các website khác như:
- So với một hòm thư điện tử: cả hai đều là những trang web chứa danhsách các thảo luận của người dùng, tuy nhiên hòm thư điện tử sẽ tự động gửinhững phản hồi tới những người đang tham gia cuộc thảo luận Trong khi đó,
Trang 13một forum yêu cầu người dùng phải truy cập vào trang forum để đọc toàn bộthread và các phản hồi của bài viết Do đó người dùng có thể bỏ lỡ những phảnhồi của những thread mà họ quan tâm
- So với wiki: cả hai đều là những nguồn thông tin quan trọng trên internet.Tuy nhiên wiki cho phép người dùng có thể sửa nội dung (kể cả nội dung củangười khác viết) Trong khi đó những thao tác trên nội dung của forum đượcgiới hạn bởi người quản lý trang web và người đăng nội dung đó
- So với các phòng chat và trao đổi tin nhắn: cả hai đều là cuộc thảo luậncủa hai hay nhiều người về một chủ đề nào đó Tuy nhiên, forum khác phòngchat ở chỗ những người dùng không phải online đồng thời cùng lúc để gửi vànhận phản hồi, những phản hồi đã được đăng lên forum có thể được đọc bởi tất
cả mọi người dùng kể cả khi cuộc thảo luận đã kết thúc
Một forum được cấu tạo nên từ nhiều thành phần khác nhau như: ngườidùng, bài viết và bình luận Phần tiếp theo sẽ trình bày về các thành phần này vàmối quan hệ giữa chúng
1.1.2 Một số thành phần cơ bản của forum
1.1.2.1 Người dùng
Đối tượng người dùng chính là đối tượng cần xem xét để có thể đưa ra tư vấncho họ Người dùng sẽ có một số thông tin có ích như sau:
Tên Người dùng: Thành phần này giúp ta phân biệt các người dùng với
nhau Đây là phần tử định danh cho mỗi một người dùng
Số bài viết của người dùng: Thành phần này rất có ích để đánh giá độ tin
cậy của một bài báo Nếu người dùng đăng nhiều bài cũng có thể là anh ta cókinh nghiệm và do đó mức độ hấp dẫn của bài báo cáo hơn
Bài viết cuối cùng(PostID): thành phần này chứa ID của bài viết cuối cùng
mà người dùng viết Sở thích của mỗi người thay đổi theo thời gian, do đó bàiviết cuối cùng này có thể rất có ích khi xác định sở thích của người dùng
Số lượng bình luận của người dùng: Thành phần này sẽ đánh giá độ tích
cực hoạt động của người dùng, một người dùng có nhiều bình luận và bài viết có
vẻ như là sẽ có độ tin cậy cao hơn
1.1.2.2 Bài viết
Đối tượng bài viết là đối tượng được sử dụng để tư vấn cho người dùng Mộtbài viết sẽ có những đặc điểm chính là:
Trang 14Tiêu đề của bài viết: Đây là thành phần đầu tiên mà mỗi người dùng sẽ nhìn
thấy của bài viết Nó nằm ở ngay trang danh sách các bài viết của forum Nhiềungười dùng sẽ có thể bị hấp dẫn khi đọc những tiêu đề này và vào đọc bài báođó
Số lượng bình luận: Đây cũng là một thành phần nằm ở ngay trang danh
sách các bài báo Nó cho thấy số lượng người đã bình luận cho bài báo này Đây
là một tiêu chí đánh giá sự phổ biến của bài báo Một bài báo mà có nhiều bìnhluận chứng tỏ nó hấp dẫn và thu hút sự trao đổi của nhiều người
Số lượng người xem: Gần giống như thuộc tính “số lượng bình luận”, thuộc
tính này cũng cho biết sự phổ biến của bài viết Bài viết càng có nhiều ngườixem càng dễ được người dùng đọc
Ngày đăng bài: Thuộc tính này rất quan trọng trong việc đánh giá tình thời
sự của bài viết Một bài viết chỉ có tính thời sự trong vòng vài ngày kể từ khi nóviết, rất ít bài viết có tính nóng hổi sau vài ngày được đăng
Nội dung bài viết: Đây là thuộc tính quan trọng nhất của một bài viết Nó
xác định chủ đề của bài viết, từ đó sẽ được đem so sánh với sở thích của ngườidùng rồi từ đó các bài viết sẽ được sắp xếp theo mức độ tương đồng với sở thíchcủa người dùng
Nội dung bài viết còn được sử dụng để tìm ra sở thích của người viết nó Từ
đó xây dựng được tập sở thích của người dùng
Tên người dùng: Thành phần này của bài báo xác định ngược lại xem bài
viết đó viết bởi ai, điều này làm cho việc di chuyển trong hệ thống linh hoạt hơn
1.1.2.3 Bình luận
Đối tượng bài viết là đối tượng được sử dụng để tư vấn cho người dùng Mộtbình luận sẽ có những đặc điểm chính là:
Ngày đăng bình luận: Thuộc tính này đánh giá sự hấp dẫn của bài viết Một
bài viết mà sau vài ngày vẫn có bình luận thì chứng tỏ bài viết đó còn rất hấpdẫn
Nội dung bình luận: Đây là thuộc tính quan trọng nhất của một bình luận.
Nó có thể dùng để xác định quan điểm cũng như sở thích của người dùng
Tên người dùng: thành phần này cũng tương tự như thành phần tên người
dùng của bài viết, nó giúp chúng ta dễ dàng tìm kiếm người dùng viết bình luậnnày khi cần
Trang 15PostID: thành phần này chỉ rõ bình luận này thuộc bài viết nào.
1.1.3 Mối quan hệ giữa các thành phần trong forum
1.1.3.1 Người dùng – người dùng (user – user)
Mối quan hệ này cho biết những người dùng nào có cùng chung sở thích hay
có cùng quan điểm về tất cả các vấn đề hoặc một số vấn đề Từ đó hệ thống sẽxếp hạng các bài viết dựa trên sự tương đồng này
Ví dụ: Một người dùng U sẽ thích đọc một bài viết của người dùng A hơnmột bài viết của người dùng B hơn vì lý do người dùng A và người dùng U cócùng chung quan điểm sở thích về thể thao, trong khi đó người dùng B có sởthích về chính trị Do dó bài viết của người dùng A có tỷ lệ là về thể thao caohơn B và từ đó người dùng U sẽ đọc bài viết của người dùng A trước
1.1.3.2 Người dùng – bài viết (user – post)
Mối quan hệ này là một mối quan hệ 1 – n Trong đó một người dùng có thểviết nhiều bài viết Mỗi một bài viết lại thể hiện quan điểm và sở thích của ngườidùng trong đó Hệ thống sẽ sử dụng các bài viết của người dùng để đánh giáđược sở thích của người dùng, rồi từ đó sử dụng sở thích đó để so sánh với nộidung các bài báo được đem ra tư vấn
1.1.3.3 Người dùng – bình luận (user – comment)
Đây cũng là một mối quan hệ 1 – n Cũng gần tương tự như mối quan hệUser-Post, mối quan hệ này cũng được dùng để xác định được quan điểm và sởthích của một người dùng Mối quan hệ này có thể dùng để xác định sự tươngđồng sở thích giữa người dùng với người dùng
1.1.3.4 Bài viết – bình luận (post – comment)
Mối quan hệ này cho biết các bình luận và bài viết nào sẽ có chung một chủ
đề Điều này được dùng để đánh giá được mức độ tương đồng về sở thích hoặcquan điểm của người đăng bài viết và người viết bình luận với nhau
1.2 Hệ thống tư vấn bài viết trên forum
Trang 16người dùng tìm ra những phần tử mới mà người dùng không phải tự tìm bằngtay Đã có nhiều hệ thống tư vấn ra đời để ứng dụng cho nhiều loại hình websitekhác nhau như: h ệ t ư v ấ n URL cho ng ư ờ i d ù ng tweeter[1 ], hệ tư vấn bản tin chongười dùng Google Reader…
Hệ tư vấn có thể tạo ra danh sách tư vấn bằng một trong hai cách: sử dụng bộlọc cộng tác (Collaborative Filtering) hoặc sử dụng bộ lọc dựa trên nội dung(Conten-Based Filtering) Phương pháp lọc cộng tác xây dựng nên mô hình tưvấn dựa trên những hoạt động trước đây của người dùng (những phần tử trướcđây được lựa chọn hay được người dùng đánh giá điểm cho phần tử đó) cũngnhư là những quyết định tương tự với người dùng này nhưng được thực hiện bởinhững người dùng khác Phương pháp lọc theo nội dung sử dụng một tập cácbiểu diễn rời rạc của những đối tượng để đưa ra tư vấn cho những phần tử cócùng tính chất với các phần tử trên
Đây là hai phương pháp thường sử dụng trong các hệ tư vấn Ngoài ra một hệ
tư vấn có thể sử dụng phương pháp kết hợp hai bộ lọc này lại để đưa ra tư vấn(Hybrid Recommender System) Mỗi một phương pháp có một ưu điểm vànhược điểm của mình Phần tiếp theo sẽ trình bày cụ thể về mỗi một phươngpháp này để chỉ ra những ưu, nhược điểm của chúng
1.2.2 Một số phương pháp tư vấn thông dụng
a Phương pháp tư vấn bằng lọc cộng tác(Collaborative Filtering – CF)
Phương pháp lọc cộng tác là một phương pháp thiết kế hệ tư vấn được sửdụng rộng rãi Phương pháp này hoạt động dựa trên việc thu thập và phân tíchlượng lớn những thông tin có liên quan đến những hoạt động, mối quan tâm,hành vi của người dùng; từ đó sẽ dự đoán thứ mà người dùng thích Có thể nóimột hệ thống tư vấn dựa trên lọc cộng tác thực hiện tư vấn dựa trên sự tươngđồng về sở thích Ví dụ như những người dùng cùng đánh giá về một sản phẩmnào đó có nghĩa là họ có tương đồng về sở thích
Hơn thế nữa phương pháp lọc công tác không dựa trên nội dung của thông tinnên nó là một hệ có phạm vi tự do Do đó phương pháp này có thể cho những tưvấn có độ chính xác cao đối với những đối tượng phức tạp, những đối tượng yêucầu hiểu rõ bản chất của những đối tượng đó Có thể nói phương pháp lọc cộngtác dựa trên tiểu sử của người dùng để tư vấn
Mặc dù có nhiều ưu điểm nhưng phương pháp lọc cộng tác cũng gặp phảimột số vấnđề trong qua trình vận hành đó là:
Trang 17+ Vấn đề cold-start: là vấn đề mà hệ thống không thể đưa ra được dự đoáncho một người dùng mới hoặc một đối tượng mới Nguyên nhân của việc này là
do hệ thống yêu cầu một lượng thông tin lớn của người dùng cũng như đốitượng được tư vấn để đưa ra tư vấn chính xác
+ Vấn đề thừa dữ liệu: là một vấn đề khi mà có qua nhiều đối tượng để tưvấn nhưng người dùng chỉ đánh giá cho một số ít các sản phẩm trong tập các đốitượng kia
+ Vấn đề mở rộng: vấn để xảy ra trong một số môi trường mà số lượng ngườidùng và đối tượng quá lớn, do đó cần tốn một lượng lớn công sức để tính toán
sẽ tư vấn những đối tượng có những điểm tương tự với những đối tượng màngười dùng đã thích trước đó hay đang thử nghiệm hiện tại Hay nói cách khác,các đối tượng tiềm năng sẽ được so sánh với các đối tượng đã được đánh giátrước đó bởi người dùng, sau đó đối tượng có đặc điểm trùng khớp nhất sẽ được
tư vấn cho người dùng Phương pháp này bắt nguồn từ những nghiên cứu về thuthập thông tin (information retrieval) và lọc thông tin (information filtering)
Cụ thể, hệ thống sẽ sử dụng một số thuật toán để biểu diễn mỗi một đốitượng thành một vector có trọng số từ thông tin của đối tượng đó (thông tin baogồm những thuộc tính, đặc điểm của đối tượng) Sau đó, hệ thống sẽ tạo cho mỗimột người dùng trong hệ thống một vector theo nội dung, vector này có thểđược xem như là thông tin của người dùng về khía cạnh nội dung các phần tử
Để có thể tính toán được vector nội dung của người dùng từ các vector đặc trưngcủa các đối tượng có thể sử dụng nhiều thuật toán khác nhau như: bộ phân loạiBayesian, cây quyết định, mạng nơron nhân tạo Tuy nhiên cách đơn giản nhất
để tính toán các trọng số này là lấy trung bình các giá trị tương ứng trong cácvector đặc trưng của các đối tượng được đánh giá
Vấn đề của phương pháp này là liệu hệ thống có thể học được mối quan tâmcủa người dùng từ những hành động của người dùng có liên quan đến một kiểunội dung nào đó và sử dụng những thông tin đó cho những kiểu nội dung khác.Nếu hệ thống chỉ có thể tư vấn những nội dung có cùng kiểu với những nội dung
Trang 18mà người dùng đã từng sử dụng thì những kết quả của hệ thống này là kém hiệuquả hơn so với việc hệ thống tư vấn được cả những kiểu thông tin khác Ví dụ:một hệ thống mà có người dùng đã bình luận những bài báo khoa học trên cáctrình duyệt mà nó có thể tư vấn cho người dùng đó những đối tượng khác nhưcác video, các thảo luận từ những nguồn khác thì hệ thống này sẽ hưu ích hơn làchỉ có thể tư vấn các bài báo khoa học khác
c Phương pháp tư vấn kết hợp(Hybrid Method)
Hai phương pháp dùng cho hệ tư vấn đã trình bày ở trên đều có những nhượcđiểm riêng của nó Để hạn chế những nhược điểm này, hệ tư vấn kết hợp haiphương pháp này và một số phương pháp khác nữa đã được ra đời Một hệ tưvấn như vậy được gọi là một hệ tư vấn kết hợp hay hệ tư vấn lai (HybirdSystem)
Việc kết hợp hai phương pháp lọc theo nội dung và lọc cộng tác trong nhiềutrường hợp sẽ hiệu quả hơn và có độ chính xác cao hơn Để có thể kết hợp haiphương pháp này có thể sử dụng một số biện pháp như: dự đoán bằng haiphương pháp một cách riêng rẽ trước sao đó kết hợp chúng lại; thêm một số tínhnăng lọc công tác vào lọc theo nội dung hoặc ngược lại; Phương pháp kết hợpnày cũng có thể giải quyết được một số vấn đề thường xảy ra với hai phươngpháp lọc theo nội dung và lọc cộng tác, đó là những vấn đề về việc thưa thớt dữliệu, vấn đề cold-start
Phương pháp kết hợp này không chỉ là sự kết hợp của hai phương pháp lọccộng tác và lọc theo nội dung mà còn là sự kết hợp của nhiều phương pháp tưvấn khác như: tư vấn dựa trên tri thức, demographic Mỗi một phương pháp tưvấn lại có một nhược điểm riêng và phương pháp kết hợp sẽ gộp chúng lại để cóthể hạn chế những nhược điểm riêng của từng phương pháp Sau đây là một sốphương pháp lai các phương pháp đó lại với nhau:
Tính trọng số: dự đoán của mỗi phương pháp sẽ được biểu diễn dướidạng số và sau đó sẽ được kết hợp lại với nhau
Lựa chọn: với mỗi trường hợp cụ thể hệ thống sẽ chọn ra một phươngpháp tư vấn phù hợp trong số các phương pháp tư vấn trên
Trộn lẫn: kết quả tư vấn của các phương pháp sẽ được trộn với nhau vàđưa ra cùng lúc
Trang 19Sau khi đã giới thiệu ba phương pháp có thể sử dụng cho một hệ thống tưvấn, ở phần tiếp theo đây và những chương còn lại của đồ án, em sẽ trình bày sựlựa chọn phương pháp tư vấn cho hệ tư vấn bài viết trên forum và những nộidung liên quan đến phương pháp tư vấn này.
1.2.3 Phương pháp tư vấn bài viết dựa trên nội dung
Một hệ tư vấn bài viết cho người dùng trên forum sẽ cung cấp cho mỗi ngườidùng một danh sách các bài viết theo thứ tự nhất định mà người dùng có thểbình luận vào những bài viết này Đồ án này chọn forum là đối tượng để tư vấn
vì mặc dù có thời gian tồn tại khá lâu đời những vai trò của forum trong hệthống các website vẫn rất quan trọng Đây là một nguồn thông tin hữu ích đểkhai phá, tìm kiếm thông tin về mọi lĩnh vực Ở Việt Nam, số lượng các forum
vô cùng lớn, mỗi một forum lại có số lượng người dùng khá lớn; điều này chứng
tỏ vai trò quan trọng của forum Bên cạnh đó, một số các ứng dụng trên hệ thốngweb 2.0 hiện nay như blogs, mạng xã hội, ứng dụng chia sẻ video,…vẫn kế thừamột số đặc điểm của forum Do đó những kinh nghiệm được tạo ra khi xây dựngphương pháp tư vấn cho forum có thể được ứng dụng cho các phương pháp tưvấn cho các loại hình trang web khác có liên quan
Một hệ thống tư vấn cho người dùng trên một forum thì sẽ có hai loại đốitượng thể tư vấn cho người dùng Loại tư vấn thứ nhất là tư vấn những bình luậnhay mà người dùng có thể cảm thấy thích thú và thể hiện quan điểm bằng cáchành động như cảm ơn, trích dẫn để bình luận lại , đối tượng tư vấn của loại tưvấn này là những bình luận trong các bài viết Loại tư vấn thứ hai là tư vấnnhững bài viết mới mà người dùng có thể thích để xem và bình luận vào bài viết
đó, đối tượng của loại hình tư vấn này là những bài viết được đăng bới nhữngngười dùng khác Có thể nói đây là hai hành dộng chính của mỗi người dùng mà
có thể tư vấn được
Với nội dung của đồ án này là xây dựng một hệ thống tư vấn bài viết chongười dùng, tức là thực hiện loại hình tư vấn thứ hai – tư vấn những bài viết mớingười dùng có thể thích để xem và bình luận vào bài viết đó Vì đối tượng tưvấn của loại hình tư vấn này là những bài viết có nội dung cụ thể rõ ràng nên em
sẽ lựa chọn phương pháp lọc theo nội dung Hệ thống sẽ sử dụng nội dung củanhững bài viết đã được người dùng bình luận trước đó để xây dựng nên nhữngvector đặc trưng cho mỗi bài viết đó và xây dựng nên vector biểu diễn mối quantâm của người dùng Sau đó với những bài viết mới hệ thống cũng sẽ biểu diễnnhững bài viết đó thành một vector đặc trưng và đem so sánh với vector của
Trang 20người dùng để đưa ra được bài viết có độ tương đồng cao nhất với sở thích củangười dùng.
Để có thể xây dựng nên một hệ thống như vậy, cần phải sử dụng phươngpháp mô hình không gian vector (Vector Space Model – VSM) để biến đổi nộidung những bài viết từ dạng ký tự sang dạng vector nhiều chiều có trọng số.Trong đó, hai phương pháp: mô hình LDA và TF-IDF được dùng để trực tiếpthực hiện việc biến đổi trên Sau đó, phương pháp Cosine Similarity sẽ đượcdùng để so sánh sự tương đồng giữa vector đặc trưng của bài viết và vector biểudiễn mối quan tâm của người dùng Tất cả những nội dung này sẽ được trình bàytrong chương tiếp theo của đồ án
CHƯƠNG 2: PHƯƠNG PHÁP TƯ VẤN DỰA TRÊN NỘI DUNG
Nội dung của chương này là đi tìm hiểu cách một hệ thống tư vấn đưa ra tưvấn bằng phương pháp lọc dựa theo nội dung Hay nói cách khác là tìm hiểuxem tại sao từ nội dung các văn bản mà hệ thống có thể suy đoán ra sở thích củangười dùng để tư vấn Bố cục của phần này gồm bốn mảng lớn là:
Nguyên tắc chung của một hệ thống tư vấn theo nội dung
Phương pháp biểu diễn nội dung văn bản sang dạng không gian vector
Phương pháp so sánh các vector đặc trưng để đưa ra tư vấn
Cách sử dụng phương pháp biểu diễn văn bản dưới dạng không gianvector để tư vấn bài viết dựa trên nội dung
2.1 Nguyên tắc chung
Để có thể tư vấn một bài viết dựa trên nội dung, cần phải xác định xem hệthống sẽ tư vấn cho ai? Từng người trong số có những sở thích (hay mối quantâm) đến những chủ đề nào? Những chủ đề đó đã nằm trong những bài viết nào?Một bài viết mới có nói về chủ đề mà người dùng cụ thể nào đó ưa thích không?
Để làm được điều này, cần phải giải quyết hai vấn đề đó là: hiểu được bài toánđặt ra và đưa ra được phương pháp giải quyết cho bài toán đó
Trang 212.1.1 Bài toán tư vấn bài viết dựa trên nội dung
Bài toán tư vấn bài viết dựa trên có thể được phát biểu như sau: Mỗi mộtforum là một cộng đồng trên mạng, nó là một tập hợp của ba phần tử chính là:người dùng, bài viết và bài bình luận Trong đó:
+ Tập các bài viết là một đối tượng có dạng như một văn bản dạng ký tự vànói về một số chủ đề nhất định, chúng được chia vào các box hoặc các subforumkhác nhau của forum Đặc điểm của những box này là nó chứa những bài viết cóchủ đề tương tự nhau
+ Mỗi một bài viết lại có những bình luận được viết bởi nhiều người dùngkhác nhau trên forum, những bình luận này thể hiện quan điểm của người dùngnày với bài viết được đăng hoặc với người đăng bài viết
+ Tập người sử dụng, những người dùng có thể thực hiện một số hành độngnhư: đăng bài viết, xem bài viết của những người dùng khác, bình luận vào bàiviết của chính họ hoặc của người khác
Nhiệm vụ của hệ tư vấn bài viết theo nội dung là từ những thông tin trên pháthiện ra được mối quan tâm của mỗi người dùng Từ đó, với mỗi người dùng, khi
có một tập các bài viết mới hệ thống sẽ đưa ra được những bài viết mà ngườidùng có thể sẽ quan tâm
2.1.2 Hướng giải quyết
Mỗi một người dùng có thể vào một hay nhiều box khác nhau của forum,nhưng thông thường họ chỉ vào một vài box để đọc những bài viết trong box đó
Để thể hiện quan điểm (đồng ý hay phản đối) với một bài viết, một người dùng
có thể bình luận vào bài viết đó, nên mỗi người dùng sẽ có một tập các bài viết
mà họ đã thể hiện sự quan tâm (đọc, bình luận, đăng bài viết) của mình
Mặt khác mỗi người dùng lại chỉ quan tâm tới một số chủ đề nhất định Do
đó, để giải quyết bài toán tư vấn bài viết theo nội dung này, cần phải đi xác địnhđược những chủ đề mà người dùng quan tâm từ những bài viết mà họ đã đọc, đãđăng hoặc đã bình luận Tuy nhiên vì việc quan sát việc người dùng có vào xembài viết hay không là khá khó khăn, và thậm chí là không thể đối với một sốforum, do vậy việc xác định chủ đề người dùng quan tâm chỉ dựa vào hai thôngtin là bài viết người dùng đăng và bài viết mà người dùng bình luận
Để có thể suy ra mối quan tâm của người dùng dựa trên các bài viết, em sẽ đixây dựng các vector biểu diễn nội dung của các bài viết (hay gọi tắt là vector đặctrưng) bằng cách sử dụng phương pháp mô hình không gian vector (Vector
Trang 22Space Model - VSM) Những vector đặc trưng này là những vector k chiều cótrọng số, số chiều của vector là số đặc trưng của mọt bài viết được xác định tùytheo phương pháp biểu diễn.
Sau khi đã có những vector đặc trưng của các bài viết, với mỗi người dùng
em sẽ đi xây dựng một vector biểu diễn sự quan tâm của người dùng bằng cáchlấy trung bình các vector đặc trưng của những bài viết mà người dùng đã thểhiện sự quan tâm
Cuối cùng để có thể tư vấn cho người dùng những bài viết mà họ nên đọc từmột tập bài viết mới, em sẽ so sánh độ tương đồng của vector biểu diễn mốiquan tâm của người dùng với vector đặc trưng của từng bài viết mới, và sắp xếp
độ tương đồng đó theo chiều giảm dần để đưa ra tư vấn cho người dùng Để sosánh độ tương đồng giữa hai vector có thể sử dụng một số biện pháp so sánhthông dụng như: cosine similarity, rocchio classfier, SVM, …
Tóm lại, các bước làm cụ thể của phương pháp tư vấn theo nội dung là:
Bước 1: Biểu diễn nội dung tất cả các bài viết thành dạng vector đặc trưng Bước 2: Xây dựng vector biểu thị mối quan tâm của người dùng từ tập bài
viết mà người dùng đã bình luận hoặc đã đăng
Bước 3: Tính độ tương đồng giữa vector đặc trưng của những văn bản mới
với vector biểu diễn mối quan tâm của người dùng
Bước 4: Sắp xếp độ tương đồng theo thứ tự giảm dần để đưa ra tư vấn.
Nội dung những phần còn lại của chương sẽ trình bày kỹ hơn về những kỹthuật biểu diễn nội dung văn bản thành vector, những phương pháp so sánh độtương đồng giữa hai vector, và cách kết hợp các phương pháp này lại để xâydựng hệ thống tư vấn bài viết theo nội dung
2.2 Phương pháp biểu diễn văn bản thành dạng vector (Vector Space Model
Trang 23trong việc lọc thông tin (information filtering), thu thập thông tin (informationretrieval), lập chỉ mục (indexing) và xếp hạng mức độ liên quan (relevanceraking).
w i , j: là giá trị chiều i của văn bản d j theo VSM
q : là vector biểu diễn câu truy vấnbằng các thuật ngữ(term) trong tập T.
w i ,q : là giá trị chiều i của câu truy vấn q theo VSM.
Mỗi một chiều trong các vector biểu diễn này tương ứng với một thuật ngữ
riêng biệt trong tập T Nếu thuật ngữ t i xuất hiện trong văn bản d j thì giá trị w i , j
trong vector d j sẽ là một số khác 0, ngược lại thì w i , j=0 Giá trị w i , j còn được gọi
là trọng số (weight) Có một số cách khác nhau để tính toán giá trị của trọng sốnày đã được phát triển Một trong những cách tính được biết đến nhiều nhất đó
là cách tính trọng số TF-IDF
Việc xác định các thuật ngữ(term) trong tập T là không cố định, và nó thường
tùy vào những ứng dụng khác nhau Với các văn bản dạng ký tự, cách lựa chọnthuật ngữ điển hình là chọn lựa các từ đơn, các từ khóa hay các cụm từ dài hơn
để làm một thuật ngữ Nếu các thuật ngữ được lựa chọn xong thì số chiều củacác vector sẽ là số lượng từ trong bộ từ vựng (là số các từ khác nhau xuất hiện
trong tập các văn bản D).
Sau khi xây dựng xong tập các vector biểu diễn các văn bản, và vector biểudiễn câu truy vấn thì ta có thể sử dụng các phép toán trên vector để so sánh giữacác văn bản và câu truy vấn
Trang 242.2.3 Một ứng dụng quan trọng của VSM - Xếp hạng mức độ liên quan (Relevance Ranking)
Bài toán xếp hạng mức độ liên quan giữa các văn bản với một truy vấn cụ thể
có thể được xử lý bằng cách sử dụng các giả thiết của lý thuyết độ tương đồnggiữa các văn bản Theo đó, sự tương đồng về ngữ nghĩa giữa hai văn bản đượctính bằng khoảng cách giữa hai văn bản Khoảng cách giữa 2 văn bản này là dựatrên ngữ nghĩa chứ không phải dựa trên cú pháp
Bài toán này sẽ sử dụng độ lớn của các góc giữa mỗi vector văn bản vớivector truy vấn để so sánh mức độ tương đồng Vector truy vấn này được xâydựng cúng công thức với công thức xây dựng nên các vector văn bản nhầm tạo
ra sự tương đồng giữa hai vector
Hình 2.1: Độ lớn của vector văn bản với vector truy vấn.
Trong thực tế việc tính toán chính xác góc giữa 2 vector thường khó hơn làtính ra cosine giữa 2 vector đó Do vậy ta sẽ sử dụng cosine để so sánh độ tươngđồng giữa 2 vector
¿ ∨d2∨ ¿là độ dài của vector văn bản d2, hay là lực lượng của d2.
¿ ∨q∨¿là độ dài của vector văn bản q, hay là lực lượng của q.
Độ dài của vector ⃗v có n chiều được tính theo công thức:
Trang 25Ngoài cách sử dụng cosine để tính độ tương đồng giữa 2 vector như trên, cóthể sử dụng nhiều phương pháp khác để đo mức độ tương đồng này Cácphương pháp này sẽ được trình bày cụ thể ở phần 2.4.
2.2.4 TF-IDF
TF-IDF, Term Frequently – Inverse Document Frequently, là một thống kê
số học phản ánh tầm quan trong của một từ(word) với một văn bản (document)trong tập các văn bản(corpus) Nó thường được dùng để làm trọng số trong việc
thu thập thông tin và khai phá văn bản Trị số TF-IDF tăng tỉ lệ thuận với số lần
xuất hiện của từ đó trong văn bản, tuy nhiên nó bị bù trừ bởi tần suất của nótrong tập tất cả các văn bản(corpus) Việc bù trừ này loại bỏ nhưng trường hợp
mà một từ là từ phổ biến nhưng lại vô nghĩa như các từ the, a, an trong các vănbản tiếng anh (người ta gọi những từ này là “stopword”)
TF-IDF là sự kết hợp của hai thống kê cục bộ - tổng quát là: tần suất của từ
(term frequently – cục bộ) và tần suất nghịch đảo văn bản (inverse document
frequently – tổng quát) Có rất nhiều cách để tính các gái trị cụ thể của hai
thống kê này, sau đây em sẽ trình bày những công thức cơ bản, đơn giản và dễtriển khai nhất của hai thống kê này Trong những phần tiếp theo đây của đồ án
em cũng sử dụng những công thức này để tính các giá trị TF-IDF.
Term frequently – tf t , d: để tính các giá trị cụ thể của thống kê này, đơn giảnnhất là sử dụng số lần xuất hiện của thuật ngữ (term) trong văn bản(document)
Có thể gọi đây là chỉ số cục bộ vì nó chỉ nằm trong nội bộ các văn bản
Inverse Document Frequently - idf t: sử dụng công thức sau để tính giá trịcho thống kê này
Trang 26idf t=log |D|
|{d ∈ D|t ∈d}|
Trong đó:
|D|: là lực lượng của tập các văn bản D, hay chính là tổng số văn bản có
trong tập các văn bản(corpus)
|{d ∈ D|t ∈d}| : là số các văn bản trong tập các văn bản D có chứa thuật
ngữ t Nếu t không có mặt trong Dthì sẽ dẫn tới trường hợp đa thức vô nghĩa.
Do đó thông thường người ta thường sử dụng công thức 1 + |{d ∈ D|t ∈d}| thaythế
Từ hai thống kê số học trên, thống kê TF-IDF được xây dựng lại dựa trên
công thức:
w t , d=tf t ,d ×idf t
2.2.5 Ưu điểm và nhược điểm của VSM
Ưu điểm:
Nó là một mô hình đơn giản dựa trên đại số tuyến tính
Các trọng số của thuật ngữ không phải ở dạng nhị phân
Cho phép tính toán một mức độ liên tục của sự tương đồng giữa cáctruy vấn và các văn bản
Cho phép xếp hạng các văn bản theo độ tương quan có thể có của nó
Cho phép so sánh từng phần
Nhược điểm:
Những tài liệu dài thường có biểu diễn kém
Từ khóa tìm kiếm phải trùng khớp một cách chính xác với các thuậtngữ trong văn bản, các xâu con có thể dẫn đến việc “trùng khớp dươngtính giả”
Ngữ nghĩa không rõ ràng: các văn bản với cùng ngữ cảnh nhưng vớinhững bộ từ vựng khác nhau sẽ không có quan hệ, việc này gây ratrường hợp “trùng khớp âm tính giả”
Thứ tự các thuật ngữ xuất hiện trong các văn bản sẽ bị mất khi biểudiễn bằng vetor không gian
Giá sử một cách lý thuyết rằng các thuật ngữ là độc lập xác suất
Trang 27 Trọng số chỉ là trực giác mà không phải là chuẩn.
Sau khi đã tìm hiểu đầy đủ về mô hình không gian vector, hệ thống tư vấn đãgần hoàn chỉnh Tuy nhiên, có một vấn đề quan trọng ở đây là làm thế nào đểchuyển hóa nội dung văn bản thành một vector hữu hạn các đặc điểm Có rấtnhiều giải pháp cho vấn đề này, có thể là: TF-IDF như đã mô tả ở trên, cũng cóthể là LSA hay pLSA Nhưng giải pháp được đánh giá là cho kết quả tốt nhất lại
là mô hình Latent Dirichlet Allocation – LDA Do đó phần tiếp theo đây sẽ mô
tả kỹ hơn về mô hình này
2.3 Mô hình Latent Dirichlet Allocation (LDA)
LatentDiric h letAllocation[ 2 ] [ 3 ] [ 4 ] là một trong những mô hình phát hiện topic ẩnthành công nhất hiện nay được phát triển bởi David Blei, Andrew Ng vàMlchael Jordan Để mô hình hóa cách một tập các văn bản được sinh ra, giả sửcác văn bản được biểu diễn như một tập hợp của các chủ đề, ví dụ một bài viết
về chủ đề buôn bán kính hiển vi điện tử sẽ bao gồm hai chủ đề là : khoa học vàkinh doanh; trong khi đó các chủ đề sẽ được xem như là tập hợp của các từ, ví
dụ chủ đề “khoa học máy tính” thì các từ hdd, hệ điều hành, vi xử lý sẽ có tần suất xuất hiện cao, còn các từ siêu thị, nhà hàng, tàu hỏa sẽ có tần suất thấp.
LDA là một mô hình tự sinh xác suất cho các bộ dữ liệu rời rạc như bộ vănbản ký tự Bản chất của LDA là một mô hình Bayesian phân cấp với 3 mức,trong đó mỗi một phần tử của bộ dữ liệu là một tập hợp hữu hạn của một tập cácchủ đề nằm ẩn bên trong nội dung nhìn thấy được của thành phần đó Trong khi
đó, mỗi một topic lần lượt được mô tả như là một tập hợp vô hạn trong một tậpcác xác suất chủ đề tiềm ẩn Trong phạm vi của việc mô hình hóa dữ liệu dạng
ký tự, xác suất chủ đề cung cấp một biểu diễn cụ thể của một văn bản dạng text
Trang 28Hình 2.2: Ví dụ về LDA Các chủ đề là các “bag-of-word” và các mũi tên
biểu diễn xác suất của từng chủ đề trong văn bản.
Cách mô hình LDA hoạt động như sau: ban đầu coi tất cả văn bản trong bộvăn bản là rỗng, chưa có từ nào Giả sử các văn bản đó là tập hợp của những chủ
đề nào Với mỗi một văn bản, chọn một chủ đề trong tập các chủ đề của văn bản
đó, sau đó chọn một từ trong tập các từ của chủ đề được chọn, thực hiện hànhđộng này cho đến khi phân phối xác xuất chủ đề đã đủ Thực hiện chuỗi hànhđộng trên với tất cả các văn bản trong bộ văn bản
Tuy nhiên trong thực tế thì những thông tin biết được là ngược lại Tức là,với một tập các văn bản, các văn bản này đã biết hết các từ có trong văn bảnnày Việc phải làm bây giờ là phải ước lượng ngược lại tập các chủ đề có trongtoàn bộ tập văn bản, tập hợp các từ của từng chủ đề, xác suất của từng từ trongchủ đề đó, và cuối cùng là phân phối xác suất chủ đểcó trong từng văn bản
2.3.1 Sự phát triển của LDA
Mục đích chính của việc phát triển mô hình LDA là xây dựng nên mộtframework mô hình hóa phù hợp cho các dữ liệu rời rạc Bên cạnh đó mục đích
cơ bản của việc thu thập thông tin là tìm cách biểu diễn trong không gian nhỏ
mà hỗ trợ các hoạt động hiệu quả như tóm tắt, phân loại, phân cụm văn bản ,nhưng vẫn giữ được các mối quan hệ thống kê bên trong văn bản, cũng như liênkết với các văn bản khác nhiều nhất có thể
Sau đây là 3 cách tiếp cận có hiệu quả nhất trong lĩnh vực này:
Giản đồ TF-IDF biến mỗi văn bản thành một vector gồm một tập các số
thực Các trọng số trong vector biểu diễn sự đóng góp vào nội dung của tài liệu
Trang 29Các biểu diễn này đã được chứng minh là chỉ giữ lại ít những cấu trúc liên kếtthống kê trong và ngoài văn bản, và mục đích thu gọn chiều dài văn bản chỉ chohiệu quả ở mức trung bình.
Latent Semantic Analysis - LSA[ 3 ] [4 ]đạt được hiệu quả nén đáng kể Trong
LSA mỗi văn bản được biểu diễn bằng một vector k chiều, với k là một số nhỏ
hơn rất nhiều so với kích thước của văn bản Những đặc điểm trong vector này
có thể giải thích được sự đồng nghĩa và đa nghĩa của các nội dung trong vănbản
Probabilistic Latent Semantic Analysis - PLSA[ 3 ] [ 4] gần giống với LSA trong
một số định nghĩa, nhưng nó sử dụng xác suất để biểu diễn các định nghĩa này.Với phương pháp loại này, mỗi văn bản được xem như là một tập hợp của cácchủ đề Tập các chủ đề của mỗi văn bản được tính toán một cách tách biệt,không có công thức chung cho mọi văn bản trong tập Việc xây dựng nên nhữngvector cho mỗi văn bản sử dụng phương pháp cực đại hóa kỳ vọng
Cả LSA và PLSA đều được xây dựng dựa trên giả thiết về một tập các từ
được gọi là “bag of word”, là một tấp tất cả các từ có trong văn bản, và thứ tự các từ trong văn bản sẽ được bỏ qua Theo lý thuyết xác suất, tập bag-of-word
này có tính chất trao đổi được (exchangeability) Tuy nhiên, cả LSA và PLSA
đều chỉ mới ở mức từ (word) Có nhiều ý kiến cho rằng không chỉ các từ(word)
mà cả văn bản(document) cũng có thể có tính chất trao đổi được, và rằng một
mô hình xác suất đúng đắn phải nắm bắt được cả tính chất trao đổi của cả
từ(word) và văn bản(document) LDA là mô hình giải quyết được vấn đề này.
Các phần sau đây sẽ nói về mô hình sinh, việc ước lượng tham số và cách
suy luận của LDA.
2.3.2 Tổng quan về mô hình sinh trong LDA
Với một tập các văn bản (corpus) gồm M văn bản ký hiệu là D = { d1,d2, ,
d M }, trong đó văn bản thứ m trong tập văn bản sẽ có N m từ, các từ trong văn bản
sẽ được lấy từ tập từ vựng của các thuật ngữ(term) { t1,t2, , t V } Mục đích của
LDA là tìm ra cấu trúc ẩn của các chủ đề(topic) hay các lĩnh vực(concept) trong văn bản Các chủ đề và các lĩnh vực này phải nắm bắt được ý nghĩa của văn bản Mặc dù các khái niệm chủ đề ẩn và lĩnh vực ẩn này đã được đề cập đến trong
các phương pháp LSA và PLSA, nhưng LDA sẽ cung cấp cho chúng ta một mô
hình sinh hoàn chỉnh và cho kết quả tốt hơn so với các phương pháp được mô tả
ở trên
Trang 30Quá trình sinh trong LDA được mô tả như sau: LDA sinh ra một luồng các
từ quan sát được w m ,n (là các từ có trong nội dung văn bản), được phân chiathành các văn bản Với mỗi văn bản, một tỷ lệ chủ đề ⃗ϑ m sẽ được đưa ra, và từ
đó, các từ đặc tả chủ đề được tạo ra Nghĩa là, với mỗi từ, một chỉ số chỉ thi chủ
đề z m ,n được lấy mẫu theo các văn bản – tỷ lệ trộn cụ thể, và sau đó phân phốichủ đề tương ứng φ⃗z m ,n được sử dụng để sinh ra các từ Các chủ dề φ⃗k sẽ được lấy
mẫu một lần cho mọi văn bản trong tập văn bản D Mô hình đồ họa, mô hình
sinh hoàn chỉnh và sẽ được biểu diễn lần lượt tại các hình 2.3, 2.4
Hình 2.3: Mô hình đồ họa của LDA
Trong đó, các khối là các “đĩa” biêu diễn các bản sao Đĩa ở ngoài biểu diễncác văn bản, đĩa ở trong biểu diễn việc lựa chọn các lựa chọn lặp lại của các chủ
Trang 32Bảng 2.1 - Một số tham số có liên quan đến mô hình LDA.
K Số nguyên dương Số lượng chủ đề (ví dụ: 100)
V Số nguyên dương Số lượng từ trong tập từ vựng
Trọng số ưu tiên của chủ đề k
trong một văn bản, thông thườngthì giá trị này là chung cho tất cảcác chủ đề, con số này được tínhtheo công thức α=1/ K (K là sốchủ đề)
Con số này thương biểu diễnphân phối sự thưa thớt của cáctopic trong văn bản, tức là chỉ cóvài topic trong một văn bản
⃗
α Vector k chiều của các số
đương
Tập các giá trị α k cúa tất cả cácchủ đề, nó thường được xem như
1 vector đơn
β w=1 …V Số thực dương Trọng số ưu tiên của từ(word)
w trong một chủ đề, thông thường
thì giá trị này là chung cho tất cảcác từ, giá trị hay được sử dụng là0.001
Con số này thương biểu diễn
Trang 33phân phối sự thưa thớt của các từtrong chủ đề, tức là chỉ có vài từtrong một chủ đề.
Phân phối xác suất của các từ
Phân phối xác suất của các chủ
đề nằm trong văn bản d.
z d=1 … M , w=1… N d Số nguyên dương trong
khoảng từ 1 đến K
Định danh chủ đề của từ w trong văn bản d.
⃗Z
Vector N chiều của các
số nguyên dương trongkhoảng từ 1 đến K
Vector N chiều của các
số nguyên dương trongkhoảng từ 1 đến K
Định danh của tất cả các từ w trong tất cả các văn bản d.
Trang 34Việc lấy mẫu có thể được mô tả như sau:
Như mô hình sinh đã trình bày ở mục 2.3.2, xác suất mà một từ(word) w m ,n
biểu thị một thuật ngữ (term) cụ thể được tính bằng công thức:
Trang 35p(W ∨⃗α , ⃗β)=∏
m =1
M
p(⃗d m∨⃗α , ⃗β)
2.3.4 Ước lượng các tham số (Parameter estimate) và suy luận(Inferences)
Việc ước lượng chính xác các tham số cho mô hình LDA thường rất khókhăn Để giải quyết vấn đề này, cách phổ biến nhất là sử dụng một số thuật toánước lượng xấp xỉ như: tối đa hóa kỳ vọng, xác suất hóa kỳ vọng, và
Gibbs sampling[4]
a Gibbs Sampling.
(Markov-Chain Monte Carlo - MCMC), nó bao gồm một số thuật toán đơn giản
có liên quan cho việc suy diễn xấp xỉ cho một mô hình nhiều chiều như LDA.Thông qua trạng thái không đổi của chuỗi Markov, các phương thức MCMC cóthể mô phỏng các phân phối xác suất nhiều chiều p (⃗x ) Nghĩa là một mẫu được
sinh ra cho mỗi một chuyển đổi trong chuỗi sau khi chuỗi đạt đến trạng tháikhông đổi, điều diễn ra sau được gọi là “burn-in-period” mà đã loại bỏ ảnhhưởng của các tham số khởi tạo Trong Gibbs Sampling, các chiều x icủa cácphân phối được lấy mẫu luân phiên trong một thời điểm, với điều kiện dựa vàotất cả các giá trị của các chiều khác Thuật toán lấy mẫu này hoạt động như sau:
1 Chọn chiều i (lấy ngẫu nhiên hoặc lấy các hoán vị)
2 Lấy mẫu x itừ p(x i∨⃗x−i)(⃗x−i là giá trị của các chiều trong vector loại trừgiá trị của chiều x i)
Để xây dựng bộ lấy mẫu Gibbs, xác suất có điều kiện đầy đủ p(x i∨⃗x−i)phảiđược tính toán, công thức tính toán của xác suất này là:
Trang 36Khi thay thế các tích phân thành tổng các biến rời rạc, với một số lượng vừa
đủ các mẫu ⃗z r với r ∈[1 , R], các xác suất hậu nghiệm của các biến ẩn có thể được
với δ (⃗u )={1 n ế u ⃗u=0 ;0 n ế u ng ư ợ c l ạ i}
b Ước lượng tham số
Nội dung của phần này là đi xây dựng một thuật toán để ước lượng cả tham
số của mô hình LDA dựa trên phương pháp Gibbs Sampling Hình 2.5 sẽ biểudiễn psedue code của thuật toán này có sử dụng phương thức phát hiện biến ẩn ởphần trên để xây dựng bộ lấy mẫu Gibbs cho LDA
Hình 2.5: Thuật toán Gibbs Sampling cho LDA.
Các biến ẩn ở đây là z m ,n, cụ thể ở bài toán tư vấn này là các chủ đề mà xuất
hiện kèm theo các từ có trong tập văn bản w m ,n Không cần lấy cả các tập tham
Trang 37số Ф bởi các tham số này chỉ dùng để biểu diễn các liên kết giữa các đối tượng
quan sát được w m ,nvới các biến tẩn tương ứng z m ,n, các biến trạng thái của chuỗi
Nhiệm vụ cụ thể của việc suy luận này là từ một văn bản mới ~m, được biểudiễn bởi một vector các từ ⃗w, chúng ta phải đi ước lượng các xác suất hậunghiệm của các topic ~⃗z cho bởi vector các từ của câu truy vấn ⃗w và mô hìnhLDA đã cho trước L (Θ, Φ ):
dụ đầy màu sắc về các hoạt động của việc lấy mẫu hậu nghiệm Gibbs
Công thức tính phân phối chủ đề cho văn bản mới như sau:
Trang 38Với nội dung của đồ án này, mô hình LDA đóng một vai trò quan trọng trongviệc mô hình hóa các bài viết trong forum từ dạng văn bản thành một vector cácphân phối xác suất của các chủ đề ẩn bên trong bài viết đó Từ những vectorphân phối xác suất này chúng ta sẽ đem so sánh với nhau để thấy được mức độtương đồng về chủ đề của các bài viết, từ đó sẽ đưa ra được những tư vấn cầnthiết Phần tiếp theo chúng ta sẽ đi xem xét một số cách để so sánh các vectornày với nhau.
Support Vector Machine - SVM
Bộ phân loại Bayessian
Mô hình phân loại K-láng giềng gần nhất
Rocchio
Cosine Similarity
2.4.1 Bộ phân loại Rocchio
Rocchio là một thuật toán đơn giản Để phân loại một văn bản vào các nhómvăn bản khác nhau chỉ cần lấy trung bình các vector tf-idf của các văn bản trong
Trang 39mỗi nhĩm, kết quả là sẽ cĩ một “centroid” cho mỗi nhĩm văn bản (cĩ thể hiểumỗi “centroid” ở đây là một vector đặc trưng cho mỗi một nhĩm văn bản) Sau
đĩ so sánh vector của văn bản mới với các giá trị trung bình “centroid” của mỗi
nhĩm, sau đĩ gán văn bản đĩ vào nhĩm mà tương tự với nĩ nhất
Hình 2.6: Mơ hình bộ phân loại Rocchio.
Với bài tốn xếp hạng độ liên quan, cần xây dựng 2 “centroid” cho hai nhĩm
bài viết là: được comment và khơng được comment Sau đĩ so sánh vector của
văn bản mới này với 2 “centroid” để đưa ra tư vấn thích hợp.
2.4.2 Phân loại Bayessian
Phân loại Bayesian là phân loại thống kê Phân loại Bayesian dựa trên định lý
Bayes Một phân loại đơn giản của Bayesisan là Nạve bayes, so với việc thực
thi của phân lớp cây quyết định và mạng nơron, bộ phân loại Bayesian đưa ra độchính xác cao và nhanh hơn khi áp dụng vào các cơ sở dữ liệu lớn
Nạve Bayesian là một bộ phân loại Bayesian với giả định rằng xác suất của
một giá trị thuộc tính trên một lớp là độc lập với xác suất của các thuộc tínhkhác Giả định này gọi là độc lập cĩ điều kiện lớp Do đĩ sẽ đơn giản hĩa cáctính tốn rắc rối