Xây dựng ứng dụng tư vấn nhạc chuông
Trang 1XÂY DỰNG ỨNG DỤNG TƯ VẤN NHẠC CHUÔNG
Trang 2Mụ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
Trang 33.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
Trang 4Cá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
Trang 5Bảng biểu
Trang 6Hình vẽ
Trang 7Giớ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,
Trang 8Trong đồ á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”
Trang 9Chươ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
“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
Trang 10sả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ư
Trang 11www.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ữ
Trang 12liệ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[?]
Trang 13Thô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 rij 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
Trang 14có 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
Trang 15thự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:
Trang 16Trong đó 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à:
P
x i x i x P j x j
P P
x i x i j x j ij
r r r
r
r r r r u
2 ,
2 ,
, ,
Trong đó, x∈P i ∩P j là tập sản phẩm mà người dùng i và người dùng j cùng
đánh giá, r i,x là đánh giá của người dùng i lên sản phẩm x, r i 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
Trang 17Trong đó phép toán • biểu thị phép nhân vector giữa hai vector i và 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:
Trang 181.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:
Trang 19Trong đó, 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:
Trang 20Để 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:
Trang 211.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
Trang 22ngườ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
Trang 23như 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
Trang 24Để 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
Trang 25bao 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, …
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
Trang 26dùng hơn thay vì trên toàn bộ cớ sở dữ liệu, nhưng cũng cần phải cân bằng giữa hiệu suất mở rộng và dự đoán.
1.2.2.3 Tính đồng nghĩa
Tính đồng nghĩa đề cập đến số những sản phẩm giống hoặc rất tương tự nhau chỉ khác nhau về tên hoặc mục từ Hầu hết các hệ tư vấn không có khả năng khám phá ra mối liên quan về mặt ngữ nghĩa này vì vậy nghiên cứu về những sản phẩm này là rất khác nhau Chẳng hạn, nếu nhìn vào hai sản phẩm có tên như sau
“children movie” và “children film”, thực tế đây là hai sản phẩm giống nhau,
nhưng các hệ thống lọc cộng tác lại đưa kết quả không khớp giữa chúng khi tính toán độ tương tự Thật ra, độ biến thiên trong cách dùng thuật ngữ mô tả nói chung rất lớn Vì vậy, tính phổ biến của từ đồng nghĩa làm giảm hiệu suất của các hệ tư vấn lọc cộng tác
Các cố gắng trước đây nhằm giải quyết vấn đề về tính đồng nghĩa phụ thuộc nhiều vào sự triển khai thuật ngữ một cách tự động hoặc có tri thức hoặc thông qua việc xây dựng từ điển liệt kê và các từ đồng nghĩa với nhau Trở ngại cho các phương thức tự động chính là một số sản phẩm được bổ sung có thể có nghĩa khác với dự định, dẫn đến giảm sút nhanh chóng hiệu suất tư vấn[?]
Kỹ thuật SVD, cụ thể là phương thức Latent Semantic Indexing(LSI)[?] có khả năng giải quyết vấn đề từ đồng nghĩa SVD đưa ra một ma trận lớn các tài liệu
thuật ngữ liên quan đến dữ liệu và xây dựng một không gian ngữ nghĩa mà ở đó các
thuật ngữ và tài liệu liên quan mật thiết với nhau SVD cho phép sắp xếp không gian
nhằm mang lại những mẫu liên kết trong dữ liệu, và bỏ qua những mẫu nhỏ hơn và
ít quan trọng hơn HIệu suất của LSI trong việc giải quyết vấn đề tính đồng nghĩa là
tạo ra mức độ recall cao hơn tại những nơi mà mức độ chính xác ban đầu khá thấp,
làm cho những cải thiện tương ứng lớn Tuy nhiên, hiệu suất của phương thức LSI
tại mức thấp nhất của recall khá là ít[?]