ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ HỒNG XUÂN
NGHIÊN CỨU KỸ THUẬT PHÂN TÍCH MA TRẬN
TRONG CÁC HỆ THỐNG KHUYẾN NGHỊ
LUẬN VĂN THẠC SĨ
HÀ NỘI - 2014
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN THỊ HỒNG XUÂN
NGHIÊN CỨU KỸ THUẬT PHÂN TÍCH MA TRẬN
TRONG CÁC HỆ THỐNG KHUYẾN NGHỊ
Ngành : Công nghệ thông tin
Chuyên ngành : Kỹ thuật phần mềm
Mã số : 60480103
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. Nguyễn Văn Vinh
HÀ NỘI - 2014
Lời cam đoan
Tôi xin cam đoan rằng luận văn của tôi hoàn toàn là công trình nghiên cứu của bản
thân. Luận văn hoàn toàn không phải là bản sao chép công trình nghiên cứu của một
người khác, nó mang tính độc lập nhất định với tất cả các công trình nghiên cứu trước
đây. Nếu có vi phạm, tôi xin hoàn toàn chịu trách nhiệm.
Hà Nội, ngày 05 tháng 06 năm 2014
Học viên
Nguyễn Thị Hồng Xuân
Lời cảm ơn
Đầu tiên, tôi xin gửi lời cảm ơn sâu sắc đến thầy giáo, cán bộ hướng dẫn khoa học
TS. Nguyễn Văn Vinh, người thầy đã tận tình hướng dẫn cho tôi từ những buổi đầu tiên
khi tiếp cận với đề tài tốt nghiệp. Thầy đã hướng dẫn, chỉ bảo tận tình cho tôi về phương
pháp nghiên cứu khoa học, cách làm việc khoa học trong suốt thời gian qua.
14 DSGD Distributed Stochastic Gradi-
ent Descent
Phương pháp xuống đồi theo
cách phân tán
15 FPSGD Fast Parrael Stochastic Gradi-
ent Descent
Phương pháp xuống đồi theo
cách thực hiện nhanh và song
song
Danh mục hình vẽ trong luận văn
Các hình vẽ được sử dụng trong luận văn:
Hình 2.1: Trang khuyến nghị của Amazon 12
Hình 2.2: Trang khuyến nghị của MovieLens 13
Hình 2.3: Mô hình Bayes 24
Hình 3.1: Thuật toán SGD trong không gian 2 chiều 30
Hình 3.2: Ví dụ về vấn đề locking trong DSGD 37
Hình 3.3: Phương pháp chọn ngẫu nhiên các xếp hạng để cập nhật 37
Hình 3.4: Minh họa các cách chia ma trận thành khối 39
Hình 3.5: DoI trên 3 tập dữ liệu 40
Hình 3.6: Phương pháp sắp thứ tự chọn các xếp hạng để cập nhật 40
Hình 3.7: So sánh giữa phương pháp ngẫu nhiên và phương pháp sắp thứ tự 41
Hình 3.8: Minh họa phương pháp ngẫu nhiên từng phần 41
Hình 3.9: So sánh phương pháp sắp thứ tự, ngẫu nhiên và ngẫu nhiên từng phần 42
Hình 4.1: Biểu đồ dữ liệu MovieLens 600K 47
Hình 4.2: Biểu đồ dữ liệu MovieLens với tham số k = 5 và γ = 0.003 47
Hình 4.3: Biểu đồ dữ liệu MovieLens với tham số k = 10 và γ = 0.003 48
Hình 4.4: Biểu đồ dữ liệu MovieLens với tham số k = 20 và γ = 0.003 49
Hình 4.5: Biểu đồ dữ liệu MovieLens với tham số k = 50 và γ = 0.003 49
Hình 4.5: Biểu đồ dữ liệu MovieLens với tham số k = 100 và γ = 0.003 50
Mở đầu
Mô hình nhân tố ẩn có dạng tương tự phương pháp phân tích giá trị đơn nhằm chuyển
đổi các sản phẩm (items) và người dùng (users) vào cùng một không gian ẩn, do đó chúng
có khả năng so sánh dữ liệu trực tiếp với nhau. Chính vì nhờ vào khả năng biểu diễn và
so sánh, tiếp cận này có xu hướng cung cấp kết quả dự đoán cao hơn các mô hình láng
vi
giềng.
Vì vậy trong luận văn này, tôi xin được trình bày về mô hình nhân tố ẩn cho hệ thống
khuyến nghị. Cụ thể hơn, tôi tập trung nghiên cứu về kĩ thuật phân tích ma trận (một
trong những phương pháp hiệu quả cho mô hình nhân tố ẩn) và ứng dụng trong hệ thống
khuyến nghị. Trong phạm vi của luận văn, chúng ta nghiên cứu và phân tích các mô hình
đang tồn tại, cụ thể là mô hình xác suất kết hợp với ma trận nhân tố cho hệ khuyến nghị
sử dụng dự đoán học máy. Nội dung chính của bản luận văn này được chia làm 4 chương:
Chương 1: Tổng quan về hệ khuyến nghị (Recommender System).
Chương 2: Phương pháp lọc cộng tác.
Chương 3: Kĩ thuật phân tích ma trận trong hệ khuyến nghị.
Chương 4: Thực nghiệm và demo
Cụ thể, trước khi đi vào xem xét trực tiếp mô hình, trong chương 1, chúng ta đi tìm
hiểu chung về hệ khuyến nghị, phân tích một số chức năng của các hệ khuyến nghị, các
phương pháp khai phá dữ liệu được sử dụng, các hướng tiếp cận như lọc dựa vào nội dung,
lọc cộng tác. Trong chương 2, chúng ta nghiên cứu sâu hơn về lọc cộng tác, các phương
pháp tiếp cận trong lọc cộng tác. Chương 3 giới thiệu kĩ thuật phân tích ma trận cho hệ
khuyến nghị. Chương 4 đưa ra một số ví dụ tính toán và những đánh giá cụ thể để so
sánh những kết quả thực nghiệm với mô hình lý thuyết đã nêu trong chương 3.
Mục lục
Lời Cam Đoan i
Lời Cảm Ơn ii
Danh mục các từ viết tắt iii
Danh mục hình vẽ trong luận văn iv
Mở đầu v
1 Tổng quan về hệ thống khuyến nghị 1
3 Kĩ thuật phân tích ma trận cho hệ thống khuyến nghị 28
3.1 Kỹ thuật phân tích ma trận đơn giản . . . . . . . . . . . . . . . . . . . . . 28
3.2 Thuật toán SGD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.1 Cơ sở lý thuyết . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.2 Phát biểu bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.3 Thuật toán SGD dùng cho phân tích ma trận . . . . . . . . . . . . 31
3.3 Thuật toán DSGD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.1 Tính có thể tráo đổi được (interchangeability) . . . . . . . . . . . . 32
3.3.2 Trường hợp đơn giản . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3.3 Trường hợp tổng quát . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.4 Thuật toán FPSGD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4.1 Vấn đề locking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4.2 Gián đoạn bộ nhớ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.4.3 Giải quyết vấn đề . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4 Thực nghiệm và đánh giá 44
4.1 Cấu hình thử nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.1 Dữ liệu thử nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.1.2 Thực hiện thử nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.2 Phân tích kết quả và đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.1 Phân tích kết quả . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2.2 Nhận xét và đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Kết luận 52
Tài liệu tham khảo 53
Chương 1
Tổng quan về hệ thống khuyến nghị
1.1 Mô hình hệ thống khuyến nghị
1.1.1 Các khái niệm chung về hệ thống khuyến nghị
Hệ thống khuyến nghị là hệ thống bao gồm các kỹ thuật và công cụ phần mềm nhằm
đưa ra những gợi ý cho người sử dụng, đáp ứng nhu cầu của họ về một sản phẩm, dịch
vụ nào đó trên Internet. Những gợi ý được cung cấp nhằm hỗ trợ người sử dụng đưa ra
Các gợi ý đã cho các hạng mục mà người dùng tương tự (người có sở thích tương tự) đã
thích. Phương pháp này được gọi là lọc cộng tác và nguyên lý hoạt động của nó là: nếu
người dùng thỏa thuận trong quá khứ với một số người dùng khác, sau đó sẽ sử dụng các
gợi ý khác đến từ những người dùng tương tự có cùng sự quan tâm liên quan đến người
dùng đang hoạt động. Các website thương mại điện tử ngày càng phát triển, người dùng
phải rất khó khăn để tìm kiếm những lựa chọn thích hợp khi mà các Item( sản phẩm và
dịch vụ) ngày càng đa dạng và phong phú trên các website;do vậy một nhu cầu cấp bách
đặt ra là cung cấp hệ thống khuyến nghị xuất phát từ lọc cộng tác các lựa chọn thay thế
có sẵn.
Trong những năm gần đây, hệ thống khuyến nghị là một phương tiện có giá trị để đối
phó với vấn đề quá tải thông tin. Đích cuối cùng mà hệ thống khuyến nghị muốn hướng
tới là hướng dẫn cho một người dùng mới về các Item chưa hoặc không được xem trước
đó nhưng lại có liên quan đến tác vụ hiện hành của người dùng. Theo yêu cầu của người
dùng, nó có thể được khớp nối hay không phụ thuộc vào phương pháp tiếp cận gợi ý theo
bối cảnh và nhu cầu người dùng. Hệ thống khuyến nghị đưa ra các gợi ý sử dụng các
biến thể khác nhau của kiến thức và dữ liệu người dùng, các Item có sẵn và các giao dịch
trước đó được lưu trong cơ sở dữ liệu tùy biến. Sau đó người dùng có thể duyệt các gợi
ý: chấp nhận hay không và ngay lập tức đưa ra thông tin phản hồi ngầm hay rõ ràng ở
giai đoạn tiếp theo. Tất cả những hành động và phản hồi của người dùng được lưu trữ
trong cơ sở dữ liệu và có thể được sử dụng để đưa ra các khuyến cáo mới trong sự tương
tác với người sử dụng hệ thống tiếp theo.
Một vài ứng dụng nổi tiếng về hệ thống khuyến nghị như: khuyến nghị sản phẩm của
Amazon [26], hệ tư vấn phim của NetFlix [27]. Hệ thống khuyến nghị đã chứng minh được
ý nghĩa to lớn trong việc giúp người sử dụng trực tuyến đối phó với tình trạng quá tải
thông tin. Chính vì vây, hệ thống khuyến nghị trở thành một trong những công cụ mạnh
mẽ và phổ biến trong thương mại điện tử và trên nhiều lĩnh vực khác.
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
xếp hạng (rating) của các Item (phim, cd, 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 những đánh giá đã có của chính người dùng đó hoặc
từ những người dùng khác. Những Item có xếp hạng cao nhất sẽ được dùng để khuyến
- Các item phức tạp có giá trị cao: máy ảnh kĩ thuật số, điện thoại di động, máy tính,
- Các item phức tạp nhất là những chính sách bảo hiểm, đầu tư tài chính, phương
tiện đi lại, việc làm.
Công nghệ cốt lõi của hệ thống khuyến nghị là sử dụng một loạt các tính chất và tính
năng của các item. Ví dụ như trong hệ thống khuyến nghị phim bao gồm: thể loại (hài,
kinh dị, ), đạo diễn, diễn viên, để mô tả một bộ phim và tìm hiểu các tiện ích của
một item phụ thuộc vào tính năng của nó. Các item được đại diện bằng cách sử dụng
thông tin và đại diện các cách tiếp cận khác nhau, chẳng hạn như một mã id duy nhất
hoặc trong hình phức phong phú hơn là tập các thuộc tính, phức tạp hơn là khái niệm
đại diện tên miền.
1.1 Mô hình hệ thống khuyến nghị 4
Người sử dụng (Users):
Như đã đề cập ở trên, người sử dụng trong hệ thống khuyến nghị là đối tượng để gợi
ý có những mục tiêu và đặc điểm rất đa dạng. Để cá nhân hóa các khuyến nghị và tương
tác người máy, hệ thống khuyến nghị khai thác một loạt các thông tin về người sử dụng.
Những thông tin này có thể được cấu trúc theo nhiều cách khác nhau và việc chọn thông
tin phụ thuộc vào kĩ thuật khuyến nghị. Ví dụ, trong lọc cộng tác người dùng được mô
hình hóa dưới dạng danh sách đơn giản chứa các xếp hạng được cung cấp bởi người sử
dụng đối với một số item. Trong hệ thống khuyến nghị nhân khẩu học, các thuộc tính
được sử dụng là tuổi, giới tính, nghề nghiệp, trình độ học vấn. Từ đó, các dữ liệu người
dùng sẽ tạo nên mô hình cá nhân người dùng để mã hóa sở thích và nhu cầu của người
đó.
Người sử dụng cũng có thể được mô tả bằng mô hình hành vi của họ, ví dụ trong mô
hình trình duyệt (hệ thống khuyến nghị Website), mô hình tìm kiếm du lịch (hệ thống
khuyến nghị du lịch). Ngoài ra, dữ liệu người dùng còn có thể bao gồm mối quan hệ giữa
người sử dụng như mức độ tin cậy của các mối quan hệ giữa các người dùng. Hệ thống
khuyến nghị có thể sử dụng thông tin này để giới thiệu các item từ một người dùng đáng
tin cậy khác đã thích item này.
Giao dịch (Transactions):
phần quan tâm đến cuốn sách đó. Với các hệ thống đàm thoại (hệ thống hỗ trợ một quá
trình tương tác) mô hình giao dịch sẽ tinh tế hơn (dùng các yêu cầu bằng hành động).
1.1.3 Các chức năng của hệ thống khuyến nghị
Như đã đề cập ở trên, hệ thống khuyến nghị là công cụ phần mềm và kỹ thuật cung
cấp 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 thông tin mang tính đa chiều và được nhiều người quan tâm 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 đa dạng và phong phú. Do vậy, 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ừ đó, đòi hỏi các hệ thống thương mại điện tử cung cấp nhiều mặt hàng
đa dạng và phù hợp với người sử dụng hơn.
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, gợi ý 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 và được lựa chọn ưu tiên khi họ có
những băn khoăn hoặc khi chưa có kiến thức về sản phẩm.
Tăng độ tin cậy, độ trung thực của người dùng: 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 gợi ý đó 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 quá khứ. Do đó, khi người dùng càng tin cậy vào hệ thống, đưa
1.2 Các phương pháp khai phá dữ liệu được sử dụng
Có rất nhiều cách để dự đoá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ác suất, các thuật toán dựa trên kinh nghiệm, Các hệ thống tư
vấn thường được phân thành ba loại dựa trên cách nó dùng để ước lượng hạng của sản
phẩm:
1.2 Các phương pháp khai phá dữ liệu được sử dụng 7
1.2.1 Khuyến nghị dựa trên nội dung (Content-Based Recom-
mendation System)
Khuyến nghị dựa trên nội dung được dựa trên mô tả có sẵn về đối tượng. Phương
pháp khuyến nghị dựa trên nội dung, dựa trên độ phù hợp r(u, v) của sản phẩm v với
người dùng u được đánh giá dựa trên độ phù hợp r(u, v
i
), trong đó v
i
∈ V và tương tự
như v. Ví dụ, để gợi ý một bộ phim cho người dùng u, hệ thống khuyến nghị 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).
Cụ thể hơn, đặt Content(v) là tập thông tin (hay tập các đặc trưng) về sản phẩm v.
Do hệ thống dựa trên nội dung được thiết kế chủ yếu để dành cho các sản phẩm là text,
nên nội dung sản phẩm thường được biểu diễn bởi các từ khóa (keyword):
Content(v) = (w
1v
,
−→
w
v
) nên có thể đo độ tương đồng của chúng bằng độ đo cosin:
r(u, v) = cos(
−→
w
u
,
−→
w
v
) =
−→
w
u
.
−→
w
v
−−−→
w
u
×
−−→
w
v
Ví dụ, nếu u đọc nhiều bài báo thuộc lĩnh vực sinh học thì các từ khóa liên quan tới sinh
phẩm mà họ chưa đánh giá. Hệ thống khuyến nghị dựa trên các đánh giá này để xếp hạng
các sản phẩm và gợi ý cho người dùng.
Hệ thống khuyến nghị lọc cộng tác dự đoán độ phù hợp r(u, v) của một sản phẩm v
với người dùng u dựa trên độ phù hợp r(u
i
, v) giữa người dùng u
i
và v, trong đó u
i
là
người có cùng sở thích với u. Ví dụ, để gợi ý một bộ phim cho người dùng u, đầ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 u. Sau đó,
những bộ phim được họ đánh giá cao sẽ được dùng để tư vấn cho u. Có nhiều hệ thống
cộng tác đã được phát triển như: Youtube (video), Amazon (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).
1.2 Các phương pháp khai phá dữ liệu được sử dụng 9
1.2.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 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 từng cách tiếp cận
nhằm có hệ thống khuyến nghị chính xác hơn.
Một vài hệ thống khuyến nghị kết hợp cả phương pháp lọc cộng tác và lọc dựa trên
nội dung nhằm tránh những hạn chế của cả hai phương pháp. 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ự đoán của chúng với nhau: 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 thực hiện bỏ phiếu
(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
thống Quickstep và Foxtrot sử dụng ontology về chủ đề của các bài báo khoa học để gợi
ý những bài báo phù hợp cho người dùng.
Một bài báo như [9] đã thực hiện so sánh hiệu năng của hệ thống kết hợp với các hệ
thống dựa trên nội dung và cộng tác thuần túy; từ đó cho thấy hệ thống kết hợp cho độ
chính xác cao hơn.
Chương 2
Phương pháp lọc cộng tác
2.1 Giới thiệu về lọc cộng tác
Các nhà phát triển hệ thống khuyến nghị đầu tiên đã đưa ra thuật ngữ collabrative
filtering (lọc cộng tác). Giả thuyết của lọc cộng tác là: “nếu người dùng i và j dánh giá
cho n sản phẩm tương tự nhau, hoặc có hành vi tương tự nhau (như: xem, mua, nghe .)
thì họ sẽ có các đánh giá tương tự nhau đối với các sản phẩm khác”.
Hệ thống khuyến nghị thường dựa trên lọc cộng tác (Collaborative filtering - CF),
dựa trên những hành vi quá khứ của người dùng, ví dụ như: lịch sử giao dịch, đánh giá
sản phẩm, thời gian xem một mục tin . và đặc biệt là nó không cần thiết phải tạo
ra các hồ sơ tường minh (explicit feedback) cho người dùng. Để gợi ý được các mục tin,
hệ thống CF cần so sánh các đối tượng cơ bản khác nhau như các mục tin (items) và
người dùng (users). Có hai nhánh nghiên cứu chính của lọc cộng tác là tiếp cận láng giềng
(neighborhood approach) và các mô hình nhân tố ẩn (latent factor models).
Trong hầu hết những hệ lọc cộng tác, dữ liệu luôn sẵn sàng dưới dạng những đánh giá
của người dùng về sản phẩm. Cụ thể, ta đặt U là tập người dùng, P là tập sản phẩm, và
dữ liệu D là tập bộ ba (i, x, r), trong đó i ∈ U là một người dùng, x ∈ P là một sản phẩm,
và r ∈ R
+
là trọng số của sản phẩm x do người dùng i đánh giá. Để đơn giản những ký
hiệu này, chúng ta biểu diễn r
ix
là trọng số của của người dùng i cho sản phẩm x – tức là
r
ix
thể dễ dàng nhận ra một vài giới hạn trong kỹ thuật lọc cộng tác dựa trên bộ nhớ. Như
trên thực tế, giá trị tương tự (mục 2.2.1) là dựa trên các đánh giá trên cùng sản phẩm
hoặc được đưa ra bởi cùng người dùng, vì vậy khi dữ liệu ít thì nó không còn đáng tin
cậy nữa. Để đạt được hiệu suất dự đoán tốt hơn và khắc phục những thiếu sót của thuật
toán lọc cộng tác dựa trên bộ nhớ, phương pháp lọc cộng tác dựa trên mô hình ra đời
(mục 2.3). Phương pháp tiếp cận dựa trên mô hình không sử dụng tất cả các dữ liệu đã
có để đưa ra dự đoán. Thay vào đó, chúng nắm bắt thông tin trong từng bước giống như
một sự thỏa thuận về mô hình các sở thích của người dùng. Những phương pháp như vậy
có nhiều thuận lợi trong việc cung cấp nhanh và có những dự đoán chính xác, giảm thiểu
đi tính nhạy cảm trong trường hợp ít dữ liệu. Tuy nhiên, chúng thường yêu cầu nhiều
thời gian để nắm bắt mô hình, làm giảm đi hiệu quả trong việc cài đặt trên các ứng dụng
trực tuyến – nơi mà dữ liệu thường xuyên được thêm vào.
2.1 Giới thiệu về lọc cộng tác 13
Hình 2.2 Trang khuyến nghị của movielens.umn.edu
2.1.1 Ưu điểm của lọc cộng tác
Khi xây dựng Hệ thống khuyến nghị dựa trên phương pháp tiếp cận nội dung (Content-
Based Recommendation), có các phát sinh như sau:
i) Đặc tính nội dung của một Đối tượng là không đủ để sử dụng khi khuyến nghị. Ví
dụ như chúng ta không thể xác định được một bài hát đó hay hoặc không hay nếu
chỉ dựa vào tông nhạc khi 2 bài hát đó sử dụng cùng một tông.
ii) Khuyến nghị bị giới hạn: khi có một bài hát mới vào hệ thống thì bài hát đó được
xác định là sẽ được người dùng U đánh giá cao nếu như nó các các đặc tính tương
đồng cao với các bài hát mà người dùng U thích trong quá khứ và ngược lại. Chính
điều này làm giới hạn việc khuyến nghị khi có một số sản phẩm có thể người dùng
U thích nhưng lại không có các đặc tính tương đồng với các bài hát mà người dùng
U đã thích trong quá khứ.
iii) Tốc độ xử lý: tốc độ xử lý bị ảnh hưởng khi nội dung của Đối tượng dùng để khuyến
nghị có tính chất phức tạp như hình ảnh, âm thanh. . .
Ngay từ khi ra đời, các hệ thống lọc cộng tác đã thể hiện sự ưu việt hơn các hệ thống
khuyến nghị lựa chọn dựa trên lọc nội dung. Những ưu điểm của hệ lọc cộng tác như: có
thực sự tìm kiếm. Đó là bởi vì trong lọc cộng tác, một mục được gợi ý cho người
dùng nếu một người dùng khác có sở thích tương đồng quan tâm, do đó hoàn toàn
có khả năng người dùng có sở thích tương đồng quan tâm lại không phải là cái mà
người được khuyến nghị đang tìm kiếm. Còn trong lọc nội dung, người dùng phải
cung cấp cho hệ thống mô tả về những mục quan tâm và hệ thống sẽ chỉ gợi ý cho
người dùng những mục khoản thỏa mãn mô tả đó.
iv) Khả năng ứng dụng thực tiễn cao: Nghiên cứu đầu tiên về lọc cộng tác được
thực hiện vào năm 1994. Từ đó đến nay, các nghiên cứu cũng như ứng dụng vào
thương mại của lọc cộng tác đã phát triển khá nhanh và rộng. Một số công ty đã
được thành lập để thương mại hóa công nghệ này, trong đó có cả Net Perceptions
[29] vốn bắt nguồn từ những nghiên cứu của Đại học Minnesota, và cả website mua
bán lớn nhất thế giới Amazon [26]. Sự chuyển dịch thành công của lọc cộng tác từ
nghiên cứu sang thương mại trong một thời gian ngắn một phần là do ưu điểm, tính
hữu ích, cùng với khả năng ứng dụng lớn của nó đã được công nhận.
2.1.2 Các hình thức tiếp cận
Phương pháp tiếp cận dựa trên bộ nhớ (Memory base)
Ý tưởng
Tính toán toàn bộ và lưu vào ma trận U × V
Vấn đề chuẩn hóa (Normalization)
Các phương pháp chuẩn hóa:
2.1 Giới thiệu về lọc cộng tác 15
Phương pháp Mean-Centering: Ý tưởng chính của phương pháp này là so sánh một Đánh
giá của người dùng là âm hay dương (tốt hay xấu) so với đánh giá trung bình như sau:
H(r
uv
) = r
uv
− r
uv
Nhược điểm của phương pháp này là khi hai người dùng A và B có cùng giá trị trung
lân cận này.
- Chọn theo ngưỡng: Định ra một ngưỡng cho độ tương đồng, các lân cận nào có độ
tương đồng vượt qua ngưỡng thì được lưu trữ lại và tính toán.
- Tính âm
Ưu điểm và nhược điểm
* Ưu điểm: