Nghiên cứu và xây dựng ứng dụng tư vấn trên nền tảng Hadoop MapreduceNghiên cứu và xây dựng ứng dụng tư vấn trên nền tảng Hadoop MapreduceNghiên cứu và xây dựng ứng dụng tư vấn trên nền tảng Hadoop MapreduceNghiên cứu và xây dựng ứng dụng tư vấn trên nền tảng Hadoop MapreduceNghiên cứu và xây dựng ứng dụng tư vấn trên nền tảng Hadoop MapreduceNghiên cứu và xây dựng ứng dụng tư vấn trên nền tảng Hadoop Mapreduce
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG - NGUYỄN VÂN ANH NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG TƢ VẤN TRÊN NỀN TẢNG HADOOP MAPREDUCE CHUYÊN NGÀNH : HỆ THỐNG THÔNG TIN MÃ SỐ: 60.48.01.04 LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) NGƯỜI HƯỚNG DẪN KHOA HỌC: TS ĐÀO ĐÌNH KHẢ HÀ NỘI - 2016 Luận văn hoàn thành tại: HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG Người hướng dẫn khoa học: TS Đào Đình Khả Phản biện 1: ……………………………………………… Phản biện 2: ……………………………………………… Luận văn bảo vệ trước Hội đồng chấm luận văn thạc sĩ Học viện Công nghệ Bưu Viễn thông Vào lúc: ngày tháng năm … Có thể tìm hiểu luận văn tại: - Thư viện Học viện Công nghệ Bưu Viễn thông MỞ ĐẦU Tính cấp thiết đề tài Chúng ta chứng kiến bùng nổ thông tin khổng lồ chưa thấy từ người sử dụng dịch vụ Internet phương tiện truyền thông Theo ước tính, thị trường chứng khoán New York sinh khoảng Terabyte liệu giao dịch ngày, Facebook lưu trữ truyền bá 10 tỷ ảnh (tức khoảng petabyte), trang web Ancestry.com (một trang web cung cấp dịch vụ lưu giữ gia phả dòng họ) lưu trữ khoảng 2,5 petabyte liệu, trang web Internet Archive lưu trữ khoảng petabytes liệu có tốc độ gia tăng 20 terabyte/tháng Có nhiều thực tế nảy sinh từ việc bùng nổ thông tin, thông tin thay đổi nhanh nên phải có hướng tiếp cận linh hoạt Bài toán tư vấn sản phẩm mà họ chưa biết trọng tâm nghiên cứu thương mại điện tử Số lượng khách hàng số lượng sản phẩm lớn thách thức cho phương pháp tư vấn huấn luyện để đưa kết tư vấn Trong trình nghiên cứu triển khai ứng dụng, bên cạnh vấn đề chung toán tư vấn người dùng tính thưa thớt liệu huấn luyện, xử lý khách hàng mới, hàng hóa yêu cầu tăng tốc độ giải thuật huấn luyện chủ đề mở cộng đồng quan tâm nghiên cứu Sự đời Hadoop MapReduce mô hình phù hợp để nhắm đến nội dung Tổng quan vấn đề nghiên cứu Sau nhiều năm giữ bí mật với đối thủ cạnh tranh, Google công bố tảng MapReduce cộng đồng trở thành đối tượng nghiên cứu triển khai cho nhiều ứng dụng khác Đối với chuyên gia Google, MapReduce xem giải pháp xử lý liệu lớn họ cố gắng mở rộng máy tìm kiếm Trên thực tế MapReduce mô hình lập trình, hay thuật giải khoa học máy tính Thuật giải MapReduce đưa nguyên lý chia việc xử lý thành nhiều khối công việc nhỏ, phân tán khắp nút tính toán (tiêu biểu server thông thường), kết hợp kết chung cho lớp toán cụ thể Hiện MapReduce cho phép thực phần cứng thông thường (commondity hardware) mà không đòi hỏi server chạy MapReduce có khả tính toán, lưu trữ truy xuất mạnh mẽ Do vậy, chi phí triển khai ứng dụng MapReduce thấp nhiều so với cách tiếp cận khác Một lợi khác MapReduce đơn giản hoá giải thuật tính toán phân tán Trên MapReduce ta cần xây dựng hai hàm Map Reduce phù hợp với thành phần xử lý liệu đầu vào cho ứng dụng Do vậy, nhà phát triển ứng dụng phân tán trọng tâm nhiều vào phần logic ứng dụng bỏ qua chi tiết phức tạp xử lý phân tán Chính lý trên, học viên lựa chọn đề tài “Nghiên cứu xây dựng ứng dụng tư vấn tảng Hadoop MapReduce” thực khuôn khổ luận văn thạc sĩ chuyên ngành Hệ thống thông tin Mục tiêu, đối tượng phương pháp nghiên cứu cụ thể đề tài trình bày chi tiết mục Mục đích nghiên cứu Nghiên cứu phương pháp xây dựng hệ tư vấn người dùng sản phẩm Hadoop MapReduce Đánh giá hiệu phương pháp xây dựng hệ thống tư vấn Hadoop MapReduce so với phương pháp truyền thống Đối tƣợng nghiên cứu Đối tượng nghiên cứu mô hình xử lý liệu lớn Hadoop MapReduce cho toán tư vấn người dùng Phạm vi nghiên cứu Phạm vi nghiên cứu hệ thống tư vấn theo mô hình truyền thống hệ thống tư vấn cài đặt Hadoop MapReduce Phƣơng pháp nghiên cứu 6.1 Nghiên cứu lý thuyết: Dựa nguồn tài liệu kỹ thuật công bố, nghiên cứu kỹ thuật mô hình triển khai ứng dụng Hadoop MapReduce Nghiên cứu phương pháp xây dựng hệ tư vấn dựa vào người dùng dựa vào sản phẩm hệ thống thương mại điện tử Thực cài đặt kiểm nghiệm mô hình So sánh đánh giá kết tư vấn kết thời gian thực phương pháp tư vấn với phương pháp tư vấn cài đặt Hadoop MapReduce 6.2 Nghiên cứu thực nghiệm: Phương pháp thực nghiệm tiến hành liệu phim cộng đồng nghiên cứu sử dụng Dự kiến luận văn sử dụng liệu sau để tiến hành thử nghiệm kết dự đoán mô hình: Bộ liệu MovieLens1: Được thu thập Dự án nghiên cứu GroupLens Đại học Minnesota Tập liệu MovieLens có ba lựa chọn với kích thước khác là: MovieLens 100k, MovieLens 1M MovieLens 10M Luận văn sử dụng tập liệu MovieLens 1M Tập MovieLens 1M chứa 1,000,209 đánh giá 6040 người dùng cho khoảng 3900 phim Tất đánh giá lưu file “ratings.dat” theo định dạng: UserID::MovieID::Rating::Timestamp Trong đó: - UserID số nguyên khoảng đến 6040 - MovieID số nguyên khoảng đến 3952 Rating số nguyên khoảng đến Timestamp: thời gian đánh giá Cấu trúc luận văn Nội dung luận văn trình bày ba phần sau: Phần mở đầu Phần nội dung: bao gồm ba chương Chương 1: Tổng quan Hadoop MapReduce Chương 2: Phát triển hệ thống tư vấn cài đặt Hadoop MapReduce Chương 3: Thử nghiệm đánh giá Kết luận CHƢƠNG I TỔNG QUAN VỀ BIG DATA VÀ HADOOPMAPREDUCE 1.1 Giới thiệu Big Data 1.1.1 Định nghĩa Big Data Big Data thuật ngữ dùng để mô tả lượng liệu khổng lồ, có dung lượng lớn (lên đến hàng Terabytes hay Petabytes), tăng trưởng nhanh có nội dung đa dạng Big Data thường liên quan đến số loại liệu [1]: - Các loại liệu truyền thống doanh nghiệp: thông tin người dùng, liệu giao dịch, liệu kế toán nói chung… - Dữ liệu máy tự sinh, liệu cảm biến: liệu cảm biến thiết bị, file log sinh chạy thiết bị phần cứng chạy ứng dụng,… - Dữ liệu xã hội: liệu người dùng, phản hồi, hoạt động người dùng, tin nhắn, đăng, bình luận mạng xã hội Facebook, Twitter,… 1.1.2 Tầm quan trọng Big Data Big Data công nghệ thu thập thông tin quy mô lớn từ website Các doanh nghiệp thường vận dụng công cụ nhằm phục vụ công việc dự đoán xu hướng thị trường, nâng cao chất lượng sản phẩm dịch vụ có, tạo sản phẩm tìm hiểu hành vi khách hàng Phân tích liệu giúp doanh nghiệp thích nghi, tạo nội dung website thu hút nhiều khách hàng hơn, có nhìn sâu sắc vào hành vi mua hàng Dữ liệu nhiều tốt cho công ty Để làm vậy, doanh nghiệp nên cung cấp nội dung nhiều tảng social media, nhằm thu thập nhiều thông tin từ điểm tiếp xúc với khách hàng cách tìm hiểu qua hệ thống sở liệu, công ty tạo nội dung có liên quan với người đọc Khi Big Data lưu trữ, xử lý phân tích cách chuẩn xác, có nhiều thông tin hữu ích để hiểu công việc qua giúp cho công việc đạt hiệu cao Trong hệ thống thương mại điện tử, mạng xã hội giúp cho nhà quản lý hiểu rõ khách hàng xu hướng họ, đồng thời giúp hệ thống tư vấn đưa gợi ý xác cho người dùng 1.2 Tổng quan Hadoop 1.2.1 Giới thiệu Hadoop thành phần Hadoop Escosystem 1.2.1.1 Giới thiệu Hadoop Ta khái quát sau: - Haddop framework cho phép phát triển ứng dụng phân tán - Hadoop viết Java Tuy nhiên, nhờ chế streaming, Hadoop cho phép phát triển ứng dụng phân tán java lẫn số ngôn ngữ lập trình khác C++, Python, Pearl - Hadoop cung cấp phương tiện lưu trữ liệu phân tán nhiều node, hỗ trợ tối ưu hoá lưu lượng mạng, HDFS HDFS che giấu tất thành phần phân tán, nhà phát triển ứng dụng phân tán nhìn thấy HDFS hệ thống file cục bình thường - Hadoop giúp nhà phát triển ứng dụng phân tán tập trung tối đa vào phần logic ứng dụng, bỏ qua số phần chi tiết kỹ thuật phân tán bên (phần Hadoop tự động quản lý) - Hadoop Linux-based Tức Hadoop chạy môi trường Linux 1.2.1.2 Các thành phần Hadoop Ecosystem Hình 1-1:Cấu trúc thành phần Hadoop Trong khuôn khổ luận văn này, em nghiên cứu hai phần quan trọng Hadoop, HDFS MapReduce 1.2.2 Lưu trữ liệu lớn HDFS 1.2.2.1 Tổng quan Hadoop Cluster Một Hadoop cluster có HDFS MapReduce hai thành phần Kiến trúc Hadoop kiến trúc master-slave, hai thành phần HDFS MapReduce tuân theo kiến trúc master-slave Kiến trúc Hadoop cluster sau: Hình 1-2: Tổng quan Hadoop cluster HDFS – Hadoop distributed file system (Hệ thống file phân tán Hadoop) dự án Apache HDFS thiết kế để lưu trữ liệu lớn file phân tán cách đáng tin cậy Kiến trúc HDFS kiến trúc dựa mô hình chủ - tớ (master – slave), thiết kế để giảm thiểu việc tiêu tốn tài nguyên phần cứng [2,6,7] 1.2.2.2 Khái niệm Block HDFS Tương tự block hệ thống file thông thường, block HDFS lượng liệu tối thiểu lần đọc, ghi liệu 1.2.2.3 Kiến trúc HDFS Giống hệ thống file khác, HDFS trì cấu trúc phân cấp file, thư mục mà file đóng vai trò node Trong HDFS, file chia làm hay nhiều block block có block ID để nhận diện Các block file (trừ block cuối cùng) có kích thước kích thước gọi block size file Mỗi block file lưu trữ thành nhiều (replica) khác mục đích an toàn liệu 1.2.2.4 NameNode trình tương tác client HDFS Việc tồn NameNode hệ thống HDFS làm đơn giản hoá thiết kế hệ thống cho phép NameNode định thông minh việc xếp block liệu lên DataNode dựa vào kiến thức môi trường hệ thống như: cấu trúc mạng, băng thông mạng, khả DataNode Tuy nhiên, cần phải tối thiểu hoá tham gia NameNode vào trình đọc/ghi liệu lên hệ thống để tránh tình trạng nút thắt cổ chai (bottle neck) Client không đọc hay ghi liệu lên hệ thống thông qua NameNode Thay vào đó, client hỏi NameNode xem nên liên lạc với DataNode để truy xuất liệu Sau đó, client cache thông tin lại kết nối trực tiếp với DataNode để thực thao tác truy xuất liệu Chúng ta mổ xẻ trình đọc file từ HDFS ghi file lên HDFS thông qua việc tương tác đối tượng từ phía client lên HDFS 1.2.2.5 Quá trình đọc file Trong trình client đọc file HDFS, ta thấy client trực tiếp kết nối với DataNode để lấy liệu không cần thực gián tiếp qua NameNode (master hệ thống) Điều làm giảm nhiều việc trao đổi liệu client NameNode, khối lượng luân chuyển liệu trải khắp cluster, tình trạng bottle neck không xảy Do đó, cluster chạy HDFS đáp ứng đồng thời nhiều client thao tác thời điểm 1.2.2.6 Quá trình ghi file Cũng giống trình đọc, client trực tiếp ghi liệu lên DataNode mà không cần phải thông qua NameNode Một đặc điểm trội client ghi block với số replication n, tức cần ghi block lên n DataNode, nhờ chế luân chuyển block liệu qua ống dẫn (pipe) nên lưu lượng liệu cần write từ client giảm n lần, phân DataNode cluter 1.2.2.7 Tổ chức liệu Hệ thống file phân tán Hadoop hệ thống file dựa phân cấp truyền thống giống UNIX Người dùng thêm, đổi tên, xóa file thư mục hệ thống Thư mục gốc Hadoop kí hiệu “/”, thư mục file tạo bên thư mục gốc[3] 11 Trong cấu trúc liệu mình, JobTrack có job scheduler với nhiệm vụ lấy vị trí split (từ HDFS chương trình client tạo), sau tạo danh sách task để thực thi Với split tạo maptask để thực thi, số lượng maptask với số lượng split Còn reduce task, số lượng reduce task xác định chương trình client Bên cạnh đó, JobTracker lưu trữ thông tin trạng thái tiến độ tất task Hình 1-6: Cơ chế hoạt động Reduce Task Khác với TaskTracker thực maptask, TaskTracker thực reduce task theo cách khác TaskTracker thực reduce task với liệu input danh sách vị trí region cụ thể output ghi localdisk maptask Điều có nghĩa với region cụ thể, JobTracker thu thập region output maptask thành danh sách vị trí region Khi TaskTracker thực thành công reduce task, gửi thông báo trạng thái “completed” reduce task phân công đến JobTracker Nếu reduce task task cuối job JobTracker trả cho chương trình người dùng biết job hoàn thành Ngay lúc JobTracker làm cấu trúc liệu mà dùng cho job này, thông báo cho TaskTracker xóa tất liệu output map task (Do liệu maptask liệu trung gian làm input cho reduce task, nên không cần thiết để lưu lại hệ thống) 12 1.3.3 Mô hình làm việc luồng liệu MapReduce Phần em trình bày cách mà chương trình MapReduce xử lý liệu luồng di chuyển liệu trình thực thi chương trình MapReduce[7, 6] MapReduce Job đơn vị thực thi hoàn chỉnh, thực công việc định mà client muốn thể Một MapReduce Job bao gồm thành phần là: liệu đầu vào, chương trình MapReduce, thông tin cấu hình Hadoop chia MapReduce Job thành tasks, có loại tasks là: map task reduce task 1.3.3.1 Hàm Map Hình 1-7: Hàm Map Người dùng đưa cặp liệu (key,value) làm input cho hàm map, tùy vào mục đích người dùng mà hàm map trả danh sách cặp liệu (intermediate key,value) 1.3.3.2 Hàm Reduce Hình 1-8: Hàm Reduce Hệ thống gom nhóm tất value theo intermediate key từ output hàm map, để tạo thành tập cặp dự liệu với cấu trúc (key, tập value key) Dữ liệu input hàm reduce cặp liệu gom nhóm sau thực xử lý trả cặp liệu (key, value) output cuối cho người dùng 1.3.4 MapReduce HDFS (Các đặc điểm tối ưu MapReduce kết hợp với HDFS) MapReduce đơn làm nhiệm vụ xử lý tính toán song song, hệ thống phân tán liệu kiểm soát để người dùng dễ dàng truy 13 xuất, việc sử dụng HDFS cho việc bổ sung input split MapReduce xuống có kích thước gần với kích thước block, làm tăng hiệu suất cho việc xử lý song song đồng TaskTracker với split mà xử lý riêng biệt Thêm vào đó, liệu output cuối MapReduce Job lưu trữ xuống HDFS, giúp cho người dùng máy tính hệ thống lấy toàn kết output thông qua phương thức thuộc chế quản lý HDFS (Tính suốt) Bên cạnh đó, block không đặt tình trạng cân (load-balancer) HDFS có chế thực việc cân block trở lại cách hiệu quả, điều làm gia tăng hiệu suất data locality 1.3.5 Phát triển ứng dụng theo mô hình MapReduce với Hadoop MapReduce Sau toàn trình phát triện ứng dụng theo mô hình MapReduce với HadoopMapReduce Hình 1-9: Phát triển ứng dụng MapReduce Hadoop Quá trình phát triển phân rõ theo công việc người dùng thực can thiệp công việc bên framework tự làm 14 1.4 Kết luận chƣơng Chương giới thiệu đưa tầm quan trọng Big Data việc phân tích liệu lớn Khi Big Data lưu trữ, xử lý phân tích cách chuẩn xác, có nhiều thông tin hữu ích để hiểu công việc qua giúp cho công việc đạt hiệu cao Có nhiều công nghệ triển khai phục vục cho việc khai thác liệu lớn tiểu biểu việc áp dụng framework Hadoop – MapReduce phần mềm mã nguồn mở chophép tính toán phân tán hứa hẹn đem lại hiệu cao suất, tốc độ xử lí với yêu cầu đáp ứng thời gian thực Trong chương em trình bày số phương pháp cụ thể lọc cộng tác dựa mô hình để áp dụng cho mô hình MapReduce trông toán hệ tư vấn 15 CHƢƠNG II ỨNG DỤNG HADOOP-MAPREDUCE CHO HỆ TƢ VẤN 2.1 Giới thiệu vấn đề 2.1.1 Phát biểu toán tư vấn Tùy vào phương pháp lọc tin, hệ tư vấn phân làm loại : Tư vấn dựa vào phương pháp lọc theo nội dung(Content-Based Filtering Recommendation), Tư vấn dựa vào lọc cộng tác (Collaborative Filtering Recommendation), Tư vấn dựa vào phương pháp lọc kết hợp(Hybrid Filtering Recommendation) Mỗi phương pháp lọc áp dụng cho hệ tư vấn phân thành hướng tiếp cận: lọc dựa vào nhớ (memory-based filtering) lọc dựa vào mô hình(Model-Based Filtering) Trong đồ án em tập trung nghiên cứu vào phương pháp tư vấn cộng tác Để xây dựng hệ tư vấn lọc cộng tác, cần phải xác định lịch sử quan điểm người dùng với sản phẩm khác hệ thống Quan điểm chia làm loại quan điểm tường minh (explicit) quan điểm không tường minh (implicit)[5] Bảng 2-1: Ma trận đánh giá ví dụ 2.1 i1 i2 u1 u2 u3 u4 i3 i4 i5 i6 3 2 5 ? ? ? 2.1.2 Các phương pháp xây dựng hệ tư vấn Lọc cộng tác kĩ thuật tư vấn sử dụng rộng rãi hệ tư vấn Lọc cộng tác phương pháp tự động đưa dự đoán (lọc –filtering) sở thích người dùng cách thu thập phân tích thông tin sở thích lượng lớn người dùng khác Phương pháp lọc cộng tác dựa giả thiết người dùng A có sỏ thích tương đồng với người dùng B vấn đề có nhiều khả người dùng A có quan điểm với người dùng B vấn đề khác Đồ án trình bày phương pháp lọc cộng tác dựa vào mô hình gồm kĩ thuật: Lọc cộng tác dựa vào mô hình mạng Bayes(Bayesian networks), Lọc cộng tác dựa vào mô hình phân cụm SVD 16 2.2 Phƣơng pháp mạng Bayes cho lọc cộng tác 2.2.1 Định lý mạng Bayes Định lý Bayes cho phép tính xác suất xảy kiện ngẫu nhiên A biết kiện liên quan B xảy Xác suất kí hiệu P(A|B), đọc “xác suất A có B ” Đại lượng gọi xác có điều kiện hay xác suất hậu nghiệm rút từ giá trị cho B phụ thuộc vào giá trị Theo định lý Bayes, xác suất xảy A biết B phụ thuộc vào yếu tố: Xác suất xảy A riêng nó, không quan tâm tới B Kí hiệu P(A)và đọc xác suất A Đây gọi xác suất biên duyên hay xác suất tiên nghiệm, “tiên nghiệm ” theo nghĩa không quan tâm đến thông tin B Xác suất xảy B riêng nó, không quan tâm tới A Kí hiệu P(B) đọc “xác suất B” Đại lượng gọi số chuẩn hóa (normalising constant), giống nhau, không phụ thuộc vào kiện A muốn biết Xác suất xảy B biết A xảy Kí hiệu P(B|A) đọc “xác suất B có A” Đại lượng gọi khả (likelihood) xảy B biết A xảy Khi biết đại lượng này, xác suất A biết B cho công thức: P(A|B) = ( ) ( ) ( ) = Từ dẫn tới P(A|B)P(B) = P(A B) =P(B|A) P(A) 2.2.2 Phân loại dựa vào mạng Bayes Khi không gian mẫu đặc trưng n thuộc tính, với giá trị đích v, việc ước lượng xác suất đồng thời P((a1,a2,…,an)/v) cho (a1,a2,…,an) khó khăn Một phương pháp phân lớp mạng Bayes thường áp dụng Phân lớp Naive Bayes áp dụng cho toán mà mẫu x mô tả liên kết giá trị-thuộc tính hàm đích f(x) lấy giá trị tập hữu hạn V Với tập mẫu huấn luyện có giá trị hàm mục tiêu cho trước có mẫu biểu diễn giá trị thuộc tính (a1,a2,…,an) Ta phải dự đoán giá trị mục tiêu hay phân lớp mẫu thử Tóm lại, phương pháp học mạng Bayes Naive bao gồm bước tính toán P(vj), P(ai|vj) dựa tần suất liệu, sau kết dùng để phân lớp mẫu theo biểu thức (2.2c) với giả thiết giá trị thuộc tính độc lập có điều kiện 17 2.2.3 Áp dụng mạng Bayes cho hệ tư vấn Ý tưởng : tính xác suất mẫu X với tập thuộc tính biết phụ thuộc vào phân lớp Ci: P(Ci/X) = ( ⁄ ) ( ) ( ) Công thức xác định xác suất Naive Bayes: Prediction = argmaxj classSet P(classj∏ ) Theo Laplace Estimator: P(Xi=xi|Y=y) = ( ) ( ) Trong đó: |Xi| : kích thước tập {xi} X=(x1, x2, xn) mẫu cần xét , xi thuộc tính thứ i c Prediction : kết dự đoán cặp user-item classj: phân lớp j (j=1, 2, 3, 4, 5) Kết dự đoán giá trị classj có giá trị xác suất lớn để phân lớp cho đối tượng cần phân loại Thuật toán chia làm giai đoạn: Giai đoạn 1: Huấn luyện Giai đoạn 2: Phân lớp 2.2.4 Hadoop-Map Reduce dựa vào mạng Bayes Hình 2-1: Áp dụng MapReduce cho kỹ thuật lọc cộng tác sử dụng định lí Bayes 18 Bước 1: Xử lý tập liệu đầu vào (Job 1) Bước 2: Đếm số lượng đánh giá (Job 2) Bước 3: Tính toán đưa dự đoán 2.3 Phƣơng pháp SVD cho lọc cộng tác 2.3.1 Giới thiệu phương pháp SVD (Singular Value Decomposition) Bài toán phân rã giá trị riêng SVD phát biểu sau: Với ma trận A kích thước M×N có số M ≥ N, viết dạng tích ma trận U trực giao theo cột có kích thước M×N, ma trận chéo W có kích thước N×Nvới số đường chéo không âm, ma trận chuyển vị ma trận trực giao V có kích thước N× N: Đường chéo khởi tạo r S(s1,s2, ,sr) có đặc trưng si > s1 ≥ s2 ≥ …≥ sr Trong đó, r cột U vector riêng AAT đại diện cho vector riêng trái A không gian mở rộng cột R cột V vector riêng ATA đại diện cho vector riêng phải A không gian mở rộng hàng Nếu tập trung vào r giá trị riêng khác 0, kích thước hiệu SVD ma trận U, S V trở thành M×r, r×r r×N tương ứng 2.3.2 Áp dụng phương pháp SVD cho hệ tư vấn Các bước mà thuật toán SVD tiến hành sau: Bước 1: Xác định ma trận đánh giá R ban đầu, có kích thước M × N, bao gồm xếp hạng M người dùng N sản phẩm rij đánh giá người dùng ui sản phẩm pj Bước 2: Xử lý ma trận đánh giá R để loại bỏ tất giá trị liệu chưa đánh giá Bước 3: Tính toán SVD R” có ma trận U, S V, có kích thước M × M, M × N, N × N tương ứng Bước 4: Thực bước giảm chiều cách giữ k đường chéo từ ma trận S để có ma trận k × k ký hiệu Sk 19 2.3.3 Phương pháp SVD dựa vào Hadoop Map Reduce Hình 2-2: Áp dụng MapReduce cho kỹ thuật lọc cộng tác phƣơng pháp SVD Bước 1: Xử lý tập liệu đầu vào (Job 1) Bước 2: Tính toán đưa dự đoán đánh giá người dùng u với sản phẩm i (Job2 Lớp SVDPreMapper thực công việc: Bước 1: Đọc tập liệu user-item đưa ma trận đánh giá R ban đầu có kích thước MxN, M số lượng item đánh giá, N số lượng người dùng, rij tương ứng đánh giá người dùng j cho sản phẩm i Bước 2: Chuẩn hóa ma trận đầu vào: Bước 3: Tính toán SVD Bước 4: Đưa kết dự đoán 2.3.4 Vấn đề chọn chiều phương pháp SVD Trong phương pháp SVD độ xác hay tốc độ tính toán đánh giá phụ thuộc lớn vào việc chọn K hạng hay số chiều ma trận S K lớn tốc độ tính toán lâu phải tính ma trận có chiều lớn Tuy nhiên độ xác cao 2.4 Kết luận chƣơng Như vậy,chương trình bày định nghĩa cách áp dụng framework MapReduce thành công cho phương pháp mạng Bayes SVD lọc cộng tác dựa mô hình cho toán hệ tư vấn Việc áp dụng Hadoop MapReduce cho phương pháp mang đến nhiều lợi ích như: tăng hiệu việc tính toán tận dụng tài nguyên phần cứng để thực tính toán song song, tăng khả chịu lỗi việc tính toán không phụ thuộc vào việc xảy lỗi máy 20 Cụ thể chương em đưa thực nghiệm so sánh kết quả, độ đo kiểm nghiệm, độ xác hiệu thời gian cho phương pháp CHƢƠNG III THỰC NGHIỆM VÀ KẾT QUẢ 3.1 Dữ liệu thực nghiệm Đồ án sử dụng tập liệu MovieLens[13] Đây tập liệu thu thập Dự án nghiên cứu GroupLens Đại học Minnesota Tập liệu MovieLens có ba lựa chọn với kích thước khác là: MovieLens 100k, MovieLens 1M MovieLens 10M Đồ án sử dụng tập liệu Tập MovieLens 100k chứa 100K đánh giá 943 người dùng cho khoảng 1682 phim Tập MovieLens 1M chứa 1M đánh giá 6040 người dùng cho khoảng 3952 phim Tất đánh giá lưu file “ratings.dat” theo định dạng: UserID::MovieID::Rating::Timestamp UserID số nguyên khoảng đến 6040 MovieID số nguyên khoảng đến 3952 Rating số nguyên khoảng đến Ví dụ: 1::1193::5::978300760 1::661::3::978302109 1::914::3::978301968 21 3.2 Độ đo kiểm nghiệm Đồ án sử dụng hai độ đo sau để kiểm nghiệm độ xác phương pháp thực nghiệm: Trung bình sai số tuyệt đối (MAE)[18] : phương pháp phổ biến để đánh giá độ xác dự đoán Trung bình sai số tuyệt đối tính theo công thức: ∑ (3.1) Trung bình bình phương sai số (RMSE)[18] : phương pháp tính trung bình bình phương sai số theo công thức: √ ∑ ( ) (3.2) 3.3 Phƣơng pháp thử nghiệm Cách phân chia tập liệu huấn luyện kiểm nghiệm: Tập liệu chia thành tập liệu huấn luyện tập liệu kiểm nghiệm với kích thước 80% 20%.Việc phân chia tập liệu thực lớp ProcessInput Tập liệu huấn luyện tập kiểm nghiệm chia cách ngẫu nhiên, liệu lần chia khác nhau, thực chia nhiều lần thực chạy tập khác để kết xác 3.4 Kết thử nghiệm Thử nghiệm 1: Thử nghiệm phương pháp lọc cộng tác phương pháp sử dụng SVD với độ giảm ma trận khác nhau: Nhận xét: Đối với phương pháp lọc cộng tác sử dụng SVD độ xác thuật toán phụ thuộc vào giá trị chọn k(kích thước ma trận đường chéo S) 3.4.1 Thử nghiệm thời gian chạy Thử nghiệm 1: Trong thử nghiệm nhằm so sánh thời gian chạy đồng thời đưa đánh giá độ xác phương pháp - Mạng Bayes-MapReduce - SVD MapReduce - Mạng Bayes thường - SVD thường 22 Thử nghiệm 2: Thử nghiệm thời gian chạy tập MoviesLen 1M: 3.5 Đánh giá so sánh 3.5.1 Đánh giá phương pháp lọc cộng tác Về thời gian chạy: phương pháp lọc cộng tác dựa vào mô hình sử dụng mạng BayesMapReduce cho tốc độ tính toán nhanh (27s) so phương pháp sử dụng SVD(109s) Về độ xác: phương pháp áp dụng SVD (MAE: 0.882287 ) cho kết xác cao so với việc áp dụng Mạng Bayes (MAE: 1.007064) 3.5.2 Đánh giá thuật toán trước sau dùng Hadoop-MapReduce Về thời gian: theo bảng so sánh, rõ ràng thời gian chạy sử dụng MapReduce ngắn nhiều so với không sử dụng MapReduce Về độ xác: liệu, thuật toán, nên độ xác đánh giá tương đối giống hệ thống có sử dụng không sử dụng HadoopMapreduce 3.5.3 Đánh giá phương pháp tư vấn sử dụng MapReduce MyMedialite Hình 3-1: Đánh giá phƣơng pháp tƣ vấn sử dụng MapReduce MyMedialite Theo số liệu mục thời gian chạy sử dụng thư viện MyMedialite lớn nhiều sử dụng MapReduce Trong điều kiện thực máy, không tận dụng hết khả tính toán song song Hadoop – MapReduce, kết 23 tốt Như vậy, áp dụng Hadoop – MapReduce cho hệ tư vấn góp phần giải vấn đề mở rộng xây dựng hệ tư vấn cho liệu lớn 3.6 Kết luận chƣơng Chương đồ án trình bày trình thực nghiệm đánh giá kết xây dựng hệ tư vấn dựa Hadoop – MapReduce Quá trình thực nghiệm cho kết tốt Các kết thực nghiệm cho thấy tính khả thi việc mở rộng hệ tư vấn sử dụng Hadoop – MapReduce khẳng định tính đắn vấn đề lý thuyết nêu chương Dựa phương pháp xây dựng hệ tư vấn trình bày chương thực nghiệm chương 3, hoàn toàn áp dụng phương pháp vào thực tế để giải vấn đề liệu lớn Các kết chưa phải tối ưu điều kiện sở vật chất để thực nghiệm hạn chế 24 KẾT LUẬN Kết đạt đƣợc Luận văn trình bày phương pháp áp dụng MapReduce để mở rộng hệ tư vấn với phương pháp lọc cộng tác (CF) dựa vào mô hình, tập trung nghiên cứu kỹ thuật bản: - Lọc cộng tác sử dụng định lý mạng Bayes - Lọc cộng tác sử dụng công thức SVD Kết thực nghiệm đánh giá cho thấy: - Trên tập liệu MovieLens 1M 100K, kỹ thuật lọc cộng tác dựa vào mô hình Mạng Bayes SVD áp dụng MapReduce cho kết thời gian chạy tốt nhiều độ xác tương tự so với phương pháp truyền thống - Trong phương pháp sử dụng, phương pháp Mạng Bayes cho ta kết thời gian chạy tốt so với phương pháp sử dụng SVD nhiên sai số tuyệt đối phương pháp cao - Phương pháp lọc cộng tác dựa vào mô hình sử dụng SVD tốc độ độ xác thuật toán phụ thuộc vào việc chọn K (kích thước ma trận đường chéo S) Hạn chế Đồ án số hạn chế chưa thực nghiệm phương pháp SVD tập liệu lớn sở vật chất không cho phép Hƣớng phát triển tiếp theo: Nghiên cứu phương pháp phân tích ma trận (Matrix Factorization - MF) áp dụng việc tính độ tương tự sản phẩm thông qua ma trận đại diện người dùng sản phẩm từ đưa hệ tư vấn cho độ xác thuật toán cao Hadoop- MapReduce ngày trở nên phổ biến ứng dụng nhiều lĩnh vực công nghệ cao hứa hẹn giải vấn đề thời gian, đáp ứng thời gian thực hệ thống tư vấn thông minh đem lại tiện lợi cho người 25 TÀI LIỆU THAM KHẢO Tài liệu tiếng anh [1] Jean-Perrie Dijick (June 2013),“Oracle: Big Data For Enterprise”, Oracle White Paper; [2]Perera and Thilina Gunarathne (2013), “Hadoop MapReduce Cookbook”, Packt Publishing; [3] Hrishikesh Karambelkar (2013), “Scaling Big Data With Hadoop and Solr”, Pakt Publishing Ltd; [4] Ahmed Metwally, Christos Faloutsos (2012)“V-SMART-Join: A Scalable MapReduce Framework for All-Pair Similarity Joins of Multisets and Vectors” in Proceedings of the VLDB Endowment VLDB Endowment Hompage archive Volume Issue 8, Pages 704715 [5] Sebastian Schelter, Christoph Boden and Volker Markl (2012),“Scalable SimilarityBased Neighborhood Methods with MapReduce”, in RecSys '12 Proceedings of the sixth ACM conference on Recommender systems Pages 163-170, Technische Universität Berlin, Germany [6] Garry Turkington (2013), “Hadoop Beginner’s Guide”, Packt Publishing [7] Tom White (May 2012), “Hadoop: The definitive guide, Third edition”, O'Reilly Media / Yahoo Press; [8] Byoungju Yang, Jaeseok Myung, Sang-goo Lee and Dongjoo Lee (2013),“A MapReduce-based Filtering Algorithm for Vector Similarity Join” in ICUIMC '13 Proceedings of the 7th International Conference on Ubiquitous Information Management and Communication Article No 71 Website [9] http://en.wikipedia.org/wiki/Big_data Truy cập ngày 2/3/2016 [10] http://en.wikipedia.org/wiki/Cold_start Truy cập ngày 5/3/2016 [11] Hadoop: http://hadoop.apache.org/ Truy cập ngày 2/3/2016 [12]http://blogs.msdn.com/b/avkashchauhan/archive/2012/03/29/how-to-chain-multiplemapreduce-jobs-in-hadoop.aspx Truy cập ngày 2/3/2016 [13] Data set: http://grouplens.org/datasets/movielens/ Truy cập ngày 1/4/2016 [14] http://ankitasblogger.blogspot.com/2011/01/hadoop-cluster-setup.html [15] http://mymedialite.net/ Truy cập ngày 2/4/2016 [16] http://en.wikipedia.org/wiki/Recommender_system Truy cập ngày 5/5/2016 [17] http://en.wikipedia.org/wiki/Mean_absolute_error Truy cập ngày 12/5/2016 [18] http://en.wikipedia.org/wiki/Root-mean-square_deviation Truy cập ngày 15/5/2016 [...]... với yêu cầu đáp ứng thời gian thực Trong chương tiếp theo em sẽ trình bày một số phương pháp cụ thể ở đây là lọc cộng tác dựa trên mô hình để áp dụng cho mô hình MapReduce trông bài toán về hệ tư vấn 15 CHƢƠNG II ỨNG DỤNG HADOOP- MAPREDUCE CHO HỆ TƢ VẤN 2.1 Giới thiệu vấn đề 2.1.1 Phát biểu bài toán tư vấn Tùy vào phương pháp lọc tin, các hệ tư vấn được phân làm 3 loại : Tư vấn dựa vào phương pháp... Recommendation), Tư vấn dựa vào lọc cộng tác (Collaborative Filtering Recommendation), Tư vấn dựa vào phương pháp lọc kết hợp(Hybrid Filtering Recommendation) Mỗi phương pháp lọc áp dụng cho các hệ tư vấn được phân thành 2 hướng tiếp cận: lọc dựa vào bộ nhớ (memory-based filtering) và lọc dựa vào mô hình(Model-Based Filtering) Trong đồ án này em tập trung nghiên cứu vào phương pháp tư vấn cộng tác Để xây dựng hệ tư. .. tƣ vấn sử dụng MapReduce và MyMedialite Theo số liệu trong mục trên thời gian chạy khi sử dụng thư viện MyMedialite lớn hơn khá nhiều khi sử dụng MapReduce Trong điều kiện chỉ thực hiện trên một máy, không tận dụng được hết khả năng tính toán song song của Hadoop – MapReduce, kết quả này là 23 khá tốt Như vậy, áp dụng Hadoop – MapReduce cho hệ tư vấn góp phần giải quyết được vấn đề mở rộng khi xây dựng. .. toán trước và sau khi dùng Hadoop- MapReduce Về thời gian: theo bảng so sánh, rõ ràng thời gian chạy khi sử dụng MapReduce ngắn hơn nhiều so với không sử dụng MapReduce Về độ chính xác: do cùng bộ dữ liệu, cùng thuật toán, nên độ chính xác được đánh giá là tư ng đối giống nhau đối với cả 2 hệ thống có sử dụng và không sử dụng HadoopMapreduce 3.5.3 Đánh giá phương pháp tư vấn sử dụng MapReduce và MyMedialite... hệ tư vấn cho dữ liệu lớn 3.6 Kết luận chƣơng 3 Chương 3 của đồ án đã trình bày quá trình thực nghiệm và đánh giá kết quả khi xây dựng hệ tư vấn dựa trên Hadoop – MapReduce Quá trình thực nghiệm cho các kết quả khá tốt Các kết quả thực nghiệm cho thấy tính khả thi của việc mở rộng hệ tư vấn sử dụng Hadoop – MapReduce và khẳng định tính đúng đắn của những vấn đề lý thuyết được nêu trong chương 2 Dựa trên. .. Phát triển ứng dụng theo mô hình MapReduce với Hadoop MapReduce Sau đây là toàn bộ quá trình phát triện một ứng dụng theo mô hình MapReduce với HadoopMapReduce Hình 1-9: Phát triển ứng dụng MapReduce trên Hadoop Quá trình phát triển được phân rõ ra theo công việc nào do người dùng thực hiện can thiệp và công việc nào bên trong framework tự làm 14 1.4 Kết luận chƣơng 1 Chương 1 đã giới thiệu và đưa ra... triển tiếp theo: Nghiên cứu phương pháp phân tích ma trận (Matrix Factorization - MF) và áp dụng việc tính độ tư ng tự sản phẩm thông qua ma trận đại diện người dùng và sản phẩm từ đó đưa ra hệ tư vấn sẽ cho độ chính xác của thuật toán cao hơn Hadoop- MapReduce ngày càng trở nên phổ biến và được ứng dụng nhiều trong các lĩnh vực công nghệ cao hứa hẹn sẽ giải quyết vấn đề thời gian, đáp ứng thời gian thực... nghĩa và cách áp dụng framework MapReduce thành công cho 2 phương pháp mạng Bayes và SVD trong lọc cộng tác dựa trên mô hình cho bài toán về hệ tư vấn Việc áp dụng Hadoop và MapReduce cho các phương pháp mang đến nhiều lợi ích như: tăng hiệu năng của việc tính toán khi tận dụng được tài nguyên phần cứng để thực hiện tính toán song song, tăng khả năng chịu lỗi khi việc tính toán không phụ thuộc vào việc... lọc cộng tác (CF) dựa vào mô hình, tập trung nghiên cứu 2 kỹ thuật cơ bản: - Lọc cộng tác sử dụng định lý mạng Bayes - Lọc cộng tác sử dụng công thức SVD Kết quả thực nghiệm và đánh giá cho thấy: - Trên cả 2 tập dữ liệu MovieLens 1M và 100K, kỹ thuật lọc cộng tác dựa vào mô hình Mạng Bayes và SVD khi được áp dụng MapReduce cho kết quả thời gian chạy tốt hơn rất nhiều độ chính xác tư ng tự so với phương... trên phương pháp xây dựng hệ tư vấn đã được trình bày ở chương 2 và thực nghiệm ở chương 3, hoàn toàn có thể áp dụng phương pháp này vào thực tế để giải quyết vấn đề dữ liệu lớn hiện nay Các kết quả này chưa phải là tối ưu nhất do điều kiện cơ sở vật chất để thực nghiệm còn hạn chế 24 KẾT LUẬN 1 Kết quả đạt đƣợc Luận văn đã trình bày phương pháp áp dụng MapReduce để mở rộng hệ tư vấn với phương pháp