nttuyen.files.wordpress.com · web viewtrong tài liệu này, có hai thuật ngữ cần làm rõ...

20
Giải quyết vấn đề thưa thớt dữ liệu: Lọc cộng tác sử dụng sự tương quan gián tiếp Nguyễn Thế Tuyến Lớp D05CNPM – khoa công nghệ thông tin Học viện công nghệ bưu chính viễn thông [email protected] Tóm tắt Lọc cộng tác là một kỹ thuật được áp dụng khá thành công trong các hệ tư vấn, nó được dùng để đánh giá độ quan tâm của người dùng tới một sản phẩm mới. Trong các hệ thống lọc cộng tác, các dự đoán được đưa ra dựa trên tập dữ liệu về sở thích người dùng – sản phẩm có liên quan tới người dùng hoặc sản phẩm. Tuy nhiên, trong trường hợp dữ liệu ít, độ tương tự trực tiếp giữa hai người dùng hoặc hai sản phẩm chỉ cung cấp rất ít thông tin cho ta dự đoán. Trong tài liệu này, tôi trình bày một kỹ thuật lọc cộng tác mới, kỹ thuật này tính toán trên sự tương tự tổng thể giữa các cặp người dùng và sản phẩm, từ quan điểm trung bình của sự tương tự người dùng và sự tương tự sản phẩm trong hệ thống. Tôi cũng chỉ ra rằng kỹ thuật này mở rộng các kỹ thuật cũ – các kỹ thuật dựa trên sự tương tự trực tiếp như thế nào, và minh họa bằng cách kiểm nghiệm trên các tập dữ liệu khác nhau, từ đó chỉ ra những ưu điểm của kỹ thuật này. Từ khóa: Hệ tư vấn, lọc cộng tác, vấn đề thưa thớt dữ liệu 1

Upload: others

Post on 21-Jan-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

Giải quyết vấn đề thưa thớt dữ liệu:Lọc cộng tác sử dụng sự tương quan gián tiếp

Nguyễn Thế Tuyến

Lớp D05CNPM – khoa công nghệ thông tinHọc viện công nghệ bưu chính viễn thông

[email protected]

Tóm tắtLọc cộng tác là một kỹ thuật được áp dụng khá thành công trong các hệ tư vấn, nó được

dùng để đánh giá độ quan tâm của người dùng tới một sản phẩm mới. Trong các hệ

thống lọc cộng tác, các dự đoán được đưa ra dựa trên tập dữ liệu về sở thích người dùng

– sản phẩm có liên quan tới người dùng hoặc sản phẩm. Tuy nhiên, trong trường hợp dữ

liệu ít, độ tương tự trực tiếp giữa hai người dùng hoặc hai sản phẩm chỉ cung cấp rất ít

thông tin cho ta dự đoán. Trong tài liệu này, tôi trình bày một kỹ thuật lọc cộng tác mới,

kỹ thuật này tính toán trên sự tương tự tổng thể giữa các cặp người dùng và sản phẩm, từ

quan điểm trung bình của sự tương tự người dùng và sự tương tự sản phẩm trong hệ

thống. Tôi cũng chỉ ra rằng kỹ thuật này mở rộng các kỹ thuật cũ – các kỹ thuật dựa trên

sự tương tự trực tiếp như thế nào, và minh họa bằng cách kiểm nghiệm trên các tập dữ

liệu khác nhau, từ đó chỉ ra những ưu điểm của kỹ thuật này.

Từ khóa: Hệ tư vấn, lọc cộng tác, vấn đề thưa thớt dữ liệu

1. Giới thiệuLọc cộng tác là một kỹ thuật mạnh và nó đã được áp dụng khá thành công trong nhiều

hệ tư vấn. Về thực chất, lọc cộng tác là một hình thức tư vấn truyền miệng tự động

bằng cách dựa trên sự tương tự giữa những người dùng hoặc giữa những sản phẩm

trong hệ thống và đưa ra dự đoán sự quan tâm của người dùng tới một sản phẩm, hoặc

đưa ra gợi ý một sản phẩm mới cho người dùng nào đó.

Có rất nhiều phương pháp tiếp cận trên hình thức này được trình bày, nhưng các

kỹ thuật này hầu chỉ xét đến sự tương tự trực tiếp giữa hai người dùng hoặc hai sản

phẩm. Trong những phương pháp này, hai người dùng được coi là tương tự nếu họ thể

hiện mối quan tâm giống nhau về cùng sản phẩm thông qua việc mua hoặc đưa ra đánh

1

Page 2: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

giá về sản phẩm đó. Tuy nhiên, trên thực tế hai người có thể mua những sản phẩm

hoàn toàn khác nhau nhưng lại có những sở thích giống nhau. Tương tự vậy, hai sản

phẩm có thể không được mua bởi cùng người dùng nhưng hoàn toàn có thể tương tự

nhau. Một điểm khác của cách tiếp cận này là sự nhạy cảm của nó khi có ít dữ liệu,

điều này xảy ra khi có nhiều người dùng nhưng mỗi người lại chỉ mua hoặc đánh giá ở

một hoặc một vài sản phẩm hoặc khi có nhiều sản phẩm nhưng mỗi sản phẩm lại chỉ

được mua bởi một hoặc một vài người dùng. Tuy nhiên, trong rất nhiều trường hợp

thực tế, việc dữ liệu thưa thớt là điều không thể tránh. Ví dụ như khi người dùng mới

đăng ký vào hệ thống nên không có hoặc có ít thông tin về sở thích, hoặc khi một sản

phẩm mới được thêm vào hệ thống nên có thể chưa hoặc mới được mua hay đánh giá

bởi rất ít người dùng. Vấn đề này được biết đến như là một cold-start(khởi đầu lạnh).

Trong bài này, tôi sẽ trình bày một kỹ thuật lọc cộng tác mới có thể làm giảm

vấn đề thưa thớt dữ liệu bằng cách sử dụng độ đo tương tự toàn cục giữa những người

dùng và các sản phẩm. Phương pháp này mô hình hóa sự phụ thuộc giữa độ tương tự

của người dùng và sản phẩm như là một phương trình hệ thống, và chúng ta giải

phương trình này để tìm sự tương tự. Chúng ta sẽ đánh giá phương pháp này trên bài

toán dự đoán đánh giá, ở đây chúng ta có tập các đánh giá về các sản phẩm của người

dùng và chúng ta sẽ dự đoán các đánh giá của người dùng trên các sản phẩm mới.

Tài liệu này được cấu trúc như sau: trong phần 2 ngay sau đây tôi xin trình bày

các ký hiệu sử dụng trong tài liệu và một số các lý thuyết, công việc liên quan. Tiếp

đó, trong phần 3 tôi sẽ trình bày một kỹ thuật mới để khắc phục vấn đề thưa thớt dữ

liệu trong lọc cộng tác và thuật toán tính độ tương tự gián tiếp giữa hai người dùng hay

sản phẩm, phần 4 là một số nhận xét kết luận và hướng nghiên cứu trong tương lai.

2. Các quy ước và công việc liên quanTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng –

tức là một người tham gia vào hệ thống, họ thực hiện các giao dịch và đưa ra các đánh

giá. Tiếp đến là khái niệm sản phẩm, sản phẩm ở đây có thể là một mặt hàng được

giao bán, hay cũng có thể là một bản nhạc, một bài báo… sản phẩm là từ chỉ bất cứ thứ

gì trong hệ thống mà được người người dùng thực hiện các thao tác hay đưa ra các

đánh giá lên nó.

2

Page 3: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

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 rix là trọng số của của người dùng i

cho sản phẩm x – tức là rix = (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 – 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.

Phương pháp 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ớ và phương pháp tiếp cận dựa trên mô hình. Chúng ta sẽ

lần lượt tìm hiểu hai phương pháp này trong phần dưới đây.

2.1. Phương pháp tiếp cận 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.

3

Page 4: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

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’, aij 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 aij = |Pi ∩ Pj| 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 uij 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 rij. 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ó

4

Page 5: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

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 đó bxy 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.

2.2. Phương pháp tiếp cận dựa trên mô hìnhNgượ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ả 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

5

Page 6: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

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.

Giữa các phương pháp dựa trên mô hình, có một phương pháp rất thành công,

đó là phương pháp Aspect Model(AM). Phương pháp này là biến thể về mặt xác xuất

của phân tích ngữ nghĩa tiềm tàng LSA, mục tiêu của nó là định dạng những kết hợp về

mặt ngữ nghĩa bị ẩn từ dữ liệu đồng xảy ra. Trong trường hợp này, dữ liệu đồng xảy ra

tương ứng với các trọng số đánh giá của người dùng về sản phẩm. Giống với nhiều

phương pháp dựa trên mô hình, phương pháp này không thể sử dụng những trọng số

đánh giá dự đoán của người dùng mới nếu không nắm bắt được mô hình mới. Một

phương pháp tương tự cho phép đưa ra các dự đoán cho người dùng mới là mô hình

User Rating Profile(URP). Phương pháp này sẽ tạo ra các mô hình đại diện cho mỗi

người dùng theo quan điểm tổng hợp, phân tán thông qua biến ngẫu nhiên Dirichlet.

Một phương pháp tiếp cận dựa trên mô hình phổ biến khác là phương pháp

chuẩn đoán cá nhân. Ở phương pháp này, mô hình được xây dựng cho mỗi người dùng

trong hệ thống, sau đó các đánh giá của người dùng lên mỗi sản phẩm được tính bằng

khả năng của người dùng trong mối quan hệ với các mô hình của người dùng khác

nhân với giá trị đánh giá trung bình, giá trị tính được chính là đánh giá được dự đoán.

2.3. Khắc phục vấn đề thưa thớt dữ liệuĐã có rất nhiều cố gắng giải quyết vấn đề thưa thớt dữ liệu. Một phương pháp được

đưa ra với một số thành công đó là phương pháp nhằm làm giảm chiều ma trận số

người dùng – sản phẩm. Chiến lược đơn giản để giảm số chiều là hình thành tập các

cụm sản phẩm hoặc người dùng, sau đó sử dụng các cụm này như một thành phần cơ

bản trong dự đoán. Để phương pháp này tốt hơn thì chúng ta nên sử dụng kỹ thuật

thống kê như nguyên lý phân tích thành phần PCA và kỹ thuật truy vấn thông tin như

chỉ mục ngữ nghĩa tiềm tàng LSI. Về bản chất, những phương pháp giảm số chiều giải

quyết vấn đề thưa thớt bằng cách sinh ra nhiều ma trận tương tác người dùng – sản

phẩm được xem là gần gũi nhất với người dùng và sản phẩm. Tuy nhiên, trong một vài

6

Page 7: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

trường hợp, thông tin hữu ích có thể bị mất trong suốt tiến trình giảm chiều ma trận,

làm cho các dự đoán không còn đáng tin cậy nữa.

Giải quyết sự khác nhau của vấn đề thưa thớt dữ liệu chính là sự kết hợp giữa

phương pháp lọc cộng tác với những phương pháp tiếp cận dựa trên nội dung. Thêm

vào đó là nhưng tương tác giữa người dùng – sản phẩm, vì vậy các kỹ thuật này cũng

xem độ tương tự sản phẩm xuất phát từ nội dung của chúng, điều này tạo ra dự đoán

chính xác hơn. Tuy nhiên, khuyết điểm chính của những kỹ thuật này là chúng chỉ có

thể được sử dụng khi nội dung thôn tin có sẵn trong hệ thống, điều này có thể gây khó

khăn trong một số trường hợp.

Cuối cùng, một kiểu khác của những phương pháp này là xem dữ liệu giống đồ

thì song phương, ở đó mỗi nút biểu diễn người dùng và sản phẩm, mỗi cạnh (i, x) được

nối giữa người dùng i và sản phẩm x nếu x được đánh giá bởi i. Hơn nữa, cạnh (i, x)

đưa ra trọng số tương ứng với đánh giá được người dùng i gán cho sản phẩm x. Những

phương pháp này sau đó chuyển hóa độ tương tự giữa những người dùng hoặc sản

phẩm sử dụng lý thuyết đồ thị. Chẳng hạn phương pháp này tính toán độ tương tự giữa

hai người dùng tương ứng với việc tính độ trung bình giữa những nút tương ứng của

chúng trong những đường ngẫu nhiên của đồ thị. Các phép đo khác trên đồ thị cũng

được nghiên cứu, chẳng hạn như khoảng cách ngắn nhất giữa hai nút trên đồ thị,

khoảng ảnh hưởng của các nút trên đồ thị. Hạn chế của các phương pháp này là không

thể hiện tốt độ đo tương tự trong bài toán dự đoán đánh giá.

3. Phương pháp mới trong tính toán độ tương tựTrong phần này, tôi sẽ trình bày một kỹ thuật mới để tính toán độ tương tự toàn cục,

dựa trên việc giải phương trình hệ thống liên quan đến độ tương tự của người dùng và

độ tương tự của sản phẩm. Phương pháp này có một vài thuận lợi so với các phương

pháp đã được đề xuất chính là dự đoán trọng số. Đầu tiên, không giống với các

phương pháp sử dụng độ đo trực tiếp, ở đây nó không chịu ảnh hưởng của vấn đề thưa

thớt dữ liệu. Trong khi điều này cũng đúng trong một vài hệ tư vấn lọc cộng tác dựa

trên mô hình nhưng phương pháp này về cơ bản là dựa trên bộ nhớ bởi nó sử dụng

toàn bộ thông tin đã có vào việc dự đoán. Vì vậy phương pháp này hiệu quả khi được

cài đặt trong các hệ thống trực tuyến. Kỹ thuật mới này đạt được độ tương tự có thể

7

Page 8: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

hiện đẹp và đơn giản hơn. Hơn nữa, nó còn cho phép xem xét độ tương tự dựa trên nội

dung đơn giản và dễ hiểu hơn.

3.1. Mô hìnhẢnh hưởng của sự thưa thớt dữ liệu trong các phương pháp tiếp cận dưa trên sự tương

tự trực tiếp nằm ở chỗ các phương pháp này chỉ xét đến những đánh giá trên các sản

phẩm chung của người dùng hoặc các đánh giá của cùng người dùng trên các sản

phẩm khác nhau. Do đó công thức (2.1) và (2.3) ở trên, các đánh giá của người dùng j

chỉ được sử dụng trong dự đoán đánh giá của người dùng i cho sản phẩm x khi Pi ∩ Pj

≠ Ø và . Giả sử, người dùng i và j đã đánh giá trên 1% số sản phẩm trên hệ

thống, số lượng đánh giá này có thể đáng kể, tuy nhiên hệ số tương tự uij là một số

dương rất nhỏ. Tương tự như vậy, sự tương tự giữa hai sản phẩm được tính theo công

thức (2.4) có thể không có nếu dữ liệu thưa thớt.

Để khắc phục vấn đề thưa thớt dữ liệu này, chúng tôi đề xuất một phương trình mở trộng của (2.1) như sau:

(3.7) nếu i ≠ j,

và uij = 1 nếu i = j.

Tương tự chúng ta mở rộng phương trình (2.4) thành:

(3.8) nễu x ≠ y và

pxy = 1 nếu x = y.

Hai công thức này khác với công thức (2.1) và (2.4) ở một vài điểm. Trước hết,

ở đây có một vài số hạng mới và theo thứ tự biểu diễn độ tương tự ưu tiên giữa

hai người dùng và hai sản phẩm. Những số hạng này có thể thu được trong một vài

trường hợp nhờ việc sử dụng thông tin có sẵn trên tập người dùng và sản phẩm của hệ

thống, ví dụ như tuổi, giới thính… của người dùng, kiểu của các sản phẩm, và nếu

không có sẵn thông tin này thì ta đặt thuộc tính này bằng 0. Ngoài ra, để đặt mức ưu

tiên của độ tương này so với sự tương tự tương tác người dùng – sản phẩm, chúng ta

8

Page 9: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

sử dụng hai tham số là . Đây chính là điểm khác thứ hai trong việc tính

toán độ tương tự giữa những người dùng và sản phẩm. Do đó, trong tính toán độ tương

tự của hai người dùng, chúng ta sử dụng tất cả các sản phẩm được đánh giá bởi hai

người dùng này thay vì chỉ sử dụng những sản phẩm được đánh giá chung bởi cả hai

người. Tương tự vậy, chúng ta bổ xung vào công thức tính độ tương tự giữa hai sản

phẩm x và y sự tương tự giữa hai sản phẩm này. Điều này tạo nên một ý nghĩa rất lớn

là trong thực tế hai người dùng có thể đưa ra những đánh giá trên hai sản phẩm khác

nhau nhưng không làm ảnh hưởng đến độ tương tự giữa họ. Điều này cũng tương tự

trong trường hợp hai sản phẩm.

Những mô hình sử dụng đẳng thức (2.1) hoặc (2.4) có thể xem là trường hợp

đặc biệt trong mô hình này. Do đó, nếu chúng ta chọn và , trong đó

là biến Kronecker có giá trị nếu x = y và nếu x ≠ y, khi đó đẳng

thức (3.7) sẽ trở thành đẳng thức (2.1). Tương tự, nếu ta chọn và thì

phương trình (3.8) sẽ trở thành (2.4). Ngoài ra, chúng ta có thể thấy độ tương tự được

định nghĩa bằng phương trình này là đối xứng trong một vài điều kiện. Trong trường

hợp độ tương tự người dùng, nếu và aij là đối xứng, nghĩa là và aij = aji,

chúng ta có:

Như vậy, với giả thiết như trên độ tương tự giữa người dùng là đối xứng, chúng

ta cũng thấy rằng độ tương tự giữa sản phẩm là đối xứng nếu và bxy = byx.

9

Page 10: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

Trong khi các hệ lọc cộng tác khác chỉ sử dụng độ tương tự người dùng hoặc độ

tương tự sản phẩm thì trong hệ thống này chúng ta dùng cả hai. Do đó hai phương

trình (3.7) và (3.8) luân đi cùng với nhau với các biến uij và pxy phụ thuộc lẫn nhau. Để

tính được uij ta cần biết giá trị pxy và ngược lại. Do đó chỉ có một phương pháp để tính

độ tương tự giữa những người dùng và giữa các sản phẩm là giải quyết toàn bộ hệ

thống cùng một lúc. Ý tưởng này cung cấp một thể hiện dễ nhìn bởi độ tương tự thực

tế là những giá trị đạt được khi hệ thống ở trạng thái cân bằng.

3.2 Thuật toánChúng ta giả thiết rằng aij, bxy, và sim(rix, rjy) độc lập với uij và pxy, chẳng hạn chúng có

thể là một hằng số. Chúng ta có thể lấy sim(rix, rjy) bằng hệ số nhân Gausian và việc

tính nó chỉ cần dựa trên các đánh giá, và , . Với

những giả thiết này thì hệ thống sẽ trở nên tuyến tính. Đặt và

là các vecto hàng, khi đó hệ thống sẽ được phân tích thành

phương trình dạng AX = B, trong đó là một vecto cột

chứa biến, là ma trận cột gồm

hằng số, và A là ma trận chứa giá trị thu được từ sim(rix,

rjy), aij và bxy.

Để giải phương trình này, chúng ta có thể sử dụng phương pháp trực tiếp hoặc

phương pháp lặp. Một phương pháp trực tiếp và hiệu quả nhất là phương pháp phân rã

LU của ma trận A thành bộ ba ma trận mức cao nhất U và bộ ba ma trận mức thấp

hơn L như sau: A = LU. Như vậy, giải pháp này có độ phức tạp tính toán lên đến

. Rõ ràng là điều này không thực tế với một

hệ tư vấn mà CSDL chỉ có 100.000 người dùng và 100.000 sản phẩm.

Với phương pháp lặp, chúng ta sẽ chấp nhận sai số trong việc tính toán độ

tương tự để đạt tốc độ nhanh hơn. Trong trường hợp này, việc có sai số hoàn toàn hợp

10

Page 11: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

lý bởi độ chính xác của độ tương tự chỉ làm việc dự đoán các đánh giá thêm phức tạp.

Một lợi thế nữa của phương pháp lặp là chúng sẽ có hiệu quả nhất khi A dư thừa, đây

là một trường hợp thường gặp trong thực tế.

Có lẽ phương pháp lặp đơn giản nhất để giải bài bài toán hệ tuyến tính là

phương pháp lặp Jacobi/Gauss-Siedel. Nguyên lý của phương pháp này là nhằm đánh

giá, tại thời điểm lặp t, giá trị của mỗi biến độc lập và sau đó giải quyết phương trình

này sử dụng giá trị của các biến khác nhau được tính toán ở bước lặp t – 1. Trong

trường này, phương pháp này có thể được thực hiện dễ dàng bởi uij chỉ phụ thuộc vào

pxy và ngược lại. Chúng ta có thể cập nhật độ tương tự theo hai bước sau: đầu tiên,

chúng ta cập nhật uij sử dụng pxy của phép lặp trước sau đó cập nhật pxy sử dụng uij mới

cập nhật được. Trước khi quá trình lặp, các biến cần được khởi tạo để thể hiện các giá

trị dự đoán ban đầu của giải pháp. Khi tồn tại độ tương tự trên nội dung, chúng ta có

thể chọn uii = 1, pxx = 1, và . Nếu không có độ tương tự về nội

dung thi ta có thể chọn và cho những giá trị ban đầu. Thuật toán

được mô tả chi tiết trong thuật toán 3.1

Trong trường hợp chúng ta không có trước thông tin, nghĩa là thì

tương tự trong phép cập nhật lần đầu tiên sẽ là:

Biểu thức này hoàn toàn giống với phương trình (2.1). Nói cách khác, độ tương

tự giữa hai người dùng được tính toán trong phép lặp đầu tiên là đúng với những gì mà

chúng ta thu được bằng việc chỉ xem xét những sản phẩm dược đánh giá bởi cả hai

11

Page 12: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

người dùng và bỏ qua những độ tương tự của sản phẩm. Điều này càng chứng tỏ rằng

phương pháp này là mở rộng của phương pháp tính sự tương tự trực tiếp.

Thuật toán 3.1: Phương pháp lặp

3.3 Độ phức tạp thuật toán

Trong thuật toán 3.1, trong mỗi vòng lặp chúng ta cần cập nhật đẳng

thức, trong đẳng thức luôn tính tổng của , số hạng trong việc cập nhật

người dùng và sản phẩm. Vì vậy, mỗi vòng lặp có độ phức tạp

, hơn nữa, đặt T là số vòng lặp cực đại được

thực hiện bởi phương pháp này sau khi đã đạt đến độ hội tụ hoặc giới hạn cho phép,

như vậy, độ phức tạp của thuật toán trong tổng thời gian chạy là . Tuy

12

//Initiation

for doif i = j then

else

end ifend for

for doif x = y then

else

end ifend for

//Main looprepeat

for do

Page 13: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

nhiên, số những đánh giá được sinh ra bởi tập người dùng có thể được bao quanh bởi

hằng số Ru, bởi vậy, độ phức tạp sẽ trở thành

.

Một trong những khía cạnh đáng quan tâm của phương pháp lặp đó là nó có thể

hoạt động song song ở mức cao. Thật vậy, với độ tương tự uij và pxy tại vòng lặp t chỉ

phụ thuộc vào độ tính toán ở vòng lặp t – 1, đây là một công việc dễ dàng chia sẻ

những cập nhật mới tải về của độ tương tự giữa nhiều bộ xử lý. Hơn nữa, vì độ tương

tự cập nhật một cách hoàn toàn độc lập, nên thông qua việc sử dụng phương pháp tiếp

cận song song, ta có thể hy vọng rằng tốc độ tuyến tính tăng lên cao từ số lượng bộ xử

lý được dùng.

4. Kết luậnTrong tài liệu này, tôi đã trình bày một mô hình mở rộng của mô hình tư vấn truyền

thống – mô hình tư vấn chỉ dựa trên độ tương tự trực tiếp giữa hai người dùng hoặc

sản phẩm. Trong mô hình này tôi tính toán độ tương tự gián tiếp giữa hai người dùng

hay giữa hai sản phẩm, từ đó đưa ra dự đoán đánh giá của người dùng với sản phẩm

mới.

Trong phần này, tôi cũng trình bày một phương pháp – một thuật toán để giải

phương trình hệ thống từ đó tìm được độ tương tự gián tiếp giữa hai người dùng hoặc

sản phẩm. Mặc dù thuật toán này có độ phức tạp tính toán lớn hơn nhiều so với

phương pháp sử dụng độ tương tự trực tiếp. Tuy nhiên, nó có thể sử dụng mô hình tính

toán song song, điều này có thể giảm đáng kể thời gian tính toán, làm cho thuật toán

có thể được ứng dụng trong hệ tư vấn trực tuyến – nơi luôn có dữ liệu mới được cập

nhật.

Hướng nghiên cứu trong tương lai của tôi là: cài đặt và kiểm nghiệm lại thuật

toán này dựa trên bộ dữ liệu của MovieLens và bộ dữ liệu của GroupLens, nghiên cứu

ứng dụng kỹ thuật này vào xây dựng một hệ tư vấn người dùng, đồng thời nghiên cứu

tiếp các hướng mở rộng phương pháp này với các phương trình tốt hơn và tìm ra mô

hình tốt hơn.

13

Page 14: nttuyen.files.wordpress.com · Web viewTrong tài liệu này, có hai thuật ngữ cần làm rõ lại. Thứ nhất là khái niệm người dùng – tức là một người

Tài liệu tham khảo[1] Chrsistian Desrosiers and George Karypis, “Solving the Sparsity Problem: Collaborative Filtering via Indirect Similarities”, 2008

[2] Manolis G. Vozalis and Konstantinos G. Margaritis, “Applying SVD on item-based Filtering”, 2005

[3] Benjamin Marlin, “Collaborative Filtering: A Machine Learning Perspective”, 2004

14