A U α1 α2 … αj ... αn u1 … … … … ui … T[ui,αj] … …. … … … um
Trong đó, ui thuộc U là tập người dùng, j thuộc A là tập tiêu chí dùng để phân nhóm hoặc phân hoạch người dùng, mỗi giá trị T[ ui,j ] thể hiện người dùng ui
thuộc về cộng đồng tiêu chí j
Với những tiêu chí đơn giản (ví dụ: tuổi, nghề, nơi cư trú…) hệ thống có thể phân nhóm người sử dụng bằng cách so sánh trực tiếp. Ngược lại, với những tiêu chí phức tạp (ví dụ: nền tảng kiến thức, thông tin đánh giá…) hệ thống có thể sử dụng các phương pháp hàng xóm gần nhất, khoảng cách tâm,… để phân hoạch người dùng. Trong trường hợp người dùng mới chưa có thông tin gì để đánh giá, tiếp cận này còn đưa ra một phương pháp quy nạp dựa trên luật để suy diễn ra cộng đồng theo tiêu chí đánh giá của người dùng dựa trên những cộng đồng theo tiêu chí khác.
Định vị người dùng mới vào cộng đồng
Khi một người dùng mới đăng ký vào hệ thống, để cung cấp những thông tin tư vấn dựa trên cộng đồng tương tự, hệ thống phải định vị họ vào cộng đồng thích hợp. Đối với những cộng đồng dựa vào tiêu chí là các giá trị nhân khẩu học (tuổi, nghề
nghiệp, nơi cư trú…) thì việc định vị người dùng vào cộng đồng là tương đối đơn giản. Tuy nhiên trong các phương pháp CF cổ điển việc thành lập cộng đồng dựa vào tiêu chí đánh giá (điểm đánh giá của người dùng lên tài nguyên) thì tại thời điểm này, cộng đồng theo tiêu chí đánh giá của người dùng mới vẫn còn chưa biết, vì thế hệ thống không thể cung cấp tư vấn thích hợp. Để giải quyết vấn đề này, hiện nay có nhiều cách tiếp cận khác nhau:
(1)Khai thác thông tin thăm dò
Theo phương pháp này, hệ thống yêu cầu người dùng mới đánh giá một số lượng tối thiểu các tài nguyên. Hệ thống có thể đưa ra một danh sách tài nguyên đã được chọn một cách ngẫu nhiên hoặc chọn theo một tiêu chí nào đó để người dùng đánh giá. Tuy nhiên cách này có thể gây khó khăn cho người dùng trong trường hợp người dùng không thể đưa ra những đánh giá cụ thể cho một số tài nguyên nào đó vì chưa biết gì về những tài nguyên đó hoặc nhiều lý do khác. Vì vậy người dùng mới cũng có thể tự chọn những tài nguyên trong phạm vi hiểu biết của mình để đánh giá.
(2)Cung cấp hồ sơ mẫu
Trước tiên hệ thống sẽ xây dựng sẵn những hồ sơ mẫu – hồ sơ là một cấu trúc mô tả đặc trưng của người dùng và sau đó dựa trên những thông tin cá nhân (tuổi, nghề…) hay trả lời một số câu hỏi mà người dùng sẽ được tự động gán cho trong profile mẫu. Xuất phát từ profile này, hệ thống sẽ áp dụng sự thích nghi cá nhân [21] nhằm cung cấp những tài nguyên phù hợp cho người dùng và quá trình phản hồi thông tin đã có thể được bắt đầu để sau đó được dùng cho việc định vị.
(3) Gợi ý trực tiếp các đối tượng cho người dùng mới dựa trên tính phổ biến
Đây là phương pháp đơn giản, dễ thực hiện có thể áp dụng cho cả người dùng thường xuyên hay người dùng mới (chưa có đánh giá nào). Trong tập ma trận user- item ban đầu nếu tập đối tượng nào mà được nhiều người quan tâm nghĩa là nhiều người cho điểm thì các đối tượng đó gọi là phổ biến và sẽ dùng để gợi ý cho người dùng cần gợi ý. Có thể giới hạn số đối tượng bằng cách chọn một lượng N đối tượng nào đó phổ biến nhất (số lượng người tương tác nhiều nhất ).
(4) Gợi ý trực tiếp các đối tượng cho người dùng mới dựa trên chất lượng đối tượng
Tiêu chí này thể hiện điểm đánh giá trung bình hoặc tổng điểm đánh giá của tất cả những người dùng trong hệ thống đã đánh giá tài nguyên. Điểm trung bình (tổng điểm) càng cao thì chất lượng càng tốt. Tiêu chí chất lượng có thang điểm trùng với thang điểm đánh giá tài nguyên của hệ thống. Trung bình (tổng rate) của các người dùng trên đối tượng j nào đó, nếu tổng rate hoặc trung bình rate trên đối tượng j đó cao hơn các đối tượng i thì đối tượng đó được đưa ra gợi ý.
Nhìn chung các phương pháp nêu trên đều yêu cầu người dùng phải tốn nhiều thời gian và công sức để được định vị vào một cộng đồng ban đầu theo tiêu chí đánh giá mà cũng chưa chắc đã thực sự phù hợp.
Đề xuất phương pháp khắc phục hạn chế người dùng mới tăng chất lượng gợi ý
Trong các hệ thống đặc thù như hệ thống diễn đàn thì hồ sơ người dùng thường đã được lưu trữ trong CSDL ngay khi người này đăng ký tham gia hệ thống. Khi mới tham gia diễn đàn họ chưa có một tương tác nào với các bài tin (đối tượng) do đó việc dựa vào lịch sử tương tác để có đánh giá của họ với các bài tin là không thể. Trong CF dùng phương pháp dựa vào người dùng ta có thể khắc phục tình trạng này bằng cách sử dụng một loại độ đo đặc biệt gọi là độ tương tự hỗn hợp dùng khi các đối tượng được thể hiện dưới nhiều thuộc tính khác nhau mà mỗi thuộc tính lại được biểu diễn dưới nhiều kiểu dữ liệu khác nhau. Ví dụ một người cụ thể bao gồm nhiều thông tin khác nhau như: chứng minh nhân dân, họ tên, ngày sinh, giới tính và loại máu, lương với các kiểu dữ liệu tương ứng chuỗi, chuỗi, ngày tháng, nhị phân, nhị phân, số. Theo cách này ta không những giải quyết được vấn đề người dùng mới chỉ có dữ liệu nhân khẩu học mà còn làm tăng chất lượng gợi ý của hệ tư vấn với những người dùng thông thường vì kết quả của việc tìm nhóm người dùng tương tự dựa vào cả tiêu chí nhân khẩu học và tiêu chí điểm đánh giá.
Vấn đề được đưa ra làm sao ta có thể phân biệt được hai đối tượng có giống nhau hay không khi biết được những thông tin liên quan đến chúng như trên. Ta coi mỗi thuộc tính được áp dụng cho mỗi độ đo tương ứng với kiểu dữ liệu, sau đó kết quả của phép tính toán là trung bình của tất cả giá trị được tính. Tuy rằng đối với kỹ thuật khai phá dữ liệu, chúng ta có thể chuyển đổi qua lại giữa các kiểu dữ liệu với nhau nhưng điều nay dẫn đến sự thay đổi ý nghĩa của dữ liệu hay mất mát thông tin sau khi chuyển đổi dẫn đến độ chính xác trong khi so khớp đối tượng bị giảm đi.
m k k xy m k k xy k xyd y x d 1 1 ) , ( Trong đó:
m: Số lượng thuộc tính đem đi so khớp đối với hai thực thể x,y
k xy
d : khoảng cách giữa hai thực thể x,y đối với thuộc tính k. Giá trị khoảng cách này có thể tính toán được bởi giá trị của thuộc tính và độ đo tương đồng tương ứng với loại thuộc tính đó.
Gọi axk và ayk lần lượt là giá trị của thực thể x,y tại thuộc tính k
k xy
: Trọng số của khoảng cách trên thuộc tính k của hai thực thể x,y có thể xác định như sau:
k xy
=0 nếu axk hoặc ayk bị khuyết (hoặc có giá trị 0)
k xy
=1 trong trường hợp ngược lại.
(3.2 6)
Chương 4. Xây dựng mô hình và thực nghiệm 4.1. Hệ thống lọc tin cho diễn đàn
Bộ lọc tin là một mô đun độc lập với các chức năng của diễn đàn thông thường. Các thành phần trong bộ lọc chỉ giao tiếp với diễn đàn thông qua việc lấy dữ liệu từ CSDL gốc của diễn đàn và trả về kết quả gợi ý.
- Dữ liệu vào: Đầu vào của bộ lọc tin diễn đàn là lịch sử tương tác giữa người dùng với diễn đàn được trích xuất từ một số bảng có trong CSDL tập trung.
- Dữ liệu đầu ra: Danh sách kết quả gợi ý là các bài tin (mục tin, item) cần tư vấn cho người dùng. Nếu mô đun được tích hợp vào hệ thống diễn đàn thực thì kết quả này được lưu trực tiếp vào CSDL làm đầu vào cho bước tiếp theo để hiển thị ra giao diện cho người dùng nhìn rõ.
Hình 4.1. Quá trình xử lý của bộ lọc
Như vậy bộ lọc cộng tác cho diễn đàn được xây dựng có 4 bộ phận chính: Bộ phận tính điểm, tạo ma trận rate, bộ phận phân cộng đồng hàng xóm, bộ phận tạo gợi ý, bộ phận kiểm tra.
Quá trình hoạt động của bộ lọc tin trên diễn đàn
Ban đầu bộ lọc sẽ lấy đầu vào là các lịch sử tương tác giữa người dùng và diễn đàn. Lịch sử tương tác được trích xuất trực tiếp từ một số bảng trong CSDL tập trung của diễn đàn. Bộ phận tính điểm, tạo ma trận rate là bộ phận hoạt động đầu tiên của bộ lọc có nhiệm vụ chọn lọc ra các tương tác quan trọng, từ đó tính toán các điểm (rate) mà một người dùng dành cho một đối tượng (trong diễn đàn có thể gọi là mục tin). Kết quả của bước này là một bảng chứa thông tin user-item-rate thể hiện các đánh giá mà một người dùng dành cho một mục tin (Bảng 4.1). Bảng này sẽ là nguồn trực
Tính điểm, tạo ma trận rate Tạo gợi ý Tìm cộng đồng tương tự kết quả gợi ý lịch sử
tương tác Kiểm tra
điều kiện Giá trị rate Giá trị rate Nhóm user tương tự Đầu vào: Bảng CSDL Đầu ra Bài tin Bài tin
tiếp tạo nên ma trận rate là đầu vào trực tiếp của thuật toán CF và cũng là đầu vào của bộ phận phân cộng đồng tương tự.
Tiếp đến bộ phận phân cộng đồng tương tự có nhiệm vụ tạo ra được nhóm người tương đồng với người dùng cần gợi ý. Từ các giá trị điểm của mỗi người dùng dành cho các mục tin, bộ lọc sử dụng độ đo tương đồng (Cosine hoặc Euclidean) để tìm ra những người gần với người dùng cần tư vấn nhất. Việc dùng độ đo nào và số lượng người dùng bao nhiêu làm nhóm tin cậy có thể là tham số để thực nghiệm. Kết quả nhóm sẽ được tính toán định kì nhằm đảm bảo khả năng tương thích với sự thay đổi trong xu hướng đọc tin của người dùng.
Sau đó nhóm người dùng tương đồng từ bộ phận phân cộng đồng tương tự và thông tin điểm, mục tin từ bộ phận tính điểm sẽ được đẩy sang làm đầu vào cho bộ phận tạo gợi ý. Đây là khâu khá quan trọng trong bộ lọc, phương pháp áp dụng trong bộ phận này là kỹ thuật chọn tốp N gợi ý theo phương pháp 3 (trình bày chi tiết 3.3). Với mỗi nhóm cộng đồng gồm k người dùng thu được từ bộ phận phân cộng đồng, ta xếp hạng các mục tin. Mục tin nào có tổng điểm thứ hạng cao sẽ được chọn ra làm kết quả gợi ý của bộ lọc (chi tiết sẽ được trình bày mục 4.2). Ngoài ra, với người dùng mới chưa có tương tác hoặc có rất ít tương tác thì bộ lọc sẽ đưa ra gợi ý bằng cách lọc ra những mục tin có tổng điểm ở thứ hạng cao. Trước khi bộ lọc hiển thị kết quả gợi ý các mục tin thì bộ phận kiểm tra sẽ kiểm tra tính hợp lệ theo một số tiêu chí đảm bảo kết quả gợi ý là tốt nhất, hợp lý nhất.
4.2. Quá trình xử lý bộ lọc tin cho diễn đàn 4.2.1. Tính điểm, tạo ma trận rate 4.2.1. Tính điểm, tạo ma trận rate