Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
2,52 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ BÙI AN LỘC CÁNHÂNHÓAỨNGDỤNGVÀDỊCHVỤDIĐỘNGHƯỚNGNGỮCẢNHNGƯỜIDÙNG Ngành: Công nghệ thông tin Chuyên ngành: Hệ thống thông tin Mã số: 60.48.01.04 LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN NGƯỜIHƯỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN NGỌC HÓA Hà Nội - 2016 MỤC LỤC MỞ ĐẦU Chương TỔNG QUAN VỀ CÁ NHÂN HOÁ DICH ̣ VỤ DI ĐỘNG HƯỚNG NGỮ CẢNH 1.1 Các nhân hoá dich ̣ vu ̣ hướng ngữcảnh 1.1.1 Định nghĩa ngữcảnh 1.1.2 Các đặc trưng ngữcảnh 1.1.3 Phân loại ngữcảnh 1.1.4 Mô hình làm việc cho ngữcảnh 1.2 Nhận biết ngữcảnh (context-awareness) 1.2.1 Xu nhận biết ngữcảnh lợi ích việc cánhânhóaứngdụngdiđộng 1.2.2 Khái niệm nhận biết ngữcảnh 1.2.3 Tính toán nhận biết ngữcảnh 1.3 Hệ gợi ý 1.3.1 Định nghĩa hệ gợi ý 1.3.2 Dự đoán hệ gợi ý 1.3.3 Các phương pháp tiếp cận truyền thống hệ gợi ý 1.3.4 Đánh giá hệ gợi ý 1.3.5 Các thách thức hệ gợi ý truyền thống Chương HỆ GỢI Ý DỰA TRÊN NHẬN BIẾT NGỮCẢNH 2.1 Cấu trúc thông tin ngữcảnh hệ gợi ý 2.1.1 Cấu trúc liệu phân cấp 2.1.2 Cấu trúc liệu đa chiều 2.2 Cơ chế tích hợp ngữcảnh vào hệ gợi ý 2.2.1 Lọc trước theo ngữcảnh (Contextual Pre-Filtering) 10 2.2.2 Lọc sau theo ngữcảnh (Contextual Pos-Filtering) 11 2.2.3 Mô hình hóahướngngữcảnh (Contextual Modeling) 11 2.3 Mô hình hóangữcảnh dựa phân rã ma trận (Context Aware Matrix Factorization - CAMF) 12 2.3.1 Kỹ thuật phân rã ma trận (Matrix Factorization - MF) 13 2.3.2 Kỹ thuật phân rã ma trận thiên vị (Biased Matrix Factorization – BMF) 15 2.3.3 Phân rã ma trận hướngngữcảnh (Context Aware Matrix Factorization - CAMF) 16 Chương XÂY DỰNGỨNGDỤNG DU LỊCH THEO HƯỚNGCÁNHÂNHÓA DỰA TRÊN NGỮCẢNHNGƯỜIDÙNG 18 3.1 Đặt bài toán 18 3.2 Giải pháp đề xuấ t 18 3.2.1 Mô hình kiế n trúc ứng du ̣ng 18 3.2.2 Thiết kế ứng du ̣ng 19 3.2.3 Môi trường xây dựng và thử nghiê ̣m 21 3.3 Thử nghiê ̣m ứng du ̣ng và đánh giá kế t quả ta ̣i Mobifone 21 3.3.1 Kế t quả ứng du ̣ng 22 3.3.2 Đánh giá thử nghiê ̣m 24 TÀI LIỆU THAM KHẢO 25 MỞ ĐẦU Luận văn hướng đến mục tiêu nghiên cứu xây dựng giải pháp cánhânhoáứngdụngdịchvụđộng theo mô hình hướngngữcảnh thời người dùng, áp dụng kỹ thuật gợi ý dựa thông tin ngữcảnh xây dụngứngdụng thử nghiệm Mobifone Tổ chức luận văn bao gồm nội dung sau: Chương 1: Tổng quan cánhânhóadịchvụdiđộnghướngngữcảnh Chương 2: Hệ gợi ý dựa nhận biết ngữcảnh Chương 3: Xây dựngứngdụng du lịch theo hướngcánhânhóa dựa ngữcảnhngườidùngứngdụng MobiFone Chương TỔNG QUAN VỀ CÁ NHÂN HOÁ DICH ̣ VỤ DI ĐỘNG HƯỚNG NGỮ CẢNH 1.1 Các nhân hoá dich ̣ vu ̣ hướng ngữcảnhNhận biết ngữcảnh thường cần giải pháp có khả đáp ứng thách thức giúp cho ứngdụng đảm bảo tính linh hoạt tính tự trị (học máy) Các ứngdụngnhận biết ngữcảnh thường khai thác thông tin ngữcảnh như: vị trí, nhiệm vụ sở thích ngườidùng để thích ứng với hành vi khả thay đổi môi trường thực thi yêu cầu ngườidùng Thông tin tích hợp từ cảm biến từ ngườidùng 1.1.1 Định nghĩa ngữcảnh Dey [5] định nghĩa ngữcảnh "bất kỳ thông tin mà sử dụng để đặc tả tình thực thể Một thực thể người, nơi hay số đối tượng xem có liên quan đến tương tác ngườidùngứng dụng, bao gồm ngườidùngứngdụng đó" Đồng thời, ông cung cấp định nghĩa sau cho hệ thống tính toán nhận biết ngữ cảnh: "Một hệ thống sử dụngngữcảnh để cung cấp thông tin liên quan dịchvụ cho ngườidùng mối liên quan phụ thuộc vào nhiệm vụngười dùng" 1.1.2 Các đặc trưng ngữcảnh Kiểu Tính Chất lượng Nguyên nhân lỗi lâu dài Cảm biến vật lý Thấp Có thể có lỗi Lỗi thiết bị cảm logic biến, mạng, ngắt mạng, … Do ngườidùng đặc tả Mãi Có thể không Lỗi người trực tiếp gián tiếp chắn qua chương trình) Các thông tin ngữ Biến Dựa vào việc Đầu vào không cảnh khác đổi xử lý đầy đủ, chế nguồn phát nguồn, … Bảng 1: Các thuộc tính đặc trưng ngữcảnh Nguồn Cảm biến Đặc tả (profiled) Được phát sinh 1.1.3 Phân loại ngữcảnhNgữcảnh Chiều ngữcảnh Các tham số ngữcảnhNgữcảnh tĩnh người Profiled, thói quen, sở thích dùngNgữcảnhđộngngười Vị trí, nhiệm vụ thời có liên quan dùng 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 2: Phân loại chiều ngữcảnh 1.1.4 Mô hình làm việc cho ngữcảnh Cấu trúc khái niệm theo [6] sau: - Một ngữcảnh miêu tả tình môi trường mà thiết bị hay ngườidùng - Một ngữcảnh xác định tên - Một ngữcảnh có tập đặc tính liên quan - Mỗi đặc tính liên quan có miền giá trị xác định (rõ ràng không rõ ràng) ngữcảnh 1.2 Nhận biết ngữcảnh (context-awareness) 1.2.1 Xu nhận biết ngữcảnh lợi ích việc cánhânhóaứngdụngdiđộngNhận biết ngữcảnh lên cách tiếp cận phổ biến cho việc xây dựngứngdụng môi trường tính toán nơi di động, có khả thích ứng cách tự trị với môi trường chúng, làm giảm định hướngngườidùng 1.2.2 Khái niệm nhận biết ngữcảnh Một hệ thống nhận biết ngữcảnh sử dụngngữcảnh để cung cấp thông tin liên quan hay dịchvụ tới người dùng, đó, mức độ liên quan tùy thuộc vào tác vụngườidùngVà định nghĩa lựa chọn định nghĩa dùng chung cho tính toán nhận biết ngữcảnh 1.2.3 Tính toán nhận biết ngữcảnh Tính toán nhận biết ngữcảnh tức giúp cho ứngdụng hợp tri thức chiều ngữcảnh khác ngườidùng ai, ngườidùng làm gì, ngườidùng đâu thiết bị tính toán ngườidùng sử dụng [11] 1.3 Hệ gợi ý 1.3.1 Định nghĩa hệ gợi ý Hệ gợi ý (Recommender system - RS)là dạng hệ thống lọc thông tin, sử dụng để dự đoán sở thích (preference) hay xếp hạng (rating) mà ngườidùng dành cho mục thông tin (item) mà họ chưa xem xét tới khứ (item sản phẩm, phim, video clip, music, sách, ) [12] nhằm gợi ý mục thông tin “có thể quan tâm” ngườidùng 1.3.2 Dự đoán hệ gợi ý Một cách hình thức, gọi U tập người dùng, I tập sản phẩm gợi ý Để dự đoán xếp hạng (hay tính tiện ích) sản phẩm i ngườidùng u người ta đưa hàm xếp hạng (rating) r: U x I -> R, R tập giá trị xếp hạng thứ tự toàn phần (ví dự số nguyên dương số thực tập xác định) Mô hình gọi với tên gọi mô hình dự đoán chiều (two-dimensional recommendation framework) Hiǹ h 1: Các thành phần tiến trình gợi ý truyền thống Với ngườidùng u ∈ U, chọn sản phẩm i ∈ I cho hàm xếp hạng ngườidùng u item i lớn ∀𝑢 ∈ 𝑈, 𝑖 ′ 𝑢 = arg max 𝑟̂ (𝑢, 𝑖) 𝑖∈𝐼 1.3.3 Các phương pháp tiếp cận truyền thống hệ gợi ý Có nhiều phương pháp tiếp cận hệ gợi ý, nhiên chia thành nhóm kỹ thuật sau: - Gợi ý dựa cộng tác (collaborative filtering - CF) - Gợi ý dựa nội dung (content-based filtering) - Gợi ý dựa cách tiếp cận kết hợp (hybrid approach) Một hệ thống lọc cộng tác truyền thống thường có kiến trúc sau: 1.3.4 Đánh giá hệ gợi ý Các tiêu chí định lượng: - Đánh giá độ xác hàm dự đoán xếp hạng (rating prediction): sai số bình phương trung bình (Mean square error – MSE), 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) [14] 𝑛 𝑀𝑆𝐸 = ∑(𝑝𝑖 − 𝑟𝑖 )2 𝑛 𝑖=1 𝑛 𝑅𝑀𝑆𝐸 = √𝑀𝑆𝐸 = √ ∑(𝑝𝑖 − 𝑟𝑖 )2 𝑛 𝑖=1 𝑛 𝑀𝐴𝐸 = ∑(𝑝𝑖 − 𝑟𝑖 ) 𝑛 𝑖=1 - Đánh giá độ xác hàm gợi ý (item recommendation): o Precision: 𝑆ố 𝑙ượ𝑛𝑔 𝑔ợ𝑖 ý 𝑝ℎù ℎợ𝑝 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑆ố 𝑙ượ𝑛𝑔 𝑔ợ𝑖 ý 𝑡ạ𝑜 𝑟𝑎 o Recall: 𝑆ố 𝑙ượ𝑛𝑔 𝑔ợ𝑖 ý 𝑝ℎù ℎợ𝑝 𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑆ố 𝑙ượ𝑛𝑔 𝑠ả𝑛 𝑝ℎẩ𝑚 đượ𝑐 𝑐ℎọ𝑛 𝑏ở𝑖 𝑛𝑔ườ𝑖 𝑑ù𝑛𝑔 o F-score: × 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 × 𝑅𝑒𝑐𝑎𝑙𝑙 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑅𝑒𝑐𝑎𝑙𝑙 hay Bresse score [15]: 𝑅𝑎𝑛𝑘𝑠𝑐𝑜𝑟𝑒𝑝 𝑅𝑎𝑛𝑘𝑠𝑐𝑜𝑟𝑒 = 𝑅𝑎𝑛𝑘𝑠𝑐𝑜𝑟𝑒𝑚𝑎𝑥 𝐹𝑠𝑐𝑜𝑟𝑒 = o Rscore 𝑅𝑎𝑛𝑘𝑠𝑐𝑜𝑟𝑒𝑝 = ∑ 2− 𝑖∈ℎ |𝑇| 𝑅𝑎𝑛𝑘𝑠𝑐𝑜𝑟𝑒𝑚𝑎𝑥 = ∑ Tiêu chí định tính: - Tính gợi ý - Tính đa dạng (Diversity) gợi ý - Độ bao phủ gợi ý - Sự hài lòng ngườidùng 1.3.5 Các thách thức hệ gợi ý truyền thống Dữ liệu thưa (sparsity) Khả mở rộng phạm vi Sản phẩm mới, ngườidùng (cold-start) Gian lận Dễ bị công Bảo mật riêng tư Một số thách thức môi trường Chương 𝑅𝑎𝑛𝑘(𝑖)−1 𝛼 2− 𝑖−1 𝛼 𝑖= HỆ GỢI Ý DỰA TRÊN NHẬN BIẾT NGỮCẢNH Các thông tin ngữcảnhngườidùng mô hình hóa tích hợp vào hệ gợi ý, hệ gợi ý dựa nhận thức ngữcảnh (Contextawareness Recommender System – CARS) [18] tính toán xếp hạng gợi ý cho ngườidùng không dựa thông tin ngườidùng sản phẩm hệ gợi ý truyền thống mà sử dụng thông tin ngữcảnh liên quan Nếu gọi Contexts tập ngữcảnh hàm gợi ý viết lại sau: r: Users x Items x Contexts -> Ratings 2.1 Cấu trúc thông tin ngữcảnh hệ gợi ý 2.1.1 Cấu trúc liệu phân cấp Thông tin ngữcảnh định nghĩa tập K chiều ngữ cảnh, chiều ngữcảnh K tập K định nghĩa tập q thuộc tính K = (K1, , Kq), K có cấu trúc phân cấp thể cho loại ngữcảnh cụ thể Ngữcảnh xác định thuộc tính Kq có mức định nghĩa thấp so với ngữcảnh xác định thuộc tính K1 Hình 2: Cấu trúc phân cấp ngữcảnh hệ gợi ý 2.1.2 Cấu trúc liệu đa chiều Nếu xem ngữcảnh chiều liệu hệ gợi ý bên cạnh chiều User, Item, biểu diễn liệu hệ gợi ý dựa ngữcảnh cấu trúc liệu đa chiều OLAP Cụ thể, gọi D1, D2, , Dn chiều liệu, hai chiều liệu User, Item, chiều liệu lại ngữcảnhDi tập tập tích Đề (Cartesian) bao gồm thuộc tính Aij, (j=1, ,ki), 𝐷𝑖 ⊆ 𝐴𝑖1 × 𝐴𝑖2 × … × 𝐴𝑖𝑘𝑖 Khi gọi S không gian gợi ý, S xác định tích đề thuộc tính D1, D2, , Dn, đồng thời hàm xếp hạng R xác định sau: 𝑅: 𝐷1 × 𝐷2 × … × 𝐷𝑛 −> 𝑅𝑎𝑡𝑖𝑛𝑔 Như hình 8, với User có Id 101, Item với id 7, đánh giá xếp hạng rating suốt tuần, R(101,7,1) = Hiǹ h 3: Cấu trúc OLAP chiều User x Item x Time hệ gợi ý 2.2 Cơ chế tích hợp ngữcảnh vào hệ gợi ý Gợi ý dựa tìm kiếm truy vấn hướngngữcảnh (context-driven querying and search): 10 Hướng tiếp cận ứngdụng rộng rãi hệ gợi ý diđộng du lịch [20,21,22] Các hệ thống theo cách tiếp cận sử dụng thông tin ngữcảnh thu thập (từ người dùng, từ thiết bị di động, ) để thực truy vấn tìm kiếm tập sản phẩm cung cấp cho ngườidùng sản phẩm phù hợp Gợi ý dựa suy luận tối ưu tham chiếu ngữcảnh (contextual preference eliction and estimation): Một hướng tiếp cận khác việc ứngdụng thông tin ngữcảnh vào hệ gợi ý gợi ý dựa suy luận tối ưu tham chiếu ngữcảnh Các kỹ thuật thuộc hướng tiếp cận cố gắng mô hình hóa học sở thích ngườidùng cách theo dõi tương tác ngườidùng cần xem xét ngườidùng khác hệ thống, cách thu thập thông tin phản hồi ngườidùng sản phẩm hệ thống gợi ý trước Các tiến trình gợi ý dựa suy luận tối ưu tham chiếu ngữcảnhngườidùng triển khai dựa chế sau (hình 9): - Lọc trước theo ngữcảnh (Contextual Pre-Filtering, hay gọi ngữcảnhhóa liệu đầu vào) - Lọc sau theo ngữcảnh (Contextual Post-Filtering, hay gọi ngữcảnhhóa liệu đầu ra) - Mô hình hóahướngngữcảnh (Contextual Modeling, hay gọi mô hình hóa theo ngữcảnh hàm gợi ý) Hiǹ h 4: Các chế tích hợp thông tin ngữcảnh vào hệ gợi ý 2.2.1 Lọc trước theo ngữcảnh (Contextual Pre-Filtering) Hàm dự đoán xếp hạng chiều với ngữcảnh thời gian (Time) định nghĩa công thức: RDUser x Item x Time: U x I x T -> Rating, D tập liệu chứa bảng ghi (user, item, time, rating) chứa thông tin xếp hạng ngườidùng Hàm dự đoán xếp hạng chiều mở rộng thông qua hàm dự đoán xếp hạng chiều theo nhiều cách theo công thức sau: 13 2.3.1 Kỹ thuật phân rã ma trận (Matrix Factorization - MF) Kỹ thuật phân rã ma trận việc chia ma trận lớn X thành hai ma trận có kích thước nhỏ W H, cho ta xây dựng lại X từ hai ma trận nhỏ xác tốt, nghĩa X ~ WHT Mục tiêu kỹ thuật phân rã ma trận X thành ma trận nhỏ W H cho ta xây dựng lại X từ ma trận này: X ~ WHT (1) Với W H ma trận con: 𝑊 = 𝑅 |𝑈|×𝐾 𝐻 = 𝑅|𝐼|×𝐾 (2) W ma trận mà dòng u vector bao gồm K nhân tố tiềm ẩn mô tả ngườidùng u; H ma trận mà dòng i vectore bao gồm K nhân tố tiềm ẩn mô tả cho item I; K: số nhân tố tiềm ẩn (lantent factors) K ≤ |U|; K ≤ |I| Gọi wuk hik phần tử tương ứng hai ma trận W H, công thức dự đoán xếp hạng người u sản phẩm I là: 𝐾 𝑟̂𝑢𝑖 = ∑ 𝑤𝑢𝑘 ℎ𝑖𝑘 = 𝑤𝑢 ℎ𝑖𝑇 𝑘=1 (3) Chi tiết giải thuật học, thực huấn luyện cho tìm hai ma trận W H tối ưu theo điều kiện (chẳn hạn RMSE – chương tổng quan) Ví dụ, hàm mục tiêu cần tối ưu là: 𝑂𝑀𝐹 = ∑ 𝑒𝑢𝑖 (𝑢,𝑖,𝑟)∈𝐷 𝑡𝑟𝑎𝑖𝑛 (4) Với: 𝐾 2 𝑒𝑢𝑖 = (𝑟𝑢𝑖 − 𝑟̂𝑢𝑖 )2 = (𝑟𝑢𝑖 − ∑ 𝑤𝑢𝑘 ℎ𝑖𝑘 ) 𝑘=1 (5) Một kỹ thuật dùng để tối ưu hóa hàm mục tiêu dùng SGD (Stochastic Gradient Descent) [34] – kỹ thuật giảm gradient ngẫu nhiên Để tối ưu hóa hàm mục tiêu, trước tiên ta khởi tạo giá trị ngẫu nhiên cho W H, sau bước cập nhật giá trị chúng hàm mục tiêu hội tụ giá trị nhỏ Để làm điều đó, ta cần phải xác định nên tăng hay nên giảm giá trị W H qua lần cập nhật, cần phải tìm đạo hàm phần chúng: 𝜕 𝑂𝑀𝐹 = −2(𝑟𝑢𝑖 − 𝑟̂𝑢𝑖 )ℎ𝑖𝑘 𝜕𝑤𝑢𝑘 14 (6) 𝜕 𝑂𝑀𝐹 = −2(𝑟𝑢𝑖 − 𝑟̂𝑢𝑖 )𝑤𝑢𝑘 𝜕ℎ𝑖𝑘 (7) Tiếp theo, ta cần giảm thiểu tối đa độ lỗi cập nhật lại giá trị cho wuk hik lặp lặp lại kỹ thuật SGD: ′ 𝑤𝑢𝑘 = 𝑤𝑢𝑘 − 𝛽 𝜕 𝑒𝑢𝑖 = 𝑤𝑢𝑘 + 2𝛽𝑒𝑢𝑖 ℎ𝑖𝑘 = 𝑤𝑢𝑘 + 2𝛽 (𝑟𝑢𝑖 − 𝑟̂𝑢𝑖 )ℎ𝑖𝑘 𝜕𝑤𝑢𝑘 (8) ′ ℎ𝑖𝑘 = ℎ𝑖𝑘 − 𝛽 𝜕 𝑒 = ℎ𝑖𝑘 + 2𝛽𝑒𝑢𝑖 𝑤𝑢𝑘 = ℎ𝑖𝑘 + 2𝛽 (𝑟𝑢𝑖 − 𝑟̂𝑢𝑖 )𝑤𝑢𝑘 𝜕ℎ𝑖𝑘 𝑢𝑖 (9) 𝛽: tốc độ học (learning rate) Sau trình tối ưu, ta có giá trị W H “Học vẹt” (overfitting) xảy mô hình dự đoán cho kết tốt liệu huấn luyện (Dtrain) cho kết liệu thử nghiệm Để giảm bớt việc học vẹt, người ta cho thêm vào hàm mục tiêu đại lượng gọi hàm tắc (Regularization) Hàm mục tiêu cần tối ưu là: 𝐾 𝑂𝑀𝐹 = ∑ (𝑢,𝑖,𝑟)∈𝐷 𝑡𝑟𝑎𝑖𝑛 (𝑟𝑢𝑖 − ∑ 𝑤𝑢𝑘 ℎ𝑖𝑘 ) + 𝜆(‖𝑊 ‖2𝐹 + ‖𝐻 ‖2𝐹 ) 𝑘=1 (10) Và giá trị W H sau tối ưu với hàm mục tiêu ta được: ′ 𝑤𝑢𝑘 = 𝑤𝑢𝑘 + 𝛽 (2𝑒𝑢𝑖 ℎ𝑖𝑘 − 𝜆𝑤𝑢𝑘 ) (11) ′ ℎ𝑖𝑘 = ℎ𝑖𝑘 + 𝛽(2𝑒𝑢𝑖 𝑤𝑢𝑘 − 𝜆ℎ𝑖𝑘 ) (12) Sau có giá trị gradient, cập nhật lại giá trị wuk hik với tốc độ học 𝛽 Lặp lại trình cập nhật giá trị W H đạt độ lỗi chấp nhận ɛ lặp lại đến số lần qui định trước Quá trình dự doán: sau trình huấn luyện ta ma trận W H tối ưu trình dự đoán (công thức 3) thực minh họa Hình 12 15 Hình 12 Minh họa cách tính dự đoán xếp hạng ngườidùng cho sản phẩm Giá trị dự đoán ngườidùng cho sản phẩm 3: P33=2.1*0.6 + 1.2*1.5=3.06 2.3.2 Kỹ thuật phân rã ma trận thiên vị (Biased Matrix Factorization – BMF) Dựa vào khái niệm sở kỹ thuật MF thêm giá trị lệch (bias) vào MF, ta thu kỹ thuật BMF [34] Khi hàm dự đoán xếp hạng ngườidùng u cho sản phẩm i biểu diễn công thức sau: 𝐾 𝒓̂𝒖𝒊 = 𝝁 + 𝒃𝒖 + 𝑏𝑖 + ∑ 𝑤𝑢𝑘 ℎ𝑖𝑘 𝑘=1 (13) Với giá trị 𝝁 giá trị trung bình toàn toàn cục, giá trị xếp hạng trung bình tất ngườidùng tất sản phẩm với tập liệu huấn luyện: ∑(𝒖, 𝒊, 𝒓) ∈ 𝑫𝒕𝒓𝒂𝒊𝒏𝑹 𝝁= |𝑫𝒕𝒓𝒂𝒊𝒏 | (14) Giá trị bu độ lệch ngườidùng (là giá trị lệch trung bình ngườidùng so với giá trị trung bình toàn cục): 𝒃𝒖 = ∑(𝒖′,𝒊,𝒓)∈𝑫𝒕𝒓𝒂𝒊𝒏 |𝒖′=𝒖(𝒓 − 𝝁) |{(𝒖′ , 𝒊, 𝒓) ∈ 𝑫𝒕𝒓𝒂𝒊𝒏 |𝒖′ = 𝒖}| (15) Giá trị bi độ lệch sản phẩm (là giá trị lệch trung bình sản phẩm so với giá trị trung bình toàn cục): 𝒃𝒊 = ∑(𝒖,𝒊′,𝒓)∈𝑫𝒕𝒓𝒂𝒊𝒏 |𝒊′=𝒊(𝒓 − 𝝁) |{(𝒖′ , 𝒊, 𝒓) ∈ 𝑫𝒕𝒓𝒂𝒊𝒏 |𝒊′ = 𝒊}| (16) 16 Quá trình dự đoán: sau trình huấn luyện ta giá trị lệch (biases) ma trận W H tối ưu, trình dự đoán thực tương tự MF, dùng công thức (13) 2.3.3 Phân rã ma trận hướngngữcảnh (Context Aware Matrix Factorization CAMF) CAMF kỹ thuật dự đoán xếp hạng dựa mô hình hóangữcảnh mở rộng từ kỹ thuật gợi ý truyền thống phân rã ma trận Kỹ thuật thuộc nhóm kỹ thuật mô hình hóangữcảnh dựa độ lệch ngữcảnh (deviationbased contextual modeling) Ta gọi CRD (Contextual Rating Deviation) độ lệch xếp hạng theo ngữ cảnh, độ lệch giá trị lệch xếp hạng ngườidùng với sản phẩm ngữcảnh khác Theo hướng tiếp cận hàm dự đoán xếp hạng tổng quát kỹ thuật dựa độ lệch xếp hạng theo ngữcảnh Rating(U,I,C) tính theo công thức sau: 𝑁 𝑅𝑎𝑡𝑖𝑛𝑔(𝑈, 𝐼, 𝐶 ) = 𝑅𝑎𝑡𝑖𝑛𝑔(𝑈, 𝐼) + ∑ 𝐶𝑅𝐷 (𝑖) 𝑖=1 (17) Nếu xem xét góc độ mô hình xếp hạng phụ thuộc vào tương quan ngườidùng yếu tố ngữcảnh (user-personalized model) ta có công thức: 𝑁 𝑅𝑎𝑡𝑖𝑛𝑔(𝑈, 𝐼, 𝐶 ) = 𝑅𝑎𝑡𝑖𝑛𝑔(𝑈, 𝐼) + ∑ 𝐶𝑅𝐷 (𝑖, 𝑈) 𝑖=1 (18) Nếu xem xét góc độ mô hình xếp hạng phụ thuộc vào tương quan sản phẩm yếu tố ngữcảnh (item-personalize) ta có công thức: 𝑁 𝑅𝑎𝑡𝑖𝑛𝑔(𝑈, 𝐼, 𝐶 ) = 𝑅𝑎𝑡𝑖𝑛𝑔(𝑈, 𝐼) + ∑ 𝐶𝑅𝐷 (𝑖, 𝐼 ) 𝑖=1 (19) Trong đó, Rating(U,I) hàm gợi ý truyền thống CRD độ lệch xếp hạng phụ thuộc yếu tố ngữcảnh Quay trở lại kỹ thuật phân rã ma trận thiên vị BMF trình bày 2.3.2, ta có công thức dự đoán xếp hạng BMF sau: 𝒓̂𝒖𝒊 = 𝝁 + 𝒃𝒖 + 𝑏𝑖 + 𝑣⃗𝑢 𝑞⃗𝑖 (20) Kỹ thuật CAMF thực thay giá trị lệch (bias) công thức BMF tương tác ngữcảnh với ngườidùngngữcảnh 17 sản phẩm [36] Khi hàm dự đoán xếp hạng CAMF tính theo công thức sau: 𝐿 𝑟̂𝑢𝑖𝑐𝑘,1𝑐𝑘,2…𝑐𝑘,𝐿 = 𝜇 + 𝑏𝑢 + ∑ 𝐵𝑖𝑗𝑐𝑘,𝑗 + 𝑣⃗𝑢 𝑞⃗𝑖 𝑗=1 (21) Giả thiết L tổng chiều ngữ cảnh, ck={ck,1ck,2 ck,L} tình ngữ cảnh, ck,j biểu diễn cho điều kiện ngữcảnh chiều ngữcảnh thứ j Do đó, 𝐵𝑖𝑗𝑐𝑘,𝑗 biểu diễn cho độ lệch xếp hạng ngữcảnh kết hợp sản phẩm i điều kiện ngữcảnh chiều ngữcảnh thứ j So sánh công thức (20) (21), ta thấy kỹ thuật CAMF đơn giản thay độ lệch bi tổng độ lệch xếp hạng ngữcảnh ∑𝐿𝑗=1 𝐵𝑖𝑗𝑐𝑘,𝑗 với giả thiết độ lệch xếp hạng ngữcảnh phụ thuộc vào sản phẩm Cách tiếp cận gọi CAMF_CI Ngoài ra, độ lệch xếp hạng ngữcảnh xét phụ thuộc vào người dùng, thành phần thay bu, cách tiếp cận gọi CAMF_CU có công thức tính tương ứng là: 𝐿 𝑟̂𝑢𝑖𝑐𝑘,1𝑐𝑘,2…𝑐𝑘,𝐿 = 𝜇 + ∑ 𝐵𝑢𝑗𝑐𝑘,𝑗 + 𝑏𝑖 + 𝑣⃗𝑢 𝑞⃗𝑖 𝑗=1 (22) Áp dụng phương pháp tối ưu RMSE, SGD tương tự thực kỹ thuật MF BMF, sau trình huấn luyện dựa tập liệu huấn luyện, ta thu giá trị tham số vector người dùng, vector sản phẩm, độ lệch người dùng/độ lệch sản phẩm độ lệch xếp hạng ngữcảnh tương ứng Cho R tập liệu huấn luyện, 𝑅 = {(𝑢, 𝑖, 𝑐1 , … , 𝑐𝑘 )|𝑟𝑢𝑖𝑐1…𝑐𝑘 𝑏𝑖ế𝑡}, 𝑟𝑢𝑖𝑐1 …𝑐𝑘 cho biết giá trị xếp hạng ngườidùng u sản phẩm i ngữcảnh c1, , ck, cj=0,1, , zj Chọn kỹ thuật CAMF_CI để triển khai tối ưu sau: Hàm dự đoán xếp hạng: 𝑘 𝑟̂𝑢𝑖𝑐1…𝑐𝑘 = 𝑣⃗𝑢 𝑞⃗𝑖 + 𝑖̅ + 𝑏𝑢 + ∑ 𝐵𝑖𝑗𝑐𝑗 𝑗=1 (23) Trong 𝑣⃗𝑢 , 𝑞⃗𝑖 vector người dùng; 𝑖̅ giá trị xếp hạng trung bình sản phẩm i tập liệu R; 𝑏𝑢 giá trị lệch sở ngườidùng u, tính theo công thức (15); 𝐵𝑖𝑗𝑐𝑗 tham số mô hình hóa tương tác ngữcảnh sản phẩm, hay gọi độ lệch xếp hạng theo ngữcảnh Cụ thể: 18 𝑖̅ = ∑ 𝑟(𝑢, 𝑖 ′ , 𝑐1 , … , 𝑐𝑘 ) ∈ 𝑅|𝑖 ′ = 𝑖 |{(𝑢, 𝑖 ′ , 𝑐1 , … , 𝑐𝑘 ) ∈ 𝑅|𝑖 ′ = 𝑖}| (24) 𝐵𝑖𝑗𝑐𝑗 = ∑[𝑟(𝑢, 𝑖 ′ , 𝑐 ′ ) − 𝑖̅]|𝑖 ′ = 𝑖, 𝑐 ′ = 𝑐𝑗 |{𝑟(𝑢, 𝑖 ′ , 𝑐 ′ ) ∈ 𝑅|𝑖 ′ = 𝑖, 𝑐 ′ = 𝑐𝑗 }| (25) Tối ưu hàm mục tiêu: 𝑘 (𝑟𝑢𝑖𝑐1…𝑐𝑘 − 𝑣⃗𝑢 𝑞⃗𝑖 − 𝑖̅ − 𝑏𝑢 − ∑ 𝐵𝑖𝑗𝑐𝑗 ) 𝑚𝑖𝑛 𝑣∗,𝑞∗,𝑏∗,𝐵∗ 𝑗=1 ∑ 𝑘 𝑟∈𝑅 𝑧𝑗 ) +𝜆 (𝑏𝑢2 + ‖𝑣⃗𝑢 ‖2 + ‖𝑞⃗𝑖 ‖2 + ∑ ∑ 𝐵𝑖𝑗𝑐 𝑗 [ 𝑗=1 𝑐𝑗 =1 ] (26) Cập nhật giá trị tham số trình tối ưu: 𝑏𝑢 ← 𝑏𝑢 + 𝛽 (𝑒𝑟𝑟 − 𝜆𝑏𝑢 ) 𝑏𝑖𝑐𝑗 ← 𝑏𝑖𝑐𝑗 + 𝛽 (𝑒𝑟𝑟 − 𝜆𝑏𝑖𝑐𝑗 ) , ∀𝑐𝑗 ≠ 0, 𝑗 = 1, … , 𝑘 𝑣𝑢 ← 𝑣𝑢 + 𝛽 (𝑒𝑟𝑟 𝑞𝑖 − 𝜆𝑣𝑢 ) 𝑞𝑖 ← 𝑞𝑖 + 𝛽 (𝑒𝑟𝑟 𝑣𝑢 − 𝜆𝑞𝑖 ) (27) Chương XÂY DỰNGỨNGDỤNG DU LỊCH THEO HƯỚNGCÁNHÂNHÓA DỰA TRÊN NGỮCẢNHNGƯỜIDÙNG 3.1 Đặt bài toán Hệ thống quản lý, lưu trữ địa điểm du lịch hấp dẫn Việt Nam cho phép ngườidùng tìm kiếm địa điểm du lịch Hệ thống hiển thị địa điểm du lịch theo nhu cầu ngườidùng quan tâm Hệ thống có chức cho ngườidùng đánh giá, like comment cho địa điểm du lịch Đặc biệt hệ thống tự động thu thập liệu ngườidùng để đưa gợi ý địa điểm du lịch hợp lý với ngữcảnhngườidùng 3.2 Giải pháp đề xuấ t 3.2.1 Mô hiǹ h kiế n trúc ứng du ̣ng Hệ thống xây dựng gồm thành phần sau đây: - Ứngdụng client: 19 o Phần client xây dựng tảng Android sử dụng ngôn ngữ Java Android SDK o Thu thập thông tin ngữcảnhngườidùng o Gửi thông tin ngữcảnh server, yêu cầu phía server dự đoán xếp hạng nhận danh sách gợi ý từ server - Phần server: o Phần server quản lý địa điểm du lịch tác độngngườidùng quản lý user xác thực hệ thống o Nhận biết chuẩn hóangữcảnhngười dùng, xây dựng liệu ngữcảnh theo định dạng chuẩn trước gửi sang hệ gợi ý để tiến hành trình học xây dựng hàm dự đoán xếp hạng o Thành phần gợi ý: dựa framework mã nguồn mở CARSkit Framework Mô hình thiết kế hệ thống: Hình 6: Kiến trúc thiết kế hệ thống 3.2.2 Thiết kế ứng du ̣ng 3.2.2.1 Sơ đồ ca ngườ i dù ng Hình 7: Thiết kế user case 20 3.2.2.2 Thiết kế mô hình sở dữ liệu Mô hình thực thể quan hệ quản lý người dùng: Hình 8: Mô hình thực thể quan hệ quản lý user Mô hình thực thể quan hệ quản lý địa điểm du lịch gợi ý người dùng: Hiǹ h 9: Mô hình thực thể quan hệ quản lý địa điểm gợi ý 21 3.2.3 Môi trường xây dựng và thử nghiê ̣m Phần server xử lý liệu ngườidùng gồm module: Xác thực Recomender, có cấu sau: - Hardware: o CPU: Dual-Core AMD Opteron(tm) Processor 1222 (3.0 Hz) core Thread o RAM: 4G - OS: o Red Hat Enterprise Linux Server release 5.7 o 64 bit - MYSQL o Version: 5.1.73 - Java: o Version "1.8.0_51" - Tomcat o Version 7.0.70 Client: - Android SDK - Min version: 4.0.0 3.3 Thử nghiê ̣m ứng du ̣ng và đánh giá kế t quả ta ̣i Mobifone Tập liệu địa điểm du lịch đầu vào xây dựng dựa thông tin địa điểm du lịch Việt Nam từ nguồn internet, liệu ngữcảnh giá trị xếp hạng ban đầu hệ thống xây dựng tự động theo phương pháp ngẫu nhiên Các liệu sau chuẩn hóa đưa vào lưu CSDL với cấu trúc liệu nhiều chiều liệu xếp hạng ngườidùng theo ngữ cảnh: UID | PID | RATE | COMPANION | SEASON | DAYTIME | WEATHER | TEMPERATURE Hình 10: Dữ liệu rating lưu CSDL 22 Hình 11: Dữ liệu địa điểm lưu CSDL Dữ liệu traning bao gồm: - Số lượng địa điểm: 42 địa điểm - Số lượng user: 50 - Số lượng rating: 1000 - Số lượng yếu tố tiềm ẩn: K = 10 - Chỉ số learning rate alpha: < α ≤ - Chỉ số chuẩn hóa beta: < β ≤ - Chỉ số Interval: 100 3.3.1 Kế t quả ứng du ̣ng - Màn hình đăng ký đăng nhập: Hiǹ h 12: Giao diện xác thực ngườidùng - Màn hình home ( hình client thu thập thông tin ngữcảnh gồm vị trí, thời gian, thời tiết) hiển thị danh sách địa điểm du lịch gới ý cho ngườidùng dựa ngữcảnh thu thập (client gửi 23 liệu server để tính toán dự đoán xếp hạng nhận gợi ý hệ thống trả lại cho người dùng): Hình 13: Giao diện home client - Màn hình gợi ý ( dựa ngữcảnh tĩnh ngườidùng lựa chọn để đưa địa điểm du lịch phù hợp) Hình 14: Giao diện nhập thông tin ngữcảnh tĩnh gợi ý - Màn hình thông tin ngườidùng đăng xuất khỏi ứngdụng 24 3.3.2 Đánh giá thử nghiê ̣m Đánh giá tốc độ tính toán hệ thống: Lần Thời gian Thời gian học Thời gian thu thực học (ms) đưa gợi ý (ms) thập liệu từ (T1) (T2) CSDL (ms) (T3) Lần 1936 97 Lần 2900 16 Lần 781 1724 20 Lần 2438 16 Lần 2042 26 Trung bình Bảng 3: Đánh giá thời gian thực Tổng thời gian (ms) (T1)+(T2)+(T3) 2814 3697 2525 3235 2849 2377 Đánh giá độ xác dự đoán theo RMSE so sánh CAMF_CU BPMF (Bayesian Probabilistic Matrix Factorization): Tham số CAMF_CU BPMF Lần thực 0.94008 1.06854 0.95678 1.06468 0.96924 1.03847 0.95791 1.07317 0.96967 1.05508 0.96027 1.02787 0.94744 1.05255 0.97139 1.03496 0.95778 1.04715 0.93789 1.04727 10 Bảng 4: Đánh giá độ xác dự đoán So sánh RMSE CAMF_CU & BPMF 001.100 001.050 001.000 000.950 000.900 000.850 10 CAMF_CU 000.940 000.957 000.969 000.958 000.970 000.960 000.947 000.971 000.958 000.938 BPMF 001.069 001.065 001.038 001.073 001.055 001.028 001.053 001.035 001.047 001.047 CAMF_CU BPMF Hình 15: So sánh độ xác CAMF & BPMF theo RMSE 25 TÀI LIỆU THAM KHẢO Albrecht Schmidt, Michael Beigl, and Hans-W Gellersen, “There is more to Context than Location”, University of Karlsruhe Schmidt, A., Aidoo, K.A., Takaluoma, A, Tuomela, U., Van Laerhoven, K., Van de Velde, W (1999), “Advanced Interaction In Context” Lecture Notes in Computer Science, Hand Held and Ubiquitous Computing , P.J Brown and J.D Bovey and C Xian (1997), “Context-aware applications: from the laboratory to the marketplace”, IEEE Personal Communications, 4(5) A.Newell and H.A Simon (1965), “Computer Augmentation of Human Reasoning” Spartan Books, Washington DC, USA G Chen and D Kotz (2000), “A Survey of Context-Aware Mobile Computing Research”, Techreport TR2000-381, Dept of Computer Science, Dartmouth College Albrecht Schmidt (2002), “Ubiquitous Computing –Computing in Context”, Computing Department, Lancaster University, U.K Karen Henricksen (2005), “Modelling and Using Imperfect Context Information”, School of Information Technology and Electrical Engineering, The University of Queensland A.Schilit, N Adams, and R Want (1994), “Context-aware computing applications”, In IEEE Workshopon Mobile Computing Systems and Applications Pashtan A., Blattler R., Heusser A and Scheurmann P (2003), “CATIS: A Context-Aware Tourist Information System”, Proceedings of the 4th International Workshop of Mobile Computing, Rostock 10 Anind K Dey (2000), “Providing Architectural Support for Building ContextAware Applications”, Georgia Institute of Technology, November 11 Yun Her, Su-Kyoung Kim, YoungTaek Jin (2010), “A Context-Aware Framework using Ontology for Smart Phone Platform”, International Journal of Digital Content Technology 12 Nguyen Thai-Nghe 2013 An introduction to factorization technique for building recommendation systems Vol.6/2013, pp 44-53, Journal of Science - University of Da Lat, ISSN 0866-787X 13 Francesco Ricci, Lior Rokach, Bracha Shapira, and Paul B Kantor 2010 Recommender Systems Handbook (1st ed.) Springer-Verlag New York, Inc., New York, NY, USA 14 Herlocker, J.L., Konstan, J.A., Terveen, K., et al (2004) Evaluating Collaborative Filtering Recommender Systems ACM Transactions on Information and Systems, 22, 5-53 15 Empirical analysis of predictive algorithms for collaborative filtering, JS Breese, D Heckerman, C Kadie - Proceedings of the Fourteenth conference on …, 1998 16 G Adomavicius and a Tuzhilin, “Toward the Next Generation of Recommender Systems: a Survey of the State of the Art and Possible Extensions,” IEEE Trans Knowl Data Eng., vol 17, no 6, pp 734–749, 2005 26 17 A.M Rashid, I Albert, D Cosley, S K Lam, S M McNee, J a Konstan, and J Riedl, “Getting to Know You: Learning New User Preferences in Recommender Systems,” Int Conf Intell User Interfaces, IUI 2002, pp 127– 134, 2002 18 Gediminas Adomavicius, Alexander Tuzhilin Context-Aware Recommender Systems, Recommender Systems Handbook 2011, pp 217-253 Spinger 19 J L Herlocker and J A Konstan Content-independent task-focused recommendation IEEE Internet Computing, pages 40–47, 2001 20 S Abbar, M Bouzeghoub, and S Lopez Context-aware recommender systems: A serviceoriented approach VLDB PersDB Workshop, 2009 21 F Cena, L Console, C Gena, A Goy, G Levi, S Modeo, and I Torre Integrating heterogeneous adaptation techniques to build a flexible and usable mobile tourist guide AI Communications, 19(4):369–384, 2006 22 S Chaudhuri and U Dayal An overview of data warehousing and olap technology ACM Sigmod record, 26(1):65–74, 1997 23 G D Abowd, C G Atkeson, J Hong, S Long, R Kooper, and M Pinkerton Cyberguide: A mobile context-aware tour guide Wireless Networks, 3(5):421– 433, 1997 24 K Cheverst, N Davies, K Mitchell, A Friday, and C Efstratiou Developing a contextaware electronic tourist guide: some issues and experiences In Proceedings of the SIGCHI conference on Human factors in computing systems, pages 17–24 ACM, 2000 25 L Ardissono, A Goy, G Petrone, M Segnan, and P Torasso Intrigue: personalized recommendation of tourist attractions for desktop and hand held devices Applied Artificial Intelligence, 17(8):687–714, 2003 26 M Van Setten, S Pokraev, and J Koolwaaij Context-aware recommendations in the mobile tourist application compass In W Nejdl and P De Bra, editors, Adaptive Hypermedia, pages 235–244 Springer Verlag, 2004 27 B.De Carolis, I Mazzotta, N Novielli, and V Silvestri Using common sense in providing personalized recommendations in the tourism domain In Workshop on Context-Aware Recommender Systems (CARS 2009) New York, 2009 28 G Adomavicius, R Sankaranarayanan, S Sen, and A Tuzhilin Incorporating contextual information in recommender systems using a multidimensional approach ACM Transactions on Information Systems (TOIS), 23(1):103–145, 2005 29 K Oku, S Nakajima, J Miyazaki, and S Uemura Context-aware SVM for context-dependent information recommendation In Proceedings of the 7th International Conference on Mobile Data Management, page 109, 2006 30 U Panniello, A Tuzhilin, M Gorgoglione, C Palmisano, and A Pedone Experimental comparison of pre-vs post-filtering approaches in context-aware recommender systems In Proceedings of the 3rd ACM conference on Recommender systems, pages 265–268 ACM, 2009 31 Z Yu, X Zhou, D Zhang, C Y Chin, X Wang, and J Men Supporting context-aware media recommendations for smart phones IEEE Pervasive Computing, 5(3):68–75, 2006 27 32 B Sarwar, G Karypis, J Konstan, and J Reidl Item-based collaborative filtering recommendation algorithms In Proceedings of the 10th international conference on World Wide Web, pages 285–295 ACM, 2001 33 G Adomavicius and A Tuzhilin Incorporating context into recommender systems using multidimensional rating estimation methods In Proceedings of the 1st International Workshop on Web Personalization, Recommender Systems and Intelligent User Interfaces (WPRSIUI 2005), 2005 34 Yehuda Koren, Robert Bell, and Chris Volinsky 2009 Matrix Factorization Techniques for Recommender Systems Computer 42, (August 2009), 30-37 DOI=10.1109/MC.2009.263 35 Y Koren Collaborative filtering with temporal dynamics In Proceedings of the 15th ACM SIGKDD international conference on Knowledge Discovery and Data mining, KDD ’09, pages 447–456, New York, NY, USA, 2009 ACM 36 Baltrunas, Ludwig, Ricci Matrix Factorization Techniques for Context Aware Recommendation, RecSys 2011 37 Yong Zheng, Bamshad Mobasher, Robin Burke CARSKit: A Java-Based Context-aware Recommendation Engine ... Tổng quan cá nhân hóa dịch vụ di động hướng ngữ cảnh Chương 2: Hệ gợi ý dựa nhận biết ngữ cảnh Chương 3: Xây dựng ứng dụng du lịch theo hướng cá nhân hóa dựa ngữ cảnh người dùng ứng dụng MobiFone... văn hướng đến mục tiêu nghiên cứu xây dựng giải pháp cá nhân hoá ứng dụng dịch vụ động theo mô hình hướng ngữ cảnh thời người dùng, áp dụng kỹ thuật gợi ý dựa thông tin ngữ cảnh xây dụng ứng dụng. .. nhận biết ngữ cảnh lợi ích việc cá nhân hóa ứng dụng di động Nhận biết ngữ cảnh lên cách tiếp cận phổ biến cho việc xây dựng ứng dụng môi trường tính toán nơi di động, có khả thích ứng cách tự