Tải bản đầy đủ (.pdf) (72 trang)

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

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 (2.04 MB, 72 trang )

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


Các bước thực hiện thuật toán của phương pháp ItemBased được mô tả như
sau:

Tìm kiếm mục người dùng u
đã đánh giá
Bước 1

Tìm kiếm mục người dùng u
chưa đánh giá

Bước 2

Bước 3

Xét mỗi mục j đã đánh giá với
mục i chưa đánh giá.
Tính sự tương đồng giữa hai
mục i và j

Dự đoán đánh giá của người
dùng u với mục chưa đánh giá


Hình 1.3: Các bước thực hiện lọc cộng tác mục.

Bước 1: Tìm kiếm mục người dùng đã có đánh giá và chưa có đánh giá. Trong
bước này chỉ thực hiện 2 công việc là tìm tập những mục mà người dùng chưa
đánh giá và tìm tập những mục mà người dùng đã đánh giá.
Bước 2: Xét mỗi mục i đã đánh giá với lần lượt các mục j chưa có đánh giá.
Sau đó tính sự tương đồng giữa hai mục i và j.
Sự tương đồng giữa hai mục i và j dựa trên đánh giá của những người dùng đã
xếp hạng cho cả hai mục.
Có ba công thức để tính tương đồng giữa hai mục.
-

Độ tương đồng Cosine (Cosine similarity)

Độ tương đồng cosine giữa các vector xếp hạng mục là số đo tương đồng phổ
biến nhất vì nó đơn giản, nhanh và cung cấp các dự đoán có độ chính xác tương đối
tốt.

12


𝑠(𝑖, 𝑗) =

𝑟𝑖 . 𝑟𝑗
‖𝑟𝑖 ‖2 ‖𝑟𝑗 ‖

2

∑𝑣∈𝑉 𝑟𝑣,𝑖 𝑟𝑣,𝑗


=

2
√∑𝑣∈𝑉 𝑟𝑣,𝑖

(1.6)

2
√∑𝑣∈𝑉 𝑟𝑣,𝑗

Trong đó, 𝑟𝑣,𝑖 là xếp hạng của người dùng v với mục i.
V là tập hơn người dùng có cùng đánh giá cho cả hai mục i và j.
-

Tương quan người dùng (Pearson correlation)

Công thức Pearson correlation này với công thức Pearson correlation lọc cộng
tác người dùng chỉ khác rằng danh sách những mục mà hai người sử dụng có đồng
đánh giá được thay thế thành danh sách người sử dụng cùng đánh giá cho hai mục i
và j. Công thức Pearson correlation cho phương pháp lọc cộng tác mục như sau:

𝑠(𝑖, 𝑗) =

∑𝑣∈𝑉(𝑟𝑣,𝑖 − 𝑟̅)(𝑟
̅)
𝑖
𝑣,𝑗 − 𝑟
𝑗
2 ∑
2

√∑𝑣∈𝑉(𝑟𝑣,𝑖 − 𝑟̅)
√ 𝑣∈𝑉(𝑟𝑣,𝑗 − 𝑟̅)
𝑖
𝑗

(1.7)

Trong đó, V là tập hợp người dùng cùng danh sách đánh giá cho hai mục i và j.
𝑟𝑣,𝑖 là xếp hạng của người dùng v cho mục i.
𝑟̅𝑖 là xếp hạng trung bình của mục i.
-

Điều chỉnh độ tương đồng Cosine (Adjusted Cosine Similarity).

Trong công thức tính toán Cosine similarity có một điều hạn chế là những
đánh giá khác nhau của những người dùng khác nhau không có giá trị tham khảo để
đưa ra dự đoán. Công thức Cosine similarity khắc phục được nhược điểm này bằng
cách trừ đi trung bình xếp hạng người dùng tương ứng với mỗi cặp đồng đánh giá.

𝑠(𝑖, 𝑗) =

∑𝑢∈𝑈(𝑟𝑢,𝑖 − 𝑟̅𝑢 )(𝑟𝑢,𝑗 − 𝑟̅𝑢 )
√∑𝑢∈𝑈(𝑟𝑢,𝑖 − 𝑟̅𝑢 )2 √∑𝑢∈𝑈(𝑟𝑢,𝑗 − 𝑟̅𝑢 )2

Trong đó , 𝑟𝑢,𝑖 là xếp hạng của người dùng u với mục i.

𝑟̅𝑢 là xếp hạng trung bình của người dùng u.
13

(1.8)



Bước 3 : Dự đoán đánh giá của người dùng u với mục j.
Các tư vấn được tạo ra từ việc chọn ra các mục ứng cử viên là những mục có dự đoán
cao nhất. Sau khi thu thập một bộ S các mục tương tự nhau với mục i, công thức dự
đoán đánh giá của người dùng u với mục i như sau:

𝑝𝑢,𝑖 =

∑𝑗∈𝑆 𝑆(𝑖, 𝑗)𝑟𝑢,𝑗
(1.9)
∑𝑗∈𝑆|𝑆(𝑖, 𝑗)|

Trong đó, S là tập các mục tương đồng với i
S(i,j) là giá trị tương đồng giữa hai mục i và j.

𝑟𝑢,𝑗 là xếp hạng của người dùng u với mục j.
1.2.2. Lọc cộng tác dựa trên mô hình
Khác với phương pháp dựa trên bộ nhớ, phương pháp lọc dựa trên mô hình sử
dụng tập đánh giá để xây dựng mô hình huấn luyện. Kết quả của mô hình huấn luyện
được sử dụng để sinh ra dự đoán quan điểm của người dùng về các sản phẩm chưa
được họ đánh giá. Ưu điểm của của phương pháp này là mô hình huấn luyện có kích
thước nhỏ hơn rất nhiều so với ma trận đánh giá và thực hiện dự đoán nhanh. Mô
hình chỉ cần cập nhật lại khi có những thay đổi lớn và chỉ thực hiện lại pha xây dựng
mô hình.
Mô hình mạng Bayes:
Mô hình mạng Bayes biểu diễn mỗi sản phẩm như một đỉnh của đồ thị, trạng
thái của đỉnh tương ứng với giá trị đánh giá của người dùng đối với sản phẩm đã được
đánh giá. Cấu trúc của mạng được nhận biết từ tập dữ liệu huấn luyện.
Billsus và Pazzani chuyển đổi dữ liệu có nhiều mức đánh giá thành dữ liệu nhị

phân. Khi đó, ma trận đánh giá được chuyển đổi thành ma trận bao gồm đặc trưng
nhị phân. Việc chuyển đổi này làm cho việc sử dụng mô hình mạng Bayes trở nên

14


thuận tiện hơn. Tuy nhiên, kết quả phân loại theo các đặc trưng nhị phân không phản
ánh đúng các bộ dữ liệu thực.
Su và Khoshgoftaar mở rộng mô hình mạng Bayes cho các tập dữ liệu thực
gồm nhiều lớp đánh giá khác nhau. Kết quả dự đoán của mô hình tốt hơn so với các
phương pháp dựa trên độ tương quan Pearson và mô hình mạng Bayes đơn giản.
Mô hình phân cụm:
Một cụm là tập các đối tượng dữ liệu có các phần tử trong cụm giống nhau
nhiều nhất, và khác nhau nhiều nhất đối với các phần tử thuộc các cụm khác. Các
phương pháp phân cụm cho lọc cộng tác được sử dụng để phân chia tập người dùng
(hoặc tập sản phẩm) thành các cụm người dùng (hoặc sản phẩm) có sở thích tương tự
nhau. Khi đó, người dùng (hoặc sản phẩm) thuộc cụm nào sẽ được dự đoán và tư vấn
các sản phẩm được đánh giá cao trong cụm đó.
Độ đo dùng để ước lượng mức độ giống nhau giữa các đối tượng dữ liệu
thường được sử dụng là khoảng cách Minkowski và độ tương quan Pearson.
Sarwar và Herlocker cùng các cộng sự sử dụng các kỹ thuật phân cụm chia tập
người dùng thành các cụm. Phương pháp dự đoán sử dụng các thuật toán dựa trên bộ
nhớ như độ tương quan Pearson để thực hiện trên mỗi cụm dữ liệu.
Ungar và Foster sử dụng kỹ thuật K-median phân tập người dùng thành các
cụm dựa vào những sản phẩm họ đã đánh giá, phân tập sản phẩm thành các cụm sản
phẩm dựa vào những người dùng đánh giá sản phẩm đó. Tập người dùng sau đó được
phân cụm lại dựa vào số sản phẩm họ đánh giá. Tương tự như vậy, tập sản phẩm cũng
được phân cụm lại dựa vào số lượng người dùng đã đánh giá sản phẩm. Phương pháp
này được đánh giá cao về ý tưởng, nhưng trên thực tế kết quả dự đoán không được
như mong muốn.

Si và Jin đề xuất mô hình phân cụm bằng mô hình FMM (Flexible Mixture
Model). Phương pháp phân cụm đồng thời cho cả người dùng, sản phẩm và cho phép
mỗi người dùng hoặc sản phẩm có thể thuộc nhiều cụm khác nhau, sau đó mô hình
hóa các cụm người dùng và các cụm sản phẩm độc lập nhau để thực hiện dự đoán.
15


Kết quả thử nghiệm đã chứng tỏ phương pháp cho lại kết quả tốt hơn so với phương
pháp dựa trên độ tương quan Pearson và mô hình định hướng (Aspect Model).
Mô hình ngữ nghĩa ẩn:
Mô hình ngữ nghĩa ẩn cho lọc cộng tác dựa vào các kỹ thuật thống kê, trong
đó các tham biến ẩn được thiết lập trong một mô hình hỗn hợp để khám phá ra cộng
đồng người dùng phù hợp với mẫu hồ sơ thích hợp. Hofmann đề xuất mô hình định
hướng (AM) cấp 3 bằng cách mở rộng mô hình định hướng cấp 2 đã được áp dụng
cho bài toán phân tích ngữ nghĩa văn bản. Sau đó sử dụng thuật toán tôi (Expectation
Maximization) để ước lượng ngữ nghĩa các tham biến ẩn.
Si và Jin đề xuất mô hình MM (Multinomial Model) phân loại tập người dùng
với giả thiết chỉ có một kiểu người dùng duy nhất. Marlin đề xuất mô hình MMM
(Multinomial Mixture Model), kết hợp với mô hình định hướng (AM) để tạo nên mô
hình URP (User Rating Profile) với giả thiết có nhiều kiểu người dùng và các đánh
giá mỗi người dùng độc lập nhau. Marlin khẳng định, URP thực hiện tốt hơn so với
mô hình AM và MMM.
Mô hình phân loại và hồi qui:
Cho tập gồm N véctơ M chiều {xi}. Mục tiêu của phân loại hay hồi qui là dự
đoán chính xác giá trị đầu ra tương ứng {ci}. Trong trường hợp phân loại, ci nhận
một giá trị từ một tập hữu hạn gọi là tập các nhãn. Trong trường hợp hồi qui, ci có
thể nhận một giá trị thực.
Để áp dụng mô hình phân loại cho lọc cộng tác, mỗi sản phẩm (hoặc người
dùng) được xây dựng một bộ phân loại riêng. Bộ phân loại cho sản phẩm y phân loại
tập người dùng dựa trên những người dùng khác đã đánh giá sản phẩm y. Các bộ phân

loại được tiến hành huấn luyện độc lập nhau trên tập các ví dụ huấn luyện.
Một số mô hình khác: Một số mô hình khác cũng được sử dụng trong lọc cộng
tác như mô hình cực đại Entropy (Maximization Entropy Model), mô hình đồ thị
(Graph-Based Model).

16


×