Tải bản đầy đủ (.docx) (43 trang)

SKKN nghiên cứu về hệ thống khuyến nghị và ứng dụng trong bài toán gợi ý bộ phim liên quan

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 (762.89 KB, 43 trang )

MỤC LỤC
PHẦN MỞ ĐẦU................................................................................................................ 3
Chương 1............................................................................................................................ 5
TỔNG QUAN VỀ HỆ THỐNG KHUYẾN NGHỊ............................................................5
1.1 Hệ thống khuyến nghị..........................................................................................5
1.2 Cách thức hoạt động của hệ thống khuyến nghị..................................................6
1.3 Các chức năng của hệ thống khuyến nghị............................................................9
1.4 Các phương pháp khai thác dữ liệu được sử dụng...............................................9
1.4.1 Khuyến nghị dựa trên nội dung (Content - Based Recommendation
System)..................................................................................................................... 10
1.4.2 Khuyến nghị lọc cộng tác để đánh giá tương quan (Collaborative
Filtering Recomnendation System)..........................................................................10
1.4.3 Kết hợp các phương pháp (Hybrid):.......................................................12
1.5 Đánh giá các phương pháp.................................................................................13
CHƯƠNG 2..................................................................................................................... 15
PHƯƠNG PHÁP LỌC CỘNG TÁC................................................................................15
2.1 Lọc cộng tác dựa trên sản phẩm (Item-based Collaborative Filtering)..............15
2.2 Các thuật tốn tính độ tương tự..........................................................................17
2.2.1 Độ tương tự Cosine (Cosine-based Similarity).......................................18
2.2.2 Độ tương tự dựa theo khoảng cách Euclidean điều chỉnh (Adjusted
Euclidean Distance similarity)..................................................................................19
2.2.3 Độ tương tự tương quan (correlation-based similarity)...........................21
2.2.4 Độ tương tự cosine điều chỉnh (Adjusted Cosine similarity)..................22
2.3 Tính tốn dự đốn và gợi ý................................................................................24
2.3.1 Cơng thức dự dốn dựa trên trung bình đánh giá sản phẩm lân cận........24
2.3.2 Cơng thức dự đoán dựa trên tổng trọng số (Weighted Sum)...................25

0


2.3.3 Cơng thức dự đốn dựa trên tổng trọng số với đánh giá trung bình của


người dùng...............................................................................................................26
2.3.4 Cơng thức dự đốn dựa trên tổng trọng số với trung bình đánh giá lên sản
phẩm......................................................................................................................... 27
2.4 Đánh giá các yếu tố ảnh hưởng đến độ chính xác kết quả gợi ý........................28
2.4.1 Đánh giá chất lượng của hệ thống gợi ý..................................................28
2.4.2 Các yếu tố ảnh hưởng đến độ chính xác gợi ý........................................29
CHƯƠNG 3..................................................................................................................... 31
HỆ THỐNG GỢI Ý BỘ PHIM LIÊN QUAN..................................................................31
3.1 Dữ liệu thử nghiệm và phương pháp đánh giá...................................................31
3.1.1 Mô tả dữ liệu...........................................................................................31
3.1.2 Phương pháp đánh giá chất lượng của hệ thống gợi ý.............................31
3.2. Cài đặt thuật toán..............................................................................................32
3.2.1 Cài đặt thuật toán tính độ tương tự..........................................................32
3.2.2 Cài đặt thuật tốn dự đốn gợi ý.............................................................35
3.3 Kết quả thử nghiệm...........................................................................................39
3.3.1 Thử nghiệm gợi ý với số lượng lân cận khác nhau:................................39
3.3.2 Thử nghiệm gợi ý với các độ tương tự khác nhau...................................40
3.3.3 Thử nghiệm gợi ý với các cơng thức dự đốn:........................................41
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN........................................................................43
Những kết quả đạt được và mặt hạn chế..................................................................43
Hướng phát triển của đề tài......................................................................................43
TÀI LIỆU THAM KHẢO................................................................................................44

1


PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Người dùng các hệ thống thông tin, các trang thương mại điện tử, thường gặp khó
khăn trong việc tìm kiếm các thơng tin cần thiết và phù hợp, như việc chọn mua một sản

phẩm phù hợp, hoặc việc lên kế hoạch cho một chuyến đi du lịch; vì người sử dụng có
nhiều lựa chọn, nhưng khơng có đủ thời gian hoặc kiến thức để tự đánh giá những lựa
chọn này và đưa ra quyết định hợp lý. Bạn chọn nghe bài hát nào giữa hàng ngàn bài hát
được cung cấp bởi các trang web nghe nhạc, hay xem video trong số hàng trăm triệu
video được tải lên Youtube. Bạn có thể tìm sự trợ giúp với cơng cụ tìm kiếm với những từ
khóa cụ thể. Nhưng với trường hợp, bạn không biết rõ sự ưu tiên của mình, cơng cụ tìm
kiếm khó có thể phát huy tác dụng, lúc này bạn cần đến sự giúp đỡ của hệ thống khuyến
nghị. Các hệ thống khuyến nghị (Recommender System) là công cụ hỗ trợ ra quyết định,
nhằm mục đích cung cấp cho người sử dụng những gợi ý về thông tin, sản phẩm, và dịch
vụ phù hợp nhất với yêu cầu và sở thích riêng của từng người tại từng tình huống yêu cầu
cụ thể.
Với sự trợ giúp của hệ thống khuyến nghị, chúng ta cịn có thể tìm hiểu sở thích
của mình và chia sẻ cho cộng đồng. Hoạt động của hệ thống khuyến nghị có thể hiểu đơn
giản là q trình tìm kiếm hoạt động của những người dùng tương tự khi nghe nhạc, đánh
giá phim, hay đọc tin tức... Những đề xuất được hệ thống khuyến nghị đưa ra giúp người
dùng lựa chọn nội dung đáng quan tâm tiếp theo, và kết quả đề xuất đơi khi cũng gây bất
ngờ và ngồi sự mong đợi của người dùng.
Vai trò quan trọng của hệ thống khuyến nghị ngày càng được thể hiện rõ, trở thành
một cơng cụ hữu hiệu đối phó với vấn đề quá tải thông tin.
Tôi đã chọn “Nghiên cứu về hệ thớng khuyến nghị và ứng dụng trong bài tốn gợi
ý bộ phim liên quan” làm đề tài Sáng kiến kinh nghiệm của mình.

2


2. Mục đích nghiên cứu
Mục tiêu đặt ra của luận văn trong đề tài này là: Tìm hiểu tổng quan về hệ thống
khuyến nghị, các phương pháp được sử dụng trong hệ thống khuyến nghị ứng dụng trong
bài toán gợi ý bộ phim liên quan.
Mục tiêu cụ thể là tìm hiểu phương pháp lọc cộng tác dựa trên sản phẩm, tìm hiểu

các thuật tốn tính độ tương tự và dự đoán, đánh giá và so sánh chất lượng khuyến nghị
của các thuật toán.
3. Đối tượng và phạm vi nghiên cứu
Nghiên cứu các phương pháp tính độ tương tự, và dự đoán trong hệ thống khuyến
nghị lọc cộng tác dựa trên sản phẩm (item) với các tập dữ liệu phim trên hệ thống Group
Lens
4. Phương pháp nghiên cứu
Nghiên cứu lý thuyết, phân tích q trình thực hiện, mơ phỏng, cài đặt thuật toán,
so sánh đánh giá và rút ra kết luận từ các kết quả thu được.

3


Chương 1
TỔNG QUAN VỀ HỆ THỐNG KHUYẾN NGHỊ

1.1 Hệ thống khuyến nghị
Hệ thống khuyến nghị (Recommender Systems – RS) được ứng dụng rất thành cơng
trong dự đốn sở thích/thói quen của người dùng dựa vào sở thích/thói quen của họ trong
quá khứ. RS đang được ứng dụng trong rất nhiều lĩnh vực khác nhau như thương mại
điện tử (hỗ trợ bán hàng trực tuyến), giải trí (khuyến nghị phim ảnh, bài hát,..), giáo dục
đào tạo (khuyến nghị nguồn tài nguyên học tập, nghiên cứu,..). Chính vì khả năng ứng
dụng rộng rãi của nó, RS mở ra nhiều tiềm năng trong nghiên cứu cũng như trong xây
dựng các hệ thống thực tế, đặc biệt là các hệ hỗ trợ người dùng ra quyết định.
Trong RS, thông thường người ta quan tâm đến ba thơng tin chính là người dùng
(user), mục tin (item, item có thể là sản phẩm, bộ phim, bài hát, bài báo,.. tùy hệ thống),
và phản hồi (feedback) của người dùng trên mục tin đó (thường là các xếp hạng/đánh
giá – rating biểu diễn mức độ thích/quan tâm của họ). Các thông tin này được biểu diễn
thông qua một ma trận như trong Hình 1.1. Ở đó, mỗi dịng là một user, mỗi cột là một
item, và mỗi ô là một giá trị phản hồi (ví dụ, xếp hạng) biểu diễn “mức độ thích” của user

trên item tương ứng. Các ơ có giá trị là những item mà các user đã xếp hạng trong quá
khứ. Những ô trống là những item chưa được xếp hạng (điều đáng lưu ý là mỗi user chỉ
xếp hạng cho một vài item trong q khứ, do vậy có rất nhiều ơ trống trong ma trận này –
còn gọi là ma trận thưa – sparse matrix) [7].

Hình 1.1. Ma trận biểu diễn dữ liệu trong RS (user-item-rating matrix)
Nhiệm vụ chính của RS là dựa vào các ơ đã có giá trị trong ma trận trên (dữ liệu thu

4


được từ q khứ), thơng qua mơ hình đã được xây dựng, RS dự đốn các ơ cịn trống (của
user hiện hành), sau đó sắp xếp kết quả dự đốn (ví dụ, từ cao xuống thấp) và chọn ra
Top-N items theo thứ tự, từ đó gợi ý chúng cho người dùng.
Theo Adomavicius và Tuzhilin trong [2], trong hầu hết các trường hợp, bài toán
khuyến nghị được coi là bài toán ước lượng đánh giá (rating) của các sản phẩm (phim,
cd, sách, nhà hàng,…) chưa được người dùng xem xét. Việc ước lượng này thường dựa
trên các đánh giá đã có của chính người dùng đó hoặc những người dùng khác. Những
sản phẩm có hạng cao nhất sẽ được dùng để khuyến nghị
Một cách hình thức:
- Gọi U là một tập hợp n người dùng (user), |U| = n, và u là một người dùng cụ thể
nào đó (u  U).
- Gọi I là một tập hợp m mục thông tin (item), |I| = m, và i là một mục thông tin cụ
thể nào đó (i  I).
- Gọi R là một tập hợp các giá trị phản hồi của người dùng (các phản hồi này
thường là ‘sở thích’ (preference) của người dùng) và rui  R (R   ) là xếp hạng của
người dùng u trên mục thông tin i.
- Gọi Dtrain  U × I × R là tập dữ liệu huấn luyện
- Gọi Dtest  U × I × R là tập dữ liệu kiểm thử.
- Gọi r: U × I  R


(u, i) ↦ rui

Mục tiêu của RS là tìm một hàm rˆ : U × I   Sao cho một hàm  (r, rˆ ) thỏa
mãn một điều kiện nào đó. Ví dụ, nếu  là một hàm ước lượng độ chính xác thì nó cần
phải được tối đa hóa, cịn nếu  là hàm để đo độ lỗi như Root Mean Squared Error

thì nó cần phải được tối tiểu.

(1.1)

1.2 Cách thức hoạt động của hệ thống khuyến nghị
Nếu chúng ta thấy quá trình khuyến nghị như một hộp đen, như thể hiện trong hình
1.2, và xác định hai nguồn thơng tin cần thiết: user profile – thông tin người dùng, item
data – thông tin các sản phẩm như đầu vào cho quá trình khuyến nghị. Các thông tin này

5


có thể được lưu trữ theo các dữ liệu có cấu trúc, hoặc cũng có thể được rút ra từ các
nguồn dữ liệu phi cấu trúc: website liên quan, hành vi mua sắm… Thông tin về các sản
phẩm, dịch vụ dưới nhiều dạng khác nhau: siêu dữ liệu (metadata), hoặc thơng tin về các
đặc tính của sản phẩm, hoặc chính sản phẩm đó với trường hợp dữ liệu điện tử. Trong
trường hợp sản phẩm âm thanh (audio), video, các thông tin mà hệ khuyến nghị cần lưu
trữ và thực hiện có kích thước lớn, với nhiều chiều. Kết quả đầu ra của hệ khuyến nghị
được thể hiện trong hình dưới đây, là một tập các khuyến nghị cho người sử dụng. Các đề
xuất này phụ thuộc vào phương pháp hệ khuyến nghị, nhưng cụ thể là một tập danh sách
sản phẩm, các thơng tin vắn tắt, hình chụp…

Hình 1.2: Thơng tin người dùng và các sản phẩm đầu vào

Quá trình hoạt động được thể hiện chi tiết hơn trong hình 1.3, bao gồm các bước
sau: tập hợp thông tin, lựa chọn, chuyển đổi, cấu trúc hóa thơng tin, và biểu diễn thơng
tin. Tất cả các bước được trình bày trong hình 1.3 dưới đây là mơ tả cụ thể các bước:
- Tập hợp thông tin (Information Recollection): các thông tin lưu trữ không được
thực hiện bởi hệ khuyến nghị, nhưng nó đóng một vai trị quang trọng. Nó bao gồm các
thông tin cá nhân người sử dụng, lịch sử các giao dịch, thông tin về sự ưu tiên của người
dùng (user preference), và thông tin về sản phẩm như metadata, đặc tính sản phẩm. Bước
này đóng một vai trị quan trọng, vì nó là cơ sở cho tồn bộ q trình hệ gợi ý thực hiện
dự đốn và đưa ra gợi ý cho người dùng. Nếu thông tin thu thập không đầy đủ, hay mâu
thuẫn; hệ thống khuyến nghị sẽ khơng thể thực hiện chức năng dự đốn, đưa ra đề xuất.
Vì lí do này, cần đặc biệt lưu ý q trình thu thập thơng tin vì nó phản ánh sở thích người
dùng, thơng tin sản phẩm, dịch vụ.

6


- Lựa chọn thông tin (Selection): Bước lựa chọn bao gồm việc xác định những thông
tin liên quan trực tiếp đến q trình xử lí, dự đốn. Cách lựa chọn tập thông tin phu thuộc
chặt chẽ và phương pháp tiếp cận của hệ thống. Từ tập thông tin lựa chọn, giúp chúng ta
xác định được độ tương quan giữa hai sản phẩm bất kì, hoặc hai người dùng.
- Chuyển đổi thơng tin (Transformation): mục tiêu chính của bước chuyển đổi là
thực hiện các biến đổi thông tin, xây dựng các mơ hình, các hàm từ dữ liệu đã được xử lí
trong hai bước đầu, biểu diễn thơng tin dưới dạng quy định của hệ khuyến nghị, thực hiện
các dự đoán.
- Cấu trúc thơng tin (Structuring): Cấu trúc thơng tin có liên quan đến việc cấu trúc,
tổ chức thông tin mà người dùng duyệt qua các thông tin đề xuất đưa ra. Bước này bao
gồm các hoạt động như nhóm các sản phẩm, xếp hạng các sản phẩm, phân loại, liên kết
các sản phẩm có quan hệ với nhau…
- Trình bày thơng tin (Presentation): Bước cuối cùng trong q trình khuyến nghị là
đưa ra các thông tin khuyến nghị cho người dùng theo các tiêu chuẩn: bố trí, định dạng

tài liệu, màu sắc, phông chữ…Đây là bước cuối cùng trong quá trình khuyến nghị, đưa
thơng tin đầu ra cho người dùng cụ thể.
- Thông tin phản hồi: Thu nhận các thông tin phản hồi là một bước thêm vào, tùy
theo mỗi hệ thống khuyến nghị. Mặc dù bước này là tùy chọn, nhưng nó giúp ích rất
nhiều trong việc cải thiện hoạt động, nâng cao kết quả của hệ khuyến nghị. Phản hồi của
người dùng được hệ thống ghi nhận với hai dạng tiềm ẩn(implicit), hoặc rõ ràng
(explicit). Với phản hồi rõ ràng (explicit feedback), người sử dụng cung cấp các thông
tin thể hiện mức độ ưu tiên với các sản phẩm liên quan. Các phản hồi tiềm ẩn (implicit
feedback) có được bằng cách thu thập, phân tích các hành vi người dùng: lịch sử duyệt
các sản phẩm, số lần viếng thăm, thời gian lưu lại ..

Hình 1.3: Đánh giá của người dùng về một số bộ phim đã xem
7


1.3 Các chức năng của hệ thống khuyến nghị
Hệ thống khuyến nghị là công cụ phần mềm với các đề xuất cho người dùng những
sản phầm, dịch vụ mà họ có thể muốn sử dụng. Dưới đây là một số chức năng của hệ
thống:
Tăng số lượng các mặt hàng bán ra cho các hệ thống thương mại điện tử: Đây có lẽ
là chức năng quan trọng nhất của hệ thống khuyến nghị. Thay vì người dùng chỉ mua một
sản phẩm mà họ cần, họ được khuyến nghị mua những sản phẩm ‘có thể họ cũng quan
tâm’ mà bản thân họ khơng nhận ra. Hệ thống khuyến nghị tìm ra những ‘mối quan tâm
ẩn’. Bằng cách đó, hệ thống khuyến nghị làm gia tăng nhu cầu của người dùng và gia
tăng số lượng mặt hàng bán ra. Tương tự đối với các hệ thống phi thương mại (như các
trang báo), hệ thống khuyến nghị sẽ giúp người dùng tiếp cận với nhiều đối tượng hơn.
Bán các mặt hàng đa dạng hơn trên các hệ thống thương mại điện tử: Đây là chức
năng quan trọng thứ hai của hệ thống khuyến nghị. Hầu hết các hệ thống thương mại đều
có các mặt hàng hết sức là đa dạng. Khi nắm bắt được nhu cầu của người dùng, hệ thống
khuyến nghị dễ dàng mang đến sự đa dạng trong sự lụa chọn hàng hóa.

Tăng sự hài lịng người dùng: Vai trị chủ đạo của hệ thống khuyến nghị là hiểu nhu
cầu của người dùng, khuyến nghị cho họ những thứ họ cần...Chính vì vậy hệ thống
khuyến nghị tăng sự hài lòng của người dùng trên hệ thống.
Tăng độ tin cậy, độ trung thực của người dùng: Một khi hệ thống khuyến nghị cho
người dùng những lựa chọn và họ hài lòng vể những khuyến nghị đó thì lịng tin của họ
đối với hệ thống (nơi mà giúp họ tìm ra những thứ họ thực sự quan tâm) được nâng lên
một cách đáng kể. Đây thật sự là một điều thích thú và thu hút người dùng. Có một điểm
quan trọng là hệ thống khuyến nghị hoạt động dựa trên những xếp hạng thật từ chính bản
thân người dùng trong q khứ. Do đó, khi người dùng càng tin cậy vào hệ thống, đưa ra
những đánh giá trung thực cho các sản phẩm, hệ thống sẽ mang lại cho người dùng nhiều
khuyến nghị chính xác hơn, phù hợp với nhu cầu, sở thích của họ [7].
1.4 Các phương pháp khai thác dữ liệu được sử dụng
Có rất nhiều cách để dự đốn, ước lượng hạng/điểm cho các sản phẩm như sử dụng
học máy, lí thuyết xấp sỉ, các thuật toán dựa trên kinh nghiệm … Theo [2], các hệ thống
khuyến nghị thường được phân thành ba loại:

8


1.4.1 Khuyến nghị dựa trên nội dung (Content - Based Recommendation System)
Khuyến nghị dựa trên nội dung được dựa trên sự sẵn có của mơ tả về đối tượng.
Phương pháp gợi ý dựa trên nội dung, dựa trên độ phù hợp r (u, i) của sản phẩm i với
người dùng u được đánh giá dựa trên độ phù hợp r (u, i’), trong đó i’ ϵ I và tương tự như
i. Ví dụ, để gợi ý một bộ phim cho người dùng u, hệ thống gợi ý sẽ tìm các đặc điểm của
những bộ phim từng được u đánh giá cao (như diễn viên, đạo diễn…); sau đó chỉ những
bộ phim tương đồng với sở thích của u mới được giới thiệu.
Hướng tiếp cận dựa trên nội dung bắt nguồn từ những nghiên cứu về thu thập thông
tin (IR-information retrieval) và lọc thơng tin (IF - information filtering). Do đó, rất nhiều
hệ thống dựa trên nội dung hiện nay tập trung vào gợi ý các đối tượng chứa dữ liệu text
như văn bản, tin tức, website… Những tiến bộ so với hướng tiếp cận cũ của IR là do việc

sử dụng hồ sơ về người dùng (chứa thông tin về sở thích, nhu cầu…). Hồ sơ này được
xây dựng dựa trên những thông tin được người dùng cung cấp trực tiếp (khi trả lời khảo
sát) hoặc gián tiếp (do khai phá thông tin từ các giao dịch của người dùng).
Khuyến nghị dựa trên nội dung có những ưu điểm:
Đầu tiên, nó khơng u cầu số lượng người sử dụng lớn để đạt được độ chính xác đề
nghị hợp lý.
Ngồi ra, các mặt hàng mới có thể được khuyến nghị ngay dựa trên thuộc tính có
sẵn.
Tuy nhiên, nhược điểm của khuyến nghị dựa trên nội dung là khi thông tin mô tả đối
tượng có chất lượng kém và bị lỗi. Trong một số trường hợp, những mô tả về nội dung rất
khó để so sánh và rút ra khuyến nghị, chẳng hạn so sánh nội dung của các file video,
audio...Việc phân tích nội dung của các đối tượng sản phẩm để đưa ra các sản phẩm
tương tự nhau, từ đó đưa ra các khuyến nghị cho người dùng vẫn chưa phản ánh đúng sở
thích của người dùng đó với các sản phẩm
1.4.2 Khuyến nghị lọc cộng tác để đánh giá tương quan (Collaborative Filtering
Recomnendation System)
Ý tưởng cơ bản của các hệ thống này là dựa vào các đánh giá của những người dùng
quá khứ lên các sản phẩm, dịch vụ để dự đoán sự đánh giá của họ lên các sản phẩm, dịch
vụ mà họ chưa đánh giá.

9


Bài toán lọc cộng tác (hay đánh giá độ tương quan) dựa trên hành vi quá khứ của
người dùng (trong việc đánh giá sản phẩm) để đưa ra dự đoán.
Đầu vào của bài toán là ma trận thể hiện những hành vi quá khứ, gọi là ma trận
Người dùng- Sản phẩm (m trận User x Item). Hàng là người dùng, cột là sản phẩm, giá trị
mỗi ô là đánh giá của người dùng lên sản phẩm đó.
Tùy theo hệ thớng mà đánh giá của người dùng được quy ước những giá trị nào.
Trong ví dụ này, các đánh giá có giá trị từ 1->5

Bảng 1.1: Minh họa đánh giá của người dùng về 1 số sản phẩm
Sản phẩm 1

Sản phẩm 2

Sản phẩm 3

Người dùng 1

1

0

5

Người dùng 2

4

2

2

Người dùng 3

0

0

0


Ở ma trận này, đánh giá của người dùng 1 đối với sản phẩm 1 là 1, sản phẩm 3 là 5,
sản phẩm 2 chưa được đánh giá.
Đầu ra của bài toán là: đánh giá của người dùng lên những sản phẩm mà họ chưa
đánh giá. Hệ thống khuyến nghị dựa trên các đánh giá này mà xếp hạng các sản phẩm và
gợi ý cho người dùng.
Trong ví dụ này, hệ thống khuyến nghị phải đưa ra dự đoán, người dùng 1 đánh giá
sản phẩm 2 là bao nhiêu. Người dùng 3 đánh giá sản phẩm 1, 2, 3 là bao nhiêu.
Hệ thống khuyến nghị lọc cộng tác dự đoán độ phù hợp u (c,s) của một sản phẩm s
với người dùng c dựa trên độ phù hợp u (c,s) giữa người dùng ci và c, trong đó ci là người
có cùng sở thích với c. Ví dụ, để khuyến nghị một bộ phim cho người dùng c, đầu tiên hệ
thống cộng tác tìm những người dùng khác có cùng sở thích phim ảnh với c. Sau đó,
những bộ phim được họ đánh giá cao sẽ được dùng để gợi ý cho c. Có nhiều hệ thống
cộng tác đã được phát triển như: Youtube (video), Amazon.com (sách)… Các hệ thống
này có thể chia thành hai loại: dựa trên kinh nghiệm (heuristic-based hay memory-based)
và dựa trên mơ hình (model-based).

10


1.4.3 Kết hợp các phương pháp (Hybrid):
Các cách tiếp cận khác nhau có những ưu điểm và nhược điểm riêng. Do đó cần
thiết kết hợp các kỹ thuật khác nhau để tận dụng ưu điểm và nhược điểm của các cách
tiếp cận để có được hệ thống khuyến nghị chính xác hơn.
Có thể phân thành bốn cách kết hợp như sau:
Cài đặt hai phương pháp riêng rẽ rồi kết hợp dự đốn của chúng: Có hai kịch bản
cho trường hợp này.
Cách 1: Kết hợp kết quả của cả hai phương pháp thành một kết quả chung duy nhất,
sử dụng cách kết hợp tuyến tính (linear combination) hoặc voting scheme.
Cách 2: Tại mỗi thời điểm, chỉ chọn phương pháp cho kết quả tốt hơn (dựa trên một

số độ đo chất lượng gợi ý nào đó). Ví dụ, hệ thống DailyLearner system chọn phương
pháp nào đưa ra khuyến nghị với độ chính xác (confidence) cao hơn.
Tích hợp các đặc trưng của phương pháp dựa trên nội dung vào hệ thống cộng tác:
Một số hệ thống lai (như Fab) dựa chủ yếu trên các kĩ thuật cộng tác nhưng vẫn duy trì
hồ sơ về người dùng (theo dạng của mơ hình dựa trên nội dung). Hồ sơ này được dùng để
tính độ tương đồng giữa hai người dùng, nhờ đó giải quyết được trường hợp có q ít sản
phẩm chung được đánh giá bởi cả hai người. Một lợi ích khác là các khuyến nghị sẽ
không chỉ giới hạn trong các sản phẩm được đánh giá cao bởi những người cùng sở thích
(gián tiếp), mà cịn cả với những sản phẩm có độ tương đồng cao với sở thích của chính
người dùng đó (trực tiếp).
Tích hợp các đặc trưng của phương pháp cộng tác vào hệ thống dựa trên đặc
trưng: Hướng tiếp cận phổ biến nhất là dùng các kĩ thuật giảm số chiều trên tập hồ sơ của
phương pháp dựa trên nội dung. Ví dụ, sử dụng phân tích ngữ nghĩa ẩn (latent semantic
analysis) để tạo ra cách nhìn cộng tác (collaborative view) với tập hồ sơ người dùng (mỗi
hồ sơ được biểu diễn bởi một vector từ khóa).
Xây dựng mơ hình hợp nhất, bao gồm các đặc trưng của cả hai phương pháp: đề
xuất kết hợp đặc trưng của cả hai phương pháp vào một bộ phân lớp dựa trên luật (rulebased classifier). Popescul và cộng sự trong đưa ra phương pháp xác suất hợp nhất dựa
trên phân tích xác suất ngữ nghĩa ẩn (probabilistic latent semantic analysis).

11


1.5 Đánh giá các phương pháp
Các phương pháp học trong hệ khuyến nghị đều có điểm mạnh và điểm yếu. Một số
vấn đề cần giải quyết trong hệ khuyến nghị:
Người dùng mới: Vì hệ thống đưa ra khuyến nghị dựa trên kết quả so sánh giữa
người dùng yêu cầu và những người dùng khác trong hệ thống thông qua đánh giá của
người dùng với sản phẩm, người dùng có ít đánh giá sẽ khó khăn hơn trong việc phân
loại người dùng.
Sản phẩm mới: Sản phẩm có ít đánh giá sẽ khó khăn cho việc đưa ra khuyến nghị.

Vấn đề xét tới ở đây “early rater”, những người đầu tiên đánh giá một sản phẩm sẽ nhận
được ít lợi ích từ việc đánh giá này.
Để giải quyết các vấn đề này, cần có cơ chế để người dùng cung cấp các thông tin
khởi tạo cần thiết (user profile) trước khi hệ thống có thể đưa các khuyến nghị.
Mức độ thưa của dữ liệu (sparsity): trong các hệ khuyến nghị, số lượng đánh giá của
người dùng được thu thập thường rất nhỏ so với số lượng người dùng nhân với số lượng
sản phẩm. Vì vậy yêu cầu đặt ra là một phương pháp dự đoán hoạt động hiệu quả trong cả
trường hợp dữ liệu thu thập không lớn.
Quy mô hệ thống (Scalability): hệ khuyến nghị cần được thiết kế để hoạt động tốt
cùng với sự tăng lên của số lượng người dùng và số lượng sản phẩm.

Hình: 1.4: So sánh hiệu năng của các hệ thống lọc

12


Một vài bài báo như đã thực hiện so sánh hiệu năng của hệ thống lai ghép với các hệ
thống dựa trên nội dung hoặc cộng tác thuần túy và cho thấy hệ thống lai ghép có độ
chính xác cao hơn.
Bảng 1.2: So sánh hiệu năng của hệ thống lọc
Phương pháp

Ưu điểm
1. Tri thức chun gia có thể
khơng áp dụng
2. Mức động: độ chính xác

Dựa trên nội dung
(content base)


nâng lên theo thời gian
3. Độ chính xác được cải

Nhược điểm
1. Vấn đề người dùng mới
2. Độ chính xác phụ thuộc
vào khối lượng dữ liệu
3. Vấn đề về sự ổn đinh,
tính mềm dẻo

thiện theo thời gian hoạt
động.
1. Áp dụng được với nhiều

Lọc cộng tác
(Collaborative)

loại sản phẩm
2. Tri thức chun gia có thể
khơng áp dụng
3. Độ chính xác được cải
thiện theo thời gian hoạt

1. Vấn đề người dùng mới
2. Vấn đề sản phẩm mới
3. Vấn đề “gray sheep”
4. Độ chính xác phụ thuộc
vào khối lượng dữ liệu
5. Vấn đề về sự ổn đinh,
tính mềm dẻo


động.
1. Áp dụng được với nhiều
dựa trên profile của người
dùng
(Demographic)

loại sản phẩm
2. Tri thức chun gia có thể
khơng áp dụng
3. Độ chính xác được cải
thiện theo thời gian hoạt

1. Vấn đề người dùng mới
2. Vấn đề “gray sheep”
3. Độ chính xác phụ thuộc
vào khối
4. Vấn đề về sự ổn đinh,
tính mềm dẻo

động.

Dựa trên tri thức (Knowledgebased)

1. Nhạy với sự thay đổi nhu

1. Có thể đưa ra gợi ý

cầu, sở thích người dùng.
2. Sử dụng các đặc điểm về


khơng cần trải qua q trình

dụng ích sản phầm
3. Ánh xạ giữa nhu cầu

học
2. Yêu cầu kiến thức
chuyên gia

người dùng và sản phẩm

13


CHƯƠNG 2
PHƯƠNG PHÁP LỌC CỘNG TÁC
Trong hệ thống khuyến nghị dựa trên lọc cộng tác, kết quả khuyến nghị dựa trên
dự đoán của người dùng với những người dùng lân cận, tuy nhiên điều này rất khó khăn
vì tính thiếu ổn định của người dùng trong hệ thống .Vì vậy chương này sẽ tìm hiểu mơ
hình lọc cộng tác dựa trên sản phẩm (Item-Based), quá trình thực hiện cũng như tìm hiểu
một số giải thuật tính độ tương tự của sản phẩm và giải thuật dự đoán.
2.1 Lọc cộng tác dựa trên sản phẩm (Item-based Collaborative Filtering)
Giải thuật gợi ý dựa trên sản phẩm nhằm đưa ra các dự đoán cho người dùng khác
với giải thuật lọc cộng tác dựa trên người dùng trong chương 1 bởi đối tượng được xét ở
đây là sản phẩm. Quá trình khuyến nghị bằng phương pháp lọc cộng tác dựa trên sản
phẩm sẽ tính tốn độ tương tự các sản phẩm, sau đó lựa chọn k sản phẩm tương tự {i 1,
i2,.., ik}. Khi những sản phẩm có độ tương tự nhất được tìm hết, dự đốn được tính tốn
dựa trên trung bình của đánh giá người dùng trên những sản phẩm tương tự. Đa số các đề
xuất mơ tả hai khía cạnh này, cụ thể là, việc tính tốn độ tương tự và các dự đoán sản

phẩm.
Sản phẩm ở đây là phim, và người dùng là các khách hàng đăng nhập vào 1 hệ
thống Webstie để xem phim. Mỗi người dùng được lưu trữ trên hệ thống với các hồ sơ
bao gồm thông tin cá nhân, và các đánh giá của người dùng đó với các bộ phim, đánh giá
theo thang điểm từ 1 sao đến 5 sao, với ý nghĩa là đánh giá càng cao thì người dùng càng
thích bộ phim đó . Công việc của hệ thống khuyến nghị là: khi một người dùng đăng
nhập vào hệ thống, hệ thống cần gợi ý những bộ phim cho người dùng đó và những bộ
phim được gợi ý đó được dự đốn là người dùng sẽ đánh giá cao. Hệ thống xem xét các
bộ phim mà người dùng chưa xem, so sánh độ tương tự giữa bộ phim đó với những bộ
phim khác. Độ tương tự 2 bộ phim được tính dựa trên những người dùng từng đánh giá
trên cả 2 bộ phim đó theo 1 thuật tốn tính xác suất. Bước cuối cùng của hệ thống khuyến
nghị là dự đoán đánh giá của người dùng với những bộ phim mà người dùng chưa xem,
lựa chọn những bộ phim được dự đốn có đánh giá cao để đưa vào danh sách gợi ý cho
người dùng.

14


Bài toán lọc cộng tác:
Cho danh sách người m người dùng U={u1, u2, … , um} và một danh sách n sản
phẩm I = {i1, i2,…, in}.
rui là đánh giá sản phẩm i của người dùng u. r nhận giá trị từ 0 đến 5. Với r=0 khi
sản phẩm i chưa được đánh giá bởi người dùng u.
Mỗi người dùng u có danh sách các sản phẩm Iu, mà người dùng đã đánh giá về
những sản phẩm đó.
u cầu:
Dự đốn giá trị số Pu,i, dự đoán khả năng sản phẩm i  Iu người dùng u.
Gợi ý danh sách Ip gồm N sản phẩm mà người dùng u thích nhất. Ip Iu = .
Cho một ví dụ có 9 người dùng đánh giá 9 sản phẩm, với mức độ từ 1 đến 5, nếu
người dùng không đánh giá sản phẩm thì giá trị là 0.

Bảng 2.1: Bảng đánh giá người dùng với các sản phẩm
Sản phẩm

Người
dùng

item 1

item 2

item 3

item 4

item 5

item 6

item 7

item 8

item 9

user 1

1

2


1

5

0

0

0

0

0

user 2

2

1

3

0

0

1

0


0

0

user 3

2

3

0

2

3

1

0

0

4

user 4

5

0


2

0

1

0

0

0

2

user 5

0

0

3

5

0

3

4


0

0

user 6

0

1

1

0

3

5

4

1

0

user 7

0

0


0

0

3

4

2

1

0

user 8

0

0

0

0

0

5

1


2

2

user 9

0

0

3

1

0

0

0

2

4

Các bước trong quá trình gợi ý theo phương pháp lọc cộng tác dựa trên sản phẩm:
Bước 1: Tiền xử lý dữ liệu: Dữ liệu được thu thập là những đánh giá sản phẩm của
người dùng. Dữ liệu thu thập thường rất lớn tuy nhiên một số đánh giá có thể khơng có
ích trong q trình gợi ý theo phương pháp lọc cộng tác. Đề xuất được đưa ra để tối ưu

15



dữ liệu đầu vào: một số sản phẩm hoặc người dùng sẽ được loại bỏ nếu người dùng đó
đánh giá quá ít sản phẩm, hoặc sản phẩm được quá ít đánh giá.
Bước 2: Xây dựng Ma trận đánh giá: Hàng là các người dùng, Cột là các sản
phẩm.
Bước 3: Tính độ tương tự của 2 sản phẩm, xây dựng Ma trận tương tự của các sản
phẩm.
Bước 4: Tính dự đốn của người dùng đối với sản phẩm dựa trên những sản phẩm
lân cận với sản phẩm dự đoán.
2.2 Các thuật tốn tính độ tương tự
Để dự đốn 1sản phẩm cho 1 người dùng sử dụng phương pháp lọc cộng tác cần
xem xét đánh giá của người dùng lên những sản phẩm tương tự với sản phẩm đó, độ
tương tự được xác định dựa vào đánh giá của các người dùng khác đã đánh giá cả 2 sản
phẩm. Độ tương tự 2 sản phẩm là 1 xác suất thể hiện 2 sản phẩm đó có tương đồng nhau
trên khía cạnh đánh giá của người dùng hay không? Độ tương tự ở đây được hiểu là nếu 2
sản phẩm tương tự nhau thì 1 người dùng thích sản phẩm này sẽ thích sản phẩm kia và
ngược lại.
Bước quan trọng trong giải thuật lọc cộng tác dựa trên sản phẩm là tính tốn độ
tương tự giữa các sản phẩm và sau đó chọn những sản phẩm mà tương đương nhất để sử
dụng trong cơng thức dự đốn. Ý tưởng cơ bản trong tính toán độ tương tự giữa hai sản
phẩm i và j là: chọn các cặp người dùng mà đã đánh giá cả 2 sản phẩm và sau đó áp dụng
kỹ thuật tính tốn độ tương tự để mơ tả độ tương tự Si,j.

16


1

2


1
2

3

i
R
0

j
R
R

n-1 n

Độ tương tự
Item-Item được tính
u

R

R

tốn chỉ xem xét
những item cùng
được đánh giá.

m-1
m


R
R

R
0

Hình 2.1 : Tách các sản phẩm cùng được đánh giá và tính tốn độ tương tự
2.2.1 Độ tương tự Cosine (Cosine-based Similarity)
Trong trường hợp này, cả 2 sản phẩm được biểu diễn thông qua 2 véc-tơ m chiều không
gian đánh giá của người dùng. Độ tương tự giữa chúng được đo dựa trên tính tốn cosine
góc giữa 2 véc-tơ đó. Trong ma trận đánh giá mxn, độ tương tự giữa hay sản phẩm i và j,
biểu diễn là sim(i,i) được cho bởi cơng thức:
(2.1)
Trong đó:
Rui là đánh giá của người dùng u với sản phẩm i
Ruj là đánh giá của người dùng u với sản phẩm j
S là tập các người dùng đã đánh giá cả 2 sản phẩm i,j
Mỗi một sản phẩm được đánh giá bởi n người dùng và được xác định như là 1 véctơ n chiều trong công thức này, ở đây những người dùng được chọn là những người đã
đánh giá cả 2 sản phẩm i và j. Như vậy theo công thức ở trên, kết quả là cosine của góc
hợp giữa 2 véc-tơ đó. Và vì các đánh giá là dương nên, cosine của 2 véc-tơ bằng 1 thể
hiện 2 sản phẩm tương tự nhau hoàn toàn với những đánh giá của người dùng, cosine của
2 véc-tơ bằng 0, thể hiện 2 sản phẩm này không tương tự nhau.

17


Dựa vào cơng thức tính độ tương tự ở trên, ta có bảng tính độ tương tự từ Bảng
đánh giá được cho trong Bảng 2.1 như sau:
Bảng 2.2: Bảng tính độ tương tự theo công thức Cosine

item
1

item 2

item 3

item 4

item 5

item 6

item 7

item 8

item 9

item 1

1.000

0.891

0.830

0.747

0.646


1.000

0.000

0.000

0.747

item 2

0.891

1.000

0.739

0.824

0.894

0.522

1.000

1.000

1.000

item 3


0.830

0.739

1.000

0.739

0.707

0.659

0.894

0.990

0.992

item 4

0.747

0.824

0.739

1.000

1.000


0.998

1.000

1.000

0.949

item 5

0.646

0.894

0.707

1.000

1.000

0.891

0.949

1.000

0.990

item 6


1.000

0.522

0.659

0.998

0.891

1.000

0.854

0.955

0.614

item 7

0.000

1.000

0.894

1.000

0.949


0.854

1.000

0.713

1.000

item 8

0.000

1.000

0.990

1.000

1.000

0.955

0.713

1.000

0.949

item 9


0.747

1.000

0.992

0.949

0.990

0.614

1.000

0.949

1.000

Bảng 2.2 thể hiện độ tương tự giữa các sản phẩm theo cách tính độ tương tự cosine.
Sim(i,j) thể hiện độ tương tự của 2 sản phẩm i, j, với những cặp sản phẩm cùng được
đánh giá. Giá trị này dao động từ 0-1, với ý nghĩa 1 là những sản phẩm có giá trị tương tự
nhau hoàn toàn, giá trị độ tương tự của 2 sản phẩm càng cao có nghĩa là 2 sản phẩm đó
khả năng được đánh giá tương đồng nhau bởi người dùng.
2.2.2 Độ tương tự dựa theo khoảng cách Euclidean điều chỉnh (Adjusted Euclidean
Distance similarity)
Độ đo tương tự dựa theo khoảng cách Euclidean điều chỉnh (AED) là dựa trên
khoảng cách trung bình của 2 véc-tơ trong không gian nhiều chiều. Khoảng cách
Euclidean có thể được sử dụng để ước lượng độ tương tự một cách khá tốt, nhưng AED
khác phương pháp tính khoảng cách ƠClit thông thường. Trong hệ thống gợi ý, vì có các

sự khác nhau giữa các cặp người dùng về số sản phẩm được đánh giá, khoảng cách ƠClit
giữa những người dùng thường được tính tốn trong khơng gian nhiều chiều khác nhau.
Vì vậy, nó mất ít hướng hơn để đặt chúng tham gia trong độ đo tương tự. Ví dụ nếu người
dùng a và người dùng b cả 2 cùng đánh giá giống nhau 36 sản phẩm, và người dùng c và
người dùng d cùng đánh giá giống nhau 183 sản phẩm, khơng có ý nghĩa khi đề cập đến
18


khoảng cách ƠClit của (a, b) và (c, d), bởi vì, khoảng cách ƠClit (a,b) là được tính tốn
trên khơng gian 36 chiều, ƠClit(c,d) được tính tốn trên khơng gian 183 chiều. Gọi
Eudist là khoảng cách ƠClit của các cặp véc-tơs trong không gian véc tơ nhiều chiều,
Eudistmax là khảng cách ƠClit lớn nhất trên khơng gian véc-tơ đó. Độ tương tự giữa 2
véc-tơ được định nghĩa là: 1- Eudist/Eudistmax
Gọi Vmin và Vmax là đánh giá thấp nhất và cao nhất trong hệ thống gợi ý thông
thường và mỗi người sử dụng trong hệ thống gợi ý có cùng mức độ đánh giá trong
khoảng từ Vmin đến Vmax. Một không gian véc-tơ m chiều, véc-tơ , là vec tơ được đánh
giá của sản phẩm i và sản phẩm j. Dist(, ) là khoảng cách ƠClit của 2 véc-tơ và. Distmax
là khoảng cách ƠClit trong không gian véc-tơ m chiều mà mỗi đánh giá trong mỗi chiều
nằm trong phạm vi Vmin và Vmax . Cơng thức tính độ tương tự giữa 2 sản phẩm dựa trên
điều chỉnh khoảng cách ƠClit được cho như sau:

Rui là đánh giá của người dùng u với sản phẩm i

(2.2)

Ruj là đánh giá của người dùng u với sản phẩm j
S là tập các người dùng đã đánh giá cả 2 sản phẩm i,j
là đánh giá cao nhất của người dùng k
là đánh giá thấp nhất của người dùng k
m là số những người dùng mà đánh giá cả 2 sản phẩm i, j

Dựa vào công thức tính độ tương tự ở trên, ta có bảng tính độ tương tự từ Bảng
đánh giá được cho trong Bảng 2.1 như sau:

19


Bảng 2.3: Bảng tính độ tương tự theo cơng thức Euclidean Điều Chỉnh
item 1

item 2

item 3

item 4

item 5

item 6

item 7

item 8

item 9

item 1

1.000

0.667


0.250

1.000

0.000

0.667

0.000

0.000

0.250

item 2

0.667

1.000

1.000

0.667

0.500

0.000

0.250


1.000

0.667

item 3

0.250

1.000

1.000

0.333

0.500

0.000

0.250

0.667

0.667

item 4

1.000

0.667


0.333

1.000

0.667

0.000

0.500

0.667

0.000

item 5

0.000

0.500

0.500

0.667

1.000

0.667

0.667


0.333

0.750

item 6

0.667

0.000

0.000

0.000

0.667

1.000

0.000

0.250

0.250

item 7

0.000

0.250


0.250

0.500

0.667

0.000

1.000

0.750

0.750

item 8

0.000

1.000

0.667

0.667

0.333

0.250

0.750


1.000

0.333

item 9

0.250

0.667

0.667

0.000

0.750

0.250

0.750

0.333

1.000

2.2.3 Độ tương tự tương quan (correlation-based similarity)
Trong trường hợp này, độ tương tự giữa 2 sản phẩm i và j là được đo dựa trên tính
tốn độ tương quan Pearson-r là: corr(i, i). Để tính tốn độ tương quan này một cách
chính xác, đầu tiên phải xét các cặp sản phẩm đã đươc đánh giá bởi người dùng u, biểu
diễn trong Hình 2.1.

Độ tương tự của 2 sản phẩm i, j được cho bởi cơng thức sau:

Trong đó:

(2.3)

Rui là đánh giá của người dùng u với sản phẩm i
là đánh giá trung bình sản phẩm i cuả các người dùng
Ruj là đánh giá của người dùng u với sản phẩm j
là đánh giá trung bình sản phẩm j của các người dùng
S là tập các người dùng đã đánh giá cả 2 sản phẩm i, j
Dựa vào công thức tính độ tương tự ở trên, ta có bảng tính độ tương tự thể hiện
trong Bảng 2.4 từ bảng đánh giá được cho trong Bảng 2.1
Bảng 2.4: Bảng tính độ tương tự theo công thức tương quan
20


item 1

item 2

item 3

item 4

item 5

item 6

item 7


item 8

item 9

item 1

1.000

0.634

0.526

0.031

0.165

-1.000

0.000

0.000

0.453

item 2

0.634

1.000


-0.140

0.611

0.774

-0.281

1.000

1.000

1.000

item 3

0.526

-0.140

1.000

0.288

-0.669

-0.225

0.486


0.866

0.995

item 4

0.031

0.611

0.288

1.000

1.000

0.497

1.000

-1.000

0.110

item 5

0.165

0.774


-0.669

1.000

1.000

0.584

0.872

1.000

0.954

item 6

-1.000

-0.281

-0.225

0.497

0.584

1.000

0.615


0.855

-0.122

item 7

0.000

1.000

0.486

1.000

0.872

0.615

1.000

0.217

-1.000

item 8

0.000

1.000


0.866

-1.000

1.000

0.855

0.217

1.000

0.857

item 9

0.453

1.000

0.995

0.110

0.954

-0.122

-1.000


0.857

1.000

Bảng 2.4 thể hiện độ tương tự của 2 sản phẩm i, j theo cơng thức tính độ tương tự
tương quan. Khoảng giá trị nằm trong đoạn [-1,1] thể hiện mức độ tương tự theo mức
tăng dần. Giá trị độ tương tự càng lớn thể hiện sự tương đồng về mặt đánh giá của 2 sản
phẩm i, j. Giá trị đánh giá trung bình là đánh giá trung bình của các người dùng đối với
sản phẩm i. Sự tham gia của giá trị đánh giá trung bình làm tăng tính khách quan đối với
các đánh giá lên sản phẩm i.
2.2.4 Độ tương tự cosine điều chỉnh (Adjusted Cosine similarity)
Tính tốn độ tương tự sử dụng độ đo cosine trong trường hợp dựa trên sản phẩm có
một sự trở ngại quan trọng: những sự khác nhau trong thang đánh giá giữa các người
dùng khác nhau không được đưa vào tài khoản. Độ tương tự cosine điều chỉnh khắc phục
nhược điểm này bằng cách trừ trung bình người dùng tương ứng với mỗi cặp đánh giá.
Độ tương tự giữa sản phẩm i và j được cho bởi cơng thức sau:

Trong đó:

(2.4)

Rui là đánh giá của người dùng u với sản phẩm i
Ruj là đánh giá của người dùng u với sản phẩm j
là đánh giá trung bình của người dùng u
S là tập các người dùng đã đánh giá cả 2 sản phẩm i, j

21



Dựa vào cơng thức tính độ tương tự ở trên, ta có bảng tính độ tương tự từ Bảng
đánh giá được cho trong Bảng 2.5.
Bảng 2.5 thể hiện độ tương tự của 2 sản phẩm i, j theo công thức tính độ tương tự
cosine điều chỉnh. Khoảng giá trị nằm trong đoạn [-1,1] thể hiện mức độ tương tự theo
mức tăng dần. Giá trị độ tương tự càng lớn thể hiện sự tương đồng về mặt đánh giá của 2
sản phẩm i, j. Sự thay đổi của cơng thức tính độ tương tự này so với cơng thức tính độ
tương tự cosine là sự tham gia của giá trị đánh giá trung bình . là đánh giá trung bình của
các người dùng đối với các sản phẩm mà người dùng u đã đánh giá. Xem xét giá trị này,
giả sử 1 người sử dụng u đánh giá 1 sản phẩm với giá trị đánh giá [1, 5] với, với người u
này cho đánh giá 1 với các sản phẩm họ khơng thích và 3 với cách sản phẩm họ rất thích,
một người dùng u’ đánh giá các sản phẩm họ khơng thích là 3 và những sản phẩm họ
thích là 5, giá trị sẽ trở thành giá trị phân biệt giữa thích và khơng thích, tạo ra sự cân đối
hơn với các giá trị R tham gia đánh giá trong cơng thức tính độ tương tự.
Bảng 2.5: Bảng tính độ tương tự theo công thức cosine điều chỉnh
item 1

item 2

item 3

item 4

item 5

item 6

item 7

item 8


item 9

item 1

1.000

-0.098

0.121

-0.847

-0.992

0.600

0.000

0.000

-0.496

item 2

-0.098

1.000

0.413


-0.600

-0.447

-0.747

-1.000

1.000

1.000

item 3

0.121

0.413

1.000

-0.986

0.000

-0.726

-0.956

0.800


0.894

item 4

-0.847

-0.600

-0.986

1.000

-1.000

-0.083

1.000

1.000

-0.894

item 5

-0.992

-0.447

0.000


-1.000

1.000

0.440

0.447

-1.000

0.600

item 6

0.600

-0.747

-0.726

-0.083

0.440

1.000

-0.109

-0.866


-0.759

item 7

0.000

-1.000

-0.956

1.000

0.447

-0.109

1.000

-0.158

1.000

item 8

0.000

1.000

0.800


1.000

-1.000

-0.866

-0.158

1.000

-0.447

item 9

-0.496

1.000

0.894

-0.894

0.600

-0.759

1.000

-0.447


1.000

2.3 Tính tốn dự đốn và gợi ý
Bước quan trọng nhất của hệ thống lọc cộng tác là đưa ra kết quả dự đoán. Phần
trên đã đưa ra những sản phẩm tương tự nhất dựa trên độ tương tự, bước tiếp theo là
nghiên cứu kỹ mục tiêu xếp hạng của người dùng và sử dụng kỹ thuật để thu được dự
đoán.

22


Dự đoán đánh giá của một người dùng lên một sản phẩm được suy ra từ các đánh
giá của người dùng đó trên các sản phẩm lân cận.


nh 2.2: Giải thuật lọc cộng tác dựa trên sản phẩm, tính dự đốn
2.3.1 Cơng thức dự dốn dựa trên trung bình đánh giá sản phẩm lân cận
Dựa vào [2] công thức đơn giản nhất để dự đoán của 1 người dùng u lên 1 sản phẩm
i là dựa vào những người dùng lân cận của u mà đã đánh giá sản phẩm i.
(2.5)

Trong đó:
N là tổng các sản phẩm lân cận của i đã được a đánh giá.

Ti là tập hợp các người dùng i’ lân cận với i mà u đã đánh giá
Sa: các sản phẩm mà người dùng a đã đánh giá
Vấn đề là chọn ra các sản phẩm i’ lân cận với sản phẩm i với các tiêu chí như thế nào,
trong bài toán này, kết quả phụ thuộc vào tiêu chí chọn ra các lận cận của sản phẩm i.
Ví dụ: Giả sử với ví dụ được cho ở bảng 2.1. Xét với các i’ là những sản phẩm mà u
đã đánh giá và i’ là lân cận với i nếu sim(i,i’) >0.

Trường hợp sim(i, j) được tính theo cơng thức tính độ tương tự Adjusted cosine. Áp
dụng cơng thức ta có thể dự đốn như sau cho người dùng user1 với những sản phẩm mà
họ chưa đánh giá như sau:
Bảng 2.6: Bảng dự đoán và gợi ý theo phương pháp tính trung bình dự đốn
User
1

Item chưa đánh giá
7
8

Dự đoán
2.667
2.667

Gợi ý (TopN=3)
7, 8, 5

23


5
9
6

2.667
2.25
2.25

2.3.2 Cơng thức dự đốn dựa trên tổng trọng số (Weighted Sum)

Dự đoán đánh giá của người dùng a với sản phẩm i được cho bởi công thức sau:

Sa: các sản phẩm mà người dùng a đã đánh giá

(2.6)

raj là đánh giá sản phẩm j của người dung a
sim(i,j) là độ tương tự của 2 sản phẩm i, j
Ti: Tập các sản phẩm lân cận của của item i
Công thức tính tốn đánh giá của người dùng a lên sản phẩm i dựa vào những đánh
giá của người dùng a lên các sản phẩm tương tự với i. Giá trị dự đoán sẽ nằm trong
khoảng [1, 5]. Trường hợp dự đốn sẽ cho kết quả cao (người dùng a thích sản phẩm i)
khi những sản phẩm lân cận với i (có độ tương tự cao) được người dùng a đánh giá cao.
Trường hợp sim(i, j) được tính theo cơng thức tính độ tương tự Adjusted Cosine.
Với số liệu được cho ở Bảng 2.1, cho các lân cận của sản phẩm i là tập các sản phẩm mà
có độ tương tự khác 0. Ta có thể dự đốn như sau cho người dùng user1 với những sản
phẩm mà họ chưa đánh giá như sau:
Bảng 2.7: Bảng dự đoán và gợi ý theo phương pháp Weigth Sum
User
1

Item chưa đánh giá
7
8
6
5
9

Dự đoán
3.669

2.786
2.304
1.677
1.273

Gợi ý (TopN=3)
7,8,6

2.3.3 Cơng thức dự đốn dựa trên tổng trọng số với đánh giá trung bình của người
dùng

Sa: các sản phẩm mà người dùng a đã đánh giá

(2.7)

raj là đánh giá sản phẩm j của người dung a
sim(i,j) là độ tương tự của 2 sản phẩm i, j
Ti: Tập các sản phẩm lân cận của của sản phẩm i
là đánh giá trung bình của người dùng a
24


×