Chương 1: Tổng quan dé tài Giới thiệu tông quan nội dung đê tài khóa luận. Nội dung bao gôm: hiện trạng và đặt vân đê, khảo sát một sô website, mục tiêu đê tài, phạm vi nghiên cứu và bô cục báo cáo. Chương 2: Cơ sở lý thuyết Giới thiệu về hệ thống gợi ý sản phẩm và một số ngôn ngữ, cơ sở dữ liệu và thuật toán sẽ sử dụng trong đề tài. Ngôn ngữ và cơ sở dữ liệu đó bao gồm: HTML, CSS, JavaScript, PHP, Mysql và thuật toán Item Based Collaborative Filtering.
Chương 3: Phân tích và thiết kế hệ thong Trình bày về sơ đồ tổ chức của website, phân tích thiết kế hệ thống, thiết kế cơ sở dữ liệu, thiết kế giao diện website. Chương 4: Cài đặt và kiểm thử Trinh bày cài đặt thuật toán, tóm tắt quá trình triển khai và kiểm thử. Xây dung website tìm kiếm và tuyến dụng việc làm Chương 5: Tổng kết Tổng kết khóa luận, nêu ưu, khuyết điểm và hướng phát triển. Xây dung website tìm kiếm và tuyến dụng việc làm CHƯƠNG2.
CƠ SỞ LÝ THUYET Chương này nói về cơ sở lý thuyết của khoá luận bao gồm hệ thống gợi ý sản phẩm và hệ thống gợi ý sản phẩm theo phương pháp lọc cộng tác dựa trên đánh giá người dùng. Cùng với ngôn ngữ và cơ sở dữ liệu sử dụng chính là PHP, MySQL. Ngoài ra các công nghệ và công cụ sử dụng khác nhóm tác giả nghiên cứu sẽ được trình bày chỉ tiết ở chương này.1 Tìm hiểu hệ thống gợi ý sản phẩm 2.1 Giới thiệu hệ thống gợi ý sản phẩm Hệ thống gợi ý (Recommendation Systems) được định nghĩa là hệ thống đề xuất, gợi ý các sản phẩm phù hợp nhất với người dùng cụ thé bằng cách dự đoán mối quan tâm của người dùng về một mặt hàng dựa trên thông tin liên quan đến sản phẩm, người dùng và sự tương tác giữa chúng. Có hai đối tượng chính trong hệ thống gợi ý: người dùng (users) và sản phẩm (items).
Mục đích chính của hệ thống gợi ý là dự đoán mức độ quan tâm của một người dùng tới một sản phẩm nào đó dựa trên hành vi của người dùng này và các người dùng khác qua đó đề xây dựng hệ khuyến nghị cá nhân. Các hệ thống gợi ý thường được chia thành hai nhóm lớn: - Loe theo nội dung (Content-based systems): Gợi ý các sản dựa vào hồ sơ (profiles) của người dùng hoặc dựa vào nội dung/thuộc tính (attributes) của những sản phẩm tương tự như sản phẩm mà người dùng đã chọn trong quá khứ. Vi dụ: nếu một hệ thống gợi ý thấy bạn thích những bộ phim “You’ve Got Mail” va “Sleepless in Seattle”, thì nó có thể gợi ý một bộ phim khác cho bạn với sự tham gia của Tom Hanks va Meg Ryan, chăng hạn như “Joe Versus the Volcano”. Cách tiếp cận nay yêu câu việc sắp xêp các san phâm vào từng nhóm hoặc di tìm các đặc trưng của Xây dung website tìm kiếm và tuyến dụng việc làm từng sản phẩm.
Tuy nhiên, có những sản phẩm không có nhóm cụ thể và việc xác định nhóm hoặc đặc trưng của từng sản phẩm đôi khi là bat khả thi. - Loc cộng tác (Collaborative filtering): hệ thống gợi ý sản phẩm (items) dựa trên sự tương quan (similarity) giữa các người dùng và/hoặc sản phẩm. Có thê hiểu rằng ở nhóm này métsdn phẩm được gợi ý tới một người dùng dựa trên những người dùng có hành vi tương tự. Ví dụ: đa số những người dùng đã đọc quyền sách "The 7 habits of highly effective people" của Stephen R.
Covey, và cuốn "Good To Great" của Jim Collins họ đều tim mua cuốn "Think and Grow Rich" của Napoleon Hill. Từ những thông tin nay, bạn có thé nhóm ho thành nhóm những người có cùng sở thích. Sau đó, khi có một người dùng khác, họ muốn mua quyên sách "The 7 habits of effective people" và "Good to great" hệ thống sẽ gợi ý cho họ cuốn sách "Think and grow rich" có thé là cuốn sách ma họ quan tam.2 Áp dụng thuật toán vào hệ thống website việc làm Trong đề tài này, nhóm tác giả sử dụng Neighborhood-based Collaborative Filtering (NBCF) và cu thé hon 1a Item-Item Collaborative Filtering dùng dé xây dựng hệ thống gợi ý việc làm cho website. Ý tưởng cơ bản của NBCF là xác định mức độ quan tâm của một người dùng tới một sản phẩm dựa trên các sự tương quan với các người dùng khác.
Việc gần giống nhau giữa các người dùng có thể được xác định thông qua mức độ quan tâm của các người dùng này tới các việc làm khác mà hệ thống đã biết. Trong hướng tiếp cận Item-Item Collaborative Filtering, hệ thống sẽ xác định độ tương quan giữa các sản phẩm. Từ đó, hệ thống gợi ý những sản phẩm gần giống với những sản phâm mà người dùng có mức độ quan tâm cao. 10 Xây dung website tìm kiếm và tuyến dụng việc làm 2.
Lọc cộng tác dựa vào sản pham- sản phẩm 2.1 Mức độ tương đồng (Similarity functions) Công việc quan trọng nhất phải làm trước tiên trong Item-item Collaborative Filtering là phải xác định được sự twong quan giữa hai sản phẩm. Như đã đề cập ở trên, có hai thực thé chính ở trong hệ thống gợi ý là người dùng (users) và sản phẩm (item), mỗi người dùng sẽ có một mức độ quan tâm, tạm gọi là điểm đánh giá (rating), tới từng sản phẩm khác nhau.Tập hợp các đánh giá bao gồm các giá trị chưa biết cần được dự đoán, tạo nên một ma trận gọi là Utility Matrix. Trong đề tài này, ta goi nó là Utility matrix Y, vậy nên sự giống nhau này phải được xác định dựa trên các hàng tương ứng với hai sản phẩm trong ma trận này. Xét ví dụ trong Hình 2-1.
Ở ví dụ dưới đây uo đến us tượng trưng cho người dùng, io đến is tượng trưng cho các bộ phim. Gia sử có các người dùng từ uo đến us và các sản phẩm từ io đến is trong đó các số trong mỗi ô vuông thé hiện số điểm mà mỗi người dùng đã đánh giá cho sản pham với giá trị càng cao thì thé hiện người dùng càng thích sản phẩm. Các dấu cham hỏi là các giá trị chưa biết, tức là những giá trị mà hệ thống gợi ý phải đi tìm. Gọi độ giông nhau giữa hai sản phâm ii, ij là sim (ii, ij).
11 Xây dung website tìm kiếm và tuyến dụng việc làm Quan sát đầu tiên chúng ta có thé nhận thấy là uo thích io, i: và không thích is, ia cho lắm, vậy có thé thấy có 1 sự tương đồng lớn giữa io, i:. Điều ngược lại xảy ra ở các users còn lại. Vì vậy, một similiarity function tôt cân đảm bảo: sim(g,1,) > sim(Ip,1;), Vi > 1 Công thức trên có nghĩa như sau: Nếu độ tương quan giữa 2 sản phẩm io, i: lớn hơn bat cứ độ tương quan nào giữa sản phẩm io VỚI i; ( Vi > 1) thì io sẽ có sự tương quan lớn nhât với 1¡ Từ đó, đê xác định mức độ quan tâm của uo lên 12, chúng ta cân tính độ tương tự giữa 1a với các sản phâm io, 1¡. Nêu độ tương quan giữa 1a với các sản phâm io, 1¡ lớn hơn các sản phâm ij còn lại thì chúng ta có thê gợi ý 12 cho uo.
Câu hỏi đặt ra là: hàm số dé đo độ tương tự nào là tốt? Đề đo độ tương tự giữa hai sản phẩm, cách thường làm là xây dựng vector cho thông tin đánh giá của người dùng lên sản phẩm rồi áp dụng một hàm có khả năng đo độ tương tự giữa hai vectors đó. Với mỗi người dùng, thông tin duy nhất chúng ta biết là các điểm đánh giá mà người dùng đó đã thực hiện, tức cột tương ứng với người dùng đó trong Utility matrix (Hình 2-1). Tuy nhiên, khó khăn là các cột này thường có rất nhiều giá trị trống vì mỗi người dùng thường chỉ đánh giá một số lượng rất nhỏ các sản phẩm. Cách khắc phục là bằng cách nào đó, ta giúp hệ thống điền các giá trị này sao cho việc điền không làm ảnh hưởng nhiều tới sự giống nhau giữa hai vector.
Việc điền này chỉ phục vụ cho việc tính độ tương tự chứ không phải là suy luận ra giá trị cuối cùng. Dé giải quyết được van dé nay, ta cần chuẩn hóa dữ liệu ma trận, nội dung được trình bày ở phần tiếp theo. 12 Xây dung website tìm kiếm và tuyến dụng việc làm 2. Chuẩn hóa dữ liệu 2 0 4 a) Original utility matrix Y and mean item ratings.
ty matrix 3: U4 5 U6 0 loa] i A .25 Hình 2-2: Mô ta ví dụ lọc cộng tác giữa sản pham- sản phẩm Hình 2-2a: Ma trận đánh giá (rating) ban đầu AK¬ Hình 2-2b: Ma trận được chuẩn hóa Hình 2-2c: Ma trận độ tương quan giữa các sản phẩm Hình 2-2d: Tiến hành dự đoán các điểm đánh giá còn thiếu Để giải quyết van đề chuẩn hóa dữ liệu, ta cần tính giá trị trung bình điểm đánh giá của các người dùng. Cột kế bên trong Hình 2-2a là giá trị trung bình của điểm đánh giá cho mỗi người dùng. Giá trị cao tương ứng với việc sản phẩm đó được hầu hết các người dùng ưa thích và ngược lại. Khi đó, nếu tiếp tục trừ mỗi đánh giá cho giá trị trung bình và thay các giá trị chưa biết bằng 0, ta sẽ được ma trận được chuẩn 13 Xây dung website tìm kiếm và tuyến dụng việc làm hóa (normalized utility matrix) như trong Hình 2-2b.
Bước chuẩn hóa này có chức năng quan trọng vì: - — Việc trừ đi trung bình cộng của mỗi hàng khiến cho trong mỗi hàng có những giá trị dương và âm. Những giá trị dương tương ứng với việc người dùng thích sản phẩm, ngược lại với những giá trị âm. Những giá trị bằng 0 tương ứng với việc chưa xác định được liệu người dùng có thích sản pham đó hay không. - — VỀ mặt kỹ thuật, số cột và hàng của ma trận ban đầu (utility matrix) là rat lớn với hang triệu người dùng va san phẩm, nếu lưu toàn bộ các giá tri này trong một ma trận thì khả năng cao là sẽ không đủ bộ nhớ.
Quan sát thấy răng vì số lượng đánh giá biết trước thường là một số rất nhỏ so với kích thước của ma trận ban đầu, sẽ tốt hơn nếu chúng ta lưu ma trận này đưới dạng ma trận thưa (sparse matrix), tức chỉ lưu các giá trị khác 0 và vị trí của chúng. Vì vậy, tốt hơn hết các dấu ‘?’ nên được thay bằng giá trị ‘0’, tức chưa xác định liệu người dùng có thích sản phẩm hay không. Việc này không những tối ưu bộ nhớ mà việc tính toán ma trận tương tự (similarity matrix) Sau này cũng hiệu quả hơn.