Kết quả tư vấn của phương pháp đề xuất được xây dựng dựa trên độ tương tự các điểm dữ liệu trong cùng cụm kết hợp trọng số thể hiện mức độ quan trọng đối với từng điểm dữ liệu để dự đo[r]
(1)PHƯƠNG PHÁP LỌC CỘNG TÁC SỬ DỤNG TỐI ƯU BẦY ĐÀN
THE COLLABORATIVE FILTERING METHOD USING PARTICLE SWARM OPTIMIZATION Nguyễn Thị Hoàng Phương1, Nguyễn Văn Hiệu2
1Trường Đại học Phạm Văn Đồng; nthoangphuong90@gmail.com 2Trường Đại học Bách khoa - Đại học Đà Nẵng; nvhieuqt@dut.udn.vn Tóm tắt - Bài báo đề xuất phương pháp để cải thiện hệ thống
khuyến nghị truyền thống - lọc cộng tác dựa phân cụm cộng tác kết hợp với trọng số cho người dùng sản phẩm Trong phương pháp tư vấn lọc cộng tác truyền thống, kết tư vấn xây dựng dựa độ tương tự điểm liệu gần để dự đoán giá trị khuyết ma trận đánh giá Kết tư vấn phương pháp đề xuất xây dựng dựa độ tương tự điểm liệu cụm kết hợp trọng số thể mức độ quan trọng điểm liệu để dự đoán giá trị khuyết ma trận đánh giá Thông qua thực nghiệm tập liệu MovieLens 100k cho thấy phương pháp đề xuất cho kết dự đoán tốt so phương pháp tư vấn truyền thống
Abstract - In this paper, we propose a method in order to improve the traditional recommender system – a feature weighting method for both item-based collaborative filtering and user-based collaborative filtering recommender system In traditional collaborative filtering, the recommendation results are just based on the similar nearest neighbor measure to predict unknown values in evaluation matrix In this proposed method, the recommendation result is built by the combination of similarity features in the same cluster and weighting which show the extent of importance of each feature to predict the unknow values in evaluaion matrix Through experiments on MovieLens 100k dataset, it shows that the results of our recommender method is better than those by the traditional method Từ khóa - Lý thuyết bầy đàn; tư vấn lọc cộng tác; ma trận xếp
hạng; ma trận tương đồng; ma trận tương đồng kết hợp Key words - recommender system; rating matrix; similarity matrix; integrated Particle Swarm Optimization; collaborative filtering similarity matrix
1.Đặt vấn đề
Hệ khuyến nghị sản phẩm dựa vào tương đồng phẩm người dùng phát triển [1], 5[7] Sản phẩm gợi ý cho người dùng dựa người dùng có hành vi hay sản phẩm tương tự Tuy nhiên, nghiên cứu trước chưa đề cập đến mức độ quan trọng người dùng hay mức độ quan trọng sản phẩm, dẫn đến hệ thống khuyến nghị giả định dự đốn khơng hồn tồn xác Bài tốn đặt vấn đề làm cách để gợi ý sản phẩm thích hợp (sản phẩm chưa người dùng đánh giá xếp hạng) đến với người dùng, dựa xếp hạng mà người dùng đánh giá sản phẩm trước Bài tốn chia làm hai hướng giải quyết: phân cụm người dùng, phân cụm sản phẩm sử dụng lý thuyết bầy đàn kết hợp chúng Sau đề xuất phương pháp mới, nhóm tác giả triển khai chạy thực nghiệm phương pháp tập liệu MovieLens 100k (https://goo.gl/BzHgtq) công bố năm 1998 tổ chức GroupLens (https://grouplens.org/), đồng thời so sánh kết với phương pháp tư vấn truyền thống 2.Nghiên cứu tổng quan
2.1.Phương pháp lọc cộng tác sử dụng mơ hình láng giềng Cho tập hợp U = {u1, u2, , uN} biểu diễn cho tập
người dùng tập hợp sản phẩm I = {i1, i2, , iM}
Xếp hạng người dùng cho sản phẩm lưu trữ ma trận xếp hạng R dạng tường minh Tn thủ quy trình, có ba bước cần thiết để xây dựng hệ thống gợi ý: thu thập liệu để tạo hồ sơ người dùng; thiết lập tập láng giềng; dự đoán khuyến nghị Sau dự đoán đánh giá, hệ thống xác định top-N sản phẩm tiêu biểu với giá trị dự đoán cao gợi ý cho người dùng Giá trị dự đoán 𝑟̂𝑢,𝑖cho sản phẩm i người dùng u tính:
𝑟̂𝑢,𝑖= 𝑟̅𝑢+
∑ 𝑠𝑖𝑚(𝑢, 𝑢′) (𝑟
𝑢′,𝑖− 𝑟̅𝑢′) 𝑢′∈𝐾
𝑢
∑ |𝑠𝑖𝑚(𝑢, 𝑢′)| 𝑢′∈𝐾
𝑢
Mã giả minh hoạ cho phương pháp làng giềng dựa vào người dùng dựa vào sản phẩm biểu diễn sau:
1: procedure USERKNN-CF
(𝒓̅𝒖,r,Dtrain)
2: For u=1 to N
3: Tính Simuu'
4: end for
5: Sort Simuu'
6: for k=1 to K
7: Ku ← k
8: end for
9: for i = to M do
10: Tính 𝒓̂𝒖,𝒊
11: end for
12: end procedure
1: procedure
ITEMKNN-CF (𝒓̅𝒖,r,Dtrain) 2: for i=1 to M 3: Tính Simii'
4: end for
5: Sort Simii'
6: for i=1 to K
7: Ki ← k
8: end for
9: for u = to N 10: Tính 𝒓̂𝒖,𝒊
11: end for
12: end procedure
Hình Giải thuật láng giềng người dùng sản phẩm 2.2.Phương pháp lọc cộng tác sử dụng phân cụm Spectral
Bản chất phương pháp ứng dụng kỹ thuật phân cụm Spectral vào lọc cộng tác dựa cảngười dùng sản phẩm, xếp hạng chưa biết suy từ xếp hạng tường minh nhóm người dùng sản phẩm tương tự
Trong kỹ thuật phân cụm Spectral:
Đầu vào: tập hợp n điểm (có thể n người n sản phẩm) kí hiệu X= {𝑥1, 𝑥2, 𝑥3, … , 𝑥𝑛} k cụm
Đầu ra: k cụm 𝐶1, 𝐶2, … , 𝐶𝑘
Bước 1: Phân cụm người dùng sản phẩm theo kỹ thuật Spectral
Tính ma trận mối liên hệ S với phần tử theo định nghĩa sau:
𝑠𝑖𝑗= 𝑒𝑥𝑝 (− ‖𝑥⃗⃗⃗ −𝑥𝑖 ⃗⃗⃗⃗ ‖𝑗
2
(2)với i, j = 1, …, n
Trong đó, 𝑠𝑖𝑗 độ tương đồng đối tượng i, j; 𝑥𝑖
⃗⃗⃗ , 𝑥⃗⃗⃗ vector tương ứng với hàng thứ i, j ma trận 𝑗 R, đại diện cho đối tượng i, j; 𝜎 tham số điều chỉnh độ lớn tập láng giềng Nếu 𝜎 nhỏ thu cấu hình địa phương tốt tập láng giềng Ở mẫu số tính tương ứng theo cơng thức sau:
2 × 𝜎2= 𝑛
Tính ma trận đường chéo D, phần tử 𝑑𝑖 tính:
𝑑𝑖= ∑ 𝑠𝑖𝑗 𝑛 𝑗=1
Tính ma trận chuẩn hóa Laplacian L tương ứng: 𝐿 = 𝐷−12(𝐷 − 𝑆)𝐷−
1
Tính k giá trị vector 𝑣1, 𝑣2, … , 𝑣𝑘 toán tổng quát:
𝐿𝑣 = 𝜆𝐷𝑣
Xây dựng ma trận với 𝑉 ∈ 𝑅𝑛𝑘 chứa vector 𝑣1, 𝑣2, … , 𝑣𝑘 tương ứng với cột ma trận
Gọi 𝑦𝑖∈ 𝑅𝑘 vector hàng thứ i V Dùng thuật toán k-means để phân cụm điểm (𝑦𝑖)𝑖=1,…,𝑛 𝑅𝑘 thành cụm 𝐶1, 𝐶2, … , 𝐶𝑘
Gán điểm ban đầu (𝑥𝑖)𝑖=1,…,𝑛 vào cụm 𝐶𝑗 tương ứng với vector (𝑦𝑖)𝑖=1,…,𝑛 gán trước
Bước 2: Tính giá trị chưa biết 𝐫𝐮𝐢𝐔 𝐫𝐮𝐢𝐈 dựa người dùng dựa sản phẩmbằng công thức:
𝑟𝑢𝑖𝑈 = 𝑘𝑐∑ 𝑠𝑖𝑚𝑈(𝑢, 𝑙) × 𝑟𝑙𝑖 𝑙
𝑟𝑢𝑖𝐼 = 𝑘𝑔∑ 𝑠𝑖𝑚𝐼(𝑖, 𝑗) × 𝑟𝑢𝑙 𝑗𝑗
Trong đó: 𝑘𝑐 𝑘𝑔 giá trị chuẩn hóa, tính: 𝑘𝑐=
1
∑ |𝑠𝑖𝑚𝑙 𝑈(𝑢,𝑙)| 𝑘𝑔=
1 ∑ |𝑠𝑖𝑚𝐼(𝑗,𝑘)|
𝑗
; 𝑠𝑖𝑚𝑈(𝑢, 𝑙) 𝑠𝑖𝑚𝐼(𝑖, 𝑗) độ tương tự người dùng sản phẩm tương ứng
Bước 3: Dự đoán giá trị đánh giá chưa biết 𝐫𝐮𝐢 người dùng ứng với sản phẩm i tổng hợp thông qua 𝑟𝑢𝑖𝑈 𝑟𝑢𝑖𝐼 công thức:
𝑟𝑢𝑖=∝ 𝑟𝑢𝑖𝐼 + (1−∝)𝑟𝑢𝑖𝑈, ∝∈ [0,1]
Phương pháp lọc cộng tác sử dụng kỹ thuật phân cụm Spectral thành công việc giải vấn đề liệu thưa, người dùng Tuy nhiên, chưa giải mức độ quan trọng sản phẩm người dùng
2.3.Lý thuyết tối ưu bầy đàn
Phương pháp tối ưu hóa bày đàn dạng thuật tốn tiến hóa quần thể, giới thiệu lần đầu vào năm 1995 James Kennedy Russell C Eberhart Phương pháp khởi tạo nhóm cá thể ngẫu nhiên sau tìm nghiệm tối ưu cách cập nhật hệ Trong hệ, cá thể cập nhật theo
hai vị trí tốt Giá trị thứ vị trí tốt đạt tới thời điểm tại, gọi tối ưu cục 𝑃𝑏𝑒𝑠𝑡 Giá trị thứ hai vị trí tốt tất quần thể từ đầu thời điểm tại, gọi tối ưu tồn cục 𝐺𝑏𝑒𝑠𝑡 Nói cách khác, cá thể quần thể cập nhật vị trí theo vị trí tốt quần thể tính tới thời điểm
Hình Sơ đồ tìm kiếm lý thuyết bầy đàn Trong đó:
𝑋𝑖𝑘: vị trí cá thể thứ i hệ thứ k; 𝑉𝑖𝑘: vận tốc cá thể thứ i hệ thứ k; 𝑋𝑖𝑘+1: vị trí cá thể thứ i hệ thứ k + 1; 𝑉𝑖𝑘+1: vận tốc cá thể thứ i hệ thứ k + 1; 𝑃𝑏𝑒𝑠𝑡: vị trí tốt cá thể thứ i;
𝐺𝑏𝑒𝑠𝑡 : vị trí tốt quần thể thứ i
Vận tốc vị trí cá thể quần thể cập nhật theo công thức:
𝑉𝑖𝑘+1= 𝜔 ∗ 𝑉𝑖𝑘+ 𝑐1∗ 𝑟1∗ (𝑃𝑏𝑒𝑠𝑡𝑘 − 𝑉𝑖𝑘) + 𝑐2∗ 𝑟2∗ (𝐺𝑏𝑒𝑠𝑡𝑘 − 𝑉𝑖𝑘)
𝑋𝑖𝑘+1= 𝑋
𝑖𝑘+ 𝑉𝑖𝑘+1 Trong đó:
𝜔 : hệ số qn tính, giảm tuyến tính từ đến tùy thuộc vào số lần lập xác định trước
𝑐1, 𝑐2 : Các hệ số gia tốc, nhận giá trị từ [1,173; 2,5] 𝑟1, 𝑟2: giá trị ngẫu số nhận giá trị [0, 1]
3.Phương pháp đề xuất sử dụng lý thuyết bầy đàn Để khắc phục vấn đề người dùng sản phẩm có mức quan trọng ngang nhau, sử dụng lý thuyết tối ưu bầy đàn để ước tính trọng số cho người dùng sản phẩm Trọng số dùng để cải tiến cơng thức phân cụm mơ hình dự đoán
Cho {𝑤1𝐼, 𝑤2𝐼, … , 𝑤𝑚𝐼; 𝑤1𝑈, 𝑤2𝑈, … , 𝑤𝑛𝑈} tập phương án, thể trọng số cá thể lý thuyết bầy đàn với 𝑤𝑗𝐼, 𝑗 = 𝑚 𝑤𝑖𝑈, 𝑖 = 𝑛, nhận giá trị đoạn [0,1], làm đại diện cho trọng số sản phẩm người dùng Dữ liệu ban đầu tập hợp cá thể khởi tạo ngẫu nhiên Cấu hình tham số lý thuyết bầy đàn cung cấp theo điều kiện liệu thực tế
(3)thể thuật toán tối ưu bầy đàn Các trọng số sử dụng để cập nhật độ tương tự theo phương pháp cosine:
𝑤𝑠𝑖𝑚(𝑥⃗⃗⃗⃗ , 𝑥𝑎 ⃗⃗⃗⃗ ) =𝑏
∑ 𝑤𝑖 𝑖𝑥𝑎,𝑖𝑤𝑖𝑥𝑏,𝑖 √∑ 𝑤𝑖 𝑖2𝑥2𝑎,𝑖√∑ 𝑤𝑖 𝑖2𝑥2𝑏,𝑖 3.1.Cấu hình cho bầy đàn
Cấu hình cá thể
𝒘 = [[𝑤1𝑈, 𝑤2𝑈, … , 𝑤𝑛𝑈], [𝑤1𝑖, 𝑤2𝑖, … , 𝑤𝑚𝑖]]
Với 𝑛 số người dùng, 𝑚 số sản phẩm, miền giá trị trọng số 𝐷 = [0, 1]
Kích thước quần thể(số cá thể): 20
Số bước lặp tối đa (số hệ quần thể): 100 Hệ số gia tốc cục (c1):
Hệ số gia tốc toàn cục (c2):
Hệ số quán tính (w): 0,9 3.2.Xây dựng hàm thích nghi
Xây dựng hàm thích nghi cách đánh giá trung bình cộng sai số tuyệt đối giữ kết dự đoán kết thực tập liệu test
Bước 1: Phân cụm theo người dùngvà sản phẩm kỹ thuật spectral kết hợp trọng số
Xây dựng ma trận tương đồng người dùng (các sản phẩm) sở ma trận đánh giá trọng số tương quan sản phẩm (người dùng) theo công thức:
𝑺𝑖𝑗 = 𝐸𝑥𝑝 (−
‖𝒘𝒙⃗⃗⃗⃗⃗⃗⃗ − 𝒘𝒙𝑖 ⃗⃗⃗⃗⃗⃗⃗ ‖𝑗 2 × 𝜎2 )
Sau tính độ tương đồng, tiến hành phân cụm spectral đề cập bước 1, Mục 2.2, nhận cụm tương ứng với người dùng sản phẩm
Bước 2: Thực đánh giá giá trị chưa biết cụm
𝑥𝑖𝑗𝑈=
∑ 𝝎𝐼× 𝒔𝒊𝒎𝑈(𝑖, 𝑙) × 𝑥 𝑙𝑗 𝑙
∑ 𝝎𝐼× 𝒔𝒊𝒎𝑈(𝑖, 𝑙) 𝑙
Với 𝒔𝒊𝒎𝑈(𝑖, 𝑙) độ tương đồng user 𝑖 user 𝑙 cụm
𝑥𝑖𝑗𝐼 =
∑ 𝝎𝑈× 𝒔𝒊𝒎𝐼(𝑖, 𝑙) × 𝑥 𝑙𝑗 𝑙
∑ 𝝎𝑈× 𝒔𝒊𝒎𝐼(𝑖, 𝑙) 𝑙
Với 𝒔𝒊𝒎𝑈(𝑖, 𝑙) độ tương đồng user 𝑖 user 𝑙 cụm
Ta có giá trị đánh giá kết hợp user-item base: 𝑥𝑖𝑗′ = 𝛼 × 𝑥𝑖𝑗𝑈+ (1 − 𝛼) × 𝑥𝑖𝑗𝐼
Bước 3: Ước lượng giá trị mục tiêu cho cá thể tối ưu bầy đàn
𝑀𝐴𝐸 = ∑ |𝑥𝑖𝑗 ′ − 𝑥
𝑖𝑗| 𝑛_𝑡𝑒𝑠𝑡
𝑛_𝑡𝑒𝑠𝑡
Trong 𝑛_𝑡𝑒𝑠𝑡 tổng số rating cần đánh giá (hay kích thước tập liệu test), 𝑥𝑖𝑗′ giá trị dự đốn mơ hình đánh giá, 𝑥𝑖𝑗 giá trị xếp hạng tập liệu test 3.3.Tối ưu vector trọng số
Hình Lưu đồ tối ưu vector trọng số 4.Đánh giá phương pháp tư vấn
Đánh giá độ xác phương pháp tư vấn khâu quan trọng quy trình xây dựng hệ tư vấn [[3] Nó giúp cho người thiết kế lựa chọn phương pháp, kiểm tra độ xác trước đưa phương pháp vào ứng dụng thực tế Trong nghiên cứu này, nhóm tác giả sử dụng độ đo sai số tuyệt đối trung bình (Mean Absolute Error - MAE) kết đánh giá từ hệ thống kết đánh thực từ người dùng tập liệu kiểm thử
4.1.Chuẩn bị liệu cho đánh giá
Tập liệu thực nghiệm chia làm hai tập: tập liệu huấn luyện tập liệu kiểm tra [6] Hiện tại, có ba phương pháp để chia tập liệu cho việc đánh giá phương pháp tư vấn sử dụng phổ biến: cắt tập liệu thành hai phần theo tỷ lệ cho trước (Splitting), cắt tập liệu ngẫu nhiên nhiều lần (Bootstrap sampling) cắt tập liệu thành k phần (K-fold cross-validation) [6] Trong nghiên cứu này, liệu đánh giá lưu tậpu.data chia thành hai tập theo hai cách ngẫu nhiên khác nhau, cho huấn luyện (ua.base, ub.base), cho kiểm thử (ua.test, ub.test)
4.2.Đánh giá phương pháp tư vấn
(4)5.Thực nghiệm
5.1.Xử lý liệu thực nghiệm
Mơ hình thực nghiệm hai tập liệu ua.base ua.test hồn tồn thực nghiệm lại với cách chia liệu lại ub.base ub.test (hoặc thực nghiệm tập liệu lớn MovieLens 10M, MovieLens 20M)
Ma trận liệu thực nghiệm chia làm hai tập con: Tập liệu huấn luyện có kích thước 90570 giá trị xếp hạng (chiếm 90%), Tập liệu kiểm tra có kích thước 9430 giá trị xếp hạng (chiếm 10%)
5.2.Công cụ thực nghiệm
Để triển khai thực nghiệm, nhóm tác giả sử dụng thư viện hỗ trợ tính tốn scipy, sklearn, matplotlib, numpy triển khai ngôn ngữ Python
5.3.Phương pháp lọc cộng tác sử dụng mơ hình láng giềng Tiến hành xây dựng phương pháp dựa độ đo cosincủa ma trận đánh giávà kiểm tra phương pháp tập liệu kiểm tra với 9430 đánh giá Kết tư vấn phương pháp xuất theo định dạng ma trận dòng gồm {id_user, id_item, rating} Kết tư vấn 100 đánh giá từ hệ thống so với kết tập kiểm thử
Hình Kết dự đốn mơ hình CF
5.4.Phương pháp lọc cộng tác sử dụng phân cụm Spectral Nhóm tác giả tiến hành xây dựng phương pháp dựa phân cụm người dùng kỹ thuật spectral, sau tiến hành dự đốn dựa độ đo cosin cụm Kết tư vấn cho 100 đánh giá từ hệ thống so với kết tập liệu test
Hình Kết dự đốn mơ hình ICCF
5.5.Phương pháp lọc cộng tác sử dụng phân cụm kết hợp với lý thuyết bầy đàn
Sử dụng lý thuyết bầy đàn để xác định trọng số cho người dùng sản phẩm Các trọng số sử dụng để xây dựng ma trận tương quan độ đo cosin Tương tự với liệu Mục 5.3 5.4, kết tư vấn
mơ hình xuất theo định dạng ma trận dòng bao gồm {id_user, id_item, rating} Kết tư vấn cho 100 đánh giá đầu tiêntrong mô hình so với tập liệu test
Hình Kết dự đốn mơ hình ICCF-FW
Kết vector trọng số người dùng sản phẩm thể dạng biểu đồ histogram vector trọng số
Hình Histogram trọng số item - user 5.6.So sánh kết ba phương pháp
Để so sánh độ xác phương pháp, nhóm tác giả tính độ sai lệch tuyệt đối mơ hình CF, ICCF ICCF-FW Kết cho thấy, mơ hình ICCF-FW có độ sai lệch dự đốn thất so với hai mơ hình cịn lại, cho thấy hiệu cải tiến
Hình Biểu đồ đánh giá sai số mô hình dự đốn 6.Kết luận
(5)Trong báo này, đề xuất phương pháp để cải thiện độ xác phương pháp tư vấn lọc cộng cách giả thuyết người dùng sản phẩm có độ ưu tiên khác phân thành cụm theo phương pháp Spectral Tiến hành chọn lọc trọng số cho kết dự đoán tốt dựa theo thuật toán tối ưu hóa bày đàn
Kết thực nghiệm tập liệu MovieLens 100k cho thấy phương pháp lập lọc phân cụm cộng tác kết hợp trọng số (ICCF-FW) mà nhóm tác giả đề xuất có độ xáccao phương pháp tư vấn lọc cộng tác truyền thống
TÀI LIỆU THAM KHẢO
[1] F Isinkaye, Y Folajimi, and B Ojokoh, "Recommendation systems: Principles, methods and evaluation”, (in en), Egyptian Informatics Journal, vol 16, no 3, pp 261-273, 2015
[2] Gabor Takacs et al, “Scalable collaborative filtering approaches for
large recommender systems” Journal of Machine Learning Research, 2009, 33 (623-656)
[3] Gunawardana A and Shani G, “A Survey of Accuracy Evaluation Metrics of Recommendation Tasks”, Journal of Machine Learning Research, v10, 2009, 27 (2935–2962)
[4] Herlocker JL, Konstan JA, Terveen LG and Riedl JT, “Evaluating collaborative filtering recommender systems”, ACM Transactions on Information Systems, 22(1), ISSN 1046-8188, 2004, 42 (5–53) [5] Michael D Ekstrand, John T Riedl and Joseph A Konstan,
“Collaborative Filtering Recommender Systems”, Foundations and Trends in Human–Computer Interaction Vol 4, No (2010), 2010,92 (81–173)
[6] Michael Hahsler, “recommenderlab: A Framework for Developing and Testing Recommendation Algorithms” The Intelligent Data Analysis Lab at SMU, http://lyle.smu.edu/IDA/recommenderlab/, 2011 [7] Xiaoyuan Su and Taghi M Khoshgoftaar”,A Survey of
Collaborative Filtering Techniques”Advances in Artificial Intelligence archive, Volume 2009, Article No 4, 2009, 20 (1-20).
e archive,