BỘ GIÁO DỤC VÀ ĐÀO TẠO
LÂM VĂN ÂN
VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SỸ
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
CÔNG NGHỆ THÔNG TIN
NGHIÊN CỨU PHƯƠNG PHÁP LỌC CỘNG TÁC
DỰA TRÊN NGỮ NGHĨA VÀ ỨNG DỤNG XÂY
DỰNG CHƯƠNG TRÌNH GỢI Ý ĐỊA ĐIỂM
LÂM VĂN ÂN
2013 – 2015
HÀ NỘI - 2017
BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SỸ
NGHIÊN CỨU PHƯƠNG PHÁP LỌC CỘNG TÁC DỰA
TRÊN NGỮ NGHĨA VÀ ỨNG DỤNG XÂY DỰNG
CHƯƠNG TRÌNH GỢI Ý ĐỊA ĐIỂM
LÂM VĂN ÂN
CHUYÊN NGÀNH : CÔNG NGHỆ THÔNG TIN
MÃ SỐ: 60.48.02.01
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. DƯƠNG THĂNG LONG
HÀ NỘI - 2017
LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng cá
nhân tôi dưới sự hướng dẫn của TS. Dương Thăng Long và không sao chép của bất
kỳ ai. Những điều được trình bày trong toàn bộ nội dung của luận văn, hoặc là của cá
nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu. Tất cả các tài liệu tham khảo đều
có nguồn gốc rõ ràng và được trích dẫn hợp pháp.
Tôi xin hoàn toàn chịu trách nhiệm theo quy định cho lời cam đoan của mình.
Hà Nội, ngày 25 tháng 12 năm 2017
Học viên
Lâm Văn Ân
i
LỜI CẢM ƠN
Luận văn này được thực hiện tại Viện Đại Học Mở Hà Nội dưới sự hướng dẫn
của TS. Dương Thăng Long. Tôi xin được gửi lời cảm ơn sâu sắc nhất đến thầy đã
định hướng, giúp đỡ, quan tâm và tạo mọi điều kiện thuận lợi trong suốt quá trình
nghiên cứu để hoàn thành luận văn này. Tôi cũng xin được gửi lời cảm ơn đến các
thầy cô trong Khoa công nghệ thông tin đã mang lại cho tôi những kiến thức vô cùng
quý giá và bổ ích trong quá trình học tập tại trường.
Tôi cũng xin gửi lời cảm ơn tới gia đình và bạn bè đã luôn quan tâm và động
viên giúp tôi có thêm nghị lực để có thể hoàn thành được luận văn này.
Do thời gian và kiến thức có hạn nên luận văn không tránh khỏi những thiếu
sót. Tôi rất mong nhận được những góp ý quý báu của thầy cô và các bạn.
Xin chân thành cảm ơn!
Hà Nội, ngày 25 tháng 12 năm 2017
Học viên
Lâm Văn Ân
ii
MỤC LỤC
LỜI CAM ĐOAN ........................................................................................................ i
LỜI CẢM ƠN .............................................................................................................ii
MỤC LỤC ................................................................................................................. iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ................................................ v
DANH SÁCH BẢNG ................................................................................................ vi
DANH SÁCH HÌNH VẼ ..........................................................................................vii
MỞ ĐẦU .....................................................................................................................1
CHƯƠNG 1: BÀI TOÁN LỌC CỘNG TÁC VÀ MỘT SỐ KỸ THUẬT BỔ TRỢ .3
1.1.
Lọc cộng tác [1] ...........................................................................................3
1.2.
Một số phương pháp cho bài toán lọc cộng tác..........................................6
1.2.1.
Lọc cộng tác dựa trên bộ nhớ ..............................................................6
1.2.1.1. Phương pháp User-based .................................................................6
1.2.1.2. Phương pháp Item-Based ...............................................................11
1.2.2.
Lọc cộng tác dựa trên mô hình ..........................................................14
1.3.
Một số vấn đề của lọc cộng tác ................................................................17
1.4.
Kết luận chương .......................................................................................19
CHƯƠNG 2: PHƯƠNG PHÁP LỌC CỘNG TÁC DỰA TRÊN NGỮ NGHĨA.....21
2.1.
Phương pháp đánh giá độ tương đồng ngữ nghĩa theo mô hình LDA .....21
2.1.1.
Mô hình tách từ vnTokenizer ............................................................21
2.1.2.
Mô hình LDA ....................................................................................23
2.2.
Phương pháp lọc cộng tác dựa trên mô hình LDA ..................................27
2.2.1.
Kỹ thuật lọc cộng tác dựa trên mô hình ............................................27
2.2.2.
Phương pháp item-base có sử dụng mô hình LDA ...........................28
iii
2.3.
Hệ thống gợi ý dựa trên phương pháp lọc LDA ......................................30
2.4.
Kết luận chương .......................................................................................33
CHƯƠNG 3: XÂY DỤNG ỨNG DỤNG VÀ THỬ NGHIỆM KẾT QUẢ .............35
3.1.
Bài toán ứng dụng phương pháp lọc cộng tác dựa trên ngữ nghĩa ..........35
3.2.
Mô hình cài đặt .........................................................................................41
3.2.1.
Tương tác người dùng .......................................................................44
3.2.2.
Tính toán gợi ý ..................................................................................44
3.2.3.
Bộ đệm...............................................................................................45
3.2.4.
Thiết kế cơ sở dữ liệu lưu trữ ............................................................47
3.2.5.
Thử nghiệm và kết quả ......................................................................51
3.3.
Kết luận chương .......................................................................................57
CHƯƠNG 4: KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN ........................58
4.1.
Kết luận ....................................................................................................58
4.2.
Định hướng phát triển của đề tài ..............................................................58
TÀI LIỆU THAM KHẢO ......................................................................................... 60
PHỤ LỤC .................................................................................................................. 62
iv
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Chữ cái viết tắt/ ký hiệu
Cụm từ đầy đủ
LDA
Latent Dirichlet Allocation
CF
Collaborative Filtering
CBF
Content-based Filtering
SBCF
Semantic-based Collaborative Filtering
IBCF
Item-based Collaborative Filtering
v
DANH SÁCH BẢNG
Bảng 1.1. Ví dụ về ma trận đánh giá của lọc cộng tác ...............................................5
Bảng 1.2. Ma trận đánh giá của lọc cộng tác ............................................................17
Bảng 2.1. Tính độ tương đồng giữa hai mục ............................................................28
Bảng 3.1. Môi trường, phần mềm và thư viện hỗ trợ................................................45
vi
DANH SÁCH HÌNH VẼ
Hình 1.1. Các thành phần của hệ thống lọc cộng tác..................................................5
Hình 1.2. Các bước thực hiện lọc cộng tác người dùng. .............................................8
Hình 1.3. Các bước thực hiện lọc cộng tác mục. ......................................................12
Hình 2.1. Mô hình xử lý thông tin của vnTokenizer trong hệ thống ........................21
Hình 2.2. Mô hình xử lý dữ liệu của LDA model .....................................................24
Hình 2.3. Mô hình module đánh giá .........................................................................30
Hình 3.1. Mô hình kiến trúc hệ thống .......................................................................42
Hình 3.2. Mô hình cài đặt hệ thống...........................................................................43
Hình 3.3. Biểu đồ cơ sở dữ liệu ................................................................................47
Hình 3.4. Biểu diễn dữ liệu sau bước tiền xử lý .......................................................53
Hình 3.5. Giao diện trang chủ khi chưa đăng nhập...................................................55
Hình 3.6. Giao diện trang chủ khi đã đăng nhập.......................................................55
Hình 3.7. Giao diện tìm kiếm ....................................................................................56
Hình 3.8. Giao diện trang yêu thích ..........................................................................56
Hình 3.9. Giao diện trang chi tiết - đánh giá .............................................................57
vii
MỞ ĐẦU
Ngày nay, với sự tăng trưởng bùng nổ của công nghệ thông tin, đặc biệt là
Internet, rất nhiều thông tin dữ liệu đã và đang được phổ biến qua môi trường này.
Với lượng dữ liệu khổng lồ, đôi khi là một thách thức không nhỏ đối với những người
dùng mong muốn tìm kiếm thông tin từ khắp các kho lữu trữ trên toàn thế giới. Điều
này thường được gọi là vấn đề quá tải thông tin do hạn chế về khả năng xử lý thông
tin của con người. Do đó, hệ thống gợi ý ra đời, nhằm hỗ trợ người dùng trong việc
lấy thông tin hữu ích một cách hiệu quả trong trường hợp người dùng đó không thể
mô tả yêu cầu của họ một cách chính xác. Hệ thống này đề nghị người dùng các thông
tin mong muốn bằng cách phân tích các sở thích trước đây của họ hoặc sở thích của
những người có cùng đặc điểm chung với họ.
Đề tài tốt nghiệp của tôi nhằm xây dựng một hệ thống gợi ý địa điểm cho
người dùng trong phạm vi thành phố Hà Nội. Hệ thống này sử dụng một kỹ thuật lọc
tiếp cận lai, gọi là kỹ thuật lọc cộng tác dựa trên ngữ nghĩa SBCF (semantic-based
collaborative filtering). Cụ thể hơn, kỹ thuật này sử dụng mô hình LDA (Latent
Dirichlet Allocation) để phân tích đặc trưng ngữ nghĩa các dữ liệu mô tả địa điểm,
sau đó sử dụng phương pháp lọc cộng tác dựa trên tài liệu (item-based Collaborative
Filtering) đánh giá các đặc điểm ngữ nghĩa thu được từ mô hình LDA, từ đó đưa ra
tập các thông tin gợi ý có độ tương đồng về ngữ nghĩa cao nhất với những thông tin
mà người dùng yêu thích trong quá khứ. Các thông tin được tính toán ở đây là đặc
trưng ngữ nghĩa của các địa điểm du dịch được trình bày bởi các đoạn text mô tả địa
điểm lấy từ bộ dữ liệu.
Bộ dữ liệu được sử dụng cho hệ thống gợi ý địa điểm du lịch được lấy trên
Google Places API.
Nội dung của luận văn được trình bày trong 4 chương, bao gồm:
Chương 1: Lọc cộng tác và một số kỹ thuật bổ trợ
Chương 2: Trình bày về phương pháp lọc cộng tác
1
Chương 3: Xây dựng ứng dụng áp dụng phương pháp lọc cộng tác
dựa trên ngữ nghĩa vào bài toán thực tiễn và thử nghiệm kết quả đạt
được.
Chương 4: Kết luận và định hướng phát triển của luận văn.
2
CHƯƠNG 1: BÀI TOÁN LỌC CỘNG TÁC VÀ MỘT SỐ KỸ
THUẬT BỔ TRỢ
1.1.
Lọc cộng tác [1]
Không giống như lọc theo nội dung, lọc cộng tác khai thác những khía cạnh
liên quan đến thói quen sở thích của người sử dụng sản phẩm để đưa ra dự đoán các
sản phẩm mới cho người dùng này. So với lọc theo nội dung, lọc cộng tác không
phải phân tích, bóc tách, hiểu, đánh chỉ mục cho các đặc trưng nội dung sản
phẩm. Chính vì vậy, lọc cộng tác có thể lọc hiệu quả trên nhiều dạng sản phẩm
khác nhau như hàng hóa, phim, ảnh, tài liệu… Cùng trên một hệ tư vấn, người
dùng sẽ được tư vấn nhiều loại mặt hàng khác nhau cho dù các mặt hàng này có
thể biểu diễn trên không gian các đặc trưng nội dung khác nhau.
Phương pháp lọc cộng tác là phương pháp dựa trên cộng đồng người dùng, dự
đoán đánh giá của một người dùng dựa trên đánh giá của những người dùng khác. Nếu
người dùng có cùng quan điểm với một nhóm người dùng về một số sản phẩm thì có
thể cũng đồng quan điểm với nhóm người dùng đó về một mặt hàng, mục chưa biết.
Phương pháp lọc cộng tác giới thiệu những mục có số đông người thích, nó mang tính
trào lưu, xu hướng theo người dùng.
Phương pháp này không đi sâu vào phân tích tính chất, nội dung các mục đã yêu
thích để giới thiệu các mục gần giống với mục mà người dùng quan tâm. Kết quả dự
đoán là các mục ngẫu nhiên thuộc nhiều chủ đề, thể loại khác nhau. Phương pháp lọc
cộng tác dựa trên nhóm người dùng tương đồng mà nhóm người dùng đó có thể thích
nhiều thể loại, chủ thế khác nhau nên các mục tư vấn dựa trên sở thích của họ cũng sẽ
thuộc nhiều chủ đề, thể loại khác nhau. Điều này là điều mà các nhà cung cấp mong
muốn, giới thiệu nhiều mục khác nhau đến với người sử dụng.
Phương pháp lọc cộng tác chia làm hai loại là lọc cộng tác người dùng (User–
User Collaborative Filtering) và lọc cộng tác mục (Item–Item Collaborative Filtering).
3
Bài toán lọc cộng tác
Ký hiệu U = {u1, u2,…, uN} là tập gồm N người dùng, P = {p1, p2,.., pM}
là tập gồm M sản phẩm mà người dùng có thể lựa chọn. Mỗi sản phẩm pi∈P có thể
là hàng hóa, phim, ảnh, tạp chí, tài liệu, sách, báo, dịch vụ hoặc bất kỳ dạng thông
tin nào mà người dùng cần đến.
Tiếp theo, ký hiệu R={ rij }, i = 1..N, j = 1..M là ma trận đánh giá, trong
đó mỗi người dùng ui∈U đưa ra đánh giá của mình cho một số sản phẩm pj∈P
bằng một số rij. Giá trị rij phản ánh mức độ ưa thích của người dùng ui đối với
sản phẩm pj. Giá trị rij có thể được thu thập trực tiếp bằng cách hỏi ý kiến người
dùng hoặc thu thập gián tiếp thông qua cơ chế phản hồi của người dùng. Giá trị rij
=∅ trong trường hợp người dùng ui chưa đánh giá hoặc chưa bao giờ biết đến sản
phẩm pj.
Với một người dùng cần được tư vấn ua (được gọi là người dùng hiện
thời, người dùng cần được tư vấn, hay người dùng tích cực), bài toán lọc cộng tác
là bài toán dự đoán đánh giá của ua đối với những mặt hàng mà ua chưa đánh giá
(raj = ∅), trên cơ sở đó tư vấn cho ua những sản phẩm được đánh giá cao.
Bảng 1.1 thể hiện một ví dụ với ma trận đánh giá R = (rij) trong hệ gồm 5
người dùng U = {u1, u2, u3, u4, u5} và 4 sản phẩm P = {p1, p2, p3, p4}. Mỗi người
dùng đều đưa ra các đánh giá của mình về các sản phẩm theo thang bậc {∅, 1, 2, 3,
4, 5}. Giá trị rij=∅ được hiểu là người dùng ui chưa đánh giá hoặc chưa bao giờ
biết đến sản phẩm pj. Các giá trị r5,2 =? là sản phẩm hệ thống cần dự đoán cho
người dùng u5.
4
Bảng 1.1: Ví dụ về ma trận đánh giá của lọc cộng tác
u1
u2
u3
u4
u5
p1
2
4
3
4
4
p2
1
2
p3
3
1
2
∅
5
∅
4
?
p4
5
∅
4
∅
5
Ma trận đánh giá R = (rij) là thông tin đầu vào duy nhất của các phương
pháp lọc cộng tác. Dựa trên ma trận đánh giá, các phương pháp lọc cộng tác
thực hiện hai tác vụ: Dự đoán quan điểm của người dùng hiện thời (Active User) về
các sản phẩm mà họ chưa đánh giá, đồng thời đưa ra một danh sách các sản phẩm
có đánh giá cao nhất phân bổ cho người dùng hiện thời. Hình 1.1 dưới đây mô tả
các thành phần của hệ thống lọc cộng tác.
Hình 1.1: Các thành phần của hệ thống lọc cộng tác
5
1.2.
Một số phương pháp cho bài toán lọc cộng tác
Cũng giống như lọc theo nội dung, lọc cộng tác tiếp cận theo hai xu hướng
chính: Lọc cộng tác dựa trên bộ nhớ và lọc cộng tác dựa trên mô hình. Mỗi
phương pháp tiếp cận có những ưu điểm và hạn chế riêng, khai thác các mối liên hệ
trên ma trận đánh giá người dùng.
1.2.1. Lọc cộng tác dựa trên bộ nhớ
Các phương pháp lọc dựa trên bộ nhớ sử dụng toàn bộ ma trận đánh giá để
sinh ra dự đoán các sản phẩm cho người dùng hiện thời (AU). Về thực chất, đây là
phương pháp học lười (LL) hay học dựa trên ví dụ (IBL) được sử dụng trong học
máy. Phương pháp được thực hiện theo hai bước: Tính toán mức độ tương tự và
bước tạo nên dự đoán.
Tính toán mức độ tương tự sim(x, y): Mô tả khoảng cách, sự liên quan, hay
trọng số giữa hai người dùng x và y (hoặc giữa hai sản phẩm x và y).
Dự đoán: Đưa ra dự đoán cho người dùng cần được tư vấn bằng cách xác định
tập láng giềng của người dùng này. Tập láng giềng của người dùng cần tư vấn
được xác định dựa trên mức độ tương tự giữa các cặp người dùng hoặc sản
phẩm.
Các phương pháp tính toán mức độ tương tự
Việc tính toán mức độ tương tự giữa hai người dùng x và y được xem xét dựa
vào tập sản phẩm cả hai người dùng đều đánh giá. Tương tự, việc tính toán mức
độ tương tự giữa hai sản phẩm x và y được xem xét dựa vào tập người dùng cùng
đánh giá cả hai sản phẩm. Sau đó, sử dụng một độ đo cụ thể để xác định mức độ
tương tự giữa hai người dùng hoặc sản phẩm.
Có nhiều phương pháp khác nhau tính toán mức độ tương tự sim(x, y) giữa các
cặp người dùng. Hai phương pháp phổ biến nhất được sử dụng là độ tương quan
Pearson và giá trị cosin giữa hai véctơ.
1.2.1.1. Phương pháp User-based
6
Phương pháp lọc cộng tác người dùng (User – User Collaborative Filtering)
hay còn gọi tắt là phương pháp UserBased, đây là phương phương pháp ước lượng
mức độ tương tự giữa các người dùng, nhóm hoặc cụm người dùng để dựa vào đó
đưa ra dự đoán các sản phẩm mới phù hợp với người dùng cần được tư vấn.
Ý tưởng của phương pháp lọc cộng tác người dùng là quảng cáo truyền miệng,
tức là ý kiến của các thành viên trong gia đình, bạn bè đóng vai trò quan trọng trong
việc đưa ra quyết định cá nhân. Nó sử dụng những ý kiến của người dùng tương tự
để dự đoán đánh giá của một người dùng cho một mục.
Người dùng tương tự là những người dùng có cùng sở thích về nhiều mục với
người dùng đang xét. Để tránh trường hợp dự đoán xếp hạng của người dùng dựa trên
quá nhiều người dùng tương tự, hệ tư vấn lựa chọn k người hàng xóm gần nhất trong
số người dùng tương tự trên để lấy ý kiến của họ cho dự đoán mục của người dùng
đang xét.
7
Các bước thực hiện thuật toán của phương pháp UserBased được mô tả như
sau:
Bước 1
Tìm kiếm mục người dùng u
đã có đánh giá
Bước 2
Tìm kiếm người dùng có
đánh giá cho mục trên
Bước 3
Tính tương đồng giữa người
dùng u với từng người trên
Bước 4
Lựa chọn k người dùng là
hàng xóm
Bước 5
Tìm kiếm những mục k
người dùng đã xếp hạng mà
người dùng u chưa xếp hạng
Bước 6
Dự đoán đánh giá của người
dùng u với mục chưa xếp
hạng
Hình 1.2: Các bước thực hiện lọc cộng tác người dùng.
Ta quy ước người dùng u là người dùng đang xét.
Bước 1: Tìm kiếm mục người dùng u đã có đánh giá.
Bước 2: Tìm những người dùng có đánh giá cho các mục mà người dùng
u đánh giá. Sau khi tìm kiếm được các mục mà người dùng u đã đánh
giá, ta tìm kiếm những người dùng có đánh giá cho các mục tìm được ở
bước 2.
Bước 3: Tính tương đồng giữa người dùng u với những người dùng tìm
kiếm ở bước 2.
8
Có 4 công thức được dùng để tính toán sự tương đồng giữa hai người sử dụng.
Giá trị này càng cao thể hiện hai người dùng càng có chung sự tương đồng.
-
Tương quan người dùng (Pearson correlation).
Công thức tương quan người dùng tính toán sự tương tự giữa hai người dùng dựa
trên xếp hạng những mục mà cả hai người đều đánh giá.
𝑠(𝑢, 𝑣 ) =
∑𝑖∈𝐼𝑢 ∩𝐼𝑣(𝑟𝑢,𝑖 − 𝑟̅𝑢 )(𝑟𝑣,𝑖 − 𝑟̅𝑣 )
√∑𝑖∈𝐼𝑢 ∩𝐼𝑣 (𝑟𝑢,𝑖 − 𝑟̅𝑢 )2 √∑𝑖∈𝐼𝑢 ∩𝐼𝑣 (𝑟𝑣,𝑖 − 𝑟̅𝑣 )2
(1.1)
Trong đó, Iu là tập hợp mục người dùng u đã có đánh giá.
ru,i là xếp hạng của người dùng u với mục i.
𝑟̅ u là xếp hạng trung bình của người dùng u.
Trong trường hợp Iu ⋂ Iv lớn ta có thể sử dụng ngưỡng giới hạn Iu ⋂ Iv. Theo
nhiều thí nghiệm cho thấy ngưỡng có giá trị 50 là hữu ích trong việc cải thiện độ
chính xác dự đoán.
-
Ràng buộc tương quan người dùng (Constrained Pearson correlation).
Trong công thức này ta cần một điểm tiêu chuẩn z là đánh giá trung tính. Ví dụ
với thang điểm 1-5 trong đó đánh giá 1-2 là không thích, đánh giá 3 là trung tính
(không thích cũng không ghét), đánh giá từ 4-5 là thích ta có thể sử dụng điểm chuẩn
rz = 3.
𝑠(𝑢, 𝑣 ) =
∑𝑖∈𝐼𝑢 ∩𝐼𝑣(𝑟𝑢,𝑖 − 𝑟𝑧 )(𝑟𝑣,𝑖 − 𝑟𝑧 )
√∑𝑖∈𝐼𝑢 ∩𝐼𝑣 (𝑟𝑢,𝑖 − 𝑟𝑧 )2 √∑𝑖∈𝐼𝑢 ∩𝐼𝑣 (𝑟𝑣,𝑖 − 𝑟𝑧 )2
(1.2)
Trong đó, Iu là tập hợp các mục mà người dùng u đã có đánh giá.
ru, I là xếp hạng mà người dùng u đã đánh giá mục i.
rz là điểm tiêu chuẩn.
-
Thứ hạng tương quan với người dùng (Spearman rank correlation).
Đối với phương pháp này, các mục được người dùng đánh giá sẽ được sắp xếp
9
theo cấp bậc. Với những đánh giá tốt nhất sẽ ở bậc 1, còn những đánh giá thấp hơn
sẽ ở các bậc cao hơn. Sau đó thực hiện tính toán như phương pháp Pearson
correlation, các đánh giá trong công thức (1.3) sẽ được thay thế bằng các cấp bậc.
∑𝑖∈𝐼𝑢 ∩𝐼𝑣(𝑑𝑢,𝑖 − 𝑑̅𝑢 )(𝑑𝑣,𝑖 − 𝑑̅𝑣 )
𝑠(𝑢, 𝑣 ) =
√∑𝑖∈𝐼𝑢 ∩𝐼𝑣 (𝑑𝑢,𝑖 − 𝑑̅𝑢
)2
(1.3)
√∑𝑖∈𝐼𝑢 ∩𝐼𝑣 (𝑑𝑣,𝑖 − 𝑑̅𝑣
)2
Trong đó du,i là cấp bậc xếp hạng của người dùng u đánh giá cho mục i.
𝑑̅u là cấp bậc trung bình đánh giá của người dùng u.
-
Độ tương đồng cosine (Cosine similarity)
Đây là phương pháp vector không gian dựa trên đại số tuyến tính không phải
là các phương pháp thống kê như ở trên. Mỗi người dùng được biểu diễn bằng 1
vector và sự tương đồng giữa hai người dùng được tính toán bằng khoảng cách
cosine giữa hai vector đánh giá.
𝑠(𝑢, 𝑣 ) =
𝑟𝑢 . 𝑟𝑣
=
‖𝑟𝑢 ‖2 ‖𝑟𝑣 ‖2
∑𝑖 𝑟𝑢,𝑖 𝑟𝑣,𝑖
2
√∑𝑖 𝑟𝑢,𝑖
(1.4)
2
√∑𝑣∈𝑉 𝑟𝑣,𝑖
Trong đó ru,i là đánh giá của người dùng u với mục i.
Bước 4: Lựa chọn k người dùng là hàng xóm.
Trong một số hệ thống, người ta lựa chọn k hàng xóm là tất cả người dùng
khác người dùng đang. Còn trong một số hệ thống khác, k hàng xóm được lựa chọn
tùy thuộc vào việc xét duyệt từng mục, với mỗi mục khác nhau sẽ lựa chọn một số
lượng k hàng xóm khác nhau.
Việc hạn chế số lượng người dùng tương tự mang đến những dự đoán chính
xác hơn vì thế khi thực hiện nhiều thí nghiệm trong nhiều lĩnh vực khác nhau, người
ta nhận thấy với k ∊ [20, 50] là con số hợp lý.
Bước 5: Tìm kiếm những mục k người dùng đã xếp hạng mà người dùng u
chưa xếp hạng.
Bước 6: Dự đoán đánh giá của người dung u với mục chưa xếp hạng.
10
Dựa trên người dùng hàng xóm ta có công thức dự đoán đánh giá của người dùng đó
với một mục như sau:
𝑝𝑢,𝑖
∑𝑢′∈𝑘 𝑠(𝑢, 𝑢′ )(𝑟𝑢′,𝑖 − 𝑟̅̅̅̅)
𝑢′
= 𝑟̅𝑢 +
(1.5)
∑𝑢′∈𝑘|𝑠(𝑢, 𝑢′ )|
Trong đó, k là tập người hàng xóm của người dùng u.
s(u, u’) là sự tương đồng giữa người dùng đang xét u và người dùng hàng xóm u’.
ru’,i là xếp hạng của người dùng u’ với i.
𝑟̅ u’ là xếp hạng trung bình của người dùng u’.
1.2.1.2. Phương pháp Item-Based
Phương pháp ItemBased là phương pháp ước lượng mức độ tương tự giữa các
cặp sản phẩm, nhóm hoặc cụm sản phẩm dựa vào đó để đưa ra dự đoán các sản phẩm
mới phù hợp với người dùng cần được tư vấn.
Hiện nay, số lượng sản phẩm đang tăng theo thời gian và quy mô mở rộng của
nhà cung cấp nhưng so với người sử dụng thì số lượng này có thể ít hơn thậm chí ít
hơn một cách đáng kể. Để khắc phục sự phức tạp khi số lượng người dùng tăng trong
phương pháp lọc cộng tác người dùng (UserBased), các nhà nghiên cứu đã tìm hiểu
và đưa thêm một phương pháp là lọc cộng tác dựa trên mục.
Phương pháp lọc cộng tác mục dựa trên ý tưởng người dùng sẽ có cùng quan
tâm với những mục tương tự, hệ tư vấn tìm kiếm những mục tương tự với mục mà
người dùng đã đánh giá để đưa ra tư vấn. Sự giống nhau giữa các mục được dựa trên
xếp hạng của những người dùng khác với chúng.
11
- Xem thêm -