Tải bản đầy đủ (.doc) (53 trang)

Xây dựng ứng dụng tư vấn nhạc chuông

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 (1.26 MB, 53 trang )

XÂY DỰNG ỨNG DỤNG TƯ VẤN NHẠC CHUÔNG
Mục lục
Mục lục.....................................................................................................................................2
Các thuật ngữ được sử dụng trong tài liệu...............................................................................4
Bảng biểu..................................................................................................................................5
Hình vẽ.....................................................................................................................................6
Giới thiệu..................................................................................................................................7
Chương 1: Lọc cộng tác...........................................................................................................9
1.1.Giới thiệu về lọc cộng tác..............................................................................................9
1.2.Lọc cộng tác dựa trên bộ nhớ......................................................................................12
1.2.1.Tính toán độ tương tự...........................................................................................15
1.2.2. Tính toán dự đoán và tư vấn................................................................................17
1.3.Lọc cộng tác dựa trên mô hình....................................................................................18
1.4.Ưu điểm và những thách thức trong lọc cộng tác.......................................................21
1.2.1. Ưu điểm của lọc cộng tác....................................................................................21
1.2.1.1. Có thể lọc thông tin thuộc bất kỳ loại nào...................................................21
1.2.1.2. Không cần xác định thông tin mô tả yêu cầu...............................................21
1.2.1.3. Người dùng có thể nhận được những gợi ý bất ngờ....................................22
1.2.1.4. Khả năng ứng dụng thực tiễn cao.................................................................22
1.2.2. Khó khăn và thách thức trong lọc cộng tác.........................................................22
1.2.2.1. Sự thưa thớt dữ liệu......................................................................................23
1.2.2.2. Khả năng mở rộng........................................................................................25
1.2.2.3. Tính đồng nghĩa............................................................................................26
1.2.2.4. Sự mập mờ....................................................................................................27
1.2.2.5. Sự tấn công...................................................................................................27
Chương 2: Lọc cộng tác có sử dụng độ tương quan gián tiếp..............................................29
2.1. Mô hình.......................................................................................................................29
2.2. Thuật toán....................................................................................................................32
2.3. Độ phức tạp thuật toán................................................................................................35
Chương 3: Ứng dụng..............................................................................................................37
3.1 Chức năng hệ thống.....................................................................................................37


3.1.1. Search module......................................................................................................37
3.1.2 Auth module..........................................................................................................38
3.1.3. Management module............................................................................................38
3.1.4 Recommendation module.....................................................................................39
3.1.5. Download module................................................................................................39
3.1.6 User profile module..............................................................................................39
3.2 Use-case........................................................................................................................40
3.2.1. Package view........................................................................................................40
3.2.2. Use case diagram.................................................................................................41
3.2.2.1. <<package>> search module........................................................................41
3.2.2.2. <<package>> auth module...........................................................................42
3.2.2.3. <<package>> management module..............................................................44
3.2.2.4. <<package>> recommendation module.......................................................44
3.2.2.5. <<package>> user profile module................................................................44
3.3. Thiết kế kiến trúc hệ thống.........................................................................................45
KẾT LUẬN............................................................................................................................51
Tài liệu tham khảo..................................................................................................................51
Các thuật ngữ được sử dụng trong tài liệu
STT
Tên tiếng
anh
Tên tiếng việt Giải thích
1 User Người dùng Chỉ những người sử dụng, người dùng hệ
thống…
2 Item Sản phẩm, mục Chỉ những mục trên hệ thống như: sản
phẩm, phim, ảnh, bản nhạc, trang web,
đoạn văn bản,…
3 Rating Đánh giá Chỉ mức độ thích của một người dùng
với sản phẩm (item). Rating có thể có
nhiều biểu hiện: như đánh giá thích hoặc

không thích, hay đánh già theo mức độ từ
1 – 5 đại diện từ không thích đến rất
thích. Trong tài liệu này, các đánh giá
được biểu diễn dưới dạng ma trận user –
item hay ma trận người dùng – sản phẩm.
Bảng biểu
Hình vẽ
Giới thiệu
Sự phát triển của internet đã mở ra cho con người rất nhiều cơ hội mới,
nhưng cũng đầy thách thức. Với internet, con người có cơ hội được tiếp cận với
nguồn thông tin gần như vô hạn và vẫn đang tăng lên một cách nhanh chóng[?]. Tuy
nhiên, việc chọn được đúng thông tin cần thiết từ nguồn tin khổng lồ đó không hề
đơn giản. Con người càng ngày càng mất nhiều thời gian vào việc tìm kiếm và chọn
lọc thông tin. Vấn đề này được gọi là quá tải thông tin. Những nghiên cứu nhằm
giải quyết vấn đề này dẫn đến sự ra đời của một ngành khoa học mới, đó là lọc
thông tin (information filtering)[?].
Tư vấn lựa chọn là một trong những phương pháp lọc tin được quan tâm
nhiều nhất. Hệ tư vấn lựa chọn là những hệ thống có thể “hiểu” được người dùng và
có thể đưa ra được những gợi ý cho người dùng.
Những hệ tư vấn là những hệ tư vấn dựa trên nội dung[?], những hệ tư vấn
này so sánh nội dung của item (chỉ mục) với những sở thích của người dùng đã
cung cấp, từ đó dự đoánh khả năng người dùng sẽ thích item đó. Tuy nhiên, phương
pháp tư vấn dựa trên nội dung chỉ phù hợp với những item dạng văn bản. Trong
những hệ thống thương mại điện tử, việc so sánh nội dung của item với sở thích của
người dùng quả không dễ dàng. Hay với những item không phải dạng văn bản như
phim, ảnh, âm nhạc… thì việc so sánh nội dung của nó quả là vấn đề nan giải.
Trong những trường hợp này, việc tư vấn dựa trên nội dung gặp phải khó khăn rất
lớn.
Đầu những năm 90 của thế kỷ XX, một hướng nghiên cứu mới cho các hệ
tư vấn lựa chọn, đó là lọc cộng tác[?]. Ngay từ khi ra đời, các hệ tư vấn dựa trên

lọc cộng tác đã thể hiện được những ưu điểm cùng tính kinh tế của mình. Nó nhanh
chóng thu hút được sự quan tâm nghiên cứu và đã được ứng dụng thành công trong
khá nhiều hệ thống thương mại như www.amazon.com, www.ebay.com,...
Trong đồ án này, tôi sẽ trình bày về hệ tư vấn lựa chọn với lọc cộng tác.
Trong đồ án này tôi sẽ đưa ra những lý thuyết cơ bản nhất về lọc cộng tác (mục
1.1), những đặc điểm cũng như những ưu điểm và các khó khăn, thách thức của lọc
cộng tác (mục 1.2), hai mô hình sử dụng của lọc cộng tác là lọc cộng tác dựa trên bộ
nhớ (mục 1.3) và lọc cộng tác dựa trên mô hỉnh (mục 1.4). Trong đồ án này, tôi sẽ
xây dựng một hệ tư vấn người dùng với kỹ thuật lọc cộng tác, đó là “hệ thống tư
vấn nhạc chuông điện thoại”.
Cấu trúc của đồ án như sau:
Chương 1: Trình bày về những vấn đề cơ bản nhất của lọc cộng tác, như
định nghĩa, các lý thuyết cơ bản được sử dụng trong lọc cộng tác, những ưu điểm
cùng khó khăn thách thức của lọc cộng tác. Hai mô hình của lọc cộng tác là dựa trên
bộ nhớ và dựa trên mô hình cũng được trình bày trong chương này.
Chương 2: Tôi sẽ trình bày chi tiết một phương pháp lọc cộng tác dựa trên
bộ nhớ, trong đó có sử dụng độ tương tự gián tiếp giữa hai người dùng. Với thuật
toán này, chúng ta có thể khắc phục được phần nào cá vấn đề của lọc cộng tác đã
được trình bày ở chương 1.
Chương 3: Tôi sẽ trình bày về ứng dụng “tư vấn nhạc chuông điện thoại”.
Chương 1: Lọc cộng tác
Trong chương này, tôi sẽ giới thiệu về lọc cộng tác. Những đặc trưng, những
ưu điểm cùng những thách thức đối với lọc cộng tác. Đồng thời, tôi cũng sẽ trình
bày về hai môi hình cơ sở của lọc cộng tác: 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.
 Giới thiệu
 Đặc điểm và thách thức trong lọc cộng tác
 Lọc cộng tác dựa trên bộ nhớ
 Lọc cộng tác dựa trên mô hình
1.1. Giới thiệu về lọc cộng tác

Trong cuộc sống hàng ngày, mọi người thường tin vào những lời giới thiệu từ
những người khác thông qua lời nói, thư từ văn bản, các nguồn tin thu được trên các
phương tiện thông tin đại chúng. Về bản chất của lọc cộng tác cũng chính là hình
thức tư vấn như trên, tuy nhiên, việc này được thực hiện tự động bởi các máy tính.
Các nhà phát triển hệ tư vấn đầu tiên (Trapestry[9]) đã đư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”.
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 đó là một người dùng,
là một sản phẩm, và 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
= (i, x, r). Hơn nữa, ứng với mỗi người dùng
chúng ta biểu diễn là tập các sản phẩm được đánh giá bởi người dùng
i. Tương tự thế, là tập người dùng đã đưa đánh giá cho sản phẩm x.
Dựa vào mỗi người dùng và sản phẩm , dự đoán trọng số sản
phẩm chính là dự đoán trọng số của người dùng i cho sản phẩm x. Mở rộng của vấn
đề này là tìm tập k sản phẩm mà rất có thể người dùng sẽ quan tâm là công việc
chính trong các hệ tư vấn hiện nay. Giả sử rằng chúng ta có một hệ thống dự đoán
các đánh giá của người dùng lên các sản phẩm mới, và dựa vào đó ta có thể lấy ra k
sản phẩm được dự đoán có trọng số cao nhất. Cuối cùng, hai vấn đề quan trọng nhất
đó là làm thế nào để tìm được tập k người dùng tương tự với người dùng i nhất dựa
trên thị hiếu về sản phẩm hay làm thế nào để tìm ra tập k sản phẩm tương tự với sản
phẩm x nhất để có thể đưa ra các dự đoán trọng số đánh giá của người dùng và sản

phẩm tương ứng. Trong lọc cộng tác, các kỹ thuật này được chia thành hai nhóm
chính là phương pháp tiếp cận dựa trên bộ nhớ (mục 1.3) và phương pháp tiếp cận
dựa trên mô hình (mục 1.4).
Với phương pháp lọc cộng tác dựa trên bộ nhớ, các hệ thống thường có xu
hướng sử dụng toàn bộ dữ liệu đánh giá của người dùng để dự đoán đánh giá của
người dùng nào đó về một sản phẩm mới. Nhờ lợi thế là có khả năng đưa trực tiếp
dữ liệu mới vào bảng dữ liệu, do đó nó đạt được khá nhiều thành công khi được áp
dụng vào thực tế. Cũng do đó mà các kỹ thuật này thường đưa ra các dự đoán chính
xác hơn trong các hệ trự tuyến – nơi mà ở đó luôn có dữ liệu mới được cập nhật. Kỹ
thuật này đã được áp dụng khá thành công trong nhiều hệ thống thương mại như
www.amazon.com, www.ebay.com,... Tuy nhiên, chúng ta sẽ nhận thấy rằng các hệ
thống thế này thường gặp phải vấn đề đó là sự thưa thớt dữ liệu.
Hình 1.1 Trang tư vấn của www.amazon.com
Có 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 1.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 1.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
Hình 1.2 Trang tư vấn của www.movilens.org
1.2. 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 bộ nhớ có đặc trưng cơ bản là nó thường sử
dụng toàn bộ dữ liệu đã có để dự đoán đánh giá của một người dùng nào đó về sản

phẩm mới. Nhờ lợi thế là nó có khả năng đưa trực tiếp dữ liệu mới vào bảng dữ
liệu, do đó nó đạt được khá nhiều thành công khi được áp dụng vào các ứng dụng
thực tế. Cũng do đó mà các kỹ thuật này thường đưa ra các dự đoán chính xác hơn
trong các hệ trự tuyến – nơi mà ở đó luôn có dữ liệu mới được cập nhật. Tuy nhiên,
chúng ta sẽ nhận thấy rằng các hệ thống thế này thường gặp phải vấn đề đó là sự
thưa thớt dữ liệu[?].
Thông thường, có hai cách tiếp cận dựa trên bộ nhớ: hệ dựa trên người dùng
– tức dự đoán dựa trên sự tương tự giữa các người dùng và hệ dựa trên sản phẩm –
dự đoán dựa trên sự tương tự giữa các sản phẩm. Hệ dựa trên người dùng xác định
sự tương tự giữa hai người dùng thông qua việc so sánh các đánh giá của họ trên
cùng sản phẩm, sau đó dự đoán đánh giá sản phẩm y bởi người dùng i, hay chính là
đánh giá trung bình của những người dùng tương tự với người dùng i. Độ tương tự
giữa người dùng i và người dùng j có thể được tính theo công thức sau:
(2.1)
Trong đó sim(r, r’) là độ đo tương tự đối xứng giữa trọng số r và r’, a
ij
là số
hạng tiêu chuẩn, thường là một hằng số. Một ví dụ cho độ đo tương tự này là hệ số
nhân Gaussian được xác định là trong đó là một tham số, chúng ta
có thể sử dụng a
ij
= |P
i
∩ P
j
| như là một số hạng tiêu chuẩn, từ đó độ đo tương tự
của người dùng được định nghĩa như sau:
(2.2)
Sau khi đã tính toán được độ tương tự giữa các người dùng, chúng ta có thể
dự đoán đánh giá của người dùng i trên sản phẩm y như sau:

(2.3)
Nếu u
ij
nằm trong khoảng [0,1] thì là một sự kết hợp lồi của r
ij
và giá trị
cũng nằm trong khoảng [0,1] giống r
ij.
Chú ý rằng hầu hết những hệ thống điển hình
giới hạn các định giá được sử dụng để dự đoán tới nhiều thứ liên quan nhất. Có hai
cách tiếp cận chung để làm việc này là: chỉ xem trọng số đánh giá của người dùng j
có hoặc chỉ xem trọng số của tập N người dùng tương tự nhất với
người dùng i.
Những hệ dựa trên sản phẩm thì xử lý theo phương pháp ngược lại: Chúng
tính sự tương tự giữa sản phẩm x và y thông qua so sánh trọng số đánh giá được tạo
ra bởi cùng người dùng i trên sản phẩm x và y, nghĩa là:
(2.4)
Trong đó b
xy
là số hạng tiêu chuẩn. Trọng số đánh giá được dự đoán bởi
người dùng i về sản phẩm y sẽ thu được như trọng số trung bình của người dùng i
về các sản phẩm x tương tự với y, công thức tính là:
(2.5)
Trong khi khung làm việc nói chung để dự đoán các đánh giá chỉ có khả
năng sử dụng những độ tương tự xuất hiện đơn giản thì các hệ lọc cộng tác điển
hình sử dụng độ đo tương tự phức tạp hơn như độ đo tương tự không gian vecto
được tính như sau:
(2.6)
Ta cũng có thể dùng độ đo tương quan Pearson.
Phương pháp lọc cộng tác dựa trên bộ nhớ có đặc trưng cơ bản là nó thường sử

dụng toàn bộ dữ liệu đã có để dự đoán đánh giá của một người dùng nào đó về sản
phẩm mới. Nhờ lợi thế là nó có khả năng đưa trực tiếp dữ liệu mới vào bảng dữ
liệu, do đó nó đạt được khá nhiều thành công khi được áp dụng và các ứng dụng
thực tế. Cũng do đó mà các kỹ thuật này thường đưa ra các dự đoán chính xác hơn
trong các hệ tư vấn trực tuyến – nơi mà ở đó luôn có dữ liệu mới được cập nhật.
Tuy nhiên, chúng ta sẽ nhận thấy rằng các hệ thống này thường gặp phải vấn đề đó
là sự thưa thớt dữ liệu.
Thông thường, có hai cách tiếp cận dựa trên bộ nhớ: hệ tư vấn trên người
dùng – tức dự đoán dựa trên sự tương tự giữa các người dùng và hệ dựa trên item –
dự đoán dựa trên sự tương tự giữa các sản phẩm. Hệ dựa trên người dùng xác định
sự tương tự giữa hai người dùng thông qua việc so sánh các đánh giá của họ trên
cùng sản phẩm, sau đó dự đoán đánh giá sản phẩm y bởi người dùng i, hay chính là
đánh giá trung bình của người dùng tương tự với người dùng i. Những hệ dựa trên
item thì xử lý theo phương pháp ngược lại. Chúng tính sự tương tự giữa sản phẩm x
và y, thông qua so sánh trong số đánh giá được tạo ra bởi người dùng i trên sản
phẩm x và y. Từ đó đưa ra dự đoán đánh giá của người dùng i lên sản phẩm y.
Thuật toán lọc cộng tác dựa trên tập hàng xóm là thuật toán lọc cộng tác dựa
trên bộ nhớ. Trong thuật toán dựa trên tập hàng xóm, K người dùng gần nhất với
người dùng i sẽ được chọn ra để tính toán. Để chọn ra K hàng xóm gần nhất với
người dùng, chúng ta cần tính toán độ tương tự của người dùng i với những người
dùng khác. Sau có được K hàng xóm gần nhất với người dùng I, ta có thể đưa ra dự
đoán đánh giá của người dùng I với sản phẩm y dựa trên những đánh giá của K hàng
xóm đó.
1.2.1.Tính toán độ tương tự
Tính toán độ tương tự giữa người dùng hoặc sản phẩm là bước đầu tiên trong
thuật toán lọc cộng tác dựa trên bộ nhớ. Chẳng hạn, với thuật toán lọc cộng tác dựa
trên người dùng, bước đầu tiên chúng ta phải tính toán độ tương tự u
ij
giữa hai
người dùng i và j dựa trên dữ liệu là những đánh giá của họ trên cùng một sản

phẩm. Độ tương tự giữa hai người dùng có thể được tính theo công thức sau:
Trong đó sim(r, r’) là độ đo tương tự đối xứng giữa trọng số r và r’, a
ij
là số
hạng tiêu chuẩn, thường là một hằng số. Một ví dụ cho độ đo tương tự này là hệ số
nhân Gaussian được xác định là trong đó là một tham số, chúng ta
có thể sử dụng a
ij
= |P
i
∩ P
j
| như là một số hạng tiêu chuẩn, từ đó độ đo tương tự
của người dùng được định nghĩa như sau:
Trong một vài trường hợp cụ thể, chúng ta cần sử dụng những công thức tính
độ tương quan khác như tương quan Pearson, hay độ tương tự cosine giữa các
vector nhằm nâng cao hiệu năng dự đoán.
Với độ tương quan Pearson, độ tương tự u
ij
giữa hai người dùng i và j được
đánh giá bằng việc tính toán độ tương quan tuyến tính giữa hai vector. Công thức
tính toán độ tương quan Pearson cho hai người dùng i và j là:
( )( )
( ) ( )
∑ ∑

∈ ∈
∩∈
−−
−−

=
i j
ji
Px Px
jxjixi
PPx
jxjixi
ij
rrrr
rrrr
u
2
,
2
,
,,
Trong đó,
ji
PPx
∩∈
là tập sản phẩm mà người dùng i và người dùng j cùng
đánh giá,
xi
r
,
là đánh giá của người dùng i lên sản phẩm x,
i
r
là đánh giá trung
bình của người dùng i.

Chúng ta cũng có thể tính toán độ tương tự giữa hai người dùng sử dụng độ
tương tự cosine giữa hai vector.
( )
ji
ji
jiu
ij





==
,cos
Trong đó phép toán

biểu thị phép nhân vector giữa hai vector
i


j

.
1.2.2. Tính toán dự đoán và tư vấn
Đưa ra được những dự đoán hoặc lời gợi ý là một bước quan trọng trong hệ
tư vấn lọc cộng tác. Sau khi tính toán độ tương tự giữa các người dùng hay giữa các
sản phẩm. Ta có thể đưa ra những dự đoán bằng cách tính trung bình các dự đoán
của những hàng xóm.
Trong thuật toán lọc cộng tác dựa trên hàng xóm, tập con những hàng xóm
gần nhất của người dùng thực sự được lựa chọn dựa trên độ tương tự của chúng với

anh hoặc chị ta, và tập hợp trọng số của những đánh giá đó được dùng để sinh ra dự
đoán cho người dùng chính. Công thức dự đoán đánh giá của người dùng khi sử
dụng độ tương quan Pearson sẽ là:
Ta có thể biểu diễn thuật toán KNN sử dụng độ tương quan Pearson như
trong lưu đồ thuật toán dưới đây:
1.3. Lọc cộng tác dựa trên mô hình
Ngược lại với phương pháp dựa trên bộ nhớ, phương pháp tiếp cận dựa trên mô
hình không sử dụng tất 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.
Kỹ thuật lọc cộng tác dựa trên mô hình đơn giản và phổ biến nhất là dựa trên
mạng xác suất Bayes[?]. Một mạng bayes được biểu diễn như hình vẽ dưới đây:
Trong đó, các node biểu diễn biến ngẫu nhiên C, cùng tập các vector đầu vào
X
1
, X
2
,…, X
m
là tập các giá trị mà biễn ngẫu nhiên C có thể nhận.
Quá trình huấn luyện đòi hỏi ta phải tính toán P(C = c) – tức xác suất của
biến ngẫu nhiên C nhận giá trị c, và P(Xj = x|C = c) – là xác suất biến ngẫu nhiên X
j
nhận giá trị x khi biết rằng C có giá trị c. Những xác suất này được tính theo công
thức dưới đây:
Để áp dụng mạng Bayes vào việc dự đoán, chúng ta sẽ học đọc lập với mỗi

sản phẩm y. Chúng ta huấn luyện máy với sản phẩm y bằng việc sử dụng tất cả
người u dùng trên tập dữ liệu. Vector đầu vào cho học máy với mỗi sản phẩm y bao
gồm tất cả những đánh giá của trên những sản phẩm còn lại. Chúng ta đặt sản phẩm
y là biến ngẫu nhiên, các sản phẩm còn lại là tập thuộc tính. Chúng ta có công thức
bayes:
Để học, mạng dự đoán bayes cần tính toán P(R
y
= v) và P(R
j
= w|R
y
= v).
Luật học của bayes được trình bày trong công thức 4.10 và 4.11 có thể được áp
dụng mà không cần thay đổi gì, nhưng để tránh những trường hợp xác suất bằng 0.
Luật học cần được sửa đổi, và chúng ta có 2 công thức như của 4.14 và 4.15. Thuật
toán tư vấn dựa trên mô hình với mạng bayes như sau:
1.4. Ưu điểm và những thách thức trong lọc cộng tác
1.2.1. Ưu điểm của lọc cộng tác
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ệ tư vấn 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ể lọc kết hợp nhiều loại thông tin, không cần mô tả thông tin chi tiết về item
hay người dùng có thể nhận được những tư vấn bất ngờ, và đặc biệt, các hệ lọc
cộng tác có thể dễ cài đặt hơn nhiều.
1.2.1.1. Có thể lọc thông tin thuộc bất kỳ loại nào
Lọc cộng tác dựa trên đánh giá của người dùng về hàng hóa, sản phẩm,
phim, tài liệu,… không có giới hạn về lĩnh vực, không cần phải phân tích, hiểu hoặc
đánh chỉ sổ cho nội dung cần lọc. Ưu điểm này đã khắc phục được một trong những
hạn chế chính của lọc theo nội dung bởi lọc theo nội dung đòi hỏi các mục cần phải
có nội dung được cấu trúc tốt và yêu cầu một quá trình phân tích chuyển đổi, trích
ra những thành phần đặc trưng. Lọc theo nội dung chỉ phù hợp với dữ liệu văn bản.

Với những lĩnh vực không thuộc tài liệu văn bản như phim, âm nhac,… thì lọc theo
nội dung vẫn cần phải có sự chuyển đổi thích hợp để đưa về dạng tài liệu như là tên
diễn viên, đạo diễn, nhận xét của người dùng… Những phân tích chuyển đổi này rất
tốn kém công sức để thu nhập, tính toán. Thêm vào đó, với lọc cộng tác, nhiều lĩnh
vực khác nhau có thể cùng sử dụng chung một phương pháp, cùng nền tảng. Cùng
một hệ thống lọc cộng tác có thể áp dụng để lọc các bản tin, sản phẩm, hàng hóa,
phim, âm nhạc, tranh ảnh và sách…
1.2.1.2. Không cần xác định thông tin mô tả yêu cầu
Trong lọc theo nội dung, hệ thống cần phải xây dựng kho thông tin mô tả yêu
cầu, sở thích của người dùng dưới dạng tiểu sử. Hệ thống lọc cộng tác không yêu
cầu phải mô tả những thông tin này một cách tường minh. Các hàng hóa, sản phẩm
được lọc và gợi ý cho người dùng dựa vào mối quan hệ, sự tương đồng sâu xa giữa
người dùng với nhau thể hiện thông qua những đánh giá của họ trên các hàng hóa,
sản phẩm của hệ thống. Ví dụ, lọc cộng tác có thẻ được sử dụng để xây dựng hệ tư
vấn lựa chọn gợi ý những tài liệu được viết tốt trong khi lọc nội dung lại khó khăn
trong việc phân biệt giữa các tài liệu viết tồi với các tài liệu viết tốt vì chỉ dựa trên
thống kê, không thực sự dựa trên quan điểm suy nghĩ của con người.
1.2.1.3. Người dùng có thể nhận được những gợi ý bất ngờ
Gợi ý bất ngờ là những gợi ý về các sản phẩm, hàng hóa không chứa những
thông tin mà người dùng đang 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 tư vấn đ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ả đó.
1.2.1.4. 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 (Resnick
et al. 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

(www.netperceptions.com) 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 (www.amazon.com).
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.
1.2.2. Khó khăn và thách thức trong lọc cộng tác
Các thuật toán tư vấn trong thương mại điện tử thường hoạt động trong một môi
trường mang tính thách thức, đặc biệt là trong các công ty mua sắm trực tuyến lớn
như eBay, Amazon. Thường thì một hệ thống tư vấn với các giải pháp nhanh chóng
và chính xác sẽ thu hút sự thích thú của khách hàng và mang lại lợi nhuận cho các
công ty. Đối với các hệ thống lọc cộng tác, việc đưa ra những dự báo hay các gợi ý
chất lượng cao phụ thuộc vào khả năng xác định tối đa các thách thức của chúng,
đây cũng chính là các đặc trưng của các nhiệm vụ của lọc cộng tác.
1.2.2.1. Sự thưa thớt dữ liệu
Trong thực tế, rất nhiều hệ tư vấn thương mại được sử dụng để đánh giá
hàng loạt các sản phẩm rất lớn. Vì vậy, ma trận user – item được sử dụng trong lọc
cộng tác sẽ cực kỳ thưa thớt và hiệu suất thành công cho các dự đoán hay gợi ý của
hệ thống lọc cộng tác đưa ra trở thành một thách thức lớn.
Các thách thức về sự thưa thớt dữ liệu thường xuất hiện trong nhiều tình
huống, đặc biệt vấn đề khởi động lạnh (Cold start) diễn ra khi một người dùng mới
hay sản phẩm mới vừa được thêm vào hệ thống và việc tìm những sự tương đồng
thật khó khăn vì không đủ thông tin. Trong một vài trường hợp, vấn đề Cold start
còn được gọi là vấn đề người dùng mới hay vấn đề sản phẩm mới. Các sản phẩm
mới không thể được đưa vào hệ thống nếu không có người dùng nào đánh giá
chúng, và người dùng mới không thể có sự gợi ý tốt nếu thiếu trọng số hoặc bản liệt
kê về những đánh giá hay mua sắm trước đây của họ. Độ bao phủ được định nghĩa
như là phần trăm của các sản phẩm thuật toán cung cấp để đưa ra tư vấn. Vấn đề
giảm độ bao phủ xảy ra khi số lượng các đánh giá của người dùng có thể nhỏ hơn so
với số lượng các sản phẩm trong hệ thống và hệ tư vấn không có khả năng sinh ra tư
vấn cho họ. Neighbor transitivity (tính tịnh tiến hàng xóm) đề cập tới vấn đề về cơ

sở dữ liệu thưa thớt. Ở đó, những người dùng với thị hiếu tương tự nhau không
được xác định nếu họ không cùng đánh gái về các sản phẩm giống nhau. Vấn đề
này đã làm giảm hiệu năng của hệ tư vấn dựa vào sự so sánh từng cặp giữa các
người dùng từ đó sinh ra các dự đoán.
Để giảm bớt vấn đề thưa thớt dữ liệu, có rất nhiều phương pháp được đưa ra.
Kỹ thuật giảm chiều SVD[?] là một trong số đó. Nhiệm vụ chính của kỹ thuật này là
bỏ qua người dùng hoặc sản phẩm không tiêu biểu và không quan trọng để giảm
chiều của ma trận user – item một cách trực tiếp. LSI (Latent Semantic Indexing)[?]
được sử dụng trong vấn đề truy vấn thông tin đã rất thành công khi tính toán dựa
trên SVD để tìm ra độ tương tự giữa các người dùng thông qua việc biểu diễn họ
trong không gian đã giảm chiều. Bên cạnh đó, Goldberg et al [?] đã phát triển
eigentaste áp dụng PCA (Principle Component Analysis)[?], một kỹ thuật phân tích
hệ số có liên hệ gần gũi nhau được mô tả đầu tiên bởi Pearson vào năm 1901[?]
nhằm giảm số chiều không gian. Tuy nhiên, một khi người dùng hoặc sản phẩm nào
đó bị loại bỏ thì những thông tin hữu ích cho việc tư vấn liên quan đến họ cũng bị
loại mất và chấ tượng tư vấn có thể bị giảm xuống.
Thuật toán lọc cộng tác lại hay còn gọi là thuật toán content – boosted
collaborative filtering[?] rất hữu ích trong việc giải quyết vấn đề thưa thớt bởi ở đó
thông tin nội dung mở rộng được dùng để tìm ra những dự đoán cho người dùng
hoặc sản phẩm mới. Trong Ziegler et al[?], một phương pháp lọc cộng tác lai đã
được đưa ra nhằm khai thác thông tin phân loại chính cho các sản phẩm cần phân
loại chính xác và nó thường được dùng trong các vấn đề thưa thớt dữ liệu của các
hệ tư vấn lọc cộng tác, dựa trên các hồ sơ cá nhân được tạo ra nhờ sự suy luận của
điểm được ghi trong các chủ thể con và trong sự đa dạng của chủ đề[?]. Schein et al
cũng đã đưa ra phương thức biến tiềm ẩn của mô hình khía cạnh cho vấn đề khởi
động lạnh. Đây chính là sự kết hợp giữa thông tin cộng tác và nội dung trong mô
hình lọc. Kim và Li đưa ra mô hình xác suất để giải quyết vấn đề khởi động lạnh,
các sản phẩm được sắp xếp thành các nhóm và những dự đoán người dùng tạo ra
được xem là sự phân loại Gausian[?] với trọng số đánh giá tương ứng.
Thuật toán lọc cộng tác dựa trên mô hình như TAN – ELR[?] tập trung vào

vấn đề thưa thớt thông qua việc cung cấp nhiều hơn những dự đoán chính xác cho
dữ liệu thưa thớt. Một vài kỹ thuật lọc cộng tác dựa trên mô hình mới được đưa ra
bao gồm kỹ thuật truy vấn liên kết, áp dụng với thuật toán hạt hóa mở rộng nhằm
khai thác sự liên kết bổ sung giữa những người dùng nhờ trọng số đánh giá và các
bản tiểu sử của họ[?]. MMMF[?] hay còn gọi là ma trận lồi, …
1.2.2.2. Khả năng mở rộng
Khi số người dùng và sản phẩm ngày càng tăng, thuật toán lọc cộng tác
truyền thống sẽ gặp phải vấn đề nghiêm trọng về khả năng mở rộng, với một lượng
tính toán vượt mức thực hành cho phép. Chẳng hạn với 10 triệu người dùng M và
hàng triệu sản phẩm khác nhau N, thuật toán lọc cộng tác với động tính toán là O(n)
sẽ là quá lớn. Tương tự như vậy, với nhiều hệ thống yêu cầu ngay lập tức đưa ra kết
quả (ví dụ như: yêu cầu trực tuyến) và tư vấn cho tất cả khách hàng mà không hề
quan tâm để việc trao đổi cũng như trọng số đánh giá trước đây của họ. Điều đó đòi
hỏi khả năng mở rộng lớn của một hệ thống lọc cộng tác [?]
Kỹ thuật giảm chiều như SVD có thể giải quyết vấn đề này và cung cấp tư
vấn cho chất lượng tốt, nhưng chúng trải qua những bước tính toán thừa số ma trận
rất phức tạp. Một thuật toán lọc cộng tác cải tiến SVD[?] tính toán lại chiều SVD sử
dụng những người dùng đã có sẵn. Khi có một tập trọng số đánh giá mới được thêm
vào cơ sở dữ liệu, thuật toán sử dụng kỹ thuật lấp đầy[?] để xây dựng hệ thống cải
tiến mà không cần tính toán lại mô hình có chiều thấp hơn từ vạch xuất phát. Vì
vậy, nó tạo ra hệ tư vấn có khả năng mở rộng cao.
Thuật toán lọc cộng tác dựa trên mô hình, như thuật toán độ tương quan
Pearson[?] trên sản phẩm có thể đạt được khả năng mở rộng thích hợp. Thay vì việc
tính toán độ tương tự giữa tất cả các cặp sản phẩm, lọc cộng tác Pearson dựa trên
sản phẩm tính toán độ tương tự chỉ giữa những cặp sản phẩm có liên quan đến nhau
của cùng một người dùng[?]. Một thuật toán lọc cộng tác Bayes đơn giản cũng giải
quyết vấn đề mở rộng thông qua việc đưa ra những dự đoán dựa trên trọng số có
sẵn[?]. Thuật toán lọc cộng tác dựa trên mô hình ví dụ như clustering tập trung vào
vấn đề mở rộng tại vị trí mà các cụm có độ tương tự cao và có ít tư vấn cho người

×