Hệ thống sử dụng các thuật toán không có ngữ cảnh và có ngữ cảnh giúp phân tích và tạo ra các khuyến nghị để người dùng có thể thử nghiệm độ tối ưu của thuật toán và áp dụng các thuật to
Trang 2LỜI CAM ĐOAN
Tôi xin cam đoan:
- Nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của PGS.TS Nguyễn Tấn Khôi
- Tài liệu tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên nhà xuất bản, năm xuất bản và chú thích các nội dung tham khảo đầy đủ
Học viên
Nguyễn Thị Khánh Huyền
Trang 3LỜI CẢM ƠN
Trong thời gian học tập và làm luận văn, tôi chân thành cảm ơn Ban Giám hiệu Trường Đại học Bách khoa Đà Nẵng, Trường Đại học Quảng Bình đã tạo điều kiện về môi trường cũng như cơ sở vật chất cho công việc học tập và nghiên cứu
Cảm ơn các Thầy, Cô trong khoa Công nghệ thông tin Trường Đại học Bách khoa Đà Nẵng và các Thầy, Cô trong khoa Công nghệ - Kỹ thuật trường đại học Quảng Bình đã giảng dạy và giúp đỡ tôi trong quá trình học tập và nghiên cứu về chuyên ngành Khoa học máy tính Đặc biệt, cảm ơn PGS.TS Nguyễn Tấn Khôi
đã nhiệt tình và tâm huyết hướng dẫn và giúp đỡ tôi hoàn thành luận văn này Quá trình làm luận văn, bản thân tôi đã cố gắng tập trung nghiên cứu, tìm hiểu và tham khảo thêm nhiều tài liệu liên quan Tuy nhiên, do chưa có nhiều kinh nghiệm trong nghiên cứu khoa học nên chắc chắn luận văn vẫn còn nhiều thiếu sót Tôi rất mong nhận được sự góp ý của các thầy cô và bạn bè, đồng nghiệp để luận văn được hoàn thiện hơn
Quảng Bình, tháng 9 năm 2019
Học viên
Trang 4Tóm tắt - Du lịch Quảng Bình là một trong những ngành kinh tế mũi nhọn
tạo động lực tăng trưởng cho tỉnh nhà Tỉnh Quảng Bình đang nỗ lực đổi mới
cả về nội dung lẫn hình thức quảng bá, đưa hình ảnh du lịch Quảng Bình đến với tất cả bạn bè trong nước và trên thế giới Vì vậy, cần xây dựng giải pháp hỗ trợ du lịch nhằm phục vụ nhu cầu tra cứu thông tin, hỗ trợ du khách trong hành trình trải nghiệm du lịch Xuất phát từ yêu cầu thực tiễn và khoa học, tôi đã đề
xuất nghiên cứu "Xây dựng hệ thống khuyến nghị hỗ trợ du lịch tỉnh Quảng
Bình" làm luận văn cao học Hệ thống được xây dựng với mục đích tìm hiểu,
nghiên cứu hoạt động của hệ thống gợi ý Hệ thống sử dụng các thuật toán không
có ngữ cảnh và có ngữ cảnh giúp phân tích và tạo ra các khuyến nghị để người dùng có thể thử nghiệm độ tối ưu của thuật toán và áp dụng các thuật toán đó vào các website du lịch nhằm tạo ra các khuyến nghị thích hợp với mỗi du khách
Luận văn bao gồm các nội dung sau: (1) Giới thiệu về mô hình hệ thống khuyến nghị du lịch, các nội dung lý thuyết về ngữ cảnh, nhận biết ngữ cảnh,
hệ thống gợi ý, các phương pháp tiếp cận trong hệ thống gợi ý (2) Phân tích chức năng hệ thống, trình bày các sơ đồ, xây dựng các thuật toán của hệ thống (3) Triển khai, phân tích và đánh giá kết quả đạt được của hệ thống
Từ khóa: Hệ thống gợi ý theo ngữ cảnh, hệ thống khuyến nghị du lịch, kỹ
thuật phân rã ma trận, lọc cộng tác, thuật toán
Trang 5BUILDING THE RECOMMENDATION SYSTEM HAVING A TOURIST SUPPORT IN QUANG BINH PROVINCE Abstract - Tourism Quang Binh is one of the key economic sectors to
create growth momentum for the province Quang Binh province is trying to innovate both in terms of content and form of promotion, bringing Quang Binh tourism image to all friends in the country and the world
Therefore, it is necessary to build a tourism support solution to serve the needs of searching information and supporting tourists in the journey of traveling experience Stemming from practical and scientific requirements, I have proposed research "Building a system of recommendations for tourism support in Quang Binh province" for master thesis The system was built for the purpose of understanding and studying the operation of the suggestion system The system uses non-contextual and contextual algorithms to analyze and create suggestions so that users can test the algorithm's optimization and apply those algorithms to travel websites to Create appropriate suggestions for every visitor The thesis includes the following contents: (1) Introduction to the model
of tourism recommendation system, the contents of the theory of context, contextual recognition, suggestion system, approaches in the system suggestion system (2) Analysis of system functions, presentation of diagrams, construction
of system algorithms (3) Deploy, analyze and evaluate the results of the system
Recommender Systems, matrix factorization, collaborative filtering, algorithm
Trang 6MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC v
DANH MỤC HÌNH ẢNH vii
DANH MỤC BẢNG BIỂU viii
DANH MỤC CÁC TỪ VIẾT TẮT ix
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu và nhiệm vụ nghiên cứu 2
3 Đối tượng và phạm vi nghiên cứu 3
4 Phương pháp nghiên cứu 3
5 Bố cục của luận văn 4
NỘI DUNG 5
Chương 1: TỔNG QUAN VỀ ĐỀ TÀI 5
1.1 MÔ HÌNH HỆ THỐNG KHUYẾN NGHỊ DU LỊCH 5
1.2 LÝ THUYẾT VỀ NGỮ CẢNH 6
1.2.1 Định nghĩa ngữ cảnh 6
1.2.2 Các đặc trưng của ngữ cảnh 7
1.2.3 Phân loại ngữ cảnh 8
1.2.4 Nhận biết ngữ cảnh 10
1.2.5 Phương pháp nhận biết ngữ cảnh 11
1.3 HỆ THỐNG GỢI Ý 12
1.3.1 Giới thiệu 12
1.3.2 Phân loại hệ thống gợi ý 13
1.3.3 Dự đoán trong hệ thống gợi ý 16
1.3.4 Các phương pháp tiếp cận truyền thống trong hệ gợi ý 17
1.3.5 Các phương pháp tiếp cận hiện đại trong hệ gợi ý 18
1.3.6 Các phương pháp tiếp cận phân rã ma trận 19
1.3.7 Các phương pháp tiếp cận theo tương quan ngữ cảnh 23
1.3.8 Đánh giá hệ thống gợi ý 27
1.3.9 Các thách thức của hệ thống gợi ý truyền thống 31
1.4 KẾT CHƯƠNG 32
Trang 7Chương 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG KHUYẾN NGHỊ
DU LỊCH TẠI QUẢNG BÌNH 33
2.1 MÔ TẢ HỆ THỐNG 33
2.2 PHÂN TÍCH CHỨC NĂNG HỆ THỐNG 33
2.3 CÁC THUẬT TOÁN KHUYẾN NGHỊ 34
2.3.1 Các thuật toán trung bình 35
2.3.2 Các thuật toán lọc cộng tác 35
2.3.3 Các thuật toán xếp hạng 36
2.3.4 Các thuật toán biến đổi 37
2.3.5 Các thuật toán thích ứng phụ thuộc 37
2.4 KẾT CHƯƠNG 39
Chương 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 40
3.1 MÔI TRƯỜNG TRIỂN KHAI 40
3.2 ĐÁNH GIÁ KẾT QUẢ KHUYẾN NGHỊ THEO BỘ DỮ LIỆU THỬ NGHIỆM 01 40
3.2.1 Bộ dữ liệu thử nghiệm 40
3.2.2 Kết quả chạy chương trình 42
3.2.3 Phân tích kết quả 42
3.2.4 Đánh giá kết quả 44
3.2.5 Kết quả khuyến nghị 46
3.3 ĐÁNH GIÁ KẾT QUẢ KHUYẾN NGHỊ THEO BỘ DỮ LIỆU THỬ NGHIỆM 02 47
3.3.1 Bộ dữ liệu thử nghiệm 47
3.3.2 Kết quả chạy chương trình 48
3.3.3 Phân tích kết quả 48
3.3.4 Đánh giá kết quả 50
3.3.5 Kết quả khuyến nghị 51
3.4 KẾT CHƯƠNG 52
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 53
TÀI LIỆU THAM KHẢO 55
Trang 8DANH MỤC HÌNH ẢNH
Hình 1 1: Mô hình tổng thể của hệ thống khuyến nghị du lịch 5
Hình 1 2: Tổng quan các hạng mục ngữ cảnh 10
Hình 1 3: Mô hình sử dụng ngữ cảnh 12
Hình 1 4: Minh họa cho không gian gợi ý ba chiều 15
Hình 1 5: Các thành phần cơ bản của tiến trình gợi ý truyền thống 16
Hình 1 6: Kiến trúc tổng quan của hệ thống lọc cộng tác 18
Hình 1 7: Ví dụ của hệ tọa độ đa chiều 26
Hình 2 1: Sơ đồ luồng dữ liệu của ứng dụng 34
Hình 2 2: Các nhóm thuật toán 34
Hình 3 1: Giao diện chạy chương trình 42
Hình 3 2: Đồ thị đối sánh 44
Hình 3 3: So sánh RMSE giữa các phương pháp 45
Hình 3 4: Một phần kết quả khuyến nghị 46
Hình 3 5: Giao diện chạy chương trình 48
Hình 3 6: Đồ thị đối sánh 49
Hình 3 7: So sánh RMSE giữa các phương pháp 50
Hình 3 8: Một phần kết quả khuyến nghị 51
Trang 9DANH MỤC BẢNG BIỂU
Bảng 1 1: Các thuộc tính đặc trưng của ngữ cảnh 7
Bảng 1 2: Phân loại các chiều ngữ cảnh 8
Bảng 1 3: Bảng ma trận trọng số (đánh giá) của hệ gợi ý 17
Bảng 1 4: Xếp hạng phim trong ngữ cảnh 20
Bảng 1 5: Ví dụ của một ma trận tương quan 24
Bảng 1 6: Các phương pháp đánh giá 30
Bảng 3 1: Bảng người dùng 40
Bảng 3 2: Bảng địa điểm 41
Bảng 3 3: Bảng đánh giá của người dùng cho địa điểm 41
Bảng 3 4: Kết quả thực thi các thuật toán 43
Bảng 3 5: Kết quả khuyến nghị 46
Bảng 3 6: Bộ dữ liệu thử nghiệm 02 47
Bảng 3 7: Kết quả thực thi các thuật toán 49
Bảng 3 8: Kết quả khuyến nghị 52
Trang 10DANH MỤC CÁC TỪ VIẾT TẮT
3 CAMF Context Aware Matrix Factorization
4 CSLIM Contextual Sparse Linear Method
9 MCS Multidimensional Context Similarity
Trang 11Trong quy hoạch phát triển kinh tế - xã hội đến năm 2020, tầm nhìn 2030, tỉnh Quảng Bình xác định du lịch là một trong những ngành kinh tế mũi nhọn tạo động lực tăng trưởng Du lịch Quảng Bình được Thủ tướng Nguyễn Xuân Phúc
ví như “viên kim cương xanh” Không bỏ lỡ tiềm năng quý giá đó, tỉnh đang nỗ lực đổi mới cả về nội dung lẫn hình thức quảng bá, đưa hình ảnh du lịch Quảng Bình đến với tất cả bạn bè trong nước và trên thế giới, mở ra bước ngoặt mới cho
du lịch tỉnh nhà
Hiện nay, khách du lịch đến tỉnh Quảng Bình bao gồm cả khách quốc tế và khách nội địa Trong đó, khách du lịch nước ngoài chủ yếu tập trung vào các thị trường: Asean, Hàn Quốc, Nhật Bản, các nước trong khối EU, khu vực Bắc Mỹ (đặc biệt là thị trường Mỹ), Nga và Đông Âu Khách du lịch nội địa chủ yếu là thị trường Bắc Bộ (đặc biệt là Hà Nội), thị trường các đô thị khu vực miền Trung, thị trường khách du lịch từ TP Hồ Chí Minh và các đô thị lớn phía Nam
Theo báo cáo kết quả hoạt động kinh doanh du lịch của Sở Du lịch Quảng Bình thì tổng lượt khách năm 2018 ước đạt 3,9 triệu lượt, tăng 18,2% so với năm
2017 Trong đó, khách quốc tế ước đạt 200.000 lượt, tăng 53,8% so với 2017 Tổng thu từ khách du lịch ước đạt 4.485 tỷ đổng, tăng 20,2% so với năm 2017
Hệ số lưu trú ước đạt: 1,13 ngày/khách
Trang 12Năm 2019 ngành du lịch toàn tỉnh tiếp tục đẩy mạnh công tác tuyên truyền, quảng bá và xúc tiến du lịch với phương thức đa dạng, nội dung phong phú trên phạm vi rộng từ tỉnh đến quốc gia, khu vực và quốc tế Ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định của hoạt động quảng bá, xúc tiến du lịch; nó đóng vai trò hết sức quan trọng, có thể tạo ra những bước đột phá mạnh mẽ cho ngành du lịch nói chung và du lịch Quảng Bình nói riêng
Bằng Internet, việc quảng bá du lịch Quảng Bình có thể thực hiện được với tốc độ nhanh hơn, phạm vi rộng lớn hơn và chi phí thấp hơn nhiều so với các cách thức truyền thống Đối với sự bùng nổ của công nghệ thông tin, thì việc xây dựng
hệ thống hỗ trợ du lịch trên Internet là vô cùng quan trọng đối với ngành du lịch
Hệ thống hỗ trợ du lịch là một trong những đặc thù của các website du lịch hiện nay Nó giới thiệu chuyên sâu về địa điểm du lịch, các sản phẩm du lịch và quảng
bá truyền thông cho từng mảng du lịch lữ hành mà chúng ta đầu tư Đây chính là một kênh không thể thiếu đối với các tỉnh có thế mạnh về du lịch trong cả kinh doanh và phát triển thương hiệu du lịch sau này Vấn đề đặt ra là cần xây dựng giải pháp du lịch nhằm phục vụ nhu cầu tra cứu thông tin, hỗ trợ du khách trong
hành trình trải nghiệm du lịch Chính vì vậy, tôi chọn đề tài "Xây dựng hệ thống
khuyến nghị hỗ trợ du lịch tỉnh Quảng Bình" làm đề tài luận văn tốt nghiệp Hệ
thống được xây dựng với mục đích tìm hiểu, nghiên cứu hoạt động của hệ thống khuyến nghị Hệ thống sử dụng các thuật toán không có ngữ cảnh và có ngữ cảnh giúp phân tích và tạo ra các khuyến nghị để người dùng có thể thử nghiệm độ tối
ưu của thuật toán và áp dụng các thuật toán đó vào các website du lịch nhằm tạo
ra các khuyến nghị thích hợp với mỗi du khách
Đề tài này sẽ có thể góp phần hỗ trợ các website du lịch tỉnh Quảng Bình trong việc quảng bá và phát triển du lịch trong thời gian tới
2 Mục tiêu và nhiệm vụ nghiên cứu
2.1 Mục tiêu
Trang 13Nghiên cứu ứng dụng hệ thống gợi ý để xây dựng hệ thống khuyến nghị hỗ trợ du lịch phục vụ khách du lịch
2.2 Nhiệm vụ
Để đạt được mục tiêu trên, nhiệm vụ của tôi nghiên cứu về:
- Tìm hiểu cơ sở lý thuyết về hệ thống gợi ý
- Phân tích thiết kế xây dựng hệ thống khuyến nghị hỗ trợ du lịch dựa trên hệ thống gợi ý theo ngữ cảnh
- Triển khai phân tích, đánh giá kết quả thực nghiệm
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
- Du lịch Quảng Bình
- Các điểm du lịch
- Khách du lịch
3.2 Phạm vi nghiên cứu
Các địa điểm du lịch ở Quảng Bình
4 Phương pháp nghiên cứu
Phương pháp nghiên cứu, chúng tôi đã sử dụng hai phương pháp chính là nghiên cứu lý thuyết và nghiên cứu thực nghiệm
4.1 Phương pháp nghiên cứu lý thuyết
- Cơ sở lý thuyết về nhận biết ngữ cảnh, lý thuyết hệ thống gợi ý, các phương pháp tiếp cận trong hệ thống gợi ý
- Mô hình khuyến nghị du lịch
4.2 Phương pháp thực nghiệm
- Khảo sát, phân tích dữ liệu
Trang 14- Phân tích thiết kế hệ thống
- Triển khai xây dựng ứng dụng
- Đánh giá thử nghiệm
5 Bố cục của luận văn
Luận văn được tổ chức thành 3 chương chính:
Chương 1: Tổng quan về đề tài
Giới thiệu về mô hình hệ thống khuyến nghị du lịch, các nội dung lý thuyết
về ngữ cảnh, nhận biết ngữ cảnh, hệ thống gợi ý, các phương pháp tiếp cận trong
Chương 3: Triển khai và đánh giá
Triển khai, phân tích và đánh giá kết quả đạt được của hệ thống
Trang 15NỘI DUNG Chương 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 MÔ HÌNH HỆ THỐNG KHUYẾN NGHỊ DU LỊCH
Mô hình hệ thống khuyến nghị du lịch được xây dựng dựa trên nền tảng của công nghệ thông tin và truyền thống, trong đó, hạ tầng tích hợp dữ liệu được phát triển đồng bộ, đảm bảo sự tương tác kịp thời giữa 3 bên là nhà quản lý, đơn vị cung cấp dịch vụ du lịch và du khách
Hình 1 1: Mô hình tổng thể của hệ thống khuyến nghị du lịch
Hệ thống khuyến nghị du lịch là giải pháp hỗ trợ du lịch nhằm phục vụ nhu cầu tra cứu thông tin, hỗ trợ du khách trong hành trình trải nghiệm du lịch
Hệ thống khuyến nghị du lịch ứng dụng Hệ tư vấn nhằm gợi ý một điểm đến phù hợp cho người dùng
Các cơ quan
QLNN
Đơn vị cung cấp DV du lịch
Tiêu dùng du lịch cá nhân
hóa kết hợp Số và Thực
Dịch vụ du lịch QLNN về du lịch
Internet vạn vật
Điện toán đám mây
Trí tuệ nhân tạo
Hệ thống khuyến nghị
du lịch
Trang 161.2 LÝ THUYẾT VỀ NGỮ CẢNH
1.2.1 Định nghĩa ngữ cảnh
Ngữ cảnh là "toàn bộ tình huống, nền tảng hay môi trường có liên quan tới một vài sự kiện xảy ra hoặc cá nhân nào đó" (Theo từ điển của Webster - Noah Webster - Mỹ) Khái niệm này rất là chung khi sử dụng trong tính toán nhận biết
ngữ cảnh
Ngữ cảnh là một vấn đề chính trong trong tương tác giữa người và máy tính, miêu tả các nhân tố xung quanh với ngữ nghĩa biểu đạt [4] Trong lĩnh vực nghiên cứu tính toán di động, tham số vị trí thường được dùng nhất để chỉ ngữ cảnh và cài đặt các ứng dụng nhận biết ngữ cảnh
Ngữ cảnh và nhận biết ngữ cảnh đã bắt đầu được nghiên cứu trong tính toán phân tán với sức mạnh của các thành phần tính toán di động từ những năm 90 Những nghiên cứu từ rất sớm này đã nhận biết vị trí của người dùng và sử dụng
vị trí như là trung tâm của tính toán nhận biết ngữ cảnh
Các ứng dụng nhận biết ngữ cảnh tìm kiếm ai, ở đâu, khi nào và làm gì (tức hành động này đang xảy ra) của các thực thể và sử dụng thông tin này để xác định tại sao một tình huống đang xảy ra Một ứng dụng không xác định được thực sự tại sao một tình huống đang xảy ra nhưng người thiết kế ứng dụng thì có thể làm được điều đó Người thiết kế sử dụng ngữ cảnh nắm bắt được để xác định tại sao lại có tình huống đó và sử dụng điều này để lập trình các hành động trong ứng dụng [6] Và cho đến nay, với một lượng khá lớn các hệ thống được xây dựng trong môi trường tính toán nhân rộng, thì khái niệm ngữ cảnh của Dey vẫn được
sử dụng nhiều nhất và có thể coi gần như là chuẩn
Dey [7] định nghĩa ngữ cảnh là "bất kỳ thông tin nào mà có thể sử dụng được
để đặc tả một tình huống của một thực thể Một thực thể là một người, một nơi hay một số đối tượng được xem là có liên quan đến tương tác giữa người dùng và
ứng dụng, bao gồm cả chính người dùng và ứng dụng đó" Đồng thời, ông cũng
cung cấp định nghĩa sau cho các hệ thống tính toán nhận biết ngữ cảnh: "Một hệ
Trang 17thống sử dụng ngữ cảnh để cung cấp các thông tin liên quan hoặc các dịch vụ cho
người dùng trong đó mối liên quan phụ thuộc vào nhiệm vụ của người dùng" 1.2.2 Các đặc trưng của ngữ cảnh
Theo Karen [8] thông tin ngữ cảnh có 4 đặc trưng được cho trong bảng sau
Theo đó, ta thấy đặc trưng ngữ cảnh phụ thuộc vào hai yếu tố như: kiểu nhận biết ngữ cảnh, nguồn thu thập Điều đó ảnh hưởng tới giá trị thuộc tính của ngữ cảnh
Ví dụ nếu kiểu nhận biết ngữ cảnh là các cảm biến thì khả năng tồn tại của thông tin ngữ cảnh là không cao, chất lượng thông tin có thể chưa tốt tại một thời điểm nhất định khi gặp các sự cố như: thiết bị có lỗi, mất mạng, …
Cảm
biến Cảm biến vật lý và logic Thấp Có thể có lỗi
Lỗi thiết bị cảm biến, mất mạng, ngắt mạng, … Đặc tả
(profiled)
Do người dùng đặc tả trực tiếp
hoặc gián tiếp qua chương trình Mãi mãi
Có thể không chắc chắn Lỗi con người Được
phát sinh Các thông tin ngữ cảnh khác Biến đổi
Dựa vào việc
xử lý của nguồn phát
Đầu vào không đầy đủ, cơ chế nguồn, …
Bảng 1 1: Các thuộc tính đặc trưng của ngữ cảnh
Ngoài ra khi nghiên cứu về các đặc trưng ngữ cảnh, còn một số vấn đề sau:
- Chưa xác định khi không có thông tin nào về vật chất là sẵn có
- Mơ hồ (tối nghĩa) khi có một số báo cáo khác nhau về vật chất, ví dụ 2 vị
trí cùng được đọc cho một người được lấy từ các thiết bị định vị riêng
- Không chính xác: khi trạng thái được báo cáo không đúng với trạng thái
đúng, ví dụ khi vị trí của 1 người được biết trong miền giới hạn, nhưng vị trí trong miền này không được chốt cho mức độ yêu cầu chuẩn xác
- Sai: khi có lỗi giữa trạng thái được báo cáo và trạng thái thực của vật chất
Tính chưa xác định thường là do các vấn đề về kết nối, cảm biến và các lỗi khác Thông tin mơ hồ phát sinh khi giá trị của một vật chất có thể được lấy một
Trang 18cách độc lập từ nhiều nguồn Thông tin ngữ cảnh được lấy từ cảm biến là thường xuyên thay đổi và chấp nhận các vấn đề như tính không chính xác và staleness (tính cũ, chưa cập nhật) Thông tin ngữ cảnh được cung cấp bởi người dùng thường chậm thay đổi, kiểu thông tin này được gọi là tĩnh (tức không bao giờ thay đổi nên độ chính xác cao) Kiểu thông tin ngữ cảnh profiled được lấy trực tiếp từ người dùng trong form về đặc tả thông tin của họ hoặc lấy gián tiếp qua ứng dụng của họ [8], ví dụ phần mềm lập lịch duy trì lịch sử hoạt động của người dùng Thông tin profiled thường cũ và không đầy đủ Cuối cùng, đặc điểm về thông tin mong muốn thường được xác định rộng bởi các thông tin cơ bản.
1.2.3 Phân loại ngữ cảnh
Pash [9] phân loại ngữ cảnh thành 4 chiều là: ngữ cảnh tĩnh của người dùng, ngữ cảnh động của người dùng, kết nối mạng và ngữ cảnh môi trường Mỗi chiều ngữ cảnh được miêu tả bởi tham số ngữ cảnh tương ứng, ví dụ tham số ngữ cảnh tĩnh của người dùng là profiled, các sở thích, mối quan tâm của người đó, …
Ngữ cảnh tĩnh của người dùng Profiled, thói quen, sở thích Ngữ cảnh động của người dùng Vị trí, nhiệm vụ hiện thời hoặc có liên quan
tới người hay đối tượng khác
Ngữ cảnh môi trường Thời tiết, tiếng ồn, thời gian,
Kết nối mạng Đặc tính mạng, đặc tả thiết bị di động đầu
cuối
Bảng 1 2: Phân loại các chiều ngữ cảnh
Đối với những ngữ cảnh này, có 3 loại hành động được thể hiện Bộ tích hợp ngữ cảnh thu thập dữ liệu ngữ cảnh thô từ các cảm biến để làm tăng dữ liệu Bộ phân tích ngữ cảnh chuyển dữ liệu thô từ cảm biến thành các dữ liệu mức cao mà con người có thể hiểu Các ngữ cảnh mức cao được tạo từ dữ liệu khác với các nguồn dữ liệu ngữ cảnh theo các chiều khác nhau (vị trí, nhiệt độ, …) Bộ diễn dịch thực hiện bằng việc sử dụng các luật
Trang 19Câu hỏi cách tích hợp các phần tử ngữ cảnh, hay các tham số như thế nào trong một mô hình ứng dụng được tiếp cận theo 2 cách khác nhau Đầu tiên, có thể hiểu là cho phép định nghĩa tùy ý các tham số ngữ cảnh và kết hợp tùy ý với các phần tử của ontology miền Điều này sẽ cung cấp tính linh hoạt tối đa trong việc liên kết các tham số ngữ cảnh và các phần tử miền lĩnh vực, và đảm bảo mô hình có khả năng biểu diễn không giới hạn về mặt lý thuyết Cách tiếp cận thứ 2
là xác định một hạng mục các tham số ngữ cảnh, và yêu cầu các giá trị đặc tả liên quan tới miền lĩnh vực để gán cho mỗi lớp Điều này dường như là một hạn chế chính cho mô hình khái niệm, tuy nhiên việc sử dụng cụ thể chúng ta mặc định rằng việc nhóm các tham số là không thể tránh khỏi (xem hình 1.2), từ triển vọng
mô hình hóa và việc sử dụng Vì chúng ta giả thiết rằng các biểu mẫu tương tác với người được yêu cầu để hoàn thành và điều chỉnh mô hình, việc nhóm các tham
số là rất cần thiết để người dùng duy trì một cái nhìn tổng quan về mô hình Mặt khác, chúng ta giả thiết rằng không phải tất cả các phần tử ngữ cảnh đều sẽ được liên kết với ontology miền Điều này có nghĩa sẽ có một khái niệm "hàng xóm" hoặc cụ thể hơn là khoảng cách giữa các phần tử ngữ cảnh; các phần tử chắc chắn
sẽ liên quan tới một ngữ cảnh được cho, thậm chí chúng không được liên kết trực tiếp tới miền lĩnh vực Để đạt được một hàng xóm, một số biểu mẫu các hạng mục được yêu cầu Hơn nữa Use & Role cung cấp một hạng mục về người dùng theo các nguyên tắc của họ như các kiểu khách hàng, hay các kiểu nhân viên khác nhau Tác vụ và xử lý biểu diễn một ngữ cảnh chức năng như các đối tượng công việc cho nhân viên
Vị trí là một hạng mục của vị trí có liên quan đến ứng dụng, có thể là thành phố, nông thôn, địa chỉ, …
Thời gian thể hiện kiểu khác của thông tin thời gian có thể liên quan như vùng thời gian của client, thời gian thực, thời gian ảo, …
Trang 20Hình 1 2: Tổng quan các hạng mục ngữ cảnh
1.2.4 Nhận biết ngữ cảnh
Tính toán nhận biết ngữ cảnh lần đầu tiên được xem xét bởi Schilit và Theimer năm 1994 với phần mềm thích ứng theo vị trí sử dụng để sưu tầm những đối tượng và người gần đó đồng thời thay đổi các đối tượng này theo thời gian Các định nghĩa dần trở nên rõ ràng và đặc tả hơn: thích ứng theo ngữ cảnh Dey đã xác định khái niệm mới theo cách ngữ cảnh được dùng và các đặc tính
nhận biết ngữ cảnh khác nhau: Một hệ thống là nhận biết ngữ cảnh nếu nó sử dụng ngữ cảnh để cung cấp thông tin liên quan hay các dịch vụ tới người dùng, trong đó, mức độ liên quan tùy thuộc vào tác vụ của người dùng Và định nghĩa
này được lựa chọn là định nghĩa dùng chung cho tính toán nhận biết ngữ cảnh
Định nghĩa này cho chúng ta biết cách để xác định xem liệu một ứng dụng
có là nhận biết ngữ cảnh hay không Điều này rất hữu ích khi xác định kiểu ứng
dụng mà chúng ta muốn hỗ trợ Theo Dey [10] nhận biết ngữ cảnh là một thuộc tính của một hệ thống có sử dụng ngữ cảnh để cung cấp các thông tin hay dịch vụ
liên quan tới người dùng
Thiết bị
Vị trí
Thời tiết
Tác vụ và xử lý Người dùng và vai trò
Trang 211.2.5 Phương pháp nhận biết ngữ cảnh
Trong hệ thống gợi ý nhận biết ngữ cảnh, ngữ cảnh luôn luôn được xem là
“bất cứ thông tin nào có thể được sử dụng để đặc trưng hóa tình hình của một thực
thể”, bao gồm thời gian và người đồng hành có thể là hai điều có ảnh hưởng đến
ngữ cảnh, bởi vì sở thích của người dùng có thể thay đổi khi hai ngữ cảnh kia thay đổi
Giới thiệu về phân loại hai phần của thông tin theo ngữ cảnh Phân loại của
nó dựa trên hai sự cân nhắc: những điều mà hệ gợi ý nhận biết về một yếu tố ngữ cảnh (contextual factor) và cách mà yếu tố ngữ cảnh đó thay đổi theo thời gian
Hiểu biết của hệ thống (system knowledge) có thể được chia thành: quan sát được hoàn toàn (fully observable), quan sát được một phần (partially observable) và không quan sát được (unobservable) Khía cạnh thời gian của một yếu tố có thể chia thành tĩnh (static) và động (dynamic)
Một vài thuật toán gợi ý nhận biết ngữ cảnh đã được phát triển trong vài thập
kỷ trước Điển hình là, ngữ cảnh có thể áp dụng trong ba chiến thuật cơ bản sử
dụng gợi ý: lọc trước (pre-filtering), lọc sau (post-filtering) và mô hình ngữ cảnh (contextual modeling) Kỹ thuật pre-filtering, như là cách tiếp cận phân tách nhận biết ngữ cảnh (Context-Aware Splitting Approaches – CASA), áp dụng ngữ cảnh
làm bộ lọc trước để lọc ra các hồ sơ xếp hạng không liên quan Post-filtering, mặt khác, áp dụng ngữ cảnh như bộ lọc cho hệ gợi ý sau quá trình ra gợi ý Trong contextual modeling, các mô hình dự đoán được học cách sử dụng toàn bộ ngữ cảnh Hầu hết chúng vẫn còn hoạt động, như là phân rã ma trận nhận diện ngữ cảnh (CAMF), phân rã nhân tử (TF) và phương pháp tuyến tính ngữ cảnh thưa thớt (CSLIM)
Trang 22Hình 1 3: Mô hình sử dụng ngữ cảnh [3]
1.3 HỆ THỐNG GỢI Ý
1.3.1 Giới thiệu
Hệ thống gợi ý hay còn gọi là hệ thống khuyến nghị (Recommender system
- RS) 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 (preference) hay xếp hạng (rating) mà người dùng có thể dành cho một mục thông
tin (item) nào đó mà họ chưa xem xét tới trong quá khứ (item có thể là một sản phẩm, bộ phim, video clip, music, sách, ) [1] nhằm gợi ý các mục thông tin “có thể quan tâm” bởi người dùng
Hệ thống gợi ý sẽ đưa ra các gợi ý dựa trên quá trình thu thập, xử lý và phân
tích dữ liệu từ người dùng Dữ liệu đó được chia làm 2 loại là tường minh (explicit) bằng cách yêu cầu người dùng phản hồi trực tiếp và tiềm ẩn (implicit) bằng cách
tự động suy luận dựa trên những tương tác của người dùng với hệ thống như: vị trí thay đổi, số lần nhấp chuột, thời gian quan sát Trong hầu hết các trường hợp,
bài toán gợi ý được coi là bài toán dự đoán việc xếp hạng (rating) của các sản
phẩm (phim, sản phẩm tiêu dùng, sách, nhạc…) chưa được người dùng biết đến Việc dự đoán này thường dựa trên những đánh giá đã có của chính người dùng đó hoặc những người dùng khác Ví dụ, những bộ phim được dự đoán là sẽ có xếp
Trang 23hạng cao nhất sẽ được dùng để gợi ý Có khá nhiều ứng dụng nổi tiếng về hệ gợi
ý như: gợi ý sản phẩm của Amazon và Ebay, hệ gợi ý phim của NetFlix và Youtube,
Hệ thống gợi ý đã chứng minh được ý nghĩa to lớn: giúp cho người sử dụng trực tuyến đối phó với tình trạng quá tải thông tin Hệ thống gợi ý trở thành một trong những công cụ mạnh mẽ và phổ biến trong thương mại điện tử Mục đích của hệ thống gợi ý là dựa vào hành vi từ thói quen, nhu cầu trong quá khứ của người sử dụng để dự đoán sở thích trong tương lai của họ
1.3.2 Phân loại hệ thống gợi ý
Có hai loại mô hình hệ thống gợi ý được nghiên cứu và ứng dụng trong thực tiễn đó là: hệ thống gợi ý 2 chiều (2D RS) và hệ thống gợi ý theo ngữ cảnh (đa chiều, thông thường là 3 chiều - 3D RS)
1) Hệ thống gợi ý hai chiều
Trong hệ thống gợi ý 2 chiều có hai khái niệm chính là người dùng (user)
và mục tin (item) cần được gợi ý đến cho người dùng Quá trình gợi ý dựa vào các
phản hồi (feedbacks/rating) của người dùng về các đối tượng Ví dụ, đánh giá của người dùng về các sản phẩm mà họ đã từng mua trên Amazon từ đến
Nhiệm vụ của hệ thống gợi ý là dự đoán các đánh giá của những người dùng đối với những item mà họ chưa thấy/mua và sau đó gợi ý cho họ [2]
Gọi U là tập người dùng (users); I là tập mục tin (items) Tập I có thể rất lớn, từ hàng trăm ngàn (sách, CD,…) đến hàng triệu (như bài báo, bản tin,…) R
là tập các giá trị đánh giá của người dùng trên các mục tin
Thông thường dữ liệu được biểu diễn trong một ma trận 2 chiều, trong đó mỗi dòng là một user, mỗi cột là một item và mỗi ô là đánh giá của user trên item
tương ứng Với mỗi người dùng u ∈ U, cần tìm mục i ∈ I (u chưa xem/mua i) sao
cho hàm ȓ đo độ phù hợp (xếp hạng/đánh giá) của người dùng u đạt giá trị lớn nhất trên i:
Trang 24ȓ: U × I → R
Các kỹ thuật trong hệ thống gợi ý thường được phân thành ba nhóm [11]: 1) Dựa trên nội dung (content-based filtering): người dùng được gợi ý những item tương tự như các item từng được họ đánh giá cao;
2) Lọc cộng tác (collaborative filtering): người dùng được gợi ý các sản phẩm
mà những người cùng sở thích với họ đánh giá cao Đây là kỹ thuật thường được sử dụng nhất;
3) Lai ghép (hybrid): kết hợp cả 2 phương pháp trên
Ý tưởng chính của kỹ thuật lọc cộng tác là dự đoán độ phù hợp của item i được đánh giá bởi người dùng u dựa trên tập N(u i ,i) giữa người dùng u i và i, trong
đó u i là người có cùng sở thích với u
Ví dụ, để gợi ý một điểm du lịch cho người dùng u, đầu tiên hệ thống lọc cộng tác tìm những người dùng khác có cùng sở thích với u Sau đó, những nơi được họ đánh giá cao sẽ được dùng để gợi ý cho u
2) Hệ thống gợi ý theo ngữ cảnh (Context-aware RS)
Thông thường trong hệ thống gợi ý hai chiều, người ta thường biểu diễn dữ liệu vào ma trận user-item do vậy chỉ quan tâm đến người dùng và mục tin là chính chứ không quan tâm đến các thông tin ngữ cảnh (context) bên ngoài có tác
động đến quyết định của người dùng hay không “Thông tin ngữ cảnh là những thông tin có thể mô tả được hoàn cảnh của một thực thể” [12] Ví dụ: thời gian, nơi chốn, thời tiết, tâm trạng,… là những thông tin ngữ cảnh, chúng có thể ảnh hưởng đến đánh giá của người dùng đối với các item, từ đó dẫn đến sự ảnh hưởng
của những gợi ý trong hệ thống gợi ý
Với hệ thống gợi ý đa chiều, hàm ȓ được bổ sung thêm thông tin ngữ cảnh
(context) và trở thành:
Trang 25Ví dụ, trong hệ thống gợi ý du lịch, user là khách du lịch, item là những địa
điểm du lịch, và ngữ cảnh có thể là thời gian (buổi sáng/tối, cuối tuần, mùa, lễ, tết,…), bạn đồng hành (đi một mình, đi với bạn trai/ bạn gái, đi với gia đình, trẻ
nhỏ…) Những đánh giá cho một điểm du lịch bởi một người dùng có thể sẽ phụ thuộc vào những ngữ cảnh đó Ví dụ vào buổi tối mùa xuân đi cùng gia đình thì địa điểm ABC là hấp dẫn nhất, nhưng khi đi cùng bạn gái thì có thể địa điểm đó không phù hợp nữa)[2]
Không gian gợi ý ba chiều có thể được mô tả trong khối lập phương như ở Hình 1.4 Ô tô đậm cho biết chỉ số R(101,7,1) = 4 có ý nghĩa là người dùng có mã
số 101 đánh giá sản phẩm có mã số 7 trong điều kiện thời gian có mã số 1 với giá trị đánh giá là 4 Trong khối lập phương này, không phải ô nào cũng có giá trị, những ô không có giá trị là do người dùng chưa đánh giá Mục tiêu của hệ thống gợi ý là dự đoán giá trị tại những ô còn thiếu đó, từ đó đưa ra lời gợi ý đến với người dùng
Hình 1 4: Minh họa cho không gian gợi ý ba chiều
Các phương pháp tiếp cận trong hệ thống gợi ý đa chiều có thể được tóm tắt như sau [12]:
Trang 26• Xử lý ngữ cảnh đầu vào (Contextu alpre-filtering): Trong tiếp cận này, thông
tin về ngữ cảnh được sử dụng để lựa chọn hoặc xây dựng các thiết lập có liên quan đến dữ liệu (xếp hạng) Sau khi lọc thông tin ngữ cảnh, hệ thống đa chiều
sẽ trở thành hệ thống hai chiều và ta có thể sử dụng bất kỳ phương pháp gợi ý truyền thống nào trên các dữ liệu đã chọn
• Xử lý ngữ cảnh đầu ra (Contextual post-filtering): Trong tiếp cận này, ngữ
cảnh thông tin ban đầu bị bỏ qua và xếp hạng được dự đoán bằng cách sử dụng bất kỳ phương pháp gợi ý truyền thống trên toàn bộ dữ liệu Sau đó, các gợi ý được điều chỉnh cho mỗi người sử dụng bằng cách sử dụng các thông tin theo ngữ cảnh
• Mô hình hóa ngữ cảnh (Contextual modeling): Phương pháp này xây dựng
một mô hình dự đoán Ví dụ, mô hình này có thể đưa ra xác suất một người dùng cụ thể chọn một sản phẩm cụ thể trong một bối cảnh cụ thể là bao nhiêu Sau đó xác suất này được dùng để điều chỉnh và tìm ra gợi ý phù hợp
1.3.3 Dự đoán trong hệ thống gợi ý
Một cách hình thức, gọi U là tập người dùng, I là tập các sản phẩm có thể được gợi ý Tập sản phẩm I có thể lên đến hàng trăm, hàng nghìn thậm chí là hàng triệu sản phẩm Tương tự như vậy, tập người dùng U cũng có thể rất lớn lên đến hàng triệu trường hợp Để dự đoán xếp hạng (hay tính tiện ích) của sản phẩm i đối
với người dùng u thì người ta đưa ra hàm xếp hạng (rating) r: U × I R, trong
đó R là tập các giá trị xếp hạng được thứ tự toàn phần (ví dụ số nguyên dương hoặc số thực trong tập xác định) Mô hình này còn được gọi với tên gọi là mô hình
dự đoán 2 chiều (two-dimensional recommendation framework) [3]
Hình 1 5: Các thành phần cơ bản của tiến trình gợi ý truyền thống
Trang 27Với mỗi người dùng u ∈ U, chúng ta có thể chọn được sản phẩm i ∈ I sao cho hàm xếp hạng của người dùng u đối với item i là lớn nhất
ˆ, u arg max ( , )
i I
Tập người dùng U (u ∈ U; |U|=n), tập sản phẩm I (i ∈ I; |I| = m), và rui ∈
R là xếp hạng của người dùng u cho sản phẩm i Trong hệ gợi ý, tính tiện ích của sản phẩm i thường biểu thị mức độ quan tâm của người dùng tới một mặt hàng cụ thể thông qua trọng số; ví dụ người dùng May đánh giá sản phẩm 3 có trọng số là
Bảng 1 3: Bảng ma trận trọng số (đánh giá) của hệ gợi ý
1.3.4 Các phương pháp tiếp cận truyền thống trong hệ gợi ý
Có rất nhiều phương pháp tiếp cận trong hệ gợi ý, tuy nhiên có thể chia thành 3 nhóm kỹ thuật chính như sau:
- Gợi ý dựa trên cộng tác (collaborative filtering - CF): người dùng sẽ được gợi ý những sản phẩm được ưa chuộng xuất phát từ những người dùng
có cùng sở thích và thị hiếu với mình (có độ tương quan cao)
- Gợi ý dựa trên nội dung (content-based filtering): người dùng sẽ được gợi ý những sản phẩm tương tự với những sản phẩm đã được người dùng
đó ưa thích trước đây
- Gợi ý dựa trên cách tiếp cận kết hợp (hybrid approach): kết hợp cả hai phương pháp lọc cộng tác và dựa trên nội dung
Trong các phương pháp tiếp cận trên, phương pháp tiếp cận dựa trên lọc cộng tác thường được sử dụng nhiều nhất Phương pháp này dựa trên những hành
Trang 28vi quá khứ của người dùng, ví dụ như: lịch sử giao dịch, đánh giá sản phẩm, xem một bộ phim, nghe một bài hát, và đặc biệt là nó không cần thiết phải tạo ra các
hồ sơ tường minh (explicit feedback) cho người dùng Để gợi ý các sản phẩm cho người dùng, hệ thống lọc cộng tác cần so sánh các đối tượng cơ bản khác nhau như các sản phẩm và người dùng Một hệ thống lọc cộng tác truyền thống thường
có kiến trúc như sau:
Hình 1 6: Kiến trúc tổng quan của hệ thống lọc cộng tác [3]
1.3.5 Các phương pháp tiếp cận hiện đại trong hệ gợi ý
Trong vài thập kỷ đã qua, một số thuật toán gợi ý nhận diện ngữ cảnh đã được phát triển, như là:
a) Mô hình bối cảnh khác biệt (Differential Context Modeling): kết hợp ngữ cảnh như là những bộ lọc trong lọc cộng tác (Collaborative Filtering)
b) Phân rã ma trận nhận diện ngữ cảnh (Context-Aware Matrix Factorization - CAMF): sử dụng ngữ cảnh trong phân rã ma trận
c) Phân rã nhân tử (Tensor Factorization - TF): trực tiếp xem xét ngữ cảnh
là chiều cá nhân trong không gian xếp hạng đa chiều
Trang 292) Phương pháp dựa trên ngữ nghĩa
Hầu hết thông tin của sản phẩm, người dùng trong hệ gợi ý và phần còn lại của trang web được thể hiện ra trong trang web ở dạng văn bản Sử dụng chủ đề
và từ khóa mà không có bất kỳ ý nghĩa ngữ nghĩa nào sẽ không cải thiện tính chính xác của các đề xuất trong mọi trường hợp, vì một số từ khóa có thể là từ đồng âm Đó là lý do tại sao việc hiểu và cấu trúc cho văn bản là một khuyến nghị rất quan trọng Phương pháp khai thác văn bản truyền thống dựa trên phân tích từ vựng và cú pháp cho thấy các mô tả có thể hiểu được bởi người dùng chứ không phải máy tính hoặc hệ thống đề xuất Đó là một lý do tạo ra các kỹ thuật xác định
ý nghĩa văn bản mới dựa trên phân tích ngữ nghĩa Các hệ thống đề xuất với các
kỹ thuật như vậy được gọi là các hệ thống đề xuất ngữ nghĩa
1.3.6 Các phương pháp tiếp cận phân rã ma trận
1) Phân rã ma trận (Matrix Factorization)
Phân rã ma trận là một trong các thuật toán gợi ý hiệu quả nhất trong hệ thống gợi ý truyền thống Đơn giản, cả người dùng và sản phẩm đều được biểu diễn dưới dạng vector Ví dụ, 𝑝⃗⃗⃗⃗ được sử dụng để biểu thị vector người dùng, 𝑝𝑢 ⃗⃗⃗ 𝑖như là một vector sản phẩm Các giá trị trong những vector đó có thể được biểu diễn bởi phương trình 1
Trang 30𝑟̂𝑢𝑖 = 𝑝⃗⃗⃗⃗ 𝑝𝑢 ⃗⃗⃗ 𝑖 (1) Đặc biệt hơn, trọng số của 𝑝⃗⃗⃗⃗ được sử dụng để biểu thị số lượng người dùng 𝑢thích các nhân tố tiềm ẩn (latent factor) đó, và trọng số 𝑝⃗⃗⃗ thể hiện cách mà những 𝑖sản phẩm này có được các nhân tố tiềm ẩn đó Do đó, tích vô hướng của hai vector này được sử dụng để biểu lộ mức độ người dùng thích sản phẩm này
𝑟̂𝑢𝑖 = 𝜇 + 𝑏𝑢+ 𝑏𝑖 + 𝑝⃗⃗⃗⃗ 𝑝𝑢 ⃗⃗⃗ 𝑖 (2) Bên cạnh đó, người dùng và thiên vị đánh giá sản phẩm cũng được thêm vào, như đã biểu diễn ở công thức số 2, nơi mà 𝜇 biểu lộ đánh giá trung bình toàn bộ trong bộ dữ liệu, 𝑏𝑢 và 𝑏𝑖 biểu diễn người dùng và thiên vị cho sản phẩm tương
ứng
2) Phân rã ma trận nhận biết ngữ cảnh (Context-aware Matrix Factorization)
Xét ví dụ gợi ý phim trong Bảng 1.4 Ta thấy người dùng U1, một sản phẩm
T1, và ba chiều ngữ cảnh - Thời gian (ngày trong tuần và cuối tuần), Vị trí (ở nhà
và rạp phim) và Đồng hành (một mình, người yêu, gia đình) Trong thảo luận sau, chúng ta sử dụng chiều ngữ cảnh để chứng tỏ giá trị của ngữ cảnh, ví dụ như
Vị trí Thuật ngữ điều kiện ngữ cảnh đề cập đến một giá trị cụ thể trong một chiều,
ví dụ như “nhà” và “rạp phim” là hai trạng thái của “Vị trí” Do đó, một ngữ cảnh hay một tình huống có ngữ cảnh là một tập hợp của các trạng thái ngữ cảnh
Bảng 1 4: Xếp hạng phim trong ngữ cảnh
Thêm nữa, chúng ta sử dụng 𝑐𝑘 và 𝑐𝑚 để chứng tỏ hai tình huống ngữ cảnh khác nhau Nói cách khác, 𝑐𝑘 được hợp thành bởi một tập của các điều kiện ngữ cảnh Và chúng ta sử dụng 𝑐𝑘,𝑙 để chứng tỏ trạng thái ngữ cảnh thứ l (𝑙𝑡ℎ) trong
Trang 31ngữ cảnh 𝑐𝑘 Ví dụ, giả sử 𝑐𝑘 = {cuối tuần, ở nhà, một mình}, 𝑐𝑘,2 là “nhà” Trong những thảo luận dưới, chúng ta tiếp tục sử dụng những ký hiệu và biểu tượng này
để mô tả không gian ngữ cảnh và các điều kiện tương tự trong thuật toán hay phương trình
Hầu hết các thuật toán gợi ý nhận biết ngữ cảnh được xây dựng bằng cách kết hợp ngữ cảnh và trong các thuật toán gợi ý truyền thống, đặc biệt là những thuật toán dựa trên lọc cộng tác Đây là một trong những thuật toán gợi ý phổ biến nhất, nó khá hợp lý cho việc sử dụng MF để xây dựng các thuật toán phân rã ma trận nhận biết ngữ cảnh
Thuật toán CAMF có phương trình dự đoán xếp hạng được biểu diễn [24]:
𝑟̂𝑢𝑖𝑐𝑘,1𝑐𝑘,2…𝑐𝑘,𝑙 = 𝜇 + 𝑏𝑢+ ∑𝐿𝑗=1𝐵𝑖𝑗𝑐𝑘,𝑗 + 𝑝⃗⃗⃗⃗ 𝑞𝑢 ⃗⃗⃗ 𝑖 (3) Giả sử ta có tổng cộng L không gian ngữ cảnh, 𝑐𝑘 = {𝑐𝑘,1𝑐𝑘,2… 𝑐𝑘,𝑙} được dùng để mô tả tình huống ngữ cảnh, với 𝑐𝑘,𝑗 biểu thị tình trạng ngữ cảnh trong chiều ngữ cảnh thứ j (𝑗𝑡ℎ) Do đó, 𝐵𝑖𝑗𝑐𝑘,𝑗 biểu thị độ lệch đánh giá theo ngữ cảnh (contextual rating deviation term) với sản phẩm i và trạng thái ngữ cảnh trong chiều thứ j (𝑗𝑡ℎ)
Một so sánh giữa công thức 2 và công thức 3 cho thấy rằng CAMF đơn giản thay thế thiên vị sản phẩm 𝑏𝑖 bởi một công thức độ lệch đánh giá theo ngữ cảnh
∑𝐿𝑗=1𝐵𝑖𝑗𝑐𝑘,𝑗 và nó giả định rằng thiên vị đánh giá theo ngữ cảnh là phụ thuộc vào sản phẩm, do đó, hướng tiếp cận này được đặt tên là CAMF_CI (Context Item) Theo đó, độ lệch này cũng có thể được biểu diễn bị phụ thuộc vào người dùng, bằng cách thay thế 𝑏𝑢 bằng độ lệch đánh giá theo ngữ cảnh và hình thành CAMF_CU (Context User) Thêm nữa, thuật toán CAMF_C giả định rằng độ lệch đánh giá theo ngữ cảnh không phụ thuộc và người dùng hay sản phẩm
Trang 32Do đó, những biến số, như là người dùng và sản phẩm và vector sản phẩm, thiên vị người dùng và độ lệch đánh giá, có thể được học bằng phương pháp stochastic gradient descent (SGD) để giảm thiểu lỗi dự đoán xếp hạng.
3) Phân rã ma trận nhận biết ngữ cảnh dựa trên tương quan (Correlation-Based Context-aware Matrix Factorization)
Phương trình độ lệch đánh giá theo ngữ cảnh là một cách phổ biến và hiệu quả để xây dựng thuật toán gợi ý hướng ngữ cảnh CARS hiện tại đã kết hợp độ
lệch đánh giá theo ngữ cảnh vào phương pháp tuyến tính rời rạc (Sparse Linear Method - SLIM) và phát triển hướng ngữ cảnh cho SLIM (CSLIM) và CSLIM đã
được chứng minh là vượt trội những thuật toán gợi ý hướng ngữ cảnh hiện tại, bao gồm cả CAMF đã được giới thiệu ở trên
Tương quan ngữ cảnh là một cách thay thế để xây dựng thuật toán gợi ý
hướng ngữ cảnh, ngoại trừ mô hình hóa sai lệch theo ngữ cảnh (modeling the contextual deviations) Tiếp theo, chúng ta khám phá thêm những cách để xây
dựng CAMF dựa trên tương quan
Giả định đằng sau khái niệm “ngữ cảnh tương quan” là: tăng thêm tính tương
tự hay tương quan giữa hai ngữ cảnh, hai danh sách gợi ý cho cùng một người dùng cho hai tình huống tương tự cũng nên giống nhau Trong phân rã ma trận, hàm dự đoán có thể được mô tả như phương trình 4 [24]
𝑟̂𝑢𝑖𝑐𝑘 = 𝑞⃗⃗⃗⃗ ∙ 𝑞𝑢 ⃗⃗⃗ ∙ 𝐶𝑜𝑟𝑟(𝑐𝑖 𝑘, 𝑐𝐸) (4)
𝑐𝐸 thay cho tình huống có ngữ cảnh thiếu - giá trị trong không gian mẫu là
trống (empty) hoặc không có sẵn (Not Available - NA), nghĩa là: 𝑐𝐸,1 = 𝑐𝐸,2 =
⋯ = 𝑐𝐸,𝐿 = 𝑁/𝐴 Do đó, hàm 𝐶𝑜𝑟𝑟(𝑐𝑘, 𝑐𝐸) ước tính sự tương quan giữa 𝑐𝐸 và hình huống ngữ cảnh 𝑐𝑘 nơi mà ít nhất một tình huống ngữ cảnh không trống hoặc
“NA” Chú ý rằng công thức 3 Ngữ cảnh sai lệch xếp hạng theo ngữ cảnh có thể được xem như sai lệch từ tình huống ngữ cảnh thiếu với tình huống không thiếu ngữ cảnh [24]
Trang 33nhau (Independent Context Similarity – ICS), Bối cảnh tiềm ẩn tương tự nhau (Latent Context Similarity – LCS), Bối cảnh đa chiều tương tự nhau (Multidimensional Context Similarity – MCS), Trọng số ngữ cảnh jaccard tương
tự nhau (Weighted Jaccard Context Similarity – WJCS) Và những chiến thuật này
có thể được sử dụng lại trong CAMF dựa trên tương quan Do WJCS chỉ đếm chiều ngữ cảnh có cùng giá trị và sự tương quan được tính toán bằng điều đó giữa một ngữ cảnh và một ngữ cảnh trống, nó không áp dụng cho hàm tương quan được đề cập ở trên
1.3.7 Các phương pháp tiếp cận theo tương quan ngữ cảnh
1) Bối cảnh độc lập tương tự nhau (Independent Context Similarity - ICS)
Một ví dụ của ma trận tương quan trong Bảng 1.5 Với ICS, chúng ta chỉ tính toán sự tương quan giữa hai trạng thái dữ liệu khi chúng nằm trên cùng một chiều không gian ngữ cảnh, chúng ta không bao giờ tính toán tương quan giữa “Thời gian = Cuối tuần” và “Vị trí = Nhà”, bởi vì chúng từ hai chiều khác nhau Mỗi cặp của chiều không gian được cho rằng không phụ thuộc vào nhau Trong trường hợp này, sự tương quan giữa hai ngữ cảnh có thể được biểu diễn bằng tích của sự tương quan giữa các chiều khác nhau Ví dụ, cho rằng 𝑐𝑘 là {Thời gian = Cuối tuần, Vị trí = Nhà}, và 𝑐𝑚 là {Thời gian = Giữa tuần, Vị trí = Rạp phim}, sự
tương quan giữa 𝑐𝑘 và 𝑐𝑚 có thể được biểu diễn bằng sự tương quan của <Thời gian = Cuối tuần, Thời gian = Giữa tuần> nhân với tương quan của <Vị trí = Nhà, Vị trí = Rạp phim>, vì hai chiều chiều này được cho là không phụ thuộc
Trang 34T = Cuối tuần T = Giữa tuần L = Nhà L = Rạp phim
Bảng 1 5: Ví dụ của một ma trận tương quan
Cho rằng có tất cả L chiều không gian ngữ cảnh, sự tương quan có thể được
dự đoán bằng công thức 6, với 𝑐𝑘,𝑙 được dùng để biểu đạt giá trị của trạng thái
ngữ cảnh trong chiều không gian thứ l trong ngữ cảnh 𝑐𝑘, và hàm “correlation” được dùng để biểu diễn sự tương quan giữa hai trạng thái ngữ cảnh, mà cũng là cái được học trong quá trình tối ưu Nói cách khác, sự tương quan giữa hai ngữ cảnh được biểu diễn bằng tích của các tương quan không phụ thuộc giữa các trạng thái ngữ cảnh trong mỗi miền không gian [24]
𝐶𝑜𝑟𝑟(𝑐𝑘, 𝑐𝑚) = ∏𝐿𝑙=1𝑐𝑜𝑟𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛(𝑐𝑘,𝑙, 𝑐𝑚,𝑙) (6)
Những giá trị tương quan này (𝑐𝑜𝑟𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛(𝑐𝑘,𝑙, 𝑐𝑚,𝑙)) có thể được học bởi quá trình tối ưu một cách hợp lý Sự rủi ro của biểu diễn này là vài thông tin có thể bị mất, nếu sự tương quan là không thật sự phụ thuộc trong các chiều ngữ cảnh khác nhau Ví dụ, nếu người dùng luôn luôn đi xem phim để xem phim tình cảm với gia đình của họ, thì “Vị trí” và “Đồng hành” có thể có ý nghĩa tương quan với kết quả
2) Bối cảnh tiềm ẩn tương tự nhau (Latent Context Similarity - LCS)
Như đã lưu ý trước đó, dữ liệu xếp hạng theo ngữ cảnh thường thưa thớt, vì việc nhiều người dùng xếp hạng các sản phẩm giống nhau trong nhiều tình huống theo ngữ cảnh là hơi bất thường Điều này đặt ra một khó khăn khi bối cảnh mới gặp phải
Ví dụ, sự tương quan giữa một cặp ngữ cảnh mới <Thời gian = Cuối tuần, Thời gian = Kỳ nghỉ> có thể yêu cầu trong bộ dữ liệu thử, nhưng nó có thể không
Trang 35được học từ dữ liệu dạy vì vấn đề dữ liệu thưa thớt (sparsity problem) Nhưng sự
tương quan của hai cặp dữ liệu có sẵn <Thời gian = Giữa tuần, Thời gian = Cuối tuần> và <Thời gian = Giữa tuần, Thời gian = Kỳ nghỉ> có thể đã được học
Trong trường hợp này, biểu diễn này bị vấn đề xếp hạng thưa thớt theo ngữ
cảnh (contextual rating sparsity problem) Việc xử lý từng không gian một cách
độc lập sẽ ngăn thuật toán tận dụng ưu thế của việc so sánh mà có thể làm được thông qua nhiều chiều không gian
Để giảm thiểu vấn đề này, chúng ta biểu diễn mỗi trạng thái ngữ cảnh bởi một vector trọng số thông qua một tập các hệ số tiềm ẩn (theo kinh nghiệm thì chúng ta sử dụng 5 hệ số tiềm ẩn), mà trọng số được khởi tạo vào thời điểm bắt đầu và được học qua quá trình tối ưu Tích vô hướng giữa hai vector có thể được dùng để biểu đạt sự tương quan giữa mỗi cặp trạng thái ngữ cảnh Kết quả là ngay
cả khi có một cặp mới mà không tồn tại trong bộ dữ liệu dạy, trọng số trong vector
để biểu diễn hai trạng thái (“Thời gian = Cuối tuần” và “Thời gian = Kỳ nghỉ”) sẽ được học và cập nhật bởi quá trình học thông qua các cặp đang tồn tại, và sự tương quan của cặp mới có thể được tính toán một cách dễ dàng bằng sử dụng tích vô hướng Sự tương quan được cho bởi [24]:
𝑐𝑜𝑟𝑟𝑒𝑙𝑎𝑡𝑖𝑜𝑛(𝑐𝑘,𝑙, 𝑐𝑚,𝑙) = 𝑉𝑐𝑘,𝑙 ∙ 𝑉𝑐𝑚,𝑙 (7)
với 𝑉𝑐𝑘,𝑙 và 𝑉𝑐𝑚,𝑙 biểu diễn vector đại diện cho trạng thái ngữ cảnh 𝑐𝑘,𝑙 và 𝑐𝑚,𝑙, tương ứng trong không gian của các yếu tố tiềm ẩn Sau đó, chúng ta sử dụng phép tính tương quan tương tự như công thức (6) Chúng ta gọi phương pháp này
là mô hình Latent Context Similarity (LCS) Phương pháp này cũng cho phép tăng thêm hiệu suất của thuật toán SCLIM dựa trên sai lệch Trái ngược với phương pháp tiếp cận bối cảnh độc lập tương tự nhau, LCS tăng thêm khả năng đáp ứng, nhưng cũng thêm hao tổn tính toán qua việc học các hệ số tiềm ẩn Với LCS, những gì cần được học trong quá trình tối ưu là các vector trọng số đại diện cho từng trạng thái ngữ cảnh
Trang 363) Bối cảnh đa chiều tương tự nhau (Multidimensional Context Similarity
- MCS)
Trong mô hình MCS, chúng ta giả định rằng các chiều ngữ cảnh tạo thành một hệ tọa độ đa chiều (Hình 1.7)
Hình 1 7: Ví dụ của hệ tọa độ đa chiều [24]
Chúng ta giả định rằng có ba chiều không gian ngữ cảnh: Thời gian, Vị trí
và Đồng hành Chúng ta gán giá trị thực sự cho từng trạng thái ngữ cảnh trong
những chiều này, do đó mỗi trạng thái được xác định một vị trí trong trục tương ứng Trong trường hợp này, một ngữ cảnh (là một tập các trạng thái ngữ cảnh) có thể được biểu diễn như một điểm trong không gian đa chiều Theo đó, khoảng cách giữa hai điểm có thể được sử dụng như nền tảng cho tính toán tương quan Trong phương pháp này, những giá trị thực cho mỗi trạng thái ngữ cảnh là thông
số được học trong quá trình tối ưu Ví dụ, những giá trị “gia đình” và “trẻ em” được cập nhật trong phía bên phải của Hình 1.7 Vậy nên vị trí của các điểm dữ liệu được cấp cho hai trạng thái ngữ cảnh này sẽ được thay đổi, tương tự với khoảng cách giữa tính tương quan của hai ngữ cảnh Do đó, mối tương quan có thể được tính bằng nghịch đảo khoảng cách giữa hai điểm dữ liệu Trong các thí nghiệm, chúng tôi sử dụng khoảng cách Euclidean để tính khoảng cách, mặc dù các cách tính khoảng cách khác có thể được sử dụng Chi phí tính toán liên quan trực tiếp đến số lượng trạng thái ngữ cảnh trong bộ dữ liệu, mà có thể khiến cho
Trang 37phương pháp này là là mô hình hao phí nhất Một lần nữa, số lượng trạng thái ngữ cảnh có thể được giảm bởi việc lựa chọn ngữ cảnh
1.3.8 Đánh giá hệ thống gợi ý
Theo [11], việc đánh giá một hệ gợi ý trong nhiều trường hợp thì đó là việc
so sánh những hướng tiếp cận nào tốt phù hợp để thiết kế quy trình hay hệ thống
Từ bước đầu tiên là chọn ra thuật toán phù hợp để quyết định những thuộc tính nào của ứng dụng được dùng để đưa ra quyết định, cụ thể là một hệ gợi ý có rất nhiều thuộc tính khác nhau có thể ảnh hưởng đến trải nghiệm người dùng như độ chính xác, chắc chắn, khả năng mở rộng… Các thuật toán có thể so sánh bằng những hệ số (metric) Có hai nhóm tiêu chí đánh giá: các tiêu chí định lượng và tiêu chí định tính Các tiêu chí định lượng được giành riêng cho việc đánh giá số lượng các gợi ý liên quan, chúng tương ứng với độ chính xác Các tiêu chí định tính được sử dụng để đánh giá chung về chất lượng của hệ gợi ý
1) Các tiêu chí định lượng:
- Đánh giá độ chính xác của hàm dự đoán xếp hạng (rating prediction): việc
đánh giá chính xác các dự đoán có thể sử dụng sai số bình phương trung bình
(Mean square error - MSE), căn của sai số bình phương trung bình (Root mean square error - RMSE), sai số trung bình tuyệt đối (Mean absolute error - MAE)
[13] Tí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 xếp hạng của sản phẩm i và ri là giá trị xếp hạng thực tế của sản phẩm
i
2 1
2 1
Trang 38Số lượng gợi ý phù hợp
Số lượng gợi ý tạo ra
Các chỉ số này thích hợp cho một CSDL không phải nhị phân và cho một giá trị dự đoán là số Nó giúp đo lường mức độ sai số của các dự đoán Các giá trị này
đo lường này bằng 0 khi hệ thống đạt hiệu quả tốt nhất Giá trị này càng cao thì hiệu quả của hệ thống, hay nói cách khác là độ chính xác dự đoán của hệ thống càng thấp
- Đánh giá độ chính xác của hàm gợi ý (item recommendation): 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
và F_score, R score được dùng để đánh giá độ chính xác của hàm gợi ý (đánh giá
việc sử dụng của các dự đoán) trong trường hợp CSDL nhị phân (Herlocker J.L
et al, 2004)
Precision: là tỷ lệ giữa số lượng các gợi ý phù hợp và tổng số các gợi ý đã
cung cấp (đã tạo ra) Precision bằng 100% có nghĩa là tất cả các gợi ý cho người dùng đều phù hợp
Recall: đượ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 (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
F-score: Precision và Recall được xem là hữu ích trong việc đánh giá một
hệ gợi ý Tuy nhiên, trong một số trường hợp thì precision và recall lại có giá trị
tỷ lệ nghịch với nhau Ví dụ số lượng gợi ý mà hệ thống tạo ra là 10, số lượng gợi
Số lượng gợi ý phù hợp
Số lượng sản phẩm được chọn bởi người dùng