Tải bản đầy đủ (.docx) (76 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Ở CÔNG NGHỆ WEB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.77 MB, 76 trang )

TRƯỜ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


TRƯỜ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Ở
CÔNG NGHỆ WEB

Chuyên ngành

: Công nghệ thông tin

Mã ngành

: D480201
NGƯỜI HƯỚNG DẪN: TS. Hà Mạnh Đào

HÀ NỘI - 2016



LỜ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

3


LỜ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ôi
trườ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à kinh
nghiệ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ạn
bè; 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

4


MỤC LỤC

5


DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt

Từ đầy đủ

CF

Collaborative Filtering

CBF

Content-Based Filtering

CBR

Conten-Based Recommandation

LDA

Latent Dirichlet Allocation


LSA

Latent Semantic Analysis

MAP

Mean Average Precision

pLSA

Probabilistic Latent Semantic Analysis

SVM

Support Vector Machine

TF-IDF
VSM

Term Frequently – Invert Document Frequently
Vector Space Model

6


DANH SÁCH CÁC BẢNG

7



DANH SÁCH CÁC HÌNH VẼ

8


LỜ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ống
các trang web đã trở thành một công cụ hữu hiệu để thu thập thông tin. Có rất
nhiề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át
triể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ông
tin 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ài
viế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ồn
thố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ười
dù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 trang
web. Đã có rất nhiều nghiên cứu được thực hiện để tìm ra phương pháp tư vấn

hiệu quả. Một số phương pháp đã được tìm ra và cho kết quả tốt như: phương
phá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 tri
thứ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ột
nghiê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ông
tin 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ên
forum 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 cho
ngườ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
9


Do đó, nhiệm vụ cụ thể của đồ án sẽ là đi xây dựng một phương pháp tư vấn
bà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ết
quả 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 web
application 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 ra
kế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ội
dung của chương này là đưa ra cái nhìn sơ qua về các thành phần trong một
forum, 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ết
trê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ểu
mộ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ương
phá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ành
hà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.

10


CHƯƠ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ằng
forum 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ột
cuộc thảo luận khác. Một forum có cấu trúc dạng cây. Trong đó, mỗi forum lại
bao 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ười
dù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 đều
yê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ào
thread. Tùy vào mức độ truy nhập của người dùng, một thread được đăng bởi
ngườ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 danh sá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ửi những phản
hồi tới những người đang tham gia cuộc thảo luận. Trong khi đó, mộ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

11


-

-

hồi của bài viết. Do đó người dùng có thể bỏ lỡ những phản hồ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ủa người
khác viết). Trong khi đó những thao tác trên nội dung của forum được giớ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ận của hai
hay nhiều người về một chủ đề nào đó. Tuy nhiên, forum khác phòng chat ở 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ười
dù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ấn
cho 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ài
viế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ột
bài viết sẽ có những đặc điểm chính là:
Tiê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ều
ngườ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
đó.

12



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ình
luậ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ười
xem 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ười
dù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ích
củ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ột
bì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ấp
dẫ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ận
này khi cần.
PostID: 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)

13


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ơn
mộ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 cao
hơ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ười
dù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ội
dung 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ặc
quan đ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
1.2.1 Tổng quan về một hệ tư vấn

Hệ thống tư vấn sẽ đưa ra những dự đoán về đánh giá hay độ quan tâm của
một người dùng cho một sản phẩm nào đó cần đánh giá. Hệ thống tư vấn được
sử dụng phổ biến trong một vài năm gần đây, và nó được ứng dụng cho nhiều
loại ứng dụng khác nhau như tư vấn phim, âm nhạc, tin tức, sách, bài báo nghiên
cứu, … Hệ thống tư vấn có thể thay thế cho các thuật toán tìm kiếm bởi nó giúp
ngườ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ằng
tay. Đã có nhiều hệ thống tư vấn ra đời để ứng dụng cho nhiều loại hình website
khác nhau như: , hệ tư vấn bản tin cho người dùng Google Reader…

14


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ũng
như 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ởi
nhữ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ác
biể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ương
phá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ích
lượ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ói
mộ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ẩm
nà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 tin
nê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êu
cầ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ộng
tá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ải
một số vấnđề trong qua trình vận hành đó là:
+ Vấn đề cold-start: là vấn đề mà hệ thống không thể đưa ra được dự đoán
cho 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ư đối
tượng được tư vấn để đưa ra tư vấn chính xác.

15


+ 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 đối
tượ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ười
dù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
và đưa ra tư vấn.
b. Phương pháp tư vấn bằng lọc theo nội dung(Content-Based Filtering -

CBF)
Phương pháp lọc theo nội dung cũng là một phương pháp đẻ xây dựng nên
một hệ thống tư vấn. Phương pháp này dựa trên thông tin chi tiết và những đặc
tính của các đối tượng để đưa ra tư vấn. Những thuật toán của phương pháp này
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ề thu
thậ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 đối
tượng thành một vector có trọng số từ thông tin của đối tượng đó (thông tin bao
gồm những thuộc tính, đặc điểm của đối tượng). Sau đó, hệ thống sẽ tạo cho mỗi
mộ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ưng
củ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ại
Bayesian, 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ác
vector đặ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âm
củ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ểu
nộ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
mà 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ệu
quả 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ác
trình duyệt mà nó có thể tư vấn cho người dùng đó những đối tượng khác như

16


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 hai
phươ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 (Hybird
System).
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ều
trường hợp sẽ hiệu quả hơn và có độ chính xác cao hơn. Để có thể kết hợp hai
phương pháp này có thể sử dụng một số biện pháp như: dự đoán bằng hai
phươ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ính
nă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ợp
này cũng có thể giải quyết được một số vấn đề thường xảy ra với hai phương
phá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ọc
cộ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ưới dạ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ương phá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.
• ...


Sau 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ội
dung 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

17


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ười
dù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ống

web 2.0 hiện nay như blogs, mạng xã hội, ứng dụng chia sẻ video,…vẫn kế thừa
một số đặc điểm của forum. Do đó những kinh nghiệm được tạo ra khi xây dựng
phươ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 đối
tượ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ận
hay mà người dùng có thể cảm thấy thích thú và thể hiện quan điểm bằng các
hà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ấn
nhữ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ững
ngườ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 cho
ngườ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ới
ngườ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ủa
những bài viết đã được người dùng bình luận trước đó để xây dựng nên những
vector đặc trưng cho mỗi bài viết đó và xây dựng nên vector biểu diễn mối quan
tâ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ễn
những bài viết đó thành một vector đặc trưng và đem so sánh với vector của
người dùng để đưa ra được bài viết có độ tương đồng cao nhất với sở thích của
ngườ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ương
pháp mô hình không gian vector (Vector Space Model – VSM) để biến đổi nội
dung 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ếp
18



thực hiện việc biến đổi trên. Sau đó, phương pháp Cosine Similarity sẽ được
dùng để so sánh sự tương đồng giữa vector đặc trưng của bài viết và vector biểu
diễ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ày
trong 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ểu
xem 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ủa
ngườ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 gian
vector để 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 quan
tâ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 đó.
2.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ột
forum 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 subforum
khá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.

19


+ 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ùng
khác nhau trên forum, những bình luận này thể hiện quan điểm của người dùng
nà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 động
như: đă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ài
viế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át
hiệ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ười
dù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 xem
bà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ông
tin 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ẽ đi
xâ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 đặc
trưng) bằng cách sử dụng phương pháp mô hình không gian vector (Vector
Space 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ùy
theo 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ách
lấ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ối
20


quan 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. Để so
sánh độ tương đồng giữa hai vector có thể sử dụng một số biện pháp so sánh
thô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ây
dự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
- VSM)
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)
Vector space model (VSM – mô hình không gian vector) hay Term vector
model (TSM – mô hình không gian thuật ngữ) là một mô hình đại số. Mô hình
này được dùng để biểu diễn các văn bản (document) dạng ký tự (hay bất cứ một
đối tượng nào khác dưới dạng dữ liệu rời rạc) thành một vector của các thuật
ngữ (term), các thuật ngữ này có thể là các chỉ số. Mô hình này được sử dụng
trong việc lọc thông tin (information filtering), thu thập thông tin (information
retrieval), lập chỉ mục (indexing) và xếp hạng mức độ liên quan (relevance
raking).
2.2.2

Một số định nghĩa

Như đã nói ở trên, mục đích của VSM là biểu diễn các văn bản thành vector
của các thuật ngữ để thực hiện một nhiệm vụ cụ thể. Do đó, đầu vào bao gồm 1
tập các văn bản D = {,, ... , }, một câu truy vấn q và một các thuật ngữ T= {,, ... ,
}. Sau khi sử dụng VSM các văn bản trong tập D và câu truy vấn q sẽ được biểu
diễn dưới dạng các vector như sau:
21


= (,, ... , )
q = (,, ... , )

Trong đó:
: là vector biểu diễn văn bản thứ j trong tập D bằng các thuật ngữ(term)
trong tập T.
: là giá trị chiều i của văn bản 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.
: 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ữ xuất hiện trong văn bản thì giá trị trong
vector sẽ là một số khác 0, ngược lại thì =0. Giá trị 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ọn
thuậ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ủa
cá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ểu
diễ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ữa
các văn bản và câu truy vấn.
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)
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 đồng
giữa các văn bản. Theo đó, sự tương đồng về ngữ nghĩa giữa hai văn bản được
tí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ựa
trê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ới
vector truy vấn để so sánh mức độ tương đồng. Vector truy vấn này được xây


22


dự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.

Trong đó:
là tích vô hướng của 2 vector: vector văn bản d2 và vector truy vấn
q.
là độ dài của vector văn bản d2, hay là lực lượng của d2.
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 có n chiều được tính theo công thức:

Sau khi tính toán theo mô hình này, một tập các phần tử không âm (nằm
trong khoảng từ 0 đến 1), tương ứng với độ lệch của vector văn bản và vector
truy vấn sẽ được sinh ra. Nếu phần tử nào đó bằng 0 tức là cosine giữa hai
vector bằng 0. Điều này có nghĩa là vector truy vấn và vector văn bản trực giao
(vuông góc) với nhau, hay hai vector không khớp, cũng có thể nói là nội dung
câu truy vấn không có trong văn bản này. Ngược lại, nếu giá trị cosine bằng 1 thí
hai vector trùng khớp với nhau, hay câu truy vấn có nội dung trùng hợp với nội
dung văn bản. Có thể tổng quát lại là, nếu giá trị cosine giữa hai vector càng cao
thì câu truy vấn càng liên quan tới văn bản đang xét.
23



Ngoà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ác phươ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ăn
bả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 – : để tính các giá trị cụ thể của thống kê này, đơn giản nhấ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 - : sử dụng công thức sau để tính giá trị cho
thống kê này.

Trong đó:
: 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).
: 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 + thay thế.
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:

24


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ác
truy 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ật
ngữ trong văn bản, các xâu con có thể dẫn đến việc “trùng khớp dương
tí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ới
những bộ từ vựng khác nhau sẽ không có quan hệ, việc này gây ra
trườ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ểu
diễ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.
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ất
nhiề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)
là một trong những mô hình phát hiện topic ẩn thà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.
25



×