Có nhiều phương pháp lọc thông tin trong hệ thống gợi ý, trong luận văn đề cập đến phương pháp lọc cộng tác theo mô hình láng giềng, lọc cộng tác sử dụng kỹ thuật phân cụm Spectral, lọc
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
LU ẬN VĂN THẠC SĨ
Đà Nẵng, năm 2018
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60 48 01 01
LU ẬN VĂN THẠC SĨ Người hướng dẫn khoa học: TS Nguyễn Văn Hiệu
Đà Nẵng, năm 2018
Trang 3L ỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong lu ận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tác gi ả luận văn
Nguy ễn Thị Hoàng Phương
Trang 4TÓM T ẮT LUẬN VĂN
NGHIÊN C ỨU ỨNG DỤNG THUẬT TOÁN TỐI ƯU BẦY ĐÀN VÀO
H Ệ THỐNG GỢI Ý
Tóm t ắt – Với sự bùng nổ thông tin trên internet ngày nay, việc lựa chọn và đưa ra
quyết định của người dùng trở nên vô cùng khó khăn, tạo nhu cầu cần phải xây dựng những
hệ thống gợi ý nhằm cung cấp các đề xuất các mục tin cần thiết cho người dùng Luận văn này trình bày lý thuyết về hệ thống gợi ý, thuật toán tối ưu bầy đàn để làm cơ sở xây dựng mô hình gợi ý hiệu quả Có nhiều phương pháp lọc thông tin trong hệ thống gợi ý, trong luận văn
đề cập đến phương pháp lọc cộng tác theo mô hình láng giềng, lọc cộng tác sử dụng kỹ thuật phân cụm Spectral, lọc cộng tác sử dụng PSO và việc cải tiến các kỹ thuật trên để xây dựng phương pháp lọc hiệu quả hơn đối với dữ liệu nhị phân Trên cơ sở đó, mô hình được triển khai thực nghiệm thành công, đánh giá kết quả cho thấy mô hình cải tiến có hiệu suất cao hơn các mô hình khác
T ừ khóa: hệ thống gợi ý, lọc cộng tác, mô hình láng giềng, phân cụm Spectral, tối ưu
b ầy đàn
Abstract – Today, with a huge amount of information on the internet, the choice and
decision-making of users becomes extremely difficult, leads to the nessesary of recommender systems to suggest for user In this thesis, recommender systems, particle swarm optimization’s theory is presented as the basis of the effective recommender model There are many filtering information methods, this thesis refers to the neighbor-based collaborative filtering, Spectral-based collaborative filtering, collaborative filtering using PSO methods and improve these techniques to one for binary dataset From that, the models are successfully implemented, and the results shows that the improvement model is more effective than other models
Keywords: recommender system, collaborative filtering, neighborhood model,
Spectral clustering, particle swarm optimization
Trang 5M ỤC LỤC
L ỜI CAM ĐOAN i
TÓM T ẮT LUẬN VĂN ii
M ỤC LỤC iii
DANH M ỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT v
DANH M ỤC CÁC BẢNG vi
DANH M ỤC CÁC HÌNH VẼ VÀ ĐỒ THỊ vii
PH ẦN MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục đích – Mục tiêu nghiên cứu 2
3 Đối tượng – Phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 3
5 Ý nghĩa khoa học và thực tiễn 3
6 Dàn ý nội dung chính 3
CHƯƠNG 1 TỔNG QUAN VỀ HỆ THỐNG GỢI Ý VÀ THUẬT TOÁN PSO 4
1.1 T ổng quan về hệ thống gợi ý 4
1.1.1 Giới thiệu và một số khái niệm 4
1.1.2 Ứng dụng và lợi ích của hệ thống gợi ý 6
1.1.3 Các cách tiếp cận trong hệ thống gợi ý 7
1.1.4 Các kĩ thuật lọc thông tin 8
1.1.5 Các giai đoạn trong hệ thống gợi ý 11
1.1.6 Phương pháp đánh giá mô hình hệ thống gợi ý 11
1.2 Tổng quan về thuật toán tối ưu bầy đàn PSO 13
1.2.1 Giới thiệu 13
1.2.2 Các khái niệm cơ bản trong thuật toán PSO 14
1.2.3 Thuật toán PSO 17
K ết chương 1 19
CHƯƠNG 2 ỨNG DỤNG THUẬT TOÁN TỐI ƯU BẦY ĐÀN VÀO HỆ TH ỐNG GỢI Ý 20
2.1 Phương pháp lọc cộng tác sử dụng mô hình láng giềng 20
2.2 Phương pháp lọc cộng tác sử dụng kỹ thuật phân cụm Spectral 21
2.3 Phương pháp lọc cộng tác sử dụng PSO 24
2.4 C ải tiến phương pháp phân cụm lọc cộng tác sử dụng kỹ thuật Spectral 28
2.5 C ải tiến phương pháp gợi ý dựa trên lọc cộng tác tối ưu trọng số bằng PSO 29
K ết chương 2 33
CHƯƠNG 3 HỆ THỐNG THỬ NGHIỆM VÀ ĐÁNH GIÁ 34
Trang 63.1 Giới thiệu tập dữ liệu 34
3.2 Kịch bản thực nghiệm 35
3.3 Kết quả chạy thử nghiệm 35
3.3.1 Lọc cộng tác trên người dùng theo phương pháp mô hình láng giềng gần nhất và phương pháp tối ưu trọng số sử dụng PSO cải tiến 35
3.3.2 Lọc cộng tác trên mục tin theo phương pháp mô hình láng giềng gần nhất và phương pháp tối ưu trọng số sử dụng PSO cải tiến 39
3.3.3 Lọc cộng tác kết hợp người dùng – mục tin theo phương pháp mô hình láng giềng gần nhất và phương pháp tối ưu trọng số sử dụng PSO cải tiến 42
3.4 Hướng dẫn thực nghiệm 48
Kết chương 3 49
K ẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 50 TÀI LI ỆU THAM KHẢO
QUYẾT ĐỊNH GIAO ĐỀ TÀI (BẢN SAO)
Trang 7DANH M ỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Tối ưu đàn kiến
AI : Artificial Intelligence
Trí thuệ nhân tạo ICCF : Iteration Clustering Collaborative Filtering
NBCF : Nearest Neighbor Collaborative Filtering
Tối ưu bầy đàn
Trang 93.1 Mô t ả biểu diễn người dùng, mục tin và đánh giá
3.9 MAE và RMSE trên itemICCF - PSO FW (25 -
Trang 103.15 MAE và RMSE trên useritemICCF - PSO FW
Trang 11PH ẦN MỞ ĐẦU
1 Lý do ch ọn đề tài
Trong vài chục năm trở lại đây, khoa học kĩ thuật phát triển vô cùng mạnh mẽ Các dịch vụ trên Internet, các thiết bị truyền tải và tiếp cận thông tin trở nên phổ biến, đại trà trên toàn cầu Sự bùng nổ thông tin trên mạng internet mang lại nhiều lợi ích cho con người trong việc khai thác tài liệu học tập, giải trí, mua sắm, giao tiếp Con người dễ dàng đượ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 mỗi ngày Tuy nhiên, cũng chính bởi sự “quá tải” thông tin, 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 Từ đó phát sinh nhu cầu cần phải xây dựng những hệ thống gợi ý chọn lọc thông tin hiệu quả
Hệ thống gợi ý (Recommender Systems - RS) là hệ thống hỗ trợ ra quyết định
nhằm gợi ý các thông tin liên quan đến người dùng một cách dễ dàng và nhanh chóng, phù hợp với từng người dùng Cụ thể hơn, hệ thống gợi ý là một dạng của hệ thống lọc thông tin, được sử dụng để dự đoán sở thích (preferences) hoặc xếp hạng (rating) của người dùng dành cho một mục thông tin (item) nào đó mà họ chưa biết hoặc chưa xem xét tới trong quá khứ Hệ thống này trở nên phổ biến trong những năm gần đây, được ứng dụng trong nhiều lĩnh vực khác nhau như gợi ý tài liệu, bài hát, xem phim, công
việc, bảo hiểm, hẹn hò,… đặc biệt được quan tâm sử dụng nhiều trong thương mại điện tử Các hệ thống gợi ý tiêu biểu như Amazon, Netflix, IMDb, Youtube, Last.fm, MovieLens, Lazada, Sendo… đã tăng được số lượng truy cập nhờ vào tính năng hỗ trợ
ra quyết định này Chẳng hạn, trong hệ thống bán hàng trực tuyến, nhằm tối ưu hóa
khả năng mua sắm của khách hàng, hệ thống sẽ dựa trên xếp hạng (từ đến
), thời gian duyệt (browse) trên sản phẩm, số lần click chuột,… của người dùng để dự đoán được khách hàng có thể thích sản phẩm nào và đưa ra những gợi ý phù hợp cho họ Điều này giúp giải quyết tốt bài toán lựa chọn trong trường hợp quá
tải thông tin [1,2,3]
Có nhiều kĩ thuật lọc thông tin trong RS Các kĩ thuật lọc này thường được phân thành các nhóm: lọc dựa trên nội dung (content - based filtering, dựa trên user profile),
lọc cộng tác (collaborative filtering – CF, dựa trên dữ liệu đánh giá trong quá khứ của user), lai ghép (hybrid, kết hợp của hai phương pháp trên) và lọc không cá nhân hóa (non-personalization) Trong đó, nổi bật và được sử dụng nhiều nhất là kỹ thuật lọc
cộng tác bởi sự đơn giản trong việc thu thập thông tin (user, item và feedback) của nó
Ưu điểm của lọc cộng tác là có thể hoạt động tốt trong trường hợp thiếu hụt thông tin của đối tượng, có thể đưa ra gợi ý mà không cần thông tin hồ sơ người dùng (user profile) Chất lượng của hệ thống gợi ý cộng tác phụ thuộc vào độ đo tương tự và việc lựa chọn tập láng giềng Tuy nhiên hạn chế chính của CF là vấn đề dữ liệu thưa, khả
Trang 12năng mở rộng và thiếu dữ liệu đánh giá Vì kỹ thuật lọc cộng tác dựa trên những quan điểm của tập láng giềng những user có cùng sở thích với user mục tiêu, nên việc chọn tập láng giềng chính xác sẽ giúp hệ thống gợi ý tốt hơn Hệ thống gợi ý phân cụm lặp cộng tác được đề xuất đã giải quyết được nhiều tồn tại nói trên Tuy nhiên tất cả user
và item ở đây đều có mức độ ảnh hưởng như nhau khi tính toán độ tương tự, chưa phản ánh được mức độ quan trọng của các đặc trưng khác nhau, do đó trong trường hợp các item quá phổ biến thì không cung cấp được nhiều thông tin về sở thích của
user, hệ thống chưa đưa ra được gợi ý tốt nhất
Vào năm 1995, kỹ thuật tối ưu bầy đàn (Particle Swarm Optimization – PSO) lần đầu tiên được giới thiệu bởi James Kennedy và Russell C Eberhart tại một hội nghị của IEEE [10] Phương pháp tối ưu bầy đàn là một trong những thuật toán xây dựng dựa trên khái niệm trí tuệ bầy đàn để tìm kiếm lời giải cho các bài toán tối ưu hóa trên một không gian tìm kiếm Việc ứng dụng thuật toán bầy đàn vào hệ thống gợi ý là một hướng nghiên cứu mới đang được quan tâm, góp phần tạo nên những hệ thống gợi ý chất lượng cao, phục vụ tốt một số bài toán gợi ý thực tế, giúp người dùng đưa ra quyết định chính xác hơn
Xuất phát từ những lý do trên, tôi chọn đề tài “Nghiên cứu ứng dụng thuật toán tối ưu bầy đàn vào hệ thống gợi ý” để triển khai nghiên cứu
2 M ục đích – Mục tiêu nghiên cứu
2.1 M ục đích
Tối ưu hóa hệ thống gợi ý
2.2 M ục tiêu
- Tìm hiểu, nghiên cứu và ứng dụng thành công PSO vào RS
- Xây dựng được hệ thống RS thử nghiệm sử dụng PSO
Để hoàn thành mục tiêu đề ra, đề tài thực hiện giải quyết các nhiệm vụ sau:
- Nghiên cứu tổng quan về hệ thống gợi ý
- Tìm hiểu phương pháp PSO
- Xây dựng mô hình ứng dụng PSO vào RS
- Xây dựng chương trình thử nghiệm
- Đánh giá kết quả thử nghiệm
3 Đối tượng – Phạm vi nghiên cứu
3 1 Đối tượng nghiên cứu
- Các vấn đề liên quan PSO
- Lý thuyết thuật toán PSO và ứng dụng
Trang 13- Xây dựng ứng dụng thử nghiệm
- Lập trình web ứng dụng triển khai hệ thống gợi ý
4 Phương pháp nghiên cứu
Đề tài sử dụng kết hợp các phương pháp nghiên cứu lý thuyết, phương pháp
thống kê, phương pháp thực nghiệm, cụ thể:
- Phương pháp PSO
- Các phương pháp trong RS
5 Ý nghĩa khoa học và thực tiễn
- Ứng dụng PSO vào RS là hướng nghiên cứu mới, giúp cải thiện tính hiệu quảhệ
Bố cục luận văn bao gồm 03 chương chính:
Chương 1: Trình bày tổng quan về hệ thống gợi ý, các kĩ thuật lọc thông tin trên
hệ thống gợi ý, phương pháp đánh giá hệ thống, đồng thời trình bày những vấn đề chung về thuật toán tối ưu bầy đàn PSO
Chương 2: Trình bày về các kỹ thuật trong hệ thống gợi ý lọc cộng tác: sử dụng
mô hình láng giềng, sử dụng kỹ thuật phân cụm Spectral, áp dụng PSO vào hệ thống
gợi ý, cải tiến mô hình PSO đối với dữ liệu nhị phân
Chương 3 Triển khai mô hình hệ thống gợi ý thử nghiệm, đánh giá hệ thống
Trang 14CHƯƠNG 1
Chương 1 trình bày tổng quan các vấn đề về hệ thống gợi ý và thuật toán tối ưu
b ầy đàn PSO Trong đó, các kĩ thuật lọc thông tin trong hệ thống gợi ý, đặc biệt là lọc
c ộng tác với dữ liệu đánh giá tường minh, giải thuật PSO và các thang đo để đánh giá
h ệ thống gợi ý được mô tả cụ thể, làm cơ sở lý thuyết cho các nghiên cứu ở chương sau
1.1 T ổng quan về hệ thống gợi ý
1.1.1 Gi ới thiệu và một số khái niệm
Với một lượng lớn thông tin bùng nổ trên internet hiện nay, việc lựa chọn và đưa
ra quyết định đối với người dùng trở nên vô cùng khó khăn, tạo nên nhu cầu cần phải xây dựng những hệ thống gợi ý Hệ thống gợi ý là các công cụ và kỹ thuật phần mềm được xây dựng nhằm cung cấp các đề xuất, khuyến nghị về mục tin (item) nào đó cho
người sử dụng (user) Các đề xuất có thể liên quan đến nhiều lĩnh vực khác nhau, chẳng hạn như những vật dụng để mua, bài hát có thể yêu thích hoặc những tin tức trực tuyến để đọc… Hệ thống gợi ý cũng được định nghĩa như một chiến lược ra quyết định cho người dùng dưới môi trường thông tin phức tạp Hệ thống gợi ý được xác định từ quan điểm của thương mại điện tử như một công cụ giúp người dùng tìm kiếm thông qua hồ sơ có liên quan đến sự quan tâm và sở thích của người dùng Hay hệ thống gợi ý đã được định nghĩa là một phương tiện trợ giúp và làm tăng quá trình xã hội của việc sử dụng các khuyến nghị của người khác để có những lựa chọn khi không
có kiến thức cá nhân đủ hoặc kinh nghiệm của các lựa chọn thay thế
Hệ thống gợi ý giải quyết vấn đề quá tải thông tin bằng cách lọc các thông tin quan trọng ra khỏi lượng thông tin khổng lồ dựa trên sở thích người dùng, hoặc hành
vi quan sát của người dùng về các item, thời gian lưu lại đối với sản phẩm, số lần xem
lại một video, việc tải các tập tin, hoặc xếp hạng của người dùng cho các item, phản
hồi của khách hàng… Từ đó, hệ thống có khả năng dự đoán xem một người dùng có
thẻ thích những nội dung nào đó họ chưa từng tiếp cận hoặc biết đến hay không
Các hệ thống gợi ý có lợi cho cả các nhà cung cấp dịch vụ và người sử dụng Họ
giảm chi phí giao dịch trong việc tìm kiếm và lựa chọn các mặt hàng trong một môi trường mua sắm trực tuyến, lựa chọn sách, tránh lãnh phí thời gian xem hết video, nghe một bài hát… Các hệ thống gợi ý có khả năng biến khách hàng tiềm năng trở thành khách hàng thật sự, cải thiện chất lượng giao dịch, nâng cao uy tín và doanh thu,
quảng bá được nhiều sản phẩm hơn Do đó, cần phải sử dụng các kĩ thuật giới thiệu
hiệu quả và chính xác trong một hệ thống gợi ý, nâng cao độ tin cậy đối với khách hàng
Sự phát triển của RS bắt nguồn từ một quan sát khá đơn giản trong thực tế: các cá
Trang 15nhân thường dựa vào các lời khuyên của người khác trong việc đưa ra các quyết định hàng ngày Ví dụ như dựa vào những gì mà đồng nghiệp khuyên dùng khi chọn một tài liệu để đọc nhằm phục vụ tốt công việc; các nhà tuyển dụng dựa vào các thư giới thiệu
về người phỏng vấn; hay lựa chọn một bộ phim để xem, người dùng có xu hướng đọc
và dựa vào các bài đánh giá phim, bình luận mà một nhà phê bình điện ảnh đã viết hoặc các người dùng trước đã xem
Khi các trang web thương mại điện tử phát triển, cùng với sự bùng nổ thông tin, người dùng dễ bị choáng ngợp trước thông tin, rất khó khăn để có được sự lựa chọn thích hợp nhất từ rất nhiều các mặt hàng (sản phẩm và dịch vụ) mà các trang web này cung cấp, do đó xuất hiện nhu cầu cấp bách về việc lọc thông tin hiệu quả và đưa ra gợi ý cho người dùng Hệ thống gợi ý là hệ thống xử lý thông tin thu thập dựa trên dữ liệu để xây dựng khuyến nghị Do đó, dữ liệu chính là về “item” để gợi ý, và “user” và mối liên hệ giữa hai dữ liệu này, thể hiện chủ yếu ở “transaction”, hay cụ thể hóa là
“feedback”
"Item" là thuật ngữ chung được sử dụng để biểu thị những mục tin hệ thống gợi
ý cho người dùng Các mục tin này có những đặc trưng riêng, giá trị và tiện ích riêng Giá trị của một mục có thể mang giá trị dương nếu mục đó hữu ích cho người dùng, hoặc âm nếu mục đó không thích hợp và người dùng đã đưa ra quyết định sai khi chọn Đối với mục tin miễn phí như tin tức, báo chí, người dùng mất chi phí chủ yếu cho thời gian đọc tin Tuy nhiên, với những mục tin mang giá trịthương mại, đặc biệt đầu
tư tài chính, ô tô… thì nếu hệ thống không gợi ý tốt, chi phí người dùng phải trả là vô cùng lớn Thông thường, mỗi RS tập trung vào một loại mục tin cụ thể Trên cơ sở đó,
RS được xây dựng tập trung vào một kỹ thuật cốt lõi phù hợp với mục tin, nhằm mang lại hiệu quả gợi ý cao nhất
“User” trong RS có những mục đích và tính năng đặc biệt rất đa dạng Để cá nhân hóa các khuyến nghị và sự tương tác giữa người và máy tính, RS khai thác một loạt thông tin về người sử dụng, cấu trúc hóa theo nhiều cách và phụ thuộc vào kỹ thuật lọc thông tin để đưa ra đề xuất Người dùng có thể được mô tả bằng dữ liệu hành
vi của họ, ví dụ như các mẫu trang web đã xem, các mẫu thông tin đã tìm kiếm
“Transaction” – thuật ngữ này đề cập đến một tương tác được ghi lại giữa người dùng và RS Ví dụ, một nhật ký tương tác có thể chứa một tham chiếu đến mục được lựa chọn bởi người dùng, mô tả ngữ cảnh cho yêu cầu cụ thể đó Thông thường trong
RS, tương tác này được ghi nhận nhiều nhất gồm phản hồi rõ ràng mà người dùng cung cấp, chẳng hạn đánh giá cho mặt hàng đã chọn, đã mua, hay còn gọi là
“feedback” Trên thực tế, xếp hạng là hình thức dữ liệu phổ biến nhất, thể hiện ở một
số hình thức: xếp hạng số (1 đến 5 sao); xếp hạng thứ bậc (đồng ý, trung lập, không đồng ý), xếp hạng nhị phân (tốt hay xấu)…
Dưới dạng đơn giản nhất, các đề xuất cá nhân hoá được cung cấp dưới dạng danh sách xếp hạng các mục tin Trong xếp hạng này, RS cố gắng dự đoán mục tin phù
Trang 16hợp nhất dựa trên sở thích của người dùng Để thực hiện được tính toán này, RS thu thập thông tin sở thích của người dùng qua nhiều phương diện, từ đó tính toán và có thể điều hướng hoặc đưa ra gợi ý bên cạnh mục tin người sử dụng đang xem, hướng người dùng đến những mục tin chưa được tiếp cận nhưng có khả năng cao sẽ phù hợp với người dùng
1.1.2 Ứng dụng và lợi ích của hệ thống gợi ý
a Ứng dụng của hệ thống gợi ý
Hệ thống gợi ý được ứng dụng trong nhiều lĩnh vực như thương mại điện tử, giải trí, tin tức, khoa học, giáo dục [1, 2].Trong lĩnh vực thương mại, người dùng sẽ được
hệ thống gợi ý các sản phẩm phù hợp với nhu cầu của từng cá nhân, như hệ thống gợi
nhân hóa cửa hàng trực tuyến cho mỗi khách hàng Vì các đề xuất thường được cá nhân hóa, người dùng hoặc nhóm người dùng khác nhau sẽ nhận được nhiều đề xuất khác nhau Ngoài ra còn có các đề xuất không được cá nhân hóa, điển hình như Top 10 sách bán chạy nhất trong tháng, 20 CD có giá tốt nhất [12] Thông thường, những đề
xuất không được cá nhân hoá này không được giải quyết bằng nghiên cứu của RS Trong lĩnh vực giải trí, người dùng có thể được gợi ý các bộ phim, bài hát phù
hợp mà người sử dụng không phải mất nhiều công tìm kiếm như hệ thống gợi ý phim MovieLens, Last.fm, Film-Conseil Trong lĩnh vực tin tức, người sử dụng được hệ
thống hỗ trợ gợi ý các bài báo phù hợp với từng người riêng biệt ví dụ như netnews, yahoo news… Trong lĩnh vực khoa học và giáo dục, hệ thống gợi ý hỗ trợ người dùng tìm kiếm các bài báo khoa học như hệ thống tìm kiếm Citeseer hay sinh viên tìm kiếm các tài liệu học tập phù hợp với cá nhân như hệ thống School e-Guide
b Lợi ích của hệ thống gợi ý
Có nhiều lý do giải thích vì sao các nhà cung cấp dịch vụ muốn khai thác RS:
- Tăng số lượng hàng hóa được bán Trong thương mại, khi khách hàng mua một
mặt hàng thì có khả năng cao sẽ mua một số phụ kiện kèm theo, việc đưa ra đề xuất giúp tăng số lượng hàng hóa được bán hơn rất nhiều so với việc không có khuyến nghị nào
- Bán nhiều mặt hàng đa dạng hơn Mỗi người dùng đóng góp vào RS một “thế
giới quan” nhu cầu của mình Ngày càng có nhiều sản phẩm mới, lạ ra đời mà người dùng chưa được tiếp cận RS biến những khách hàng tiềm năng thành khách hàng thực
sự khi giới thiệu với họ nhiều mặt hàng đa dạng, phục vụ nhu cầu tiềm ẩn của họ
- Tăng sự hài lòng của người sử dụng Một RS được thiết kế tốt sẽ giúp người dùng cảm thấy thú vị, thích sử dụng hệ thống, gắn kết với hệ thống.Việc kết hợp hiệu
quả, tức là đưa ra các khuyến nghị đúng sẽ mang lại nhiều lợi ích kinh tế kèm theo Điều này cũng đồng nghĩa với tăng độ tin cậy hệ thống, giúp xây dựng hệ thống lâu dài, bền vững
- Hiểu rõ hơn về những gì người dùng muốn Một chức năng quan trọng của RS,
Trang 17Users
có thể tận dụng được cho nhiều ứng dụng khác, đó là mô tả các sở thích của người dùng, hoặc được thu thập một cách rõ ràng hoặc dự đoán bởi hệ thống Sau đó, nhà cung cấp dịch vụ có thể quyết định sử dụng lại kiến thức này cho một số mục tiêu khác như cải thiện việc quản lý kho hàng hoặc quản lý sản xuất
- Tìm kiếm được một số nhóm hàng/mặt hàng tốt Dựa trên dữ liệu đánh giá, xếp
hạng, hệ thống sẽ có được danh mục các sản phẩm tốt có thể đáp ứng được rất nhiều người dùng khác
1.1.3 Các cách ti ếp cận trong hệ thống gợi ý
Như đã đề cập ở trên, trong RS, thông thường có 3 dữ liệu cần quan tâm: người dùng (user), mục tin (item), và phản hồi (feefback) của người dùng cho mục tin đó Các thông tin này thường được biểu diễn thông qua một ma trận Mỗi dòng của ma
trận là một user, mỗi cột là một item, và mỗi ô là một giá trị feedback, thể hiện mức độ hài lòng/thích của user trên item tương ứng Những ô có giá trị là những ô đã được đánh giá trong quá khứ, những ô trống là những ô chưa được đánh giá – những ô này thường chiếm phần lớn trong ma trận, bởi mỗi user thường chỉ xếp hạng cho một vài item trong quá khứ, vấn đề này gọi là ma trận thưa (spare matrix) Tùy theo hệ thống
mà giá trị này có ý nghĩa khác nhau, nó dùng để đo độ “phù hợp”/ “mức độ thích” hay
một dạng đánh giá năng lực người dùng dành cho mục tin
Thông thường ta gọi:
- I là tập tất cả các mục tin (items) sẽ được gợi ý và p là một sản phẩm cụ thể (i ∈
I) I là tập các mục tin như sách, phim, ảnh, quần áo, bài báo,… có thể lên đến hàng
nghìn hoặc hàng triệu sản phẩm trong một số RS
- U là t ập tất cả người dùng (users) và u là một người dùng cụ thể (u ∈ U) Tương
tự như P, tập người dùng U cũng có thể rất lớn, lên đến hàng triệu người
- R là một tập hợp các giá trị dùng để ước lượng sở thích/xếp hạng của người
dùng, và r ij∈ R là xếp hạng của n gười dùng ui trên sản phẩm ij
Giả sử có m mục tin và n user, ta có ma trận minh họa như sau:
Items
Thông qua một số kỹ thuật nhất định, RS sẽ tiến hành phân tích dựa trên các giá
trị thông tin thu được từ quá khứ để dự đoán các ô còn trống trong ma trận của user
Trang 18hiện hành, sau đó xếp hạng (từ cao đến thấp) và lựa chọn ra top-n items theo thứ tự, từ
đó gợi ý cho người dùng Mục tiêu của RS là tìm ra một hàm thỏa mãn điều kiện nào
đó Nếu là hàm ước lượng độ chính xác thì cần phải được tối đa hóa, còn nếu là hàm
để đo độ lỗi (như Root Mean Squared Error, Mean Absolute Error) thì cần phải được
tối tiểu
Dựa trên các kiểu feedback của người dùng trên mục tin, các nhà xây dựng hệ
thống gợi ý có thể tiếp cận theo hai hướng bài toán: RS cho phản hồi tường minh (explicit feedback) và không tường minh (implicit feddback) Người dùng có thể đưa
ra phản hồi tường minh thông qua đánh giá, xếp hạng mục tin dạng: từ đến
, like () hoặc disklike ()… Rất nhiều hệ thống lớn thu thập thông tin
phản hồi từ khách hàng một cách tường minh, như Ebay, Amazon, LastFM, NetFlix,
ở đó người sẽ trực tiếp đánh giá trên sản phẩm Thông qua việc thu thập phản hồi tường minh, hệ thống dễ dàng xác định mức độ yêu thích của người dùng trên sản
phẩm, từ đó dự đoán các sản phẩm tiếp theo mà người dùng có thể thích để gợi ý cho
họ Tuy nhiên, điều này có thể gặp khó khăn do không phải người dùng lúc nào cũng
sẵn sàng/vui lòng để lại các phản hồi của họ, lượng phản hồi tường minh thường rất ít
so với lượng xem/sử dụng mục tin của người dùng, vì vậy hệ thống phải tự xác định người dùng cần gì thông qua phản hồi không tường minh Phản hồi không tường minh (hay thường gọi là phản hồi tiềm ẩn) có thể được nhận qua thời gian nghe nhạc, số lần download, số lần lặp lại video, số lần chọn mua hàng… Từ dữ liệu này, RS dự đoán
xếp hạng (rating prediction) cho hệ thống có phản hồi tường minh và dự đoán mục thông tin (item prediction/ recommenđation) – hay xác định xác suất mà người dùng thích mục tin tương ứng
1 1.4 Các kĩ thuật lọc thông tin
Lọc thông tin (Information Filtering) là quá trình lọc bỏ những thông tin không
thích hợp và cung cấp thông tin thích hợp đến với mỗi người dùng Hiện nay có nhiều phương pháp lọc thông tin trong RS, nhiều giải thuật được nghiên cứu và đề xuất, tuy nhiên, có thể xếp các kỹ thuật này vào bốn nhóm chính:
a Lọc dựa trên nội dung (Content-based filtering)
Lọc theo nội dung là phương pháp thực hiện dựa trên việc so sánh nội dung thông tin hay mô tả hàng hóa, nhằm tìm ra những sản phẩm tương tự với những gì mà người dùng đã từng quan tâm để giới thiệu cho họ những sản phẩm này Ví dụ, nếu người dùng đã đánh giá tích cực một bộ phim thuộc về thể loại phim hành động, sau
đó hệ thống có thể học cách gợi ý phim khác từ thể loại này Các phương pháp tiếp cận lọc theo nội dung có nguồn gốc từ lĩnh vực truy vấn thông tin, trong đó mỗi sản phẩm được biểu diễn bằng một hồ sơ thuộc tính/nội dung (attributes), mỗi người dùng được biểu diễn bằng một hồ sơ người dùng (profiles) Lọc dựa trên nội dung thực hiện hiệu
quả trên các đối tượng dữ liệu biểu diễn dưới dạng văn bản
Lọc theo nội dung được tiếp cận theo hai xu hướng: Lọc dựa trên bộ nhớ và lọc
Trang 19dựa trên mô hình
Lọc nội dung dựa vào bộ nhớ
Phương pháp lọc nội dung dựa vào bộ nhớ sử dụng toàn bộ tập hồ sơ sản phẩm
và tập hồ sơ người dùng để thực hiện huấn luyện và dự đoán Trong phương pháp này, các sản phẩm mới được tính toán và so sánh với tất cả hồ sơ người dùng Những sản phẩm mới có mức độ tương tự cao nhất với hồ sơ người dùng sẽ được dùng để tư vấn cho người dùng này
Lọc nội dung dựa vào mô hình
Phương pháp này sử dụng tập hồ sơ sản phẩm và tập hồ sơ người dùng để xây dựng mô hình huấn luyện Mô hình dự đoán sau đó sẽ sử dụng kết quả của mô hình huấn luyện để sinh ra tư vấn cho người dùng Trong cách tiếp cận này, lọc nội dung có thể sử dụng các kỹ thuật học máy như mạng Bayes, phân cụm, cây quyết định, mạng nơron nhân tạo để tạo nên dự đoán
b Lọc cộng tác (Collaborative filtering)
Phương pháp lọc cộng tác được thực hiện thông qua thị hiếu đã được biết đến của
một nhóm người dùng để đưa các tư vấn hoặc dự đoán về thị hiếu chưa biết cho một số người dùng khác Lọc cộng tác sử dụng cơ sở dữ liệu về sở thích của người dùng đối
với các item để dự đoán các chủ đề hoặc sản phẩm thêm vào cho một người dùng mới
có cùng sở thích
Khác với lọc theo nội dung, lọc cộng tác khai thác những khía cạnh liên quan đến thói quen sở thích của người sử dụng sản phẩm để đưa ra dự đoán các sản phẩm mới cho người dùng So với lọc theo nội dung, lọc cộng tác không phải phân tích, đánh chỉ
mục cho các đặc trưng nội dung sản phẩm, không cần phải tạo profile người dùng Chính vì vậy, lọc cộng tác có thể lọc hiệu quả trên nhiều dạng sản phẩm khác nhau Cùng trên một RS, người dùng sẽ được tư vấn nhiều loại mục tin khác nhau, mặc dù các mặt hàng này có thể biểu diễn trên không gian các đặc trưng thuộc tính/nội dung khác nhau
Bài toán lọc cộng tác
Ký hiệu U= {u1, u2,…, uN} là tập gồm N người dùng, I= {i1, i2, , iM} là tập gồm
M sản phẩm, tập R={rij}, với i = 1 N, j = 1 M là ma trận đánh giá, trong đó mỗi người dùng ui∈ U đưa ra đánh giá của mình cho một số sản phẩm ij∈ I bằng một trọng số rij Giá trị rij ∈ R phản ánh mức độ ưa thích của người dùng uiđối với sản phẩm ij Giá trị
rij có thể được thu thập tường minh hoặc tiềm ẩm Giá trị rij = Ø trong trường hợp người dùng uichưa đánh giá hoặc chưa bao giờ biết đến sản phẩm ij
Để tư vấn cho người dùng ua (người dùng hiện thời), lọc cộng tác là dự đoán đánh giá của uađối với những mặt hàng mà uachưa đánh giá (raj = Ø), trên cơ sở đó tư
vấn cho ua những sản phẩm được đánh giá cao
Hình 1.1 thể hiện một ví dụ với ma trận đánh giá R = (rij) gồm N người dùng U = {u1, u2, …, uN-1, uN} và M sản phẩm I= {i1, i2,… , iM} Mỗi người dùng đều đưa ra các
Trang 20đánh giá của mình về các sản phẩm thuộc tập {Ø, 1, 2, 3, 4, 5} Giá trị rij = Ø được
hiểu là người dùng uichưa đánh giá hoặc chưa bao giờ biết đến sản phẩm ij
Hình 1.1 Minh h ọa ma trận người dùng – sản phẩm trong lọc cộng tác
Các nhóm giải thuật chủ yếu dùng trong lọc cộng tác:
- Phương pháp láng giềng (neighborhood-based hay memory-based): dựa trên dữ
liệu quá khứ của người dùng “tương tự” (similarity) – user-based approach, hoặc dựa trên dữ liệu quá khứ của những mục tin “tương tự” – item-based approach [7,8,13]
- Dựa trên mô hình (model-based): dựa trên dữ liệu quá khứ, xây dựng mô hình
dự đoán, chẳng hạn mô hình Bayesian, mô hình nhân tố tiềm ẩn (latent factor models) [8,18]
c Phương pháp kết hợp (Hybrid filtering)
Phương pháp lọc kết hợp sử dụng đồng thời nhiều kỹ thuật lọc thông tin Hệ
thống này thông thường sử dụng kỹ thuật này để khắc phục khuyết điểm của kỹ thuật khác Chẳng hạn, một RS sử dụng CF thường ít đưa ra gợi ý về những sản phẩm không được xếp hạng như sản phẩm mới, nhưng người dùng có thể tiếp cận thông tin này qua
mô tả về sản phẩm dựa trên phương pháp lọc dựa trên nội dung
d Lọc không cá nhân hóa (non-personalization)
Phương pháp lọc không cá nhân hóa không dựa trên cá nhân cụ thể để đưa ra gợi
ý, mà gợi ý dựa trên những đánh giá chung nhất cho cộng đồng người dùng, hoặc theo các nhóm hàng có thể kết hợp với nhau Do nhóm kỹ thuật này khá đơn giản, dễ cài đặt, nên thông thường tất cả các website đều tích hợp vào hệ thống, gồm cả các website thương mại điện tử, tin tức, hay giải trí… Điển hình, Amazon thông qua luật
kết hợp đã áp dụng khá thành công để tìm ra các sản phẩm hay được mua cùng nhau
và giới thiệu cho người dùng Tuy nhiên, vì không cá nhân hóa nên tất cả các người dùng đều dược gợi ý giống nhau khi chọn cùng sản phẩm
Các hệ thống RS thường tập trung vào hai nhóm kỹ thuật lọc đựa trên nội dung
và lọc cộng tác Tuy nhiên, vì lọc dựa trên nội dung gây khó khăn trong việc thu thập
Trang 21thông tin, bóc tách, mô tả đặc tính thông tin, tạo profile người dùng,… trong khi mô hình lọc cộng tác chỉ cần ba thông tin về user id, item id và feedback là có thể hoạt
động, nên phương pháp lọc cộng tác thường được sử dụng rộng rãi nhất để xây dựng
hệ thống gợi ý
1.1.5 C ác giai đoạn trong hệ thống gợi ý
Các hệ thống gợi ý thông thường được xây dựng qua ba bước tuần tự [2,8]:
Bước 1 Thu thập, trình bày, tổ chức, chọn lọc lại dữ liệu sử dụng để xây dựng hệ
thống dựa trên dữ liệu có sẵn trong hệ thống (representation) Như đã nêu ở các phần trước, dữ liệu này bao gồm user, item và feedback (ở dạng tiềm ẩn hoặc tường minh), được thể hiện dưới nhiều dạng khác nhau như véc tơ các từ khóa, hay các mối quan hệ
Bước 2 Tính độ tương quan hoặc tương tự giữa những người dùng, những mục
tin Bước này sử dụng các phương pháp Pearson, Cosine, kỹ thuật phân nhóm, …
Bước 3 Hệ thống đưa ra danh sách các mục dữ liệu đề nghị, hoặc giá trị đánh
giá/xếp hạng dự đoán của dữ liệu
1 1.6 Phương pháp đánh giá mô hình hệ thống gợi ý
Khi xây dựng một hệ thống gợi ý, người ta thường quan tâm đến tính hiệu quả
của nó Một hệ thống gợi ý tốt sẽ mang lại hiệu hiệu quả về thời gian, tiết kiệm chi phí cho người dùng, tăng sự uy tín cho hệ thống cũng như mang lại hiệu suất bán hàng vô cùng lớn trong thương mại điện tử Tuy nhiên, việc đánh giá tính hiệu quả của một hệ
thống gợi ý còn phụ thuộc rất nhiều vào mục đích xây dựng hệ thống, loại dữ liệu và điều kiện để đánh giá hệ thống (đánh giá trực tuyến (online) hay dựa vào dữ liệu có
sẵn (offline)) Đối với đánh giá offline, tập dữ liệu có sẵn được chia thành hai phần:
tập huấn luyện và tập kiểm tra; sử dụng nghi thức k-fold và hold-out Ưu điểm của đánh giá offline là được thực hiện nhanh chóng, ít tốn kém và có thể thực hiện trên tập
dữ liệu lớn; nhược điểm là chỉ dự đoán với tỉ lệ người dùng nhất định, không đo được
mức độ hài lòng thực tế, khó đánh giá độ chính xác như đánh giá online Đối với đánh giá online, hệ thống ghi nhận những tương tác của người dùng với mục tin, hỏi/yêu
cầu người dùng xếp hạng, đánh giá, từ đó có được đánh giá thực của người dùng Tuy nhiên, nhược điểm lớn của cách thức này là mất nhiều thời gian, người dùng ít khi sẵn sàng để lại đánh giá của mình
Có nhiều phương pháp đánh giá một hệ thống gợi ý, thường được phân thành 2 nhóm theo tiêu chí định tính (tính đa dạng, tính mới, tính bao phủ) và định lượng (Precision, Recall, F-Score, MSE, RMSE) [2,4]
a Tiêu chí định lượng
Đánh giá độ chính xác của gợi ý
Có thể đánh giá tính chính xác của gợi ý thông qua các phương pháp: sai số bình phương trung bình (MSE – Mean Square Error), căn của sai số bình phương trung bình (RMSE – Root Neam Square Error), hoặc sai số tuyệt đối trung bình (MAE – Mean Absolute Error)
Trang 22Tính chính xác của các dự đoán được đo trên n quan s át, trong đó pi là giá trị dự đoán đánh giá và ri là giá trị đánh giá thực tế của mục i
Đánh giá việc sử dụng các dự đoán
Các phương pháp trên chưa áp dụng để đánh giá được trong trường hợp hệ thống
gợi ý sử dụng cơ sở dữ liệu dạng nhị phân Do đó, ngoài việc đánh giá tính chính xác
của các dự đoán, một số chỉ số khác như Precision, Recall, F-score được dùng để đánh
giá việc sử dụng của các dự đoán Các chỉ số này phù hợp cho mỗi người dùng thay vì đánh giá số điểm liên quan đến từng đề nghị Đề nghị được coi là phù hợp khi người dùng chọn mục dữ liệu từ danh sách những đề nghị đã được gợi ý cho người dùng [3,4]
Precision (độ phù hợp, hay độ chính xác) là tỷ lệ giữa số lượng các gợi ý phù
hợp và tổng số các gợi ý đã được đưa ra Precision càng cao càng thể hiện tính phù
hợp của các kiến nghị Precision bằng 100% có nghĩa là tất cả các kiến nghị đều phù
hợp
Precision = 𝑆𝑆ố 𝑔𝑔ợ𝑖𝑖 ý 𝑝𝑝ℎù ℎợ𝑝𝑝
𝑇𝑇ổ𝑛𝑛𝑔𝑔 𝑠𝑠ố 𝑔𝑔ợ𝑖𝑖 ý đượ𝑐𝑐 đư𝑎𝑎 𝑟𝑟𝑎𝑎
Recall (độ phủ) được định nghĩa bởi tỉ lệ giữa số lượng các gợi ý phù hợp và số
lượng các mục dữ liệu mà người dùng đã chọn lựa (xem, nghe, mua, đọc) Recall được
sử dụng để đo khả năng hệthống tìm được những mục dữ liệu phù hợp so với những gì
mà người dùng cần
Recall = 𝑆𝑆ố 𝑔𝑔ợ𝑖𝑖 ý 𝑝𝑝ℎù ℎợ𝑝𝑝
𝑇𝑇ổ𝑛𝑛𝑔𝑔 𝑠𝑠ố 𝑠𝑠ả𝑛𝑛 𝑝𝑝ℎẩ𝑚𝑚 đượ𝑐𝑐 𝑚𝑚𝑚𝑚𝑎𝑎 𝑏𝑏ở𝑖𝑖 𝑛𝑛𝑔𝑔ườ𝑖𝑖 𝑑𝑑ù𝑛𝑛𝑔𝑔
Tuy nhiên, trong một số trường hợp thì precision và recall có giá trị tỉ lệ nghịch
với nhau Do đó, chỉ số F-score được sử dụng để đánh giá hiệu quả tổng thể của hệ
thống bằng cách kết hợp hài hòa hai chỉ số Recall và Precision
Trang 23- Tính mới: nhiều RS đưa ra gợi ý rất chính xác, nhưng nó không có hữu dụng trong một số trường hợp Chẳng hạn một siêu thị ở châu Âu sử dụng RS và đưa ra gợi
ý “sữa tươi” cho khách hàng Gợi ý này chính xác, nhưng không có ý nghĩa bởi tất cả khách hàng đều mua sữa, quen thuộc với sản phẩm này Do đó việc giới thiệu với khách hàng một mặt hàng mới mà họ chưa biết, chưa nghĩ tới, có khả năng làm họ hài lòng là một việc rất quan trọng
- Tính đa dạng: có thể phân thành hai loại: đa dạng cá nhân và đa dạng tổng thể, dùng để đo lường khả năng cung cấp một danh sách các mục dữ liệu được phân phối
từ nhiều loại khác nhau Đa dạng cá nhân được tính toán dựa trên trung bình sự khác nhau giữa tất cả các cặp mục dữ liệu đã gợi ý Đa dạng tổng thể quan tâm đến mục dữ
liệu đã gợi ý hơn là quan tâm đến người dùng Tính đa dạng rất quan trọng trong nhiều trường hợp, chẳng hạn như gợi ý địa điểm du lịch
- Độ bao phủ của các gợi ý: đo số lượng lĩnh vực mà danh sách các sản phẩm gợi
ý được tạo ra thuộc về chúng, số lĩnh vực này có bao phủ được hệ thống hay không Các dễ nhất để đo độ bao phủ là chọn một cách ngẫu nhiên cặp user hoặc item, yêu cầu
dự đoán cho mỗi cặp, và đo tỉ lệ phần trăm mà dự đoán được cung cấp
1.2 T ổng quan về thuật toán tối ưu bầy đàn PSO
1.2.1 Gi ới thiệu
Thuật toán tối ưu bầy đàn (Particle Swarm Optimization - PSO) là một thuật toán tìm kiếm ngẫu nhiên dựa trên một quần thể và một giải pháp thay thế cho vấn đề tối ưu hóa phức tạp phi tuyến tính Thuật toán PSO lần đầu tiên được Tiến sĩ Kennedy và Eberhart giới thiệu vào năm 1995 và ý tưởng cơ bản ban đầu của thuật toán được lấy
cảm hứng từ việc mô phỏng hành vi xã hội của động vật như đàn chim, đàn cá,… [10,14,16] Nó dựa trên quá trình giao tiếp theo nhóm tự nhiên để chia sẻ kiến thức cá nhân khi một nhóm chim hoặc côn trùng tìm kiếm thức ăn, hoặc di cư, … trong một không gian tìm kiếm, mặc dù tất cả các loài chim hoặc côn trùng không biết vị trí tốt
nhất Nhưng từ bản chất của hành vi xã hội, nếu bất kỳ thành viên nào có thể tìm ra
một con đường tốt để đi, các thành viên còn lại sẽ làm theo một cách nhanh chóng Phương pháp PSO đang trở nên phổ biến vì sự đơn giản trong việc thực hiện vì
nó chỉ sử dụng toán tử toán học nguyên thủy, cũng như khả năng hội tụ một cách nhanh chóng để đạt được một giải pháp tốt So với các phương pháp tối ưu hóa khác,
nó nhanh hơn, rẻ hơn và hiệu quả hơn Ngoài ra, có vài tham số có thể điều chỉnh
Trang 24trong PSO, giúp tăng khả năng mở rộng bài toán, do đó PSO là một giải pháp lý tưởng
tối ưu hóa giải quyết vấn đề tối ưu hóa PSO rất phù hợp để giải quyết các vấn đề về phi tuyến, không lồi, liên tục, rời rạc, biến nguyên
Trong PSO, mỗi thành viên được gọi là một cá thể Bắt đầu với một bầy đàn đã được khởi tạo ngẫu nhiên và di chuyển theo các hướng ngẫu nhiên trong không gian tìm kiếm, mỗi cá thể có một vận tốc ban đầu và có thể liên lạc với nhau Mỗi cá thể đi qua không gian tìm kiếm và ghi nhớ những vị trí tốt nhất trước đó của chính nó và các
cá thể lân cận của nó Các cá thể trong đàn giao tiếp các vị trí tốt với nhau cũng như tự động điều chỉnh vị trí và vận tốc của chúng đến từ vị trí tốt nhất của nhóm cá thể lân
cận Cuối cùng, các cá thể di chuyển dần về vị trí ngày càng tốt hơn trong quá trình tìm
kiếm trên toàn cục, cho đến khi di chuyển đến gần với giá trị tốt nhất của một hàm thích nghi (fitness function) thỏa yêu cầu của việc tìm kiếm
1.2.2 Các khái ni ệm cơ bản trong thuật toán PSO
a Khái niệm bầy đàn thông minh
Bầy đàn là một quần thể các sinh vật có tương tác với nhau Bầy đàn thông minh (Swarm Intelligence – SI) có thể là tự nhiên hoặc nhân tạo [17] Khái niệm này lần đầu được sử dụng trong hệ thống robot di động của Beni và Wang vào những năm 1980 [19] Sau đó, các nhà khoa học đã nghiên cứu, tìm hiểu sâu hơn về các hành vi xã hội
của các loài sinh vật như bầy chim, bầy cá, bầy ong đi tìm nguồn nước, thức ăn, di cư, đổi hướng tránh kẻ thù,… từ đó đưa ra được mô hình bầy đàn như là một giải pháp chiến lược quan trọng trong việc giải quyết các bài toán tối ưu ràng buộc và không có ràng buộc Có hai lĩnh vực nghiên cứu chính dựa trên bầy đàn thông minh: Giải thuật
tối ưu đàn kiến (Ant Colony Optimization – ACO) và Giải thuật tối ưu bầy đàn (Particle Swarm Optimization – PSO) Đối với PSO, các tác giả đã phát triển các phương pháp đơn giản nhưng hiệu quả trong vấn đề tối ưu hóa các hàm mục tiêu dạng phi tuyến liên tục và đã áp dụng thành công để giải nhiều bài toán cực trị hàm số và một số bài toán tối ưu đa mục tiêu khác
b Một số định nghĩa tối ưu bầy đàn
Mô hình bài toán tối ưu tổng quát trong PSO được nghiên cứu trong không gian n chiều Rn Dưới đây thể hiện một số định nghĩa sử dụng trong PSO [9,17,21]:
- Định nghĩa 1: Mỗi cá thể P i được mô hình như một cá thể của đàn chim Ở mỗi
thế hệ, các cá thể Pi có một vài vị trí x k trong không gian tìm kiếm R n và x k + 1 sẽ cho
biết vị trí của cá thể thứ k sau khi được cập nhật lại thế hệ i sau đó
Mỗi cá thể biểu diễn một lời giải của bài toán – được xem như một vị trí trong không gian tìm kiếm đó, tuy nhiên đây chưa phải là lời giải tối ưu Mỗi cá thể có thể được biểu diễn ở các dạng cấu trúc dữ liệu khác nhau như dạng cây, dạng chuỗi số hay dạng mã nhị phân,… tùy vào mô hình bài toán
- Định nghĩa 2: Một bầy đàn P = (P1 , P2 , , Pn ) là một tập các cá thể, hay là
một tập các lời giải của bài toán Các cá thể có thể liên lạc để thông tin về toàn bộ bầy
Trang 25đàn hoặc thông tin về một phần của đàn, thường là thông tin về cá thể tốt nhất trong đàn, thông tin này được đánh giá qua giá trị của hàm mục tiêu
Hình 1.2 Các cá th ể trong không gian lời giải (trước và sau khi đạt mục tiêu)[17]
- Định nghĩa 3: Mỗi cá thể có một vận tốc riêng dùng để tính vị trí tiếp theo của
cá thể trong không gian lời giải của bài toán Mỗi cá thể sẽ di chuyển trong không gian
bài toán để tìm ra lời giải tối ưu Vận tốc của cá thể v i k = (u1, u2 , , un ) là một vector
làm thay đổi vị trí của cá thể P i ở thế hệ k Quan hệ vị trí – vận tốc có mối quan hệ như
sau:
𝑥𝑥𝑘𝑘 + 1𝑖𝑖 = 𝑥𝑥𝑘𝑘𝑖𝑖 + 𝑣𝑣𝑘𝑘 + 1𝑖𝑖Giá trị v i k + 1 được cập nhật theo kinh nghiệm bay tốt nhất của cá thể trong quá
khứ và kinh nghiệm bay tốt nhất của cá thể tốt nhất trong đàn Nó sẽ tiến hành điều
chỉnh hướng tới vị trí mới x i k+ 1.
Vận tốc của cá thể sẽ bị ảnh hưởng bởi chính cá thể và các cá thể lân cận thông qua các công thức sau đây:
𝑣𝑣𝑖𝑖𝑘𝑘+1 = 𝑤𝑤𝑣𝑣𝑖𝑖𝑘𝑘 + 𝑐𝑐1 𝑟𝑟𝑟𝑟𝑛𝑛𝑟𝑟1�𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑖𝑖 − 𝑥𝑥𝑖𝑖𝑘𝑘� + 𝑐𝑐2 𝑟𝑟𝑟𝑟𝑛𝑛𝑟𝑟2�𝑔𝑔𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑖𝑖− 𝑥𝑥𝑖𝑖𝑘𝑘�
Hình 1.3 V ận tốc và vị trí được cập nhật trên không gian tìm kiếm [17]
- Định nghĩa 4: Lân cận (neighbourhood) xác định các nhóm cá thể ở gần nhau,
có thể tương tác với nhau, xác định cấu trúc xã hội của bầy đàn Với cùng một lân cận,
Trang 26các cá thể sẽ tương tác, giao tiếp và chia sẻ thông tin với nhau Trong PSO, các lân cận được xác định thông qua các nhãn Các lân cận có thể chồng lên nhau và một cá thể có thể thuộc nhiều lân cận Có 2 dạng lân cận trong PSO: Local (lân cận cục bộ hay lân cận cá nhân) và Global (lân cận toàn cục, hay một thực thể bầy đàn được xem là lân
cận) Cá thể trong lân cận trên sẽ lấy thông tin từ hai cá thể trong cùng lân cận có kết
nối trực tiếp tới nó Các cấu trúc liên kết theo dạng hình sao, dạng vòng, bánh xe là các cấu trúc lân cận thường được sử dụng
Hình 1.4 Các topology lân c ận hình sao, dạng vòng và bánh xe trong PSO [17]
- Định nghĩa 5: Hàm mục tiêu (objective function) hay hàm thích nghi (fitness
function) hay hàm đánh giá (evaluation function) f(x) là hàm thể hiện yêu cầu của bài toán cần đạt, dùng dùng để đánh giá các lời giải của bài toán Tùy vào bài toán khác nhau, hàm mục tiêu sẽ khác nhau Bằng cách đánh giá và so sánh giải pháp hiện tại với
giải pháp tốt nhất, các cá thể sẽ xác định bước đi tiếp theo Ba giải pháp (vị trí) tốt nhất là: tốt nhất cá nhân (pbest), tốt nhất toàn cục (gbest) và tốt nhất cục bộ (lbest)
- Định nghĩa 6: Giá trị tối ưu toàn cục x* là giá trị thỏa điều kiện:
f(x*) ≤f(x), ∀𝑥𝑥 ∈ 𝑀𝑀
Trong đó, S là không gian tìm kiếm và S = Rn
Hình 1.5 V ị trí và vận tốc của các cá thể được cập nhật trong toàn cục [17]
- Định nghĩa 7: Giá trị tối ưu cục bộ 𝑥𝑥∗𝐿𝐿 trong phạm vi L được xác định khi:
f(𝑥𝑥∗𝐿𝐿 ) ≤f(x), ∀𝑥𝑥 ∈ 𝐿𝐿 Trong đó, 𝐿𝐿 ⊆ 𝑅𝑅*
Trang 27Hình 1.6 V ị trí và vận tốc của các cá thể được cập nhật trong cục bộ [17]
1.2.3 Thu ật toán PSO
Phát bi ểu thuật toán [17]
Một bầy đàn ban đầu gồm n cá thể, mỗi cá thể là một lời giải của bài toán, nhưng
chưa đạt tối ưu Mỗi cá thể thứ i trong quần thể được biểu diễn bởi một vector x i m
chiều và một vector vận tốc v i (i = 1 n) Hàm m ục tiêu của bài toán là f: R mR đạt khi có một giá trị x* đạt cực tiểu hoặc cực đại trên không gian tìm kiếm
Gi ải thuật
Bước 1: Khởi tạo quần thể, bao gồm khởi tạo vector vị trí x i và vector vận tốc v i
cho cá thể thứ i, với i = 1, , n (cho mỗi cá thể Pi trong quần thể P(n))
Bước 2: Khởi tạo các thông tin ban đầu về vị trí tốt nhất của các cá thể và cả bầy
đàn:
• Khởi tạo vị trí tốt nhất của từng cá thể chính là vị trí khởi tạo hiện tại:
pbesti = xi
• Khởi tạo vị trí tốt nhất của cả quần thể bằng vị trí nhỏ nhất trong tất cả các vị trí
của tất cả các cá thể được khởi tạo:
gbest = min (f(xi)), với i = 1, n
Bước 3: Lặp với điều kiện lặp xác định trước (sau một số lần lặp cho trước hoặc
sau một số lần lặp mà không thu được kết quả tốt hơn)
//với mỗi cá thể
for i=1 n
//cập nhật lại chuyển động ở thế hệ tiếp theo theo chuyển động tốt nhất hiện tại
của chính cá thể và theo chuyển động của cá thể tốt nhất trọng đàn
vik+1 = w.vik + c1.rand1.(pbesti – xik) + c2.rand2.(gbest – xik)
//cập nhật lại vị trí theo vị trí hiện tại và theo hướng chuyển động mới nhất
xik+1= xik + vik+1
//cập nhật vị trí tốt nhất của mỗi cá thể bằng việc so sánh với vị trí hiện tại
Trang 28if f(xi) < f (pbesti) then pbesti = xi
//cập nhật ví trí tốt nhất của cả đàn bằng việc so sánh với cá thể tốt nhất hiện tại
if f(xi) < f (gbest) then gbest = xi
Bước 4: Kết thúc, trả về giá trị tốt nhất gbest
Trong đó:
• w là hằng số quán tính, cần giảm giá trị tuyến tính từ 1 xuống 0 theo một số lần
lặp xác định trước Giá trị w càng lớn cho phép các cá thể thăm dò càng rộng, w càng
nhỏ càng tăng cơ hội để đạt tối ưu cục bộ Do đó, hiệu suất tốt nhất có thể đạt được
bằng cách sử dụng một giá trị w lớn cho đầu vào (như 0.9), và giảm dần xuống cho đến khi đạt đến một giá trị nhỏ khác của w [5]
• c1 và c2 là hệ số gia tốc, là hằng số mô tả có bao nhiêu cá thể hướng về vị trí tốt, đặc trưng cho kinh nghiệm và tính xã hội, thường nhận giá trị khoảng từ 1.5 đến 2.5 [5]
• rand1 và rand2 là hai số ngẫu nhiên, lấy giá trị trong đoạn [0,1], được sinh ra tại
mỗi bước lặp
• pbesti là vị trí tốt nhất cho đến thời điểm hiện tại của cá thể thứ i trong quần thể
• gbest là vị trí tốt nhất của cả quần thể tại thời điểm hiện tại
Trang 29K ẾT CHƯƠNG 1
Chương 1 đã trình bày tổng quan về hệ thống gợi ý và thuật toán tối ưu bầy đàn PSO Đối với hệ thống gợi ý, chương 1 giới thiệu các thành phần chính trên hệthống
g ợi ý: người dùng, mục tin và phản hồi (tường minh và không tường minh); ứng dụng,
l ợi ích của hệ thống gợi ý; cách tiếp cận hệ thống gợi ý dựa trên hai dạng phản hồi; kỹ thu ật lọc thông tin: lọc theo nội dung, lọc cộng tác, phương pháp kết hợp và lọc không
cá nhân hóa; 3 giai đoạn trong xây dựng hệ thống gợi ý và phương pháp đánh giá hệ
th ống theo tiêu chí định lượng và định tính Chương 1 đồng thời trình bày về thuật toán PSO: các khái ni ệm, định nghĩa về cá thể, bầy đàn, vận tốc, hàm mục tiêu… và
gi ải thuật PSO Từ cơ sở trên sẽ làm nền tảng để nghiên cứu về việc ứng dụng thuật toán PSO vào h ệ thống gợi ý trong chương kế tiếp
Trang 30CHƯƠNG 2 ỨNG DỤNG THUẬT TOÁN TỐI ƯU BẦY ĐÀN VÀO
H Ệ THỐNG GỢI Ý
Chương 2 trình bày về các phương pháp lọc thông tin trong hệ thống gợi ý: lọc
c ộng tác sử dụng mô hình láng giềng; sử dụng kỹ thuật phân cụm Spectral và phương pháp l ọc cộng tác sử dụng PSO Để đạt hiệu quả cao trong việc gợi ý cho dữ liệu dạng
nh ị phân, chương 2 trình bày cải tiến về cách ước lượng giá trị dự đoán, tối ưu bộ
tr ọng số đại diện bằng thuật toán tối ưu bầy đàn nhằm xây dựng các cụm người dùng
và m ục tin hiệu quả, nâng cao chất lượng gợi ý
2.1 Phương pháp lọc cộng tác sử dụng mô hình láng giềng
Như đã đề cập ở phần trước, hệ thống lọc cộng tác khai thác thông tin về sở thích
của các người dùng đối với các mục tin tương tự trong quá khứ Sự thành công của hệ
thống phụ thuộc lớn nhất vào kỹ thuật lựa chọn tập hợp những người dùng tương đồng
với nhau Giả sử nếu hai người dùng u và u’ đánh giá cho n sản phẩm tương tự nhau, hoặc có hành vi tương tự nhau trên sản phẩm như nghe lặp lại một bài hát, mua một sản phẩm… 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ệ thống lọc cộng tác, tập hợp U = {u1, u2, , uN} biểu diễn cho tập người dùng và tập hợp các mục tin I = {i1, i2, , iM} Xếp hạng của người dùng cho các mục tin được lưu trữ trong ma trận xếp hạng R ở dạng tường minh Tuân thủ đúng quy trình, có ba bước cần thiết để xây dựng hệ thống gợi ý lọc cộng tác:
Thu th ập dữ liệu để tạo hồ sơ người dùng: Việc xây dựng mô hình người dùng
thông thường chỉ phụ thuộc vào xếp hạng tường minh của người dùng Tuy nhiên, trong các trường hợp người dùng chỉ đánh giá cho những mục tin được yêu thích quá
phổ biến thì không thể đánh giá các người dùng này tương tự nhau Lúc này, những
yếu tố khác như bối cảnh, thông tin về tuổi, giới tính, nghề nghiệp… được thu thập thêm để phân loại người dùng rõ ràng hơn
Thi ết lập tập láng giềng: Ở bước này, những láng giềng gần nhất là một nhóm
người dùng tương đồng với nhau Thông thường, có hai cách tiếp cận của lọc cộng tác theo mô hình K láng giềng: dựa trên người dùng và dựa trên sản phẩm Kích thước của
tập láng giềng có thể được thiết lập bằng cách chọn K người dùng hoặc K mục tin Các
độ đo tương tự thường được đề cập là Cosin, Pearson, …
D ự đoán và khuyến nghị: Khi tìm ra láng giềng K, có thể kết hợp dựa vào xếp
hạng của các láng giềng để tính giá trị dự doán cho các mục thông tin mà người dùng chưa có đánh giá Sau khi dự đoán các đánh giá, hệ thống sẽ xác định top-N mục tin tiêu biểu với giá trị dự đoán cao nhất và gợi ý cho người dùng Giá trị dự đoán 𝑟𝑟̂𝑚𝑚,𝑖𝑖 cho
mục tin i của người dùng u sẽ được tính:
Trang 31𝑟𝑟̂𝑚𝑚,𝑖𝑖 = 𝑟𝑟̅𝑚𝑚+ ∑𝑚𝑚′ ∈𝐾𝐾 𝑢𝑢𝑝𝑝𝑖𝑖𝑠𝑠(𝑢𝑢, 𝑢𝑢′) �𝑟𝑟𝑚𝑚′ ,𝑖𝑖 − 𝑟𝑟̅𝑚𝑚′�
∑𝑚𝑚′ ∈𝐾𝐾𝑢𝑢|𝑝𝑝𝑖𝑖𝑠𝑠(𝑢𝑢, 𝑢𝑢′)|
Giải thuật User_KNN và Item_KNNcó thể được biểu diễn như sau:
1: procedure USERKNN-CF (𝒓𝒓�𝒖𝒖,r,D train)
6: for i=1 to K do 7: Ki ← k // Các item k gần nhất của i
8: end for
9: for u = 1 to N do
10: Tính 𝒓𝒓�𝒖𝒖,𝒊𝒊11: end for 12: end procedure
Hình 2.1 Gi ải thuật User_KNN và Item_KNN
Nhìn chung User_KNN và Item_KNN không yêu cầu nhiều về tính toán, có thể đưa trực tiếp dữ liệu mới vào bảng dữ liệu, do đó có thể đưa ra tư vấn nhanh chóng, chính xác cao cho một lượng lớn người dùng Hệ thống dễ dàng thu thập dữ liệu, có
thể đưa ra nhiều gợi ý bất ngờ phù hợp với người dùng, và đặc biệt hiệu quả cao trong các hệ trực tuyến – nơi dữ liệu mới luôn được cập nhật Tuy nhiên, tồn tại một số vấn
đề trong một hệ thống lọc cộng tác truyền thống: vấn đề dữ liệu thưa, nhiều người dùng mới, mục tin mới; các mục tin phổ biến không thể dùng cho đánh giá chính xác
về sở thích người dùng, tất cả người dùng và mục tin đều có độ quan trọng đồng đều
với nhau, do đó hiệu quả gợi ý chưa cao
2.2 Phương pháp lọc cộng tác sử dụng kỹ thuật phân cụm Spectral
Bản chất của phương pháp này là ứng dụng kỹ thuật phân cụm Spectral vào trong
lọc cộng tác vừa dựa trên user và item, trong đó các đánh giá, xếp hạng chưa biết được suy ra từ các xếp hạng tường minh của nhóm user hoặc item tương tự
Kỹ thuật phân cụm Spectral đặc trưng ở việc xử lý phân nhóm tương tự như phân chia đồ thị mà không cần sử dụng các giả định về hình thức của các cụm Kỹ thuật này cho phép sử dụng các giá trị đặc trưng của ma trận tương tự với dữ liệu lớn để thực
hiện giảm chiều, sau đó sẽ chia đồ thị thành các thành phần có kích thước nhỏ hơn, kết
nối dữ liệu đến một không gian ít chiều hơn sau khi được tách ra để có thể dễ dàng xử
lý tiếp Nhóm chỉ sử dụng các vector riêng của ma trận được lấy từ dữ liệu có sẵn, do
đó dễ dàng để áp dụng thực hiện
Trang 32 K ỹ thuật phân cụm Spectral được mô tả như sau [6]:
Đầu vào: một tập hợp n điểm (có thể là n người hoặc n mục tin) kí hiệuX=
Trong đó, 𝑝𝑝𝑖𝑖𝑖𝑖 là độ tương đồng của đối tượng i, j; 𝑥𝑥���⃗, 𝑥𝑥𝚤𝚤 ���⃗ là các vector tương ứng 𝚥𝚥
với hàng thứ i, j trong ma trận R, đại diện cho đối tượng i, j;𝜎𝜎 là tham số điều chỉnh độ
lớn của tập láng giềng Giá trị 𝜎𝜎 nhỏ sẽ thu được cấu hình láng giềng tốt, tuy nhiên nếu
𝜎𝜎 quá nhỏ thì các điểm sẽ bị phân tách xa nhau Giá trị thích hợp nhất của 𝜎𝜎 được tính:
𝐿𝐿 = 𝐷𝐷−12(𝐷𝐷 − 𝑀𝑀)𝐷𝐷−12Tính k giá trị vector đầu tiên 𝑣𝑣1, 𝑣𝑣2, … , 𝑣𝑣𝑘𝑘 của bài toán tổng quát:
𝐿𝐿𝑣𝑣 = 𝜆𝜆𝐷𝐷𝑣𝑣Xây dựng ma trận với 𝑉𝑉 ∈ 𝑅𝑅𝑛𝑛𝑘𝑘 chứa các vector 𝑣𝑣1, 𝑣𝑣2, … , 𝑣𝑣𝑘𝑘 tương ứng với các
Trang 33 Tư tưởng mô hình hệ thống phân cụm lọc cộng tác:
Hình 2.2 Mô hình h ệ thống phân cụm lọc cộng tác
(1) T ính độ tương tự giữa các cặp người dùng (hoặc cặp mục tin):
Ma trận tương tự giữa các cặp người dùng (mục tin) được tính:
𝑝𝑝𝑖𝑖𝑖𝑖 = 𝑝𝑝𝑥𝑥𝑝𝑝 �−�𝑥𝑥���⃗−𝑥𝑥 𝚤𝚤 ����⃗�𝚥𝚥 2
2𝜎𝜎 2 � với i, j = 1, …, n
Tiếp tục các bước trong mô tả phân cụm theo Spectral ở phần 2.2
(2) Ti ếp đến áp dụng phân nhóm dựa trên người dùng:
Tính toán giá trị đánh giá chưa biết 𝑟𝑟𝑚𝑚𝑖𝑖𝑈𝑈 của một mục tin i đối với người dùng u
bằng công thức:
𝑟𝑟𝑚𝑚𝑖𝑖𝑈𝑈 = 𝑘𝑘𝑐𝑐� 𝑝𝑝𝑖𝑖𝑠𝑠𝑈𝑈(𝑢𝑢, 𝑙𝑙) × 𝑟𝑟𝑅𝑅𝑖𝑖
𝑅𝑅
Đúng Sai
Trang 34Trong đó: 𝑘𝑘𝑐𝑐 là giá trị chuẩn hóa, được tính: 𝑘𝑘𝑐𝑐 =∑ �𝑠𝑠𝑖𝑖𝑚𝑚1𝑈𝑈(𝑚𝑚,𝑅𝑅)�
𝑙𝑙 ; với 𝑝𝑝𝑖𝑖𝑠𝑠𝑈𝑈(𝑢𝑢, 𝑙𝑙) là
độ tương tự giữa người dùng u và người dùng tương tự l, và l là chỉ số của những người dùng tương tự với người dùng u đã đánh giá cho mục tin i
(3) Ti ếp đến áp dụng phân nhóm dựa trên mục tin:
Tính giá trị đánh giá chưa biết 𝑟𝑟𝑚𝑚𝑖𝑖𝐼𝐼 của một mục tin i cho một người dùng u bằng công thức:
𝑟𝑟𝑚𝑚𝑖𝑖𝐼𝐼 = 𝑘𝑘𝑔𝑔� 𝑝𝑝𝑖𝑖𝑠𝑠𝐼𝐼(𝑖𝑖, 𝑙𝑙) × 𝑟𝑟𝑚𝑚𝑅𝑅
𝑅𝑅Trong đó: 𝑘𝑘𝑔𝑔 =∑ �𝑠𝑠𝑖𝑖𝑚𝑚1𝐼𝐼(𝑖𝑖,𝑘𝑘)�
𝑙𝑙 ; với 𝑝𝑝𝑖𝑖𝑠𝑠𝑈𝑈(𝑖𝑖, 𝑙𝑙) là độ tương tự giữa mục tin j và mục tin tương tự k, và k là chỉ mục của những mục tin tương tự với mục tin j mà đã được đánh giá bởi người dùng i
(4) D ự đoán các giá trị đánh giá chưa biết:
Kết quả dự đoán của người dùng ứng với sản phẩm i được tổng hợp thông qua𝑟𝑟𝑚𝑚𝑖𝑖𝑈𝑈
và 𝑟𝑟𝑚𝑚𝑖𝑖𝐼𝐼 bằng công thức:
𝑟𝑟𝑚𝑚𝑖𝑖 =∝ 𝑟𝑟𝑚𝑚𝑖𝑖𝐼𝐼 + (1−∝)𝑟𝑟𝑚𝑚𝑖𝑖𝑈𝑈Trong đó, ∝∈ [0,1]
Nhờ việc sử dụng kỹ thuật phân cụm Spectral lặp lại trong cả hai hướng dựa trên người dùng và dựa trên mục tin để đánh giá giá trị chưa biết, nên hệ thống phân cụm
lọc cộng tác đã thành công trong giải quyếtđược vấn đề dữ liệu thưa, người dùng mới Tuy nhiên các mục tin và người dùng vẫn mang giá trị quan trọng ngang bằng nhau, có
mức độ ảnh hưởng như nhau khi tính toán độ tương tự, do đó chưa phản ánh được mức
độ quan trọng của các đặc trưng khác nhau
2.3 Phương pháp lọc cộng tác sử dụng PSO
Ở phương pháp trước, các người dùng và các mục tin có mức quan trọng ngang
bằng nhau, điều này bất lợi trong trường hợp người dùng chỉ cho đánh giá về những
mục tin được yêu thích quá phổ biến, gây ra khó khăn khi gợi ý cho người dùng về
những mục tin mang tính cá nhân hóa cao hơn, chất lượng, phù hợp với sở thích của người dùng hơn Để khắc phục sự bất lợi chúng ta sử dụng thuật toán tối ưu bầy đàn để ước tính trọng số cho người dùng và mục tin Trọng số này được dùng để cải tiến công
thức phân cụm và mô hình dự đoán
Phương pháp đề xuất xác định một bộ trọng số tối ưu 𝑤𝑤𝑈𝑈 (đại diện cho độ quan
trọng của người dùng) và 𝑤𝑤𝐼𝐼 (đại diện cho độ quan trọng của mục tin)
Cho {𝑤𝑤1𝐼𝐼, 𝑤𝑤2𝐼𝐼, … , 𝑤𝑤𝑚𝑚𝐼𝐼 ; 𝑤𝑤1𝑈𝑈, 𝑤𝑤2𝑈𝑈, … , 𝑤𝑤𝑛𝑛𝑈𝑈} là tập phương án, thể hiện trọng số của các
cá thể trong thuật toán tối ưu bầy đàn Trong đó, 𝑤𝑤𝑖𝑖𝐼𝐼 với 𝑗𝑗 = 1 𝑠𝑠 và 𝑤𝑤𝑖𝑖𝑈𝑈 với 𝑖𝑖 = 1 𝑛𝑛,
chỉ nhận giá trị trong đoạn [0,1], làm đại diện cho trọng số của các mục tin và người dùng Dữ liệu ban đầu là một tập hợp các cá thể được khởi tạo ngẫu nhiên trong không gian tìm kiếm Cấu hình tham số của thuật toán tối ưu bầy đàn được cung cấp theo
Trang 35điều kiện dữ liệu thực tế
Trong mô hình dự đoán các trọng số w chính là các cá thể của thuật toán tối ưu
bầy đàn Các trọng số được sử dụng để cập nhật độ tương tự theo phương pháp cosine:
Mô hình d ự đoán được xây dựng như sau:
Đầu vào: Bộ trọng số 𝑤𝑤𝑈𝑈, 𝑤𝑤𝐼𝐼
Đầu ra: Giá trị mục tiêu của mỗi cá thể
(1) Tính độ tương tự giữa các cặp người dùng (hoặc cặp mục tin):
Khi xây dựng ma trận tương tự cho các người dùng, cả hai yếu tố: giá trị xếp
hạng và trọng số của mục tin đều được sử dụng để ước tính Tương tự, khi xây dựng
ma trận tương tự giữa các mục tin, cả hai yếu tố xếp hạng và trọng số của người dùng đều được sử dụng Công thức tính toán như sau:
𝑝𝑝𝑖𝑖𝑖𝑖 = 𝑝𝑝𝑥𝑥𝑝𝑝 �−�𝑤𝑤 𝑖𝑖2𝜎𝜎−𝑤𝑤��⃗𝑥𝑥⃗2 𝑗𝑗�2�
Tiếp tục các bước trong mô tả phân cụm theo Spectral ở phần 2.2
Ở bước này, bằng việc kết hợp sử dụng cả giá trị xếp hạng và trọng số của người dùng/mục tin nên các cụm người dùng và cụm mục tin thu được chính xác và đáng tin hơn
(2) Ti ếp đến áp dụng phân nhóm dựa trên người dùng:
Trong bước này, giá trị xếp hạng dự đoán 𝑟𝑟𝑚𝑚𝑖𝑖𝑈𝑈 trong ma trận sở thích của người dùng – mục tin bằng trung bình trọng số của các giá trị xếp hạng 𝑟𝑟𝑚𝑚𝑖𝑖 của tất cả những
người dùng l trong cùng cụm của người dùng u:
𝑟𝑟𝑚𝑚𝑖𝑖𝑈𝑈 = 𝑘𝑘𝑐𝑐� 𝑤𝑤𝑝𝑝𝑖𝑖𝑠𝑠𝑈𝑈(𝑢𝑢, 𝑙𝑙) × 𝑟𝑟𝑅𝑅𝑖𝑖
𝑅𝑅
Với 𝑘𝑘𝑐𝑐 =∑ 𝑤𝑤𝑠𝑠𝑖𝑖𝑚𝑚1𝑈𝑈(𝑚𝑚,𝑅𝑅)
𝑙𝑙 là giá trị chuẩn hóa và 𝑤𝑤𝑝𝑝𝑖𝑖𝑠𝑠𝑈𝑈(𝑢𝑢, 𝑙𝑙) là trọng số tương tự
giữa người dùng hiện tại u và người dùng tương tự l (trong cùng cụm với i)
(3) Ti ếp đến áp dụng phân nhóm dựa trên mục tin:
Giá trị xếp hạng dự đoán 𝑟𝑟𝑚𝑚𝑖𝑖𝐼𝐼 được kết hợp từ những xếp hạng của người dùng trước đã đánh giá cho các mục tin trong cùng cụm với mục tin i:
𝑟𝑟𝑚𝑚𝑖𝑖𝐼𝐼 = 𝑘𝑘𝑔𝑔� 𝑤𝑤𝑝𝑝𝑖𝑖𝑠𝑠𝐼𝐼(𝑖𝑖, 𝑘𝑘) × 𝑟𝑟𝑚𝑚𝑘𝑘
𝑘𝑘
Với 𝑘𝑘𝑐𝑐 =∑ 𝑤𝑤𝑠𝑠𝑖𝑖𝑚𝑚1 𝐼𝐼(𝑖𝑖,𝑘𝑘)
𝑘𝑘 là giá trị chuẩn hóa và 𝑤𝑤𝑝𝑝𝑖𝑖𝑠𝑠𝑈𝑈(𝑖𝑖, 𝑘𝑘) là trọng số tương tự
giữa mục tin hiện tại i và mục tin tương tự k (trong cùng cụm với i)
(4) D ự đoán các giá trị đánh giá chưa biết:
Giá trị xếp hạng dự đoán 𝑟𝑟𝑚𝑚𝑖𝑖 được tính:
𝑟𝑟𝑚𝑚𝑖𝑖 = ∝ 𝑟𝑟𝑚𝑚𝑖𝑖𝐼𝐼 + (1−∝)𝑟𝑟𝑚𝑚𝑖𝑖𝑈𝑈
Trang 36(5) Ước lượng giá trị mục tiêu cho mỗi cá thể trong tối ưu bầy đàn:
Giá trị mục tiêu của mỗi cá thể trong thuật toán tối ưu bầy đàn là giá trị dự đoán chính xác thu được từ mô hình dự đoán sử dụng tập trọng số được mã hóa bởi cá thể này Giá trị này được tính theo công thức trung bình lỗi tuyệt đối (Mean Absolute Error – MAE):
MAE = 1
𝑚𝑚∑ |𝑟𝑟𝑚𝑚 𝑖𝑖′− 𝑟𝑟𝑖𝑖|𝑖𝑖=1
Với |𝑟𝑟𝑖𝑖′− 𝑟𝑟𝑖𝑖| là lỗi tuyệt đối giữa mỗi xếp hạng dự đoán 𝑟𝑟𝑖𝑖′ và xếp hạng gốc 𝑟𝑟𝑖𝑖, m
là số các xếp hạng trong một tập ước lượng
Giá trị mục tiêu biểu thị khoảng cách giữa vị trí hiện tại của cá thể và vị trí tối
ưu Trong mỗi lần lặp, khoảng cách sẽ được giảm xuống Theo đó, quy trình này trở thành tiến trình cực tiểu hóa trong mỗi cá thể để cố gắng giảm bớt khoảng cách hiện
tại của cá thể tới giải pháp tối ưu Do đó, nếu giá trị mục tiêu bằng 0 cho mỗi cá thể, thì vị trí hiện tại của cá thể chính là vị trí tối ưu
Tối ưu trọng số và ngoại suy giá trị xếp hạng
Đây là phần quan trọng nhất trong thuật toán lọc cộng tác tối ưu trọng số, được
thực hiện lần lượt qua các bước sau:
Bước 1 Tính giá trị chưa biết rui trong ma trận người dùng – mục tin theo hai hướng: dựa trên người dùng và dựa trên mục tin:
𝑟𝑟𝑚𝑚𝑖𝑖 = 𝑘𝑘𝑐𝑐� 𝑝𝑝𝑖𝑖𝑠𝑠𝑈𝑈(𝑢𝑢, 𝑟𝑟) × 𝑟𝑟𝑎𝑎𝑖𝑖 + 𝑘𝑘𝑔𝑔� 𝑝𝑝𝑖𝑖𝑠𝑠𝐼𝐼(𝑖𝑖, 𝑝𝑝) × 𝑟𝑟𝑚𝑚𝑏𝑏
𝑏𝑏 𝑎𝑎
Bước 2 Cấu hình các tham số cho thuật toán tối ưu bầy đàn Bước này xác định
kích thước quần thể (số cá thể), số bước lặp tối đa (số thế hệ của quần thể), các hệ số gia tốc cục bộ và toàn cục, hệ số quán tính khởi tạo và kết thúc
Bước 3 Với mỗi cá thể, tiến hành:
- Áp dụng mô hình dự đoán xây dựng ở trên để ước lượng các xếp hạng chưa biết
và tính giá trị mục tiêu cho cá thể này
- Cập nhật vị trí tốt nhất (pbest) theo tiến trình thuật toán tối ưu bầy đàn ở phần (1.2.3)
Bước 4 Cập nhật vị trí tốt nhất toàn cục (gbest) trong quần thể tiến trình thuật
toán tối ưu bầy đàn ở phần (1.2.3)
Bước 5 Cập nhật vị trí và tốc độ của mỗi cá thể theo công thức ở phần (1.2.2) Bước 6 Thiết lập ma trận đánh giá R sử dụng vị trí tốt nhất của quần thể trong
mô hình dự đoán và sử dụng ma trận vừa thiết lập làm input mới cho bước tiếp theo
Bước 7 Nếu điều kiện dừng (đạt đến số bước lặp, hoặc đạt được lỗi dự đoán)
chưa đúng, quay lại thực hiện bước 3, nếu đúng thực hiện bước 8
Bước 8 Xác định được các trọng số tối ưu và ma trận đánh giá cuối cùng
Hệ thống lọc cộng tác tối ưu trọng số được xây dựng dựa trên hệ thống phân cụm
lọc cộng tác, do đó nó giải quyết tốt các vấn đề về người dùng mới, dữ liệu thưa Đồng
thời, bằng việc sử dụng bộ trọng số trong việc tính toán mức độ tương đồng giữa các
Trang 37người dùng hoặc các mục tin đã giúp cho mô hình dự đoán trở nên chính xác hơn
Việc kết hợp này tạo ra một tập láng giếng tốt nhất có thể Mô hình dự đoán được lặp
đi lặp lại để ngoại suy ra giá trị chưa biết trong ma trận R, kết quả ngoại suy bước trước được sử dụng làm đầu vào của quá trình ngoại suy bước sau, do đó kết quả luôn được cải thiện tích cực cho đến khi nhận được ma trận tối ưu
Sơ đồ thực hiện trong phương pháp lọc cộng tác tối ưu trọng số:
Hình 2.3 Mô hình l ọc cộng tác tối ưu trọng số
Trang 38Tuy nhiên, giống như hệ thống phân cụm lọc cộng tác truyền thống, thuật toán này không áp dụng được trong trường hợp ma trận giá trị dạng nhị phân Do đó, những bài toán gợi ý địa điểm du lịch, công việc, bài báo, hẹn hò… với dữ liệu thích/không thích, lựa chọn/không lựa chọn không thể giải quyết được
2.4 C ải tiến phương pháp phân cụm lọc cộng tác sử dụng kỹ thuật Spectral
Trong ma trận nhị phân, không thể ước lượng trực tiếp giá trị chưa biết trong ma
trận Cho ma trận đánh giá R gồm m người dùng và n mục tin, mỗi người dùng là một vector hàng, mỗi mục tin là một vector cột của ma trận Giá trị đánh giá bằng 1 khi người dùng lựa chọn mục tin Thuật toán này đề xuất công thức để tính mức độ quan tâm của người dùng i đối với mục tin j, từ đó lựa chọn ra những cặp người dùng – mục tin có mức độ quan tâm lớn hơn một ngưỡng cho trước để ước lượng những đánh giá chưa biết trong ma trận
Thu ật toán cải tiến:
(1) Tính độ tương tự giữa các cặp người dùng (hoặc cặp mục tin):
Thực hiện giống như Bước 1, phần 2.2
(2) Áp d ụng phân nhóm dựa trên người dùng:
Tính toán ước lượng mức độ quan tâm 𝑥𝑥𝑖𝑖𝑖𝑖𝑈𝑈 của người dùng i đối với mục tin bằng công thức:
𝑥𝑥𝑖𝑖𝑖𝑖𝑈𝑈 = 𝑁𝑁1
𝑈𝑈� 𝑝𝑝𝑖𝑖𝑠𝑠𝑈𝑈(𝑖𝑖, 𝑙𝑙) 𝑅𝑅
Trong đó, l là chỉ số của các người dùng trong cùng cụm với người dùng i đã lựa
chọn mục tin j; 𝑝𝑝𝑖𝑖𝑠𝑠𝑈𝑈(𝑖𝑖, 𝑙𝑙) là độ tương đồng giữa cặp người dùng i, l; 𝑁𝑁𝑚𝑚 là tổng số người dùng trong cùng cụm với người dùng i đã lựa chọn mục tin j
(3) Áp d ụng phân nhóm dựa trên mục tin:
Tính ước lượng mức độ quan tâm 𝑥𝑥𝑖𝑖𝑖𝑖𝐼𝐼 của người dùng i đối với mục tin j bằng công thức:
𝑥𝑥𝑖𝑖𝑖𝑖𝐼𝐼 = 𝑁𝑁1
𝐼𝐼� 𝑝𝑝𝑖𝑖𝑠𝑠𝐼𝐼(𝑘𝑘, 𝑗𝑗) 𝑅𝑅
Trong đó, k là chỉ số của các mục tin trong cùng cụm với mục tin j đã được lựa
chọn bởi người dùng i; 𝑝𝑝𝑖𝑖𝑠𝑠𝐼𝐼(𝑘𝑘, 𝑗𝑗) là độ tương đồng giữa cặp công việc k và j; 𝑁𝑁𝐼𝐼 là
tổng số mục tin cùng trong cụm với mục tin j đã được lựa chọn bởi người dùng i
(4) D ự đoán các giá trị đánh giá chưa biết:
Mức độ quan tâm của người dùng i đến mục tin j được kết hợp từ giá trị 𝑥𝑥𝑖𝑖𝑖𝑖𝑈𝑈 và
𝑥𝑥𝑖𝑖𝑖𝑖𝐼𝐼 xác định trong quá trình phân cụm dựa trên người dùng và phân cụm dựa trên mục tin như sau:
𝑥𝑥𝑖𝑖𝑖𝑖 = 𝑥𝑥𝑖𝑖𝑖𝑖𝑈𝑈+ 𝑥𝑥𝑖𝑖𝑖𝑖𝐼𝐼
(5) Ước lượng các giá trị chưa biết:
Trang 39Việc sử dụng một ngưỡng giá trị xác định để ước lượng giá trị chưa biết đã giúp
cải tiến phương pháp phân cụm lọc cộng tác sử dụng kỹ thuật spectral, áp dụng trong
ma trận nhị phân Tuy nhiên, mức độ quan trọng, ưu tiên của người dùng và mục tin trong hệ thống phân cụm lọc cộng tác cải tiến vẫn chưa được tính toán Ý tưởng kết
hợp sử dụng một ngưỡng giá trị cùng với việc xây dựng một bộ trọng số tối ưu bằng phương pháp tối ưu bầy đàn được đưa ra ở phần kế tiếp sẽ giải quyết được vấn đề tồn
tại trên
2.5 C ải tiến phương pháp gợi ý dựa trên lọc cộng tác tối ưu trọng số bằng PSO
Trong phương pháp cải tiến này, thuật toán tối ưu bầy đàn giúp xác định bộ trọng
số tối ưu đại diện cho mức độ quan trọng của các người dùng và mục tin trong việc tính toán độ tương đồng Trong bộ trọng số này bổ sung hai trọng số thể hiện độ ưu tiên của kỹ thuật gợi ý dựa trên người dùng và mục tin, đồng thời điều chỉnh cách thức ước lượng giá trị chưa biết trong ma trận R nhằm phù hợp với ma trận nhị phân
{𝑤𝑤1𝐼𝐼, 𝑤𝑤2𝐼𝐼, … , 𝑤𝑤𝑚𝑚𝐼𝐼 ; 𝑤𝑤1𝑈𝑈, 𝑤𝑤2𝑈𝑈, … , 𝑤𝑤𝑛𝑛𝑈𝑈, 𝑤𝑤𝐼𝐼𝐼𝐼, 𝑤𝑤𝑈𝑈𝐼𝐼}, trong đó 𝑤𝑤𝑖𝑖𝐼𝐼 với 𝑗𝑗 = 1 𝑠𝑠 đại diện cho
trọng số của mục tin; 𝑤𝑤𝑖𝑖𝑈𝑈 với 𝑖𝑖 = 1 𝑛𝑛 đại diện cho trọng số của người dùng; 𝑤𝑤𝐼𝐼𝐼𝐼 và
𝑤𝑤𝑈𝑈𝐼𝐼 lần lượt là trọng số thể hiện mức độ ưu tiên của kỹ thuật gợi ý dựa trên phân cụm theo mục tin và theo người dùng, với 0 ≤ 𝑤𝑤 ≤ 1
Tương tự như hệ thống lọc cộng tác tối ưu trọng số, quần thể được khởi tạo với các giá trị ngẫu nhiên cùng các tham số, được xem là các nghiệm ứng cử của bài toán
Mô hình dự đoán và hàm mục tiêu trong hệ thống lọc cộng tác tối ưu trọng
số cải tiến:
(1) Tính độ tương tự giữa các cặp người dùng (hoặc cặp mục tin):
Kết hợp cả giá trị đánh giá và trọng số của người dùng (hoặc mục tin) để tính toán ma trận độ tương tự giữa các người dùng (hoặc giữa các mục tin) theo công thức:
Trang 40𝑝𝑝𝑖𝑖𝑖𝑖 = 𝑝𝑝𝑥𝑥𝑝𝑝 �−�𝑤𝑤��⃗𝑥𝑥⃗𝑖𝑖− 𝑤𝑤��⃗𝑥𝑥⃗𝑖𝑖�
2
Trong đó: 𝑤𝑤𝑥𝑥�������⃗ = (𝑤𝑤𝚤𝚤 1× 𝑥𝑥𝑖𝑖1, 𝑤𝑤2× 𝑥𝑥𝑖𝑖2, … , 𝑤𝑤𝑛𝑛× 𝑥𝑥𝑖𝑖𝑛𝑛)
Tiếp tục các bước trong mô tả phân cụm theo Spectral ở phần 2.2
(2) Áp d ụng phân nhóm dựa trên người dùng:
Mức độ quan tâm của người dùng i đối với mục tin j𝑝𝑝𝑖𝑖𝑖𝑖𝑈𝑈 theo phân cụm dựa trên người dùng được ước lượng:
𝑝𝑝𝑖𝑖𝑖𝑖𝑈𝑈 =𝑁𝑁1
𝑈𝑈� 𝑤𝑤𝑝𝑝𝑖𝑖𝑠𝑠𝑈𝑈(𝑖𝑖, 𝑙𝑙)𝑅𝑅
Với l là chỉ sổ của các người dùng cùng cụm với người dùng i đã quan tâm đến
mục tin j; 𝑤𝑤𝑝𝑝𝑖𝑖𝑠𝑠𝑈𝑈(𝑖𝑖, 𝑙𝑙) là độ tương đồng giữa cặp người dùng i và l; 𝑁𝑁𝑈𝑈 là tổng số người dùng trong cùng cụm với người dùng i đã quan tâm đến mục tin j
(3) Áp d ụng phân nhóm dựa trên mục tin:
Mức độ quan tâm của người dùng i đối với mục tin j 𝑝𝑝𝑖𝑖𝑖𝑖𝐼𝐼 theo phân cụm dựa trên
mục tin được ước lượng:
𝑝𝑝𝑖𝑖𝑖𝑖𝐼𝐼 = 𝑁𝑁𝐼𝐼� 𝑤𝑤𝑝𝑝𝑖𝑖𝑠𝑠𝐼𝐼(𝑘𝑘, 𝑗𝑗)
𝑘𝑘
Với k là chỉ số của các mục tin cùng cụm với mục tin j đã được quan tâm bởi
người dùng i; 𝑤𝑤𝑝𝑝𝑖𝑖𝑠𝑠𝐼𝐼(𝑘𝑘, 𝑗𝑗) là độ tương đồng giữa cặp mục tin k và j; 𝑁𝑁𝐼𝐼 là tổng số mục tin trong cùng cụm với mục tin j đã đã được quan tâm bởi người dùng i
(4) D ự đoán các giá trị đánh giá chưa biết:
Mức độ quan tâm 𝑝𝑝𝑖𝑖𝑖𝑖 của người dùng i đối với mục tin j được tính kết hợp:
𝑝𝑝𝑖𝑖𝑖𝑖 = 𝑤𝑤𝐼𝐼𝐼𝐼 × 𝑝𝑝𝑖𝑖𝑖𝑖𝐼𝐼 + 𝑤𝑤𝑈𝑈𝐼𝐼 × 𝑝𝑝𝑖𝑖𝑖𝑖𝑈𝑈
Với 0 ≤ 𝑤𝑤𝐼𝐼𝐼𝐼, 𝑤𝑤𝑈𝑈𝐼𝐼 ≤ 1 thu được trong quá trình thực nghiệm khi áp dụng thuật toán tối ưu bầy đàn
(5) Ước lượng các giá trị chưa biết:
Mức độ quan tâm của người dùng đối với mục tin:
(6) Tính giá tr ị hàm mục tiêu của mỗi cá thể trong tối ưu bầy đàn:
Giá trị mục tiêu của mỗi cá thể trong tối ưu bầy đàn sẽ được tính dựa trên mức độ
hội tụ của ma trận ước lượng 𝑅𝑅(𝑘𝑘) tại bước thứ k Ma trận 𝑅𝑅(𝑘𝑘) và 𝑅𝑅(𝑘𝑘−1) sai khác càng
ít thì giá trị phù hợp càng nhỏ Gọi 𝑐𝑐𝑟𝑟𝑟𝑟𝑟𝑟(𝑅𝑅(𝑘𝑘)) là số phần tử 𝑟𝑟𝑖𝑖𝑖𝑖 = 1 trong ma trận
𝑅𝑅(𝑘𝑘), giá trị phù hợp 𝑓𝑓𝑖𝑖𝑝𝑝𝑛𝑛𝑝𝑝𝑝𝑝𝑝𝑝 của mỗi cá thể được tính: