4.3.1. Cấu hình phần cứng.
Thành phần Thơng số
CPU Intel(R) Core(TM) i3-370M CPU @ 2.40GHz
RAM 4GB
73
Học viên thực hiện: Nguyễn Văn Thịnh CB130460 Khĩa 2013B Lớp CNTT1
Bộ nhớ ngồi 320GB
4.3.2. Các phần mềm sử dụng.
STT Tên phần mềm Tác giả Chức năng Nguồn 1 NetBeans IDE 7.4 32-bit Mơi trƣờng phát triển (1) 2 Xampp 3.2.1 Mơi trƣờng phát triển (2) 3 vnTokenize 4.1.1 Lê Hồng Phƣơng Tách từ tiếng Việt (3)
4 JGibbLDA Phan Xuân Hiếu, Nguyễn Cẩm Tú
Xây dựng đặc trƣng topic
(4)
Chi tiết nguồn của các cơng cụ, thƣ viện:
(1): https://netbeans.org/downloads/
(2): https://www.apachefriends.org/download.html
(3): http://mim.hus.vnu.edu.vn/phuonglh/softwares/vnTokenizer
(4): http://jgibblda.sourceforge.net/
4.4. Thiết kế thử nghiệm
Ở phần này chúng ta chỉ đề cập đến các bƣớc xử lý ở trên server do các phƣơng pháp gợi đƣợc triển khai trên server, phía client chỉ là phần giao diện hiển thị kết quả cho ngƣời dùng. Chúng ta sẽ đi chi tiết vào các bƣớc thiết kế thực nghiệm mà server xử lý.
4.4.1. Bài tốn gợi ý bài báo đƣợc cài đặt phƣơng pháp lọc nội dung sử dụng trọng số tf-idf tăng cƣờng. dung sử dụng trọng số tf-idf tăng cƣờng.
Để tiến hành cài đặt thực nghiệm thì chúng ta sẽ tiến hành bốn bƣớc chung cho phƣơng pháp gợi ý theo nội dung, trong mỗi phƣơng pháp nhỏ chúng ta sẽ cĩ chi
74
Học viên thực hiện: Nguyễn Văn Thịnh CB130460 Khĩa 2013B Lớp CNTT1
tiết cài đặt cho các bƣớc khác. Sau đây trình bày về bốn bƣớc tiến hành thực nghiệm chung:
Bước 1: Cài đặt module lấy dữ liệu từ trang VnExpress
Để lấy các bài báo từ trang VnExpress thơng qua RSS thì chúng ta sử dụng bộ thƣ viện phân tích sẵn cĩ của Java để phân tích cấu trúc file RSS, đồng thời sử dụng thƣ viện mã nguồn mở jsoup để bĩc tách nội dung text trong bài báo html, rồi chèn vào cơ sở dữ liệu phục vụ cho bƣớc tiếp theo.
Bước 2: Cài đặt module tiền xử lý dữ liệu
Để tiền xử lý dữ liệu chúng ta sẽ tiến hành xây dựng đoạn mã để loại bỏ thẻ html cịn tồn tại trong các bài báo. Sau khi đã loại hết thẻ html, chúng ta tiến hành sử dụng cơng cụ tách từ tiếng việt VnTokenizer của tác giả Lê Hồng Phƣơng để tách từ của tất cả bài báo. Tách từ xong thì loại bỏ chữ số, ký tự đặc biệt, loại bỏ từ dừng theo danh sách từ dừng sẵn. Tất cả các từ đều đƣợc lƣu lại để làm đầu vào cho bƣớc tiếp theo.
Bước 3: Cài đặt module tính trọng số
Đầu tiên ta sẽ đếm các từ khác nhau trong một bài báo, đếm số lần xuất hiện của tài liệu mà từ đĩ xuất hiện, kiểm tra xem những từ nào nằm trong tiêu đề của các bài báo. Các từ khác nhau sẽ đƣợc lƣu riêng một bảng trong cơ sở dữ liệu cùng với số tài liệu xuất hiện.
Tính tf theo cơng thức (3-1), tính idf theo cơng thức (3-2), sau khi tính xong tf và idf chúng ta sẽ tính tf-idf theo cơng thức (3-3) của tất cả các từ trong các tài liệu.
Tính trung bình số học của giá trị tf-idf trong của tất cả bài báo theo cơng thức (3-4), xác định trọng số tiêu đề của những từ thuộc vào tiêu đề của tất cả bài báo theo cơng thức (3-5).
75
Học viên thực hiện: Nguyễn Văn Thịnh CB130460 Khĩa 2013B Lớp CNTT1
Cuối cùng chúng ta sử dụng cơng thức (3-6) để tính trọng số cho các từ trong tất cả các bài báo, lƣu lại các giá trị này trong cơ sở dữ liệu để tiến hành gợi ý.
Bước 4: Biểu diễn nội dung bài báo
Mỗi bài báo sẽ đƣợc biểu diễn bằng một vector trọng số của các từ khác nhau xuất hiện trong bài báo đấy. Thay vì danh sách các từ trong bài báo thì chúng ra sử dụng trọng số của mỗi từ khác nhau để biểu diễn cho bài báo.
Ví dụ: Bài báo C sẽ đƣợc biểu diễn nhƣ sau:
C= (0, 93, 0, 87,…., 0,56)
4.4.1.1. Đối với hồ sơ ngƣời dùng tĩnh.
Sau khi thực hiện cài đặt các module theo bốn bƣớc ở trên thì chúng ta sẽ tiến hành cài đặt thêm các bƣớc riêng của phƣơng pháp gợi ý theo nội dung đối với hồ sơ ngƣời dùng tĩnh nhƣ sau:
Bước 5: Cài đặt module xây dựng hồ sơ người dùng tĩnh
Chúng ta tiến hành biểu diễn hồ sơ ngƣời dùng theo cơng thức (3-8), các tham số cần thiết để xây dựng hồ sơ ngƣời dùng nhƣ sau: chúng ta thu thập đánh giá của tất cả ngƣời dùng trong vịng 7 ngày đầu tiên để đƣa ra gợi ý nên chúng ta sẽ chọn ns = 7. Để xây dựng hồ sơ ngƣời dùng thì chúng ta sẽ căn cứ vào các đánh giá của ngƣời dùng để xây dựng.
Bước 6: Cài đặt module tính độ tương đồng
Nhƣ vậy, các bƣớc trên đã biểu diễn đƣợc bài báo và hồ sơ ngƣời dùng thì chúng ta sẽ tiến hành tính tốn độ tƣơng tự giữa các bài báo chƣa đƣợc đọc bởi ngƣời đƣợc gợi ý và hồ sơ ngƣời dùng. Để tiến hành gợi ý thì chúng ta sẽ lấy lại các bài báo mà ngƣời dùng đã đọc cĩ đánh giá lớn hơn 4 điểm, từ đĩ xác định danh sách các chuyên mục mà ngƣời dùng đã đọc. Cĩ đƣợc các chuyên mục ngƣời dùng đã đọc ta tiến hành lấy những bài báo mà chƣa đƣợc đọc bởi ngƣời dùng đƣợc gợi ý trong
76
Học viên thực hiện: Nguyễn Văn Thịnh CB130460 Khĩa 2013B Lớp CNTT1
ngày 2 ngày cuối cùng (chia dữ liệu thành 8 phần, mỗi phần 2 ngày liên tiếp) và tính độ tƣơng đồng với hồ sơ ngƣời dùng. Sau khi tính tốn độ tƣơng đồng thì chúng ta sẽ sắp xếp danh sách gợi ý theo thứ tự theo độ tƣơng đồng giảm dần, chọn 10 bài báo cĩ độ tƣơng đồng cao nhất trả về cho ngƣời dùng.
4.4.1.2. Đối với hồ sơ ngƣời dùng động.
Cũng tƣơng tự nhƣ xây dựng hồ sơ ngƣời dùng tĩnh ta tiến hành cài đặt các module theo bốn bƣớc ở trên sau đĩ cài đặt thêm các bƣớc riêng đối phƣơng pháp gợi ý theo nội dung đối với hồ sơ ngƣời dùng động nhƣ sau:
Bước 5: Cài đặt module xây dựng hồ sơ người dùng động
Chúng ta tiến hành biểu diễn hồ sơ ngƣời dùng theo cơng thức (3-7), các tham số cần thiết để xây dựng hồ sơ ngƣời dùng nhƣ sau: chúng ta thu thập đánh giá trong 7 ngày để đƣa gợi ý nên sẽ chọn ns=7 và để tính hệ số k thì chúng ta sẽ chọn λ =1.0. Để xây dựng hồ sơ ngƣời dùng thì chúng ta sẽ căn cứ vào các đánh giá của ngƣời dùng để xây dựng.
Bước 6: Cài đặt module tính độ tương đồng: tiến hành tƣơng tự nhƣ xây dựng hồ sơ ngƣời dùng tĩnh.
4.4.2. Bài tốn gợi ý bài báo đƣợc cài đặt phƣơng pháp lọc nội dung dựa trên mơ hình chủ đề ẩn LDA. dung dựa trên mơ hình chủ đề ẩn LDA.
Tƣơng tự thì chúng ta cũng cần phải thực hiện bƣớc 1 và bƣớc 2 nhƣ phần trên đã trình bày. Ngồi ra để biểu diễn vector đặc trƣng của bài báo thì chúng ta cần phải các bƣớc sau:
Bước 3: Cài đặt module xây dựng vector đặc trưng từ mơ hình chủ đề ẩn LDA
Để xây dựng vector đặc trƣng cho các bài báo thì chúng ta sẽ sử dụng cơng cụ JGibbLDA của tác giả Phan Xuân Hiếu, Nguyễn Cẩm Tú . Yêu cầu đầu vào dữ liệu cho cơng cụ nhƣ đã trình bày phần 4.2.6, sau đĩ ta cần cung cấp các tham số đầu vào cho cơng cụ nhƣ sau:
77
Học viên thực hiện: Nguyễn Văn Thịnh CB130460 Khĩa 2013B Lớp CNTT1
alpha: K/50 (K là số topic).Giá trị mặc định của cơng cụ JGibbLDA.
beta: 0.1-giá trị mặc định của cơng cụ JGibbLDA.
ntopics: Số topic. Giá trị mặc định 100 topic.
Ngồi ra các tham số khác: savestep, niters, twords đƣợc chọn mặc định theo tác giả Phan Xuân Hiếu và Nguyễn Cẩm Tú.
Cơng cụ JGibbLDA trả về cho chúng ta một tập các file nhƣng trong phạm vi đồ án này chúng ta sẽ chỉ quan tâm tới file <model_name>.theta là file chứa dữ liệu về các bài báo và trọng số của từng topic. File này sẽ biểu diễn ma trận hai chiều: hàng là danh sách các bài báo, cột là các topic, giá trị giữa hàng và cột là trọng số của topic đĩ với bài báo. Số cột đây bằng số topic đã chọn, số hàng bằng t ng số tài liệu mà ta đã thu thập.
Ví dụ:
Topic 1 Topic 2 … Topic 100
Bài báo 1 0.96 0.54 … 0.23
… … … … …
Bài báo n 0.23 0.78 … 0.98
Bước 4: Biểu diễn bài báo
Thay vì biểu diễn bằng trọng số của các từ khác nhau chúng ta sẽ biểu diễn bài báo bằng một vector đặc trƣng chứa trọng số của các topic với bài báo (100 topic), nhƣ vậy là số chiều vector đặc trƣng luơn cố định bằng số topic.
Tiếp đĩ sẽ là chi tiết cài đặt cho các phƣơng pháp khác nhau sẽ đƣợc trình bày ở phần dƣới.
4.4.2.1. Đối với hồ sơ ngƣời dùng tĩnh.
Chúng ta tiến hành cài đặt tƣơng tự bƣớc 5 và bƣớc 6 của phần 4.4.1.1.
4.4.2.2. Đối với hồ sơ ngƣời dùng động.
78
Học viên thực hiện: Nguyễn Văn Thịnh CB130460 Khĩa 2013B Lớp CNTT1
4.4.3. Cài đặt phƣơng pháp lọc cộng tác.
Đối phƣơng pháp gợi ý dựa theo lọc cộng tác thì đầu vào sẽ là các đánh giá của ngƣời dùng, nên chúng ta sẽ cài đặt thực nghiệm theo các bƣớc sau:
Bước 1: Cài đặt module tính độ tương tự giữa những người dùng
Phƣơng pháp lọc cộng tác là sử dụng những ngƣời dùng cĩ cùng sở thích để gợi ý cho nhau, chúng ta sẽ thực hiện theo hai yêu cầu sau:
Thứ nhất là để cài đặt module này chúng ta cần xác định ngƣời dùng cùng “khẩu vị” với ngƣời dùng đang đƣợc gợi ý, trong khuơn kh đồ án này chúng ta chỉ xét những ngƣời dùng cĩ cùng sở thích là những ngƣời dùng mà đã đánh giá về bài báo mà chúng ta định gợi ý cho ngƣời dùng.
Thứ hai là độ tƣơng tự giữa hai ngƣời dùng, chúng ta chỉ sử dụng tập giao các điểm số đánh giá của hai ngƣời dùng để tính độ tƣơng tự.
Để tính tốn độ tƣơng tự giữa hai ngƣời dùng thì ta sử dụng cơng thức (3-12). Ở bƣớc này chúng ta sẽ sử dụng đánh giá của ngƣời dùng trong vịng 8 ngày để xác định ngƣời dùng tƣơng tự. Với mỗi ngƣời dùng cụ thể ta sẽ sử dụng dữ liệu đánh giá của ngƣời dùng trong 7 ngày đầu, đồng thời sử dụng dữ liệu đánh giá của tất cả ngƣời dùng trong 8 ngày.
Bước 2: Cài đặt module tính điểm số cho bài báo
Ta sẽ lấy tất cả bài báo mà ngƣời dùng chƣa đọc trong 2 ngày cuối cùng (chúng ta chia dữ liệu thành 8 phần, mỗi phần 2 ngày) để tiến hành tính điểm số cho bài báo, thì với mỗi bài báo này ta sẽ áp dụng bƣớc 1 để tính độ tƣợng tự với những ngƣời dùng. Tiếp ta sẽ áp dụng cơng thức (3-11), (3-10) để tính điểm số của bài báo và ngƣời dùng đang đƣợc gợi ý. Chú ý ở đây ta chỉ lấy lại ngƣời dùng đã đánh giá bài báo mà ta muốn tính điểm để tính độ tƣơng tự giữa những ngƣời dùng.
79
Học viên thực hiện: Nguyễn Văn Thịnh CB130460 Khĩa 2013B Lớp CNTT1
Sau khi tính tốn điểm số cho tất cả bài báo mà ngƣời dùng chƣa đọc thì hệ thống sẽ trả về top 10 bài báo cĩ điểm số cao nhất, sắp xếp theo thứ tự điểm số giảm dần. Nhƣ vậy là chúng ta đã trình bày xong các module chính để cài đặt các phƣơng pháp gợi ý cho ngƣời dùng, phần tiếp theo sẽ trình bày về phƣơng pháp đánh giá hệ thống của đồ án này.
4.4.4. Cài đặt phƣơng pháp lai
Nhƣ đã trình bày trong mục 3.4 thì trong khuơn kh đồ án này chúng tơi sử dụng phƣơng pháp lai kết hợp (Mix). Do vấn đề thu thập dữ liệu đánh giá của ngƣời dùng cịn nhiều hạn chế nên chúng tơi sẽ chỉ tập trung vào các phƣơng pháp gợi ý theo nội dung là chủ yếu, vì vậy mà chúng tơi đề xuất khi trả về top 10 bài báo thì tỷ lệ 9:1 tƣơng ứng với phƣơng pháp lọc nội dung và phƣơng pháp lọc cộng tác. Ở phần này chúng ta chỉ cần cài đặt module lai đơn giản là kết hợp hai kết quả của từng phƣơng pháp riêng lẻ. Module này sẽ chọn top 9 của hệ thống gợi ý lọc theo nội dung và top 1 của gợi ý theo lọc cộng tác. Vấn đề trùng lặp bài báo giữa hai phƣơng pháp sẽ đƣợc giải quyết nhƣ sau: Chọn 9 bài báo trong lọc nội dung, tiếp chọn 1 bài báo trong lọc cộng tác, nếu bài báo lấy ra trong lọc cộng tác cĩ xuất hiện trong 9 bài báo của lọc nội dung thì chúng ta sẽ chọn bài tiếp theo trong danh sách những bài báo gợi ý theo lọc cộng tác mà khơng xuất hiện trong 9 bài báo thuộc gợi ý nội dung theo thứ tự giảm dần điểm số.
Chúng ta sẽ cĩ 4 phƣơng pháp lai khác nhau nhƣ sau:
Lai giữa hai phƣơng pháp gợi ý theo nội dung sử dụng hồ sơ ngƣời dùng tĩnh dựa vào trọng số tf-idf tăng cƣờng và lọc cộng tác (H.1).
Lai giữa hai phƣơng pháp gợi ý theo nội dung sử dụng hồ sơ ngƣời dùng động dựa vào trọng số tf-idf tăng cƣờng và lọc cộng tác (H.2).
Lai giữa hai phƣơng pháp gợi ý theo nội dung sử dụng hồ sơ ngƣời dùng tĩnh dựa trên mơ hình chủ đề ẩn LDA và lọc cộng tác (H.3).
Lai giữa hai phƣơng pháp gợi ý theo nội dung sử dụng hồ sơ ngƣời dùng động dựa trên mơ hình chủ đề ẩn LDA và lọc cộng tác (H.4).
80
Học viên thực hiện: Nguyễn Văn Thịnh CB130460 Khĩa 2013B Lớp CNTT1
4.5. Phƣơng pháp đánh giá
4.5.1. Các chỉ số sử dụng đánh giá
Việc đánh giá chất lƣợng của tin tức gợi ý trả về bởi hệ thống là một bài tốn khĩ, vì khơng cĩ một độ đo ngữ nghĩa đánh giá chính xác đƣợc sự phù hợp giữa ngƣời dùng và tin tức hệ thống trả lại.
Herlocker đƣa ra hai nguyên nhân chủ yếu dẫn tới việc đánh giá các hệ thống gợi ý là khĩ khăn:
Nguyên nhân đầu tiên là chất lƣợng của hệ gợi ý phụ thuộc vào tập dữ liệu sử dụng. Một hệ gợi ý tin tức cĩ mơ hình tốt chƣa chắc đã gợi ý tốt hơn một hệ gợi ý cĩ dữ liệu tốt (nhƣ một cơ sở dữ liệu tin tức phong phú).
Nguyên nhân thứ hai là việc đánh giá hệ gợi ý cĩ thể hƣớng tới các mục tiêu khác nhau. Trong một số hệ thống, các đánh giá cĩ thể dựa trên số lần gợi ý dẫn đến quyết định đúng và sai. Trong một số khác, các đánh giá cĩ thể dựa trên xem xét ngƣời dùng hài lịng hoặc khơng hài lịng đối với các kết gợi ý.
Ngồi các lý do trên thì lý do chủ quan về thu thập dữ liệu trong đồ án của em vấp phải vấn đề ngƣời dùng đánh giá hệ thống là quá ít do test trong nội bộ.
Thật vậy, một số hệ thống nhấn mạnh sự đa dạng của các mục trong danh sách gợi ý, trong khi những ngƣời khác tập trung vào tính mới. Cĩ nhiều chỉ tiêu đánh giá khác nhau nhƣng trong khuơn kh đồ án này, chúng ta sử dụng precision, recall và F- Measure các chỉ số chủ yếu đƣợc sử dụng trong các hệ thống gợi ý của thƣơng mại điện tử.
Ở đĩ: 𝑖 𝑖 𝑖 𝑖 𝑖 𝑖
81
Học viên thực hiện: Nguyễn Văn Thịnh CB130460 Khĩa 2013B Lớp CNTT1
true positive (tp): tin tức thú vị gợi ý cho ngƣời dùng.
true negative (tn): tin tức thú vị khơng gợi ý cho ngƣời dùng.
false negative (fn): tin tức khơng thú vị khơng gợi ý cho ngƣời dùng.
false positive (fp) : tin tức khơng thú vị gợi ý cho ngƣời dùng.
4.5.2. Phƣơng pháp đánh giá
Chúng tơi sẽ đánh giá hệ thống bằng cách sử dụng các đánh giá cho các bài báo của ngƣời dùng trƣớc đĩ đã thu thập (trong 8 ngày).
Đối phƣơng pháp gợi ý dựa theo nội dung: