Nguồn gốc của việc tƣ vấn là sử dụng đánh giá của mỗi cá nhân để tạo ra một tập dữ liệu. Điều này có thể phù hợp với các cơ sở dữ liệu có một vài nghìn ngƣời, mặt hàng nhƣng đối với một trang web rất lớn nhƣ Amazon bao gồm hàng triệu khách
NGUYỄN THÙY TRANG – K43 TIN HỌC KINH TẾ Trang 53 hàng và mặt hàng thì việc so sánh ngƣời dùng này với những ngƣời dùng khác rồi sau đó so sánh tất cả mặt hàng của mỗi ngƣời dùng đã đánh giá sẽ rất mất thời gian. Ngoài ra, với một trang web bán hàng triệu mặt hàng thì sự trùng lặp về mặt hàng đƣợc đánh giá có thể rất ít (tính thƣa thớt dữ liệu) nên việc xác định ngƣời dùng tƣơng tự cũng rất khó khăn.
Từ đó, kỹ thuật lọc cộng tác dựa trên mặt hàng ra đời và thực sự có hiệu quả trong những trƣờng hợp dữ liệu rất lớn. Lọc cộng tác dựa trên mặt hàng cho kết quả tốt hơn, đồng thời nó cho phép nhiều phép tính toán đƣợc thực hiện trƣớc để một ngƣời sử dụng nhận đƣợc tƣ vấn một cách nhanh chóng hơn.
Kỹ thuật tư vấn dựa trên mặt hàng Item-based bao gồm những bước sau: - Bước 1: Xây dựng cở sở dữ liệu so sánh giữa các phim: dựa trên bƣớc 1, 2 của kỹ thuật mặt hàng phù hợp (Matching Product), hệ thống cần xây dựng tập dữ liệu các bộ phim tƣơng tự, tính toán độ tƣơng tự giữa các bộ phim đó và sắp xếp lại theo độ tƣơng tự để có danh sách từng phim với các phim tƣơng đồng với nó nhất.
- Bước 2: Đƣa ra danh sách phim tƣ vấn: chúng ta có thể nhận đƣợc tất cả các phim mà ngƣời xem đã đánh giá, tìm thấy những phim tƣơng tự, và độ tƣơng tự giữa các phim. Bảng dƣới đây là ví dụ cho thấy quá trình của việc tìm kiếm các tƣ vấn bằng phƣơng pháp tƣ vấn dựa trên mặt hàng mà cụ thể ở đây là các bộ phim. Không giống nhƣ phƣơng pháp tƣ vấn dựa trên ngƣời dùng (User-based), ngƣời dùng không tham gia ở đây mà thay vào đó là một mạng lƣới các phim ngƣời dùng cần tƣ vấn đánh giá cao nhất so với các phim ngƣời dùng cần tƣ vấn không đánh giá.
NGUYỄN THÙY TRANG – K43 TIN HỌC KINH TẾ Trang 54 Mỗi hàng có một bộ phim mà ngƣời xem đang xét đã từng thấy hoặc xem, cùng với đánh giá cá nhân của ngƣời xem đang xét cho bộ phim đó. Đối với tất cả các bộ phim mà ngƣời xem đang xét chƣa thấy hoặc chƣa xem, có một cột cho thấy điểm tƣơng đồng của những bộ phim đó đối với các phim đã thấy hoặc, ví dụ: số điểm
tƣơng đồng giữa Superman và The Night Listener là 0,103. Các cột bắt đầu với Rx tính
bằng đánh giá của bộ phim nhân điểm tƣơng đồng, ví dụ: điểm đánh giá Superman là
4,0 thì R.xNight trên hàng Superman là 4.0 × 0,103 = 0,412.
Hàng Total cho thấy tổng số điểm tƣơng đồng và tổng số của các cột Rx cho mỗi bộ phim. Để dự đoán đánh giá của ngƣời xem đang xét cho mỗi bộ phim, chỉ cần
chia Total cho cột Rx ở cột tƣơng tự. Đánh giá dự đoán cho The Night Listener sẽ
bằng 1.378/0.433 = 3,183.
Từ đó, chúng ta có thể nhận đƣợc danh sách các phim tƣ vấn dựa trên chính các phim mà bản thân đã đánh giá trƣớc đó.
Độ phức tạp của thuật toán:
Với việc sử dụng hai bƣớc của thuật toán mặt hàng phù hợp, thuật toán này tƣơng tự bao gồm các vòng lặp for để kiểm tra số ngƣời dùng đánh giá chung và vòng lặp để tính toán danh sách 20 láng giềng gần nhất có độ phức tạp có độ phức tạp thuật
toán là ; trong mỗi vòng lặp tính toán , , , , cần cập nhật lại
giá trị tổng sau đó và mỗi vòng lặp có độ phức tạp là . Vòng lặp để thực hiện
đƣa ra danh sách phim tƣ vấn có độ phức tạp thuật toán . Vậy độ phức tạp thuật
toán tƣ vấn dựa trên mặt hàng là .
Đối với thuật toán Item-based, việc tính toán độ tƣơng tự giữa các phim với nhau là khá mất thời gian. Ở đây, chúng ta cần chú ý ở bƣớc tính toán bộ dữ liệu độ tƣơng tự giữa các phim với nhau, nếu chúng ta tính toán theo cách chạy ma trận 1682 x 1682 bộ phim thì việc mất thời gian và hao phí bộ nhớ là quá rõ ràng. Bên cạnh đó, chúng ta không thể lặp lại việc tính toán đó mỗi lần truy cập vào một tên phim bất kì để đƣa ra tƣ vấn. Thông thƣờng, để giải quyết vấn đề này, ta có thể tính toán bộ dữ liệu độ tƣơng tự giữa các phim theo định kỳ (ví dụ: 1 tháng) vì trong khoảng thời gian đó, dù dữ liệu có thay đổi cũng là không đáng kể. Với cách này, hệ thống sẽ tính toán
NGUYỄN THÙY TRANG – K43 TIN HỌC KINH TẾ Trang 55 nhanh hơn và thời gian đƣợc rút ngắn đi. Tuy nhiên chúng ta cũng cần nhìn nhận rằng, hệ thống chỉ có thể biết đƣợc ngƣời dùng đã đánh giá phim nào nên nó lại hoàn toàn có thể đề xuất những bộ phim ngƣời đó đã xem nhƣng chƣa đánh giá.
Đánh giá độ phức tạp thuật toán của ba kỹ thuật:
Theo nhƣ phân tích độ phức tạp thuật toán của ba kỹ thuật trên, ta có thể thấy
tốc độ của kỹ thuật tƣ vấn dựa trên ngƣời dùng (User-based) là chậm nhất ( , kỹ
thuật tƣ vấn dựa trên mặt hàng có tốc độ vừa phải và kỹ thuật tƣ vấn mặt hàng
phù hợp là nhanh nhất .
Tuy nhiên, đây chỉ là so sánh một phía dựa trên kết quả tính toán độ phức tạp. Việc sử dụng kỹ thuật nào còn phụ thuộc vào mức độ thƣa thớt dữ liệu, đặc trƣng hệ thống và bộ dữ liệu. Ví dụ nhƣ: nếu bộ dữ liệu nhỏ và bộ nhớ thay đổi thƣờng xuyên thì nên dùng kỹ thuật tƣ vấn dựa trên ngƣời dùng (User-based), nếu bộ dữ liệu lớn và bộ nhớ ít thay đổi thì nên sử dụng kỹ thuật tƣ vấn dựa trên các mặt hàng (Item-based), còn kỹ thuật tƣ vấn mặt hàng phù hợp tuy nhanh nhƣng lại không đáp ứng tối đa nhu cầu ngƣời dùng khi không thể phân biệt các phim đã đƣợc đánh giá bởi ngƣời dùng hay chƣa.