Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 74 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
74
Dung lượng
3,77 MB
Nội dung
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 Cơ 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 tố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, khơng phải chép tồ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 tố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 có nhu cầu sử dụng dịch vụ để tìm kiếm thơng tin hữu ích, cịn 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, tơi trình bày số mơ hình thuật tố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 tốn tìm kiếm thơng tin tố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 có 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ểm mà ngườ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 tốn gợi ý, giúp nhìn nhận tầm quan trọng toán xếp hạng Ngồ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 tố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 tố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 ý mà 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 tố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 tốn xếp hạng số mơ hình xếp hạng mà ngườ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, tơi giới thiệu nhìn nhu cầu người dùng Để thấy việc mạng xã hội, có 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 cịn có 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 có bùng nổ thơng tin mạng internet, người dùng cần có xu hướng chọn lọc thông tin tốt Và xã hội phát triển, người dùng có 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 tơi 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 Ngồi ra, tơi 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ó 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ơi tự cài đặt thử nghiệm ba mơ hình (TCF, ICF, Rating Inference) với mơ hình FP-Growth, tơi 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, tơi 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 tốn offline trước qua mơ hình 60 Các thơng tin cần xử lý tính tố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 tố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 tốn số lượng bạn bè người dùng tính tố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 tố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 tơi trình bày phần Phụ Lục luận văn Mơ hình TCF Dưới đây, tơi 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ểm mà ngườ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, tơi 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ểm mà ngườ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, tơi 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, tơi sử dụng thuật tốn lựa chọn vị trí tiềm Tiếp theo, tơi 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, tơi sử dụng thư viện MLLib để thử nghiệm thuật tố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 tơi đá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 có 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 tố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 khơng có tác động q 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 có 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 có 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 Có tính đến yếu tố bên ngồi: thơng tin chun gia địa phương Có 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 có 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, tơi có 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à tơi sử dụng Mơ hình FP-Growth khơng đánh giá kết sử dụng với liệu Có thể tập liệu sử dụng chưa có đủ 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, tơi 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 có tính tới sở thích người dùng tính tới thơng tin tồn thể (thơng tin thể loại địa điểm, thông tin chuyên gia địa phương) Có 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 có 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 địa lý Người dùng thường có 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 có giới thiệu kỹ thuật khai phá sở thích người dùng Trong luận văn có 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, tơi nhận thấy với tố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à tơi sử dụng Do mã nguồn lớn, nên phần tơi 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 tốn trước để đưa danh sách k vị trí có đ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 tốn trước để đưa danh sách k vị trí có đ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, tơi 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, tơi 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 ... tới đặc điểm riêng người dùng Chúng sử dụng việc xếp hạng địa điểm cho người dùng toán gợi ý địa điểm người dùng dựa sở thích người dùng cụ thể 38 Chương 3: Hệ thống xếp hạng địa điểm Từ sở tổng... 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... Foursquare cung cấp cho người dùng nhiều tính Trong có tính gợi ý địa điểm mà người dùng thích địa điêm mà người dùng tới Những địa điểm gợi ý cho người dùng cụ thể xếp hạng dựa số tiêu chí cụ thể