Bài viết đề xuất mộ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 trên phân cụm cộng tác kết hợp với trọng số cho các người dùng và sản phẩm. Trong phương pháp tư vấn lọc cộng tác truyền thống, kết quả tư vấn được xây dựng chỉ dựa trên độ tương tự các điểm dữ liệu gần nhau nhất để dự đoán các giá trị khuyết trong ma trận đánh giá
Nguyễn Thị Hoàng Phương, Nguyễn Văn Hiệu 52 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 Trường Đại học Phạm Văn Đồng; nthoangphuong90@gmail.com Trườ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 - Particle Swarm Optimization; collaborative filtering recommender system; rating matrix; similarity matrix; integrated similarity matrix Đặ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 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: 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: 𝑟̂𝑢,𝑖 = 𝑟̅𝑢 + ∑𝑢′∈𝐾𝑢 𝑠𝑖𝑚(𝑢, 𝑢′ ) (𝑟𝑢′,𝑖 − 𝑟̅𝑢′ ) ∑𝑢′ ∈𝐾𝑢 |𝑠𝑖𝑚(𝑢, 𝑢′ )| 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 10: Tính 𝒓̂𝒖,𝒊 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: 12: 11: 12: end for end procedure end for 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 ) i≠j 𝑠𝑖𝑖 = ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, VOL 17, NO 4, 2019 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 = 𝑛 Tính ma trận đường chéo D, phần tử 𝑑𝑖 tính: 53 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 𝑛 𝑑𝑖 = ∑ 𝑠𝑖𝑗 𝑗=1 Tính ma trận chuẩn hóa Laplacian L tương ứng: 1 𝐿 = 𝐷 −2 (𝐷 − 𝑆)𝐷 −2 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 𝑘𝑐 = ∑ 𝑘𝑔 = ∑ ; 𝑠𝑖𝑚𝑈 (𝑢, 𝑙) 𝑈 𝐼 𝑙|𝑠𝑖𝑚 (𝑢,𝑙)| 𝑗|𝑠𝑖𝑚 (𝑗,𝑘)| 𝑠𝑖𝑚𝐼 (𝑖, 𝑗) độ 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: 𝐼 𝑟𝑢𝑖 𝑋𝑖𝑘 : 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 ∗ (𝑃𝑏𝑒𝑠𝑡 − 𝑉𝑖𝑘 ) 𝑙 𝐼 𝑟𝑢𝑖 Hình Sơ đồ tìm kiếm lý thuyết bầy đàn Trong đó: 𝑈 (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 𝑘 + 𝑐2 ∗ 𝑟2 ∗ (𝐺𝑏𝑒𝑠𝑡 − 𝑉𝑖𝑘 ) 𝑋𝑖𝑘+1 = 𝑋𝑖𝑘 + 𝑉𝑖𝑘+1 Trong đó: 𝜔 : hệ số quán 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] 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ự đố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ế Trong mơ hình dự đốn trọng số w cá Nguyễn Thị Hồng Phương, Nguyễn Văn Hiệu 54 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: ∑𝑖 𝑤𝑖 𝑥𝑎,𝑖 𝑤𝑖 𝑥𝑏,𝑖 𝑤𝑠𝑖𝑚(𝑥 ⃗⃗⃗⃗𝑎 , ⃗⃗⃗⃗ 𝑥𝑏 ) = √∑𝑖 𝑤𝑖 𝑥 𝑎,𝑖 √∑𝑖 𝑤𝑖 𝑥 𝑏,𝑖 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 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ố Đá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 Có hai phương pháp để đánh giá: đánh giá dựa xếp hạng (Evaluation the ratings) đánh giá dựa gợi ý (Evaluation the recommendations) [3] 3, [4] Trong viết này, nhóm tác giả trình bày phương pháp đánh giá dựa gợi ý mơ hình phương pháp áp dụng ma trận xếp hạng nhị phân ma trận xếp hạng dạng số thực ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ ĐẠI HỌC ĐÀ NẴNG, VOL 17, NO 4, 2019 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ử 55 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 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ự đoá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 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 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 Kết luận Theo khảo sát thực tế, hệ thống online có xu hướng quảng cáo sản phẩm đến người dùng cách xác nhất, giúp làm tăng doanh thu bán hàng, hệ thống khuyến nghị - recommender system giải pháp giúp cho việc quảng cáo sản phẩm đến người dùng cách xác hiệu so với phương pháp quảng cáo truyền thống Nguyễn Thị Hoàng Phương, Nguyễn Văn Hiệu 56 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 tố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 [3] [4] [5] [6] 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 [7] large recommender systems” Journal of Machine Learning Research, 2009, 33 (623-656) Gunawardana A and Shani G, “A Survey of Accuracy Evaluation Metrics of Recommendation Tasks”, Journal of Machine Learning Research, v10, 2009, 27 (2935–2962) 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) 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) 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 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) (BBT nhận bài: 20/3/2019, hoàn tất thủ tục phản biện: 20/4/2019) ... 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... 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. .. số nhận giá trị [0, 1] 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ố