THUẬT TOÁN xếp HẠNG địa điểm TRONG các ỨNG DỤNG DỊCH vụ dựa TRÊN địa điểm (LBS) có CHÚ ý tới đặc điểm RIÊNG NGƯỜI DÙNG

74 289 0
THUẬT TOÁN xếp HẠNG địa điểm TRONG các ỨNG DỤNG DỊCH vụ dựa TRÊN địa điểm (LBS) có CHÚ ý tới đặc điểm RIÊNG NGƯỜI DÙNG

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Mục lục Lời Cam Đoan Danh Mục Các Ký Hiệu, Các Chữ Viết Tắt Danh Mục Các Bảng Danh Mục Các Hình Vẽ, Đồ Thị PHẦN MỞ ĐẦU Chương 1: Tổng quan dịch vụ mạng xã hội dựa đia điểm 10 1.1 Yelp 13 1.2 Foursquare 16 Chương 2: Tổng quan toán xếp hạng 20 2.1 Khái niệm chung toán xếp hạng 20 2.2 Hệ thống gợi ý 22 2.3 Một số thuật toán xếp hạng 25 2.3.1 Facebook’s Edge Rank 26 2.3.2 Twitter TunkRank 29 2.3.3 HITS (Hypertext Induced Topic Search) 32 sở lý thuyết 34 2.4 2.4.1 Định nghĩa Entropy 34 2.4.2 Location Entropy 36 Ý tưởng phát triển hệ thống xếp hạng địa điểm 38 2.5 Chương 3: Hệ thống xếp hạng địa điểm 39 Kiến trúc hệ thống xếp hạng địa điểm 39 3.1 3.1.1 Tổng quan cấu trúc liệu mạng xã hội dựa địa điểm 39 3.1.2 Kiến trúc hệ thống xếp hạng địa điểm 40 3.1.2.1 Batch Layer 40 3.1.2.2 Serving Layer 43 Thuật toán mô hình sử dụng 43 3.2 3.2.1 Trust-based collaborative filtering 43 3.2.2 Interest-based collaborative filtering 45 3.2.3 Thuật toán lựa chọn ứng viên dựa sở thích 46 01 3.2.3.1 Xác định local experts 46 3.2.3.2 Khai phá sở thích cá nhân hóa 49 3.2.3.3 Thuật toán lựa chọn ứng viên dựa sở thích 51 3.2.4 Mô hình suy diễn đánh giá địa điểm 52 3.2.5 FP (Frequency Pattern) Growth Model 55 Chương 4: Cài đặt đánh giá 58 4.1 Tập liệu 58 4.2 Cài đặt đánh giá kết 60 4.2.1 Cài đặt kết 60 4.2.2 Phân tích kết mô hình 63 4.2.3 So sánh đánh giá mô hình 64 Chương 5: Kết luận hướng phát triển 66 Tài liệu tham khảo 67 Phụ Lục 69 02 Lời Cam Đoan Tôi – Ngô Văn Vĩ- cam kết Luận Văn công trình nghiên cứu thân hướng dẫn TS Nguyễn Khanh Văn Các kết nêu Luận Văn trung thực, chép toàn văn công trình khác Hà Nội, ngày 27 tháng 08 năm 2015 Tác giả Luận Văn Ngô Văn Vĩ 03 Danh Mục Các Ký Hiệu, Các Chữ Viết Tắt Ký Hiệu HITS TCF ICF LBS Viết Tắt Hypertext Induced Topic Search Trust-based collaborative filtering Interest-based collaborative filtering Location Based Service 04 Danh Mục Các Bảng Bảng 1: Thống kê thông tin tập liệu thực nghiệm 59 Bảng 2: Thông kê thể loại tập liệu thực nghiệm 59 Bảng 3: Kết đánh giá mô hình 63 05 Danh Mục Các Hình Vẽ, Đồ Thị Hình 1: Tháp nhu cầu maslow 10 Hình 2: Một số mạng xã hội dựa địa điểm 12 Hình 3: Trang chủ Yelp 14 Hình 4: Xếp hạng địa điểm theo sổ rating 15 Hình 5: Xếp hạng địa điểm phổ biến mà người thăm 16 Hình 6: Trang chủ mạng xã hội Foursquare 17 Hình 7: Xếp hạng địa điểm theo sở thích 18 Hình 8: Tính gợi ý địa điểm tới 19 Hình 9: Mô hình xếp hạng chung 21 Hình 10: Mô hình gợi ý dựa lọc kết hợp 24 Hình 11: Các mô hình phương pháp lọc kết hợp 24 Hình 12 : Sự phát triển người dùng Facebook 27 Hình 13: Công thức EdgeRank 28 Hình 14: Thống kê số lượng tweets hàng ngày Twitter 30 Hình 15: Graph biểu thị liên kết nút 33 Hình 16: Luồng xử lý thuật toán HITS 33 Hình 17: Hàm entropy nhị phân 36 Hình 18: Kiến trúc hệ thống 41 Hình 19: Mô hình xác định local experts 42 Hình 20: Mô hình trích rút sở thích người dùng 42 Hình 21: mô hình tương tác người dùng vị trí 47 Hình 22: Đồ thị tương tác người dùng vị trí 47 Hình 23: Ma trận biểu diễn từ đồ thị tương tác người dùng vị trí 48 Hình 24: Biểu diễn phân cấp sở thích người dùng 50 Hình 25: Cây phân cấp sở thích người dùng 54 Hình 26: Mô hình đánh giá hiệu mô hình xếp hạng 63 06 PHẦN MỞ ĐẦU Trong năm gần đây, bối cảnh Internet phổ biến toàn cầu Cùng lúc dịch vụ mạng xã hội phát triển Điều giúp người dùng dễ dàng chia sẻ thông tin, kết nối với bạn bè từ nhiều vùng miền toàn giới, đồng nghĩa với việc người dùng tiếp nhận lượng thông tin cực lớn từ mạng xã hội Người dùng nhu cầu sử dụng dịch vụ để tìm kiếm thông tin hữu ích, doanh nghiệp, cửa hàng dịch vụ mạng xã hội nơi họ giới thiệu quảng bá dịch vụ họ người dùng Trong số mạng xã hội chung nhất, phải kể đến phát triển bùng nổ mạng xã hội theo chủ đề, đặc biệt mạng xã hội dựa địa điểm Đối với mạng xã hội dựa địa điểm, nơi cung cấp cho người dùng thông tin địa điểm Nó giúp người dùng dễ dàng tìm kiếm địa điểm theo nhu cầu cá nhân mua sắm, ăn uống, xem phim Đối với doanh nghiệp, cửa hàng, mạng xã hội dựa địa điểm nơi họ giới thiệu, quảng bá dịch vụ nơi mà doanh nghiệp tiếp nhận phản hồi nhanh từ phía người dùng Vì vậy, luận văn này, tập trung giới thiệu dịch vụ mạng xã hội địa điểm Do bùng nổ thông tin, lượng thông tin dịch vụ dựa địa điểm phát triển nhanh chóng bao gồm lượng thông tin chia sẻ số lượng người dùng tham gia vào hệ thống Nhưng lúc này, người dùng gặp phải khó khăn việc tìm kiếm lựa chọn thông tin Vì vậy, dịch vụ mạng xã hội địa điểm cần cung cấp cho người dùng tính công cụ giúp người dùng dễ dàng tìm kiếm, dễ dàng lựa chọn thông tin phù hợp Trong luận văn này, trình bày số mô hình thuật toán xếp hạng địa điểm ý tới đặc điểm người dùng Đây thuật toán quan trọng sử dụng toán tìm kiếm thông tin toán gợi ý Nó giúp người dùng dễ dàng tìm kiếm chọn lựa địa điểm tốt nhất, phù hợp với sở thích của người dùng 07 Đề xây dựng mô hình xếp hạng địa điểm, trước tiên người viết luận văn cần tìm hiểu nghiên cứu:  Tìm hiểu tổng quan mạng xã hội địa điểm, giới thiệu mạng xã hội địa điểm tiếng tính chúng Từ đó, nhận thấy mô hình xếp hạng địa điểm cần thiết dịch vụ mạng xã hội địa điểm  Tiếp theo người viết luận văn nghiên cứu tổng quan hệ thống xếp hạng hệ thống gợi ý Ngoài ra, người viết luận văn giới thiệu số mô hình xếp hạng xây dựng áp dụng số mạng xã hội tiếng giới  Để xây dựng mô hình xếp hạng địa điểm liên quan đến sở thích người dùng, người viết luận văn cần nghiên cứu kỹ thuật phân tích sở thích người dùng Từ sở thích người dùng, mô hình xếp hạng đưa xác địa điểmngười dùng quan tâm  Dựa kiến thức sở, người viết luận văn nghiên cứu số mô hình đánh giá xếp hạng địa điểm dựa theo sở thích người dùng cụ thể Trong qua trình làm luận văn, người viết luận văn thực được:  Tìm hiểu tổng quan dịch vụ dựa địa điểm  Tìm hiểu tổng quan mô hình xếp hạng toán gợi ý, giúp nhìn nhận tầm quan trọng toán xếp hạng Ngoài ra, người viết luận văn tìm hiểu số mô hình xếp hạng số mạng xã hội tiếng Twitter Facebook  Tìm hiểu kỹ thuật phân tích sở thích người dùng  Nghiên cứu số mô hình đánh giá, xếp hạng địa điểm dựa theo sở thích người dùng  Cài đặt thử nghiệm đánh giá số mô hình 08 Sau đây, tác giả trình bày bố cục luận văn sau: Ngoài phần mở đầu, kết luận, danh mục tài liệu tham khảo phụ lục, nội dung luận văn xây dựng thành bốn chương Chương 1: Tổng quan dịch vụ mạng xã hội dựa địa điểm Ở chương một, người viết luận văn trình bày tổng quan dịch vụ mạng xã hội địa điểm Người viết giới thiệu hai mạng xã hội dựa địa điểm tiếng Yelp Foursquare tính chúng Từ đó, nhận thấy toán xếp hạng địa điểm cần thiết cho ứng dụng mạng xã hội dựa địa điểm Chương 2: Tổng quan toán xếp hạng Ở chương này, người viết giới thiệu tổng quan toán xếp hang Khái niệm mô hình toán xếp hạng tổng quát Ngoài ra, người viết luận văn giới thiệu toán gợi ýtoán xếp hạng cốt lõi toán Phần cuối chương, người viết trình bày hai thuật toán xếp hạng hai mạng xã tiếng Facebook Twitter thuật toán xếp hạng trang web tiếng HITS Chương 3: Kiến trúc hệ thống mô hình xếp hạng Trong chương 3, người viết luận trình bày thiết kế kiến trúc hệ thống cho toán xếp hạng số mô hình xếp hạngngười viết luận văn tìm hiểu nghiên cứu Chương 4: Kết đánh giá Trong chương 4, người viết đưa kết đánh giá từ việc cài đặt mô hình xếp hạng Và tác giả đưa nhận xét mô ưu nhược điểm chúng 09 Chương 1: Tổng quan dịch vụ mạng xã hội dựa đia điểm Trước vào giới thiệu dịch vụ mạng xã hội dựa địa điểm, giới thiệu nhìn nhu cầu người dùng Để thấy việc mạng xã hội, mạng xã hội dựa địa điểm phát triển nhanh chóng thời buổi Internet phát triển ngày điều tất yếu Trước tiên, xem xét tháp nhu cầu Maslow [12] , nhu cầu “thể lý” ăn uống, nghỉ ngơi Người dùng nhu cầu thể thân, kết nối chia sẻ với cộng đồng Hình 1: Tháp nhu cầu maslow Chính thế, mạng xã hội phát triển nhằm đáp ứng phần nhu cầu người dùng Khi bùng nổ thông tin mạng internet, người dùng cần xu hướng chọn lọc thông tin tốt Và xã hội phát triển, người dùng nhu cầu thiết yếu 10 - Recall: Tỷ lệ tập địa điểm khôi phục lại tập bị xóa (từ tập liệu lịch sử người dùng) 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑆ố 𝑙ượ𝑛𝑔 𝑣ị 𝑡𝑟í đượ𝑐 𝑘ℎô𝑖 𝑝ℎụ𝑐 (𝑡𝑟𝑜𝑛𝑔 𝑠ố 𝑣ị 𝑡𝑟í 𝑏ị 𝑥ó𝑎) 𝑆ố 𝑙ươ𝑛𝑔 𝑘 𝑣ị 𝑡𝑟í 𝑔ợ𝑖 ý 𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑆ố đị𝑎 đ𝑖ể𝑚 đượ𝑐 𝑘ℎô𝑖 𝑝ℎụ𝑐 𝑇ổ𝑛𝑔 𝑠ố 𝑣ị 𝑡𝑟í 𝑏ị 𝑥ó𝑎 (4.1) (4.2) 4.2 Cài đặt đánh giá kết 4.2.1 Cài đặt kết Trong trình làm luận văn thử nghiệm mô hình trình bày luận văn bao gồm mô hình TCF, ICF, FP-Growth, Rating Inference Ngoài ra, tham khảo kết đánh giá từ báo nghiên cứu mô hình Những mô hình dược cài đặt thử nghiệm máy tính cấu sau:  Core duo  GB Ram  Windows a Mô tả cài đặt: Trong luận văn, thử nghiệm tất mô hình Trong đó, tự cài đặt thử nghiệm ba mô hình (TCF, ICF, Rating Inference) với mô hình FP-Growth, sử dụng thư viện MLLib [18] (được tích hợp tảng tính toán phân tán apache spark) để thử nghiệm tập liệu Tiếp theo, trình bày cách cài đặt mô hình Bước 1: Thực tiền xử lý liệu Đây bước tiền xử lý liệu trước qua mô hình xếp hạng Dữ liệu cần tiền xử lý tính toán offline trước qua mô hình 60 Các thông tin cần xử lý tính toán trước sau:  Trích rút thông tin thể loại (Category): trích rút thông tin thể loại, tính toán số lượng thăm thể loại số lượng người dùng thăm thể loại  Tiền xử lý liệu bạn bè: trích rút thông tin người dùng Tính toán số lượng bạn bè người dùng tính toán số lượng người dùng hệ thống  Tiền xử lý liệu vị trí (Venue): trích rút thông tin vị trí Xây dựng ma trận biểu diễn số lượng thăm vị trí người dùng với địa điểm  Tiền xử lý liệu mẹo (Tips): tính toán số lượng thăm người dùng theo thể loại, theo vị trí, số lượng tổng Bước 2: Thực xếp hạng địa điểm qua mô hình Trong phần này, mô tả lại bước cài đặt mô hình Phần mã nguồn cài đặt trình bày phần Phụ Lục luận văn  Mô hình TCF Dưới đây, mô tả bước cài đặt mô hình TCF:  Tính độ thân thiết người dùng cần gợi ý địa điểm với tập người dùng lại hệ thống Sử dụng công thức 3.1 để tính giá trị  Tính điểm người dùng cho địa điểmngười dùng chưa tới thăm Sử dụng công thức 3.2 để tính giá trị  Xếp hạng địa điểm theo điểm tính từ công thức 3.2  Mô hình ICF Dưới đây, mô bước cài đặt mô hình ICF:  Sử dụng công thức 3.3 để tính độ tương tự hai người dùng  Tính điểm người dùng cần gợi ý địa điểm cho địa điểmngười chưa tới thăm cách sử dụng công thức 3.4  Xếp hạng địa điểm theo điểm tính từ công thức 3.4  Mô hình Rating Inference 61 Dưới đây, mô tả bước cài đặt mô hình Rating Inference:  Xác định chuyên gia địa phương: sử dụng giải thuật HITS để suy diễn  Xây dựng phân cấp sở thích người dùng sử dụng công thức TFIDF trình bày công thức 3.9  Sử dụng thông tin chuyên gia địa phương phân cấp sở thích, sử dụng thuật toán lựa chọn vị trí tiềm  Tiếp theo, tính độ tương tự hai người dùng sử dụng công thức 3.12  Suy diễn đánh giá người dùng với vị trí tiềm công thức 3.13 Từ xếp hạng địa điểm theo điểm đánh giá cho người dùng  Mô hình FP-Growth Trong luận văn, sử dụng thư viện MLLib để thử nghiệm thuật toán Tôi thực bước mô hình sau:  Tiền xử lý liệu phù hợp với cấu trúc liệu thư viện MLLib  Sử dụng mô hình FP-Growth đưa cặp mẫu thường xuyên  Dựa tần xuất cặp mẫu, hệ thống xếp hạng địa điểm tới thăm cho người dùng b Phương thức đánh giá kết thực nghiệm: Trên thực tế để đánh giá hiệu mô hình xếp hạng hiệu thực tế khó khăn Tùy thuốc vào thời điểm điều chỉnh cách phú hợp Vì vậy, luận văn đánh giá tập liệu mẫu cách sau:  Lấy ngẫu nhiên tập người dùng test: 10 người dùng (chỉ lấy users vị trí tới thăm)  Xóa nửa lượng tới thăm người dùng tập người dùng test Một nửa lại sử dụng làm liệu huấn luyện cho mô hình đánh giá sở thích người dùng 62  Thử nghiệm tập người dùng mô hình, đánh giá kết qua hai độ đo Precision Recall Hình 26: Mô hình đánh giá hiệu mô hình xếp hạng Dưới kết từ mô hình mà giới thiệu luận văn Model TCF ICF FP-GrowTh Rating Inference (có kết hợp thuật toán lựa chọn ứng viên tiềm local experts) Precision 0.08 0.2 N/A 0.8 Recall 0.085 0.1 N/A 0.21 Bảng 3: Kết đánh giá mô hình 4.2.2 Phân tích kết mô hình Trong phần này, người viết luận văn phân tích kết từ mô hình Từ phân tích người viết luận văn đưa so sánh đánh giá mô hình phần a Mô hình TCF Từ kết bảng 3, mô hình TCF cho kết tồi Trong mô hình này, tác giả thử nghiệm ưu tiên kết nối bạn bè sở thích (để trọng số bạn bè chung 0.8 trọng số địa điểm tới thăm chung 0.2) Vì kết tồi mô hình 63 thiếu chi tiết kết nối bạn bè tập liệu Theo mô hình bạn bè chung tác động lớn tới việc tới việc tới thăm chung vị trí hai người bạn b Mô hình ICF Từ kết bảng 3, mô hình ICF cho kết Trong mô hình người viết luận văn sử dụng lịch sử tới thăm người dùng Từ xếp hạng địa điểm tới thăm cho người dùng Khi hai người dùng tỷ lệ vị trí tới thăm lớn khả thích tới vị trí sau nhiều c Mô hình FP-Growth Từ kết bảng 3, mô hình FP-Growth không đưa kết đánh giá Nguyên nhân tập liệu mà người viết luận văn thử nghiệm, tỷ lệ tới thăm vị trí thưa, nên đưa mẫu tần suất tới thăm giống Vì thế, với mô hình hiệu với liệu lớn d Mô hình Rating Inference Từ kết bảng 3, mô hình Rating Inference kết tốt Nó kết hợp yếu tố sau:  Sở thích người dùng: phân tích sở thích người dùng tới chi tiết mức thể loại địa điểm tính đến yếu tố bên ngoài: thông tin chuyên gia địa phương  tính đến độ tin cậy người dùng tới vị trí thông qua lịch sử thăm người dùng Mô hình kết tốt áp dụng cho ứng dụng thực tế 4.2.3 So sánh đánh giá mô hình Từ bảng kết phía sau thử nghiệm mô hình xếp hạng, vài nhận xét mô sau:  Mô hình Rating Inference tốt mô hình ICF Mô hình TCF liệu mà sử dụng  Mô hình FP-Growth không đánh giá kết sử dụng với liệu thể tập liệu sử dụng chưa đủ mẫu cần thiết để đưa cặp item thường xuyên với 64 Ngoài kết qua đạt từ mô hình trên, trình bày ưu điểm nhược điểm mô hình trên, cách khắc phục vấn đề hay gặp phải Ưu điểm:  Xếp hạng địa điểm theo sở thích người dùng (sử dụng thông tin sở thích người dùng)  Mô hình Rating Inference tính tới sở thích người dùng tính tới thông tin toàn thể (thông tin thể loại địa điểm, thông tin chuyên gia địa phương)  khả thực trực tuyến  Kết tốt tập liệu thử nghiệm (Trừ mô hình FP-Growth Model) Nhược điểm: Ở phương pháp gặp phải tương cold-start Đây tượng xảy người dùng tham gia vào hệ thống Từ hệ thống xếp hạng khó đưa gợi ý địa điểm cho người dùng Để khắc phục vấn đề cold-start sử dụng số mô hình khác mô hình dựa địaNgười dùng thường xu hướng tới vị trí gần nơi họ sống, làm việc chiến lược gợi ý cho người dùng đưa vị trí gần với người dùng Trên thực tế, hệ thống địa điểm đưa số chiến lược xếp hạng địa điểm theo số chiến lược sau: tỷ lệ xem nhiều, tỷ lệ người check-in nhiều… Từ dựa phản hồi từ phía người dùng, hệ thống xếp hạng huấn luyện đưa gợi ý phù hợp dựa đặc điểm người dùng 65 Chương 5: Kết luận hướng phát triển 5.1 Kết luận Trong luận văn này, kết đạt mục tiêu đề đề tài:  Luận văn tìm hiểu chung dịch vụ mạng xã hội dựa địa điểm  Luận văn tìm hiểu số hệ thống xếp hạng hệ thống thực giới  Luân văn giới thiệu kỹ thuật khai phá sở thích người dùngTrong luận văn tìm hiểu số mô hình xếp hạng đại điểm cho cá nhân người dùng  Luận văn cài đặt đánh giá số mô hình đề xuất báo cáo 5.2 Hướng phát triển Trong trình tìm hiểu, nhận thấy với toán gợi ý thường xuyên phải gặp đề cold-start Đó vấn đề xếp hạng gợi ý địa điểm cho người dùng hoàn toàn Để khắc phục vấn đề đó, đưa hướng phát triển để cải thiện vấn đề này, cải thiện độ xác cho mô hình xếp hạng địa điểm tốt  Sử dụng mô hình địa lý  Kết hợp phân tích nội dung tips cho địa điểm: Phân tích quan điểm người dùng tới địa điểm (tốt, xấu)  Nghiên cứu kết hợp mô hình lại với Đánh giá mô hình sử dụng 66 Tài liệu tham khảo [1] Jie Bao, Yu Zheng and Mohamed F Mokbel "Location-based and Preference-Aware Recommendation Using Sparse Geo-Social Networking Data" In ACM SIGSPATIAL (GIS 2012), Redondo Beach, CA, US, 2012 [2] Ling-Yin Wei,Yu Zheng, Wen-Chih Peng "Constructing Popular Routes from Uncertain Trajectories" In 18th SIGKDD conference on Knowledge Discovery and Data Mining (KDD 2012) [3] Entropy thông tin https://vi.wikipedia.org/wiki/Entropy_th%C3%B4ng_tin [4] J Cranshaw, E Toch, J Hong, A Kittur, and N Sadeh Bridging the gap between physical location and online social networks In Ubicomp, pages 119–128 ACM, 2010 [5] Yiying Cheng, Yangru Fang, Yongqing Yuan Recommendation System for Location-Based Social Network CS224W Project Report [6] A Twitter Analog to PageRank http://thenoisychannel.com/2009/01/13/a-twitteranalog-to-pag [7] HITS Algorithm – Hubs and Authorities on the Internet http://www.math.cornell.edu/~mec/Winter2009/RalucaRemus/Lecture4/lecture4.html [8] Mining Frequent Patterns without Candidate Generation: A Frequent-Pattern Tree Approach∗ JIAWEI HAN, JIAN PEI† [9] Y Zheng, L Zhang, X Xie, and W.Y Ma Mining interesting locations and travel sequences from gps trajectories In WWW, pages 791–800 ACM, 2009 [10] Hoàng Ngọc Sinh – Hệ thống gợi ý nhạc, đồ án tốt nghiệp 2012 [11] Jei Bao – Microsoft http://research.microsoft.com/en-us/people/jiebao/ [12] Tháp nhu cầu Maslow https://vi.wikipedia.org/wiki/Th%C3%A1p_nhu_c%E1%BA%A7u_c%E1%BB%A7a_ Maslow [13] Facebook news feed algorithm guide http://sproutsocial.com/insights/facebooknews-feed-algorithm-guide/ [14] Mạng xã hội dựa địa điểm Yelp http://yelp.com/ 67 [15] Mạng xã hội dựa địa điểm Foursquare http://foursquare.com/ [16] Mạng xã hội tiểu blog Twitter http://twitter.com/ [17] Mạng xã hội Facebook http://facebook.com/ [18] Thư viện MLLib http://spark.apache.org/mllib/ 68 Phụ Lục Trong phần này, giới thiệu mã nguồn cài đặt mô hình mà sử dụng Do mã nguồn lớn, nên phần trình bày mã nguồn phương thức mô hình  Mã nguồn mô hình ICF Phương thức bên dựa liệu tiền xử lý tính toán trước để đưa danh sách k vị trí điểm cao người dùng /** * Get top k venueid for userid * @param userid * @param listOfUsers * @param listOfVenues * @param k * @param mapOfVenueUser * @param mapOfSimilarityScore * @return top k venues and score */ public List topKVenuesICFModel(int userid, List listOfUsers, List listOfVenues, int k, Map mapOfVenueUser, Map mapOfSimilarityScore) { Map rankVenues = new HashMap(); for (String venueid : listOfVenues) { double totalVisitScore = 0; double totalSimilarityScore = 0; for (Integer other_userid : listOfUsers) { if (other_userid != userid) { Map freqVenuesOther = mapOfVenueUser.get(other_userid); int c = 0; if (freqVenuesOther.containsKey(venueid)) { c = 1; } String key = userid + "\t" + other_userid; totalVisitScore = totalVisitScore + mapOfSimilarityScore.get(key) * c; totalSimilarityScore = totalSimilarityScore + mapOfSimilarityScore.get(key); } } double final_score = 0; 69 if (totalSimilarityScore != 0) { final_score = totalVisitScore / totalSimilarityScore; } rankVenues.put(venueid, final_score); } List list = SortUtils.sortByComparator(rankVenues); List topItems = FluentIterable.from(list).limit(k).toList(); return topItems; }  Mã nguồn mô hình TCF Phương thức bên dựa liệu tiền xử lý tính toán trước để đưa danh sách k vị trí điểm cao người dùng /** * top K venues of userid in TCF Model * @param userid * @param k * @param listUnVisit * @param invertedUserOfVenues * @param friendsOfUser * @param venuesVisitOfUser * @return top k venues and score */ public List topKVenuesTCFModel(int userid, int k, List listUnVisit, Map invertedUserOfVenues, Map friendsOfUser, Map venuesVisitOfUser) { Map scoreOfVenues = new HashMap(); // get list friends of user List listFriends = friendsOfUser.get(userid); // calculating score of userid for each venueid for (String venueid : listUnVisit) { double totalClosenessScore = 0; double totalVisitScore = 0; Set listVisitor = invertedUserOfVenues.get(venueid); if (listVisitor != null) { for (Integer friendid : listFriends) { // closeness 70 double score = ClosenessScore.getClosenessScore(userid, friendid, friendsOfUser, venuesVisitOfUser); totalClosenessScore = totalClosenessScore + score; int c = 0; if (listVisitor != null) { if (listVisitor.contains(friendid)) { c = 1; } } double visit_score = score * c; totalVisitScore = totalVisitScore + visit_score; } } if (totalClosenessScore != 0) { scoreOfVenues.put(venueid, totalVisitScore / totalClosenessScore); } } // get k venues by score List list = SortUtils.sortByComparator(scoreOfVenues); List topItems = FluentIterable.from(list).limit(k).toList(); return topItems; }  Mã nguồn hình Rating Inference Trong phần này, giới thiệu hai mã nguồn tính điểm sở thích người dùng phân cấp thể loại suy diễn đánh giá người dùng địa điểm tiềm  Xây dựng phân cấp sở thích người dùng /** * khai phá sở thích người dùng * * @param userid * @return */ 71 public Map calculateWCHScore(int userid) { Map wch = new HashMap(); Map totalVisitsOfUC = totalVisitOfUserForCategory get(userid); for (String categoryid : totalVisitsOfUC.keySet()) { // tỉnh số lượng thăm category userid int freq_visit = totalVisitsOfUC.get(categoryid); // tính tổng số visit category int total_visit = mapOfTips.get(userid).size(); double tf = freq_visit * 1.0 / total_visit; int totalUser = mapOfTips.keySet().size(); int totalVisitorOfCategory = totalUniqueVisitorOfCategory.get( categoryid).size(); double df = totalUser / totalVisitorOfCategory; double tfidf = tf * Math.log(df); wch.put(categoryid, tfidf); } return wch; }  Suy diễn đánh giá người dùng với địa điểm tiềm /** * Suy diễn đánh giá địa điểm cho người dùng * @param userid * @param listLocalExperts * @param listCandidateVenues * @return */ public Map inferRating(int userid, List listLocalExperts, List listCandidateVenues) { Map listRankings = new HashMap(); for (String venueid : listCandidateVenues) { double rating = 0; for (Integer localExpertId : listLocalExperts) { double sim = cosineSimilarity.similarityWch(userid, localExpertId); int freq = 0; 72 Map venuesOfUsers = mapOfVenueUser.get(localExpertId); if (venuesOfUsers.containsKey(venueid)) { freq = venuesOfUsers.get(venueid); } rating += (sim * freq); } listRankings.put(venueid, rating); } return listRankings; }  Mã nguồn Mô hình FP-Growth Khi thực mô hình này, thực việc chuẩn hóa liệu theo chuẩn để sử dụng thuật toán FP-Growth thư viện MLLib SparkConf sparkConf = new SparkConf().setAppName("FP Growth"); String master = args[0]; String hdfs_path = args[1]; double minSupport = Double.parseDouble(args[2]); // list path from text JavaSparkContext sc = new JavaSparkContext(master, "FPGrowth",sparkConf); JavaRDD trans = sc.textFile(hdfs_path); JavaRDD transactions = trans.map(new Function() { public List call(String s) throws Exception { // TODO Auto-generated method stub String[] splits = s.split("\t"); String[] sarray = splits[1].split(" "); return Arrays.asList(sarray); } }); // calculating frequency items FPGrowth fpg = new FPGrowth().setMinSupport(minSupport).setNumPartitions(10); FPGrowthModel model = fpg.run(transactions); for (FPGrowth.FreqItemset s : model.freqItemsets().toJavaRDD().collect()) { if (s.freq() >= 2) { if (s.javaItems().size() >= 2) { 73 System.out.println("[" + Joiner.on(",").join(s.javaItems()) + "], " + s.freq()); } } } 74 ... hình thuật toán xếp hạng địa điểm có ý tới đặc điểm người dùng Đây thuật toán quan trọng sử dụng toán tìm kiếm thông tin toán gợi ý Nó giúp người dùng dễ dàng tìm kiếm chọn lựa địa điểm tốt nhất,... trợ người dùng tìm kiếm địa điểm mong muốn, Yelp phát triển cung cấp số tính xếp hạng, gợi ý địa điểm cho người dùng Những địa điểm gợi ý địa điểm mà người dùng quan tâm, hay địa điểm phổ biến người. .. chiến lược xếp hạng địa điểm gợi ý cho người dùng Trong đó, số lượng người dùng vào xem yếu tố dùng mô hình xếp hạng địa điểm 15 Hình 5: Xếp hạng địa điểm phổ biến mà người thăm Từ tính người viết

Ngày đăng: 26/07/2017, 21:06

Từ khóa liên quan

Mục lục

  • muc luc

  • danh muc ky hieu, chu viet tat

  • danh muc bang

  • danh muc hinh ve, do thi

  • phan mo dau

  • chuong 1

  • chuong 2

  • chuong 3

  • chuong 4

  • chuong 5

  • tai lieu tham khao

  • phu luc

Tài liệu cùng người dùng

Tài liệu liên quan