3 Tạp chí Khoa học – Trường Đại học Phú Yên, Số 27 (2021), 63 69 63 ỨNG DỤNG MÔ HÌNH MAPREDUCE VÀO BÀI TOÁN TÌM KIẾM NHỮNG KHÁCH HÀNG CÓ CÙNG NHU CẦU SẢN PHẨM TRONG THƯƠNG MẠI ĐIỆN TỬ Trần Xuân Hiệp,[.]
Tạp chí Khoa học – Trường Đại học Phú Yên, Số 27 (2021), 63-69 63 ỨNG DỤNG MƠ HÌNH MAPREDUCE VÀO BÀI TỐN TÌM KIẾM NHỮNG KHÁCH HÀNG CĨ CÙNG NHU CẦU SẢN PHẨM TRONG THƯƠNG MẠI ĐIỆN TỬ Trần Xuân Hiệp, Phan Thị Thanh Thủy* Trường Đại học Phú Yên Ngày nhận bài: 07/05/2020; Ngày nhận đăng: 28/05/2021 Tóm tắt Tìm kiếm khách hàng có nhu cầu sản phẩm trở nên quan trọng lĩnh vực thương mại điện tử Những người có mối quan tâm, thông tin cá nhân phù hợp tương tác họ với cộng đồng nguồn liệu quan trọng chọn để phân tích Bài báo giới thiệu phương pháp phân tích hồ sơ cá nhân cách áp dụng giải thuật phổ biến vào mơ hình Map-Reduce dựa Hadoop framework Đây phương pháp nhằm tạo công cụ hiệu quả, tiết kiệm thời gian cơng sức tìm danh sách tối ưu người có sở thích để phục vụ doanh nghiệp tư vấn sản phẩm cho khách hàng Từ khố: MapReduce, Hadoop, so trùng ngữ nghĩa, phân tích ngữ nghĩa Giới thiệu Sự phát triển cách mạng công nghiệp 4.0 năm gần tạo hội cho lĩnh vực thương mại điện tử Trước nhu cầu ngày cao khách hàng, toán, giải pháp nhằm nâng cao chất lượng dịch vụ ngày trở nên cấp thiết phức tạp Vấn đề tìm kiếm khách hàng có nhu cầu sản phẩm thương mại điện tử cách hiệu quả, nhanh chóng tập liệu lớn toán đặt nhiều vấn đề cho nhà kinh doanh thương mại điện tử Trên sở phát triển phương pháp xây dựng hồ sơ cá nhân (proflile) chứa thông tin khách hàng cách khoa học, từ xây dựng phương pháp so trùng thơng tin cá nhân để tìm tương đồng theo nhóm sản phẩm Việc tìm kiếm người có mối quan tâm lĩnh vực bao gồm hai vấn đề: _ * Email: thuycdsppy@yahoo.com làm để mô tả sơ lược mối quan tâm sản phẩm người làm để tính tốn tương tự hồ sơ cá nhân lĩnh vực quan tâm Phương pháp phổ biến sử dụng để tính độ tương tự phép tính cosin (Rajesh Thiagarajan, Geetha Manjunath, and M Stumptner, 2008) Trong phương pháp này, profile trình bày tập từ khóa (có trọng số) Sự tương đồng tính phép tính cosine hai vectơ đại diện hai tập từ khoá đánh giá cao Phương pháp đơn giản để thực hiện, đề cập đến phù hợp cú pháp từ khơng có khả trường hợp đòi hỏi so sánh ngữ nghĩa từ Để đáp ứng nhu cầu cho việc phù hợp ngữ nghĩa cần mô tả cách rõ ràng mối quan hệ từ Những mối quan hệ từ thuật ngữ suy tính hồn tồn, cách sử dụng phương pháp phân tích ngữ nghĩa tiềm ẩn (T K Landauer, P W Foltz, and D Laham, 1998) 64 Journal of Science – Phu Yen University, No.27 (2021), 63-69 Việc tra cứu kho liệu khổng lồ chứa thông tin cá nhân cộng đồng cách lựa chọn người thực chất việc tốn nhiều thời gian, đồng thời khả tìm người thích hợp khơng cao Với bùng nổ thông tin nay, việc xử lý lưu trữ khối liệu khổng lồ ngày phát triển trở thành thách thức lớn với nhiều vấn đề đặt Nhưng thực tế dần thay đổi kỹ thuật xử lý phân tán xuất hiện, đáng kể MapReduce Mục đích quan trọng MapReduce tăng tốc độ thực thi xử lý liệu tập hợp liệu lớn (Jeffrey Dean and Sanjay Ghemawat, 2004) Mô hình MapReduce dựa hai hàm Map Reduce MapReduce giải pháp tốt cho dạng toán xử lý khối lượng liệu phát sinh khổng lồ với tác vụ phân tích tính tốn phức tạp, lĩnh vực khai thác liệu, phân tích mơ Bài báo trình bày phương pháp nghiên cứu kết thử nghiệm việc áp dụng giải thuật tìm kiếm người có sở thích cộng đồng khoa học dựa mơ hình MapReduce Phương pháp nghiên cứu 2.1 MapReduce 2.1.1 Mơ hình MapReduce Nhiệm vụ tính tốn mơ hình MapReduce nhận liệu vào tập hợp lớn cặp khóa/giá trị Mơ hình dựa bước bản: - Map: nhận dòng liệu thô xử lý, tạo cặp khóa/giá trị Thư viện MapReduce tự động nhóm giá trị có khóa lại với nhau, chuyển chúng đến hàm Reduce - Reduce: nhận khóa giá trị tương ứng với khóa dạng list, tiếp tục xử lý giá trị để tạo thành kết cuối tùy theo yêu cầu công việc Thư viện MapReduce tiếp nhận kết xuất kết cuối toán dạng liệu khác Trong mơ hình MapReduce, liệu vào chia thành nhiều mảnh nhỏ, mảnh xử lý độc lập hàm Map Kết xử lý hàm Map lại phân thành nhiều tập hợp khác nhau, xếp chuyển tiếp đến hàm Reduce Hình sau minh họa cách làm việc Hình 1: Mơ hình hoạt động MapReduce 2.1.2 Hadoop Hadoop dự án chủ chốt hãng Apache nhằm cung cấp công cụ hỗ trợ cho hệ thống tính tốn phân tán Dựa ý tưởng MapReduce Google, Hadoop tự xử lý tất khâu phức tạp để bảo đảm hệ thống hoạt động thông suốt nhường việc định nghĩa tính tốn luận lý ứng dụng lại cho lập trình viên Hai thành phần dự án Hadoop framework MapReduce cung cấp khả tính tốn phân tán, hệ thống file HDFS (Hadoop Distributed File System) Framework MapReduce Hadoop xem thiết lập ý tưởng tên Google ngơn ngữ Java, khái niệm mơ hình hoạt động hồn tồn giống Hadoop Distributed File System (HDFS) Tạp chí Khoa học – Trường Đại học Phú Yên, Số 27 (2021), 63-69 HDFS thiết kế để giải vấn đề mà hệ thống tập tin phân tán gặp phải: - Khả lưu trữ lên đến hàng terabyte petabyte tùy thuộc vào số lượng máy tham gia vào hệ thống HDFS hỗ trợ kích thước tập tin lớn nhiều so với NFS - HDFS tạo tin cậy cao lưu trữ liệu Nếu có máy bị liên lạc lý đó, liệu cung cấp toàn vẹn đến máy - Do nằm gói sản phẩm Hadoop, HDFS cung cấp khả tích hợp cao đến mơ hình MapReduce, cho phép liệu đọc ghi nội q trình thực tính tốn với khả cao Cơ chế truy xuất liệu Đọc tập tin Hình Quá trình đọc tập tin HDFS Bước 1: Ứng dụng gọi hàm open để mở tập tin cần đọc HDFS thông qua đối tượng Distributed FileSystem Bước 2: Distributed FileSystem gọi đến Namenode RPC để lấy vị trí block liệu tập tin cần đọc Đối với block, Namenode trả địa tất Datanode có chứa liệu Đối tượng Distributed FileSystem đồng thời trả đối tượng DFSInputStream cho ứng dụng Bước + 4: Ứng dụng gọi hàm read(), đối tượng DFSInputStream kết nối đến 65 Datanode gần có chứa block liệu đầu tiên, lấy liệu truyền ứng dụng Bước 5: Khi truyền hết block liệu, đối tượng DFSInputStream đóng kết nối với datanode tìm kiếm Datanode tốt cho block Bước 6: Sau đọc hết liệu tập tin, client gọi hàm close() để đóng tất kết nối với Namenode Datanode Ghi tập tin Hình Quá trình ghi tập tin HDFS Bước 1: Ứng dụng gọi hàm create() để tạo đối tượng Distributed FileSystem Bước 2: Distributed FileSystem gọi đến NameNode thông qua phương thức RPC để tạo tập tin chưa có block liên quan đến NameNode thực nhiều bước kiểm tra để chắn tập tin chưa tồn ứng dụng có đủ quyền để tạo tập tin hệ thống Bước 3: Ứng dụng ghi liệu qua đối tượng DFSOutputStream (được trả Distributed FileSystem) Dữ liệu tách thành gói nhỏ xếp hàng đợi Bước 4: Với block liệu cần ghi, DFSOutputStream yêu cầu NameNode trả danh sách 66 Journal of Science – Phu Yen University, No.27 (2021), 63-69 DataNode để lưu trữ Dữ liệu từ ứng dụng cần ghi lên DataNode gần nhất, DataNode tự động gửi tiếp liệu vừa ghi đến node danh sách Bước 5: Khi DataNode hoàn tất việc ghi liệu, thông điệp truyền đến Node trước Đứng phía ứng dụng, việc ghi xem hoàn tất tất Datanode ghi liệu thành công Bước 6: Sau việc ghi liệu hồn tất, ứng dụng đóng kết nối với DataNode Bước 7: Ứng dụng thông báo cho NameNode việc ghi tập tin kết thúc 2.2 Giải pháp sử dụng MapReduce để giải vấn đề so trùng 2.2.1 Cơ sở liệu Tập liệu đầu vào xây dựng dạng tập tin, tổ chức sau: Thông tin sản phẩm lưu file “product.dat” có định dạng sau: ArticleID:Title:Atract:Keyword Thông tin thành viên xem sản phẩm đánh giá sản phẩm lưu file “user.dat” có thơng tin định dạng sau: UserID::ArticleID:ratting:timeStamp Cấu trúc thư mục tạo hệ thống file Hadoop (HDFS) sau: Thư mục input nơi lưu trữ tập tin liệu chép trực tiếp từ hệ thống lưu trữ sản phẩm, đồng thời liệu đầu vào cho tác vụ MapReduce Thư mục output chứa đầu tác vụ MapReduce, sau tác vụ MapReduce kết thúc, kết chuyển đổi lưu vào sở liệu hiển thị cho người dùng ứng dụng đầu cuối 2.2.2 Xây dựng giải thuật so trùng dựa mơ hình lập trình MapReduce Bước 1: Dữ liệu đầu vào bao gồm tập tin chứa thông tin sản phẩm, thông tin khách hàng Đầu tiên, liệu đẩy vào hệ thống dạng tập tin HDFS Dữ liệu lọc cho kết liệu theo yêu cầu xử lý giải thuật Kết thu tập vector sản phẩm gồm từ khóa trọng số Q trình xử lý thực quy trình MapReduce sau: - Dữ liệu đầu sản phẩm đưa vào hàm Map để lọc từ khóa tần xuất xuất sản phẩm - Hàm Reduce gom lại trả kết danh sách từ khóa trọng số tương ứng sản phẩm Công việc (Job 1): Tần xuất từ tài liệu Setup(stopwords) Mapper o Input: (productid,product) o Xử lý: duyệt đếm số lượng từ sản phẩm bỏ qua stopwords, số, từ bắt đầu ký tự đặc biệt o Output: ((word,productid),n) Reducer o Output: ((word,productid),n) Công việc (Job 2): Đếm số từ tài liệu Mapper o Input: ((word,productid),n) o Output: (productid,(word,n)) Reducer o Output: (productid,(word,n)) Bước 2: Thực so trùng vectơ người dùng để tìm kết người sở thích phương pháp so trùng profile: Setup(userList,matrix(user/productList), matrix(productid,(keyword,w))) Từ tập liệu đầu vào xây dựng danh sách người dùng, người dùng xem sản phẩm nào, sản phẩm trọng số từ khóa tất sản phẩm Mapper o Input: (userid(a),productid) Tạp chí Khoa học – Trường Đại học Phú Yên, Số 27 (2021), 63-69 67 o Duyệt danh sách người dùng B, tính độ tương quan userid(a) với 2.2.3 Minh họa giải thuật so trùng B[i] Giả sử ta xét tập liệu gồm o Output: ((userid1,userid2),w) sản phẩm (C1-C9) Các sản phẩm có Reducer mối quan hệ với tập từ khóa (k1-k7) xác o Output: ((userid1,userid2),w) định trước biểu diễn ma trận sau Kết sếp lại lấy danh (giá trị biểu diễn số lần xuất từ sách người dùng có độ tương tự cao khóa) Bảng Tập sản phẩm từ khóa C1 C2 C3 C4 C5 C6 C7 C8 C9 k1 n11 n12 n13 n14 n15 n16 n17 n18 n19 k2 n21 n31 n41 n51 n61 n71 n22 n32 n42 n52 n62 n72 n23 n33 n43 n53 n63 n73 n24 n34 n44 n54 n64 n74 n25 n35 n45 n55 n65 n75 n26 n36 n46 n56 n66 n76 n27 n37 n47 n57 n67 n77 n28 n38 n48 n58 n68 n78 n29 n39 n49 n59 n69 n79 k3 k4 k5 k6 k7 Từ ma trận áp dụng cơng thức tính tốn độ tương đồng (E Gabrilovich and S Markovitch, 2007, Rajesh Thiagarajan, Geetha Manjunath, and M Stumptner, 2008) tính trọng số xuất từ khóa thơng qua tần số xuất sản phẩm tính từ ma trận trên, kết thu tập vectơ sản phẩm chứa trọng số xuất từ khóa dạng sau: C={(w0,k0),…,(wi,ki)} Kết hợp kết có với tập liệu người dùng tham gia vào sản phẩm biểu diễn sau: U={(w0,C0),…,(wi,Ci)} Từ tập vectơ xây dựng ma trận biểu diễn quan hệ người dùng từ khóa theo trọng số xuất từ khóa sản phẩm Bảng Tập người dùng từ khóa u1 k1 w11 k2 k3 k4 k5 k6 k7 w12 w13 w14 w15 w16 w17 u2 w21 w22 w23 w24 w25 w26 w27 u3 u4 u5 u6 w31 w41 w51 w61 w32 w42 w52 w62 w33 w43 w53 w63 w34 w44 w54 w64 w35 w45 w55 w65 w36 w46 w56 w66 w37 w47 w57 w67 Áp dụng phương pháp so trùng tìm danh sách khách hàng tương đồng sở thích thơng qua phép tính độ tương tự ma trận độ tương tự từ khóa từ ma trận từ khóa sản phẩm ta kết sau: Bảng Tập biểu diễn mối quan tâm người dùng u1 u1 u2 u3 u4 u5 u6 w12 w13 w14 w15 w16 u2 w21 u3 w31 u4 w41 u5 w51 u6 w61 w23 w24 w25 w26 w32 w34 w35 w36 w42 w43 w45 w46 w52 w53 w54 w56 w62 w63 w64 w65 Journal of Science – Phu Yen University, No.27 (2021), 63-69 68 Kết thu ta lọc chọn người có trọng số cao xem người có mối quan tâm Kết thảo luận 3.1 Triển khai kết đạt Hệ thống triển khai thử nghiệm máy tính (CPU: 2.4Ghz, RAM: 4GB HDD: 200GB, Hadoop-0.20.2, Java JDK 1.6, Ubuntu 10.4 OS ), sử dụng sở liệu cho 5000 sản phẩm 10000 người dùng Kết đo theo thời gian thực thi sau: Minute 60 s 50 40 30 Times 20 10 1node 2node node4 node Hình Thời gian thực thi giải thuật Từ kết đạt được, rút số nhận xét sau: - Để tìm xác người có sở thích cần phải có tập từ khóa đầy đủ tốt trích rút từ sản phẩm - Số lượng node lớn thời gian thực thi giảm đáng kể Khi số lượng node đủ lớn cho tập liệu việc tăng số lượng node khơng làm giảm đáng kể thời gian thực thi 3.2 Kết luận Bài báo sâu vào nghiên cứu thuật toán so trùng cách tổ chức lưu trữ liệu hệ thống phân tán lấy trọng tâm MapReduce Điều quan trọng rút hiệu thuật tốn so trùng xây dựng mơ hình lập trình MapReduce, cơng thức tính tốn mà MapReduce đưa áp dụng cho nhiều toán hệ thống lớn thực tế Hệ thống tự động tìm kiếm người có mối quan tâm thương mại điện tử thông qua sản phẩm họ tương tác với hệ thống TÀI LIỆU THAM KHẢO E Gabrilovich and S Markovitch (2007) Computing semantic relatedness using wikipedia-based explicit semantic analysis, presented at IJCAI Jeffrey Dean and Sanjay Ghemawat (2004) MapReduce: Simplied Data Processing on Large Clusters Jeffrey Dean and Sanjay Ghemawat (2004) Distributed Programming with MapReduce T K Landauer, P W Foltz, and D Laham (1998) An Introduction to Latent Semantic Analysis, Discourse Processes, vol 25, pp 259-284 Rajesh Thiagarajan, Geetha Manjunath, and M Stumptner (2008) Finding Experts By Semantic Matching of User Profiles, presented at Personal Identification and Collaborations: Knowledge Mediation and Extraction Tạp chí Khoa học – Trường Đại học Phú Yên, Số 27 (2021), 63-69 69 Application of Map-Reduce model to search the customers of similar demands for products in e-commerce Tran Xuan Hiep, Phan Thi Thanh Thuy* Phu Yen University *Email: thuycdsppy@yahoo.com Received:May 07, 2020; Accepted: May 28, 2021 Abstract Finding and collaborating with customers of similar demands for products has become more and more important in the e-commerce The essential data storage such as people with similar concerns, suitable personal profiles and their interactions in the community is chosen for analysis This paper introduces the method of matching personal profiles by applying popular algorithms to the Map-Reduce model which is based on Hadoop framework The purpose of this method is to create an effective tool which can help potential users save their time in finding an optimal list of people with similar interests Then they can help companies to better in consulting business to their customers Key words: Map-Reduce, Hadoop, profile matching, semantic analysis ... MapReduce, cơng thức tính tốn mà MapReduce đưa áp dụng cho nhiều toán hệ thống lớn thực tế Hệ thống tự động tìm kiếm người có mối quan tâm thương mại điện tử thông qua sản phẩm họ tương tác với hệ thống... giải thuật tìm kiếm người có sở thích cộng đồng khoa học dựa mơ hình MapReduce Phương pháp nghiên cứu 2.1 MapReduce 2.1.1 Mơ hình MapReduce Nhiệm vụ tính tốn mơ hình MapReduce nhận liệu vào tập... yêu cầu xử lý giải thuật Kết thu tập vector sản phẩm gồm từ khóa trọng số Q trình xử lý thực quy trình MapReduce sau: - Dữ liệu đầu sản phẩm đưa vào hàm Map để lọc từ khóa tần xuất xuất sản phẩm