Luận văn thạc sĩ dự đoán liên kết trên cơ sở dữ liệu đồ thị

82 4 0
Luận văn thạc sĩ dự đoán liên kết trên cơ sở dữ liệu đồ thị

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUY NHƠN NGUYỄN TRỌNG NHÂN DỰ ĐOÁN LIÊN KẾT TRÊN SƠ SỞ DỮ LIỆU ĐỒ THỊ Chuyên ngành: Khoa học máy tính Mã số: 8480101 Người hướng dẫn: TS Trần Thiên Thành e LỜI CAM ĐOAN Tôi cam đoan kết tìm hiểu đưa luận văn dựa kết thu trình tìm hiểu riêng Các kết nghiên cứu kết luận luận văn trung thực, không chép từ nguồn hình thức Việc tham khảo nguồn tài liệu (nếu có) thực trích dẫn ghi nguồn tài liệu tham khảo quy định Quy Nhơn, tháng 09, năm 2021 Nguyễn Trọng Nhân e LỜI CẢM ƠN Luận văn Thạc Sỹ thực Trường Đại học Quy Nhơn Để hoàn thành luận văn này, tơi xin tỏ lịng biết ơn sâu sắc gửi lời cảm ơn chân thành đến Thầy TS Trần Thiên Thành, tận tình hướng dẫn, giúp đỡ cho tơi suốt q trình thực luận văn Tôi xin chân thành cảm ơn quý Thầy, cô khoa Khoa học máy tính phịng sau đại học Trường Đại học Quy Nhơn tận tình truyền đạt kiến thức, tạo điều kiện thuận lợi mặt thủ tục cho hoạt động học tập thực luận văn Cuối xin gửi lời cảm ơn tới anh chị bạn lớp cao học Khóa 22 ln động viên, khích lệ tinh thần, giúp tơi nhiều q trình học tập hoàn thành luận văn thạc sỹ Quy Nhơn, tháng 09, năm 2021 Nguyễn Trọng Nhân e MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN 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Ị MỞ ĐẦU 1 Lý chọn đề tài Mục tiêu nghiên cứu Đối tượng phạm vi nghiên cứu 3.1 Đối tượng nghiên cứu 3.2 Phạm vi nghiên cứu Phương pháp nghiên cứu Nội dung nghiên cứu Chương 1: CƠ SỞ DỮ LIỆU ĐỒ THỊ 1.1 Đồ thị 1.2 Cơ sở liệu đồ thị 1.2.1 Các mơ hình sở liệu đồ thị 1.2.2 Ứng dụng sở liệu đồ thị 12 1.2.3 Một số hệ quản trị sở liệu đồ thị tiêu biểu 14 1.3 Cơ sở liệu đồ thị Neo4J 15 1.3.1 Giới thiệu 15 1.3.2 Mơ hình liệu 16 1.3.3 Ngôn ngữ truy vấn Cyper 22 1.3.4 Khoa học liệu đồ thị 26 1.4 Tiểu kết chương 29 e Chương 2: BÀI TOÁN DỰ ĐOÁN LIÊN KẾT TRÊN CƠ SỞ DỮ LIỆU NEO4J 30 2.1 Bài toán dự đoán liên kết 30 2.1.1 Giới thiệu toán 30 2.1.1 Ứng dụng 31 2.1.2 Phương pháp dự đoán liên kết 31 2.2 Dự đoán liên kết sở liệu đồ thị Neo4j 33 2.2.1 Ưu điểm sở liệu đồ thị toán dự đoán liên kết 33 2.2.2 Phương pháp sử dụng 33 2.2.3 Ví dụ minh họa 42 2.3 Xây dựng bô phân loại học máy toán dự đoán liên kết 45 2.3.1 Xây dựng mơ hình học máy 45 2.3.2 Tập huấn luyện tập kiểm tra 47 2.3.3 Các metrics đánh giá mơ hình: 48 2.4 Tiểu kết chương 52 Chương 3: CÀI ĐẶT MÔ PHỎNG THỰC NGHIỆM 53 3.1 Môi trường Công cụ thực nghiệm 53 3.1.1 Mơi trường ngơn ngữ lập trình 53 3.1.2 Công cụ thư viện 53 3.2.3 Bộ liệu 54 3.2 Bài toán dự đoán đồng tác giả 55 3.3 Cài đặt mô 57 3.2.1 Kết nối Neo4j: 57 3.2.2 Nạp sở liệu DBLP vào Neo4j 57 3.2.3 Xây dựng biểu đồ đồng tác giả 58 3.2.4 Tạo tập liệu huấn luyện kiểm tra 58 e 3.2.5 Xây dựng mơ hình học máy 61 3.2.6 Xây dựng tính dự đốn liên kết 62 3.2.7 Đánh giá mơ hình 63 3.2.8 Xây dựng số tính đồ thị khác 64 3.3 Đánh giá kết đạt 67 3.4 Tiểu kết chương 69 KẾT LUẬN 70 DANH MỤC TÀI LIỆU THAM KHẢO 71 QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN THẠC SĨ (BẢN SAO) e DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT CSDL : Cơ sở liệu RDBMS : Hệ quản trị sở liệu quan hệ SQL : Structured Query Language NoSQL : Not only SQL API : Application Programming Interface RDF : Resource Description Framework URI : Uniform Resource Identifier IDE : Integrated Development Environment APOC : Awesome Procedures on Cypher CN : Hàng xóm chung JC : Hệ số Jaccard AA : Adamic Adar PA : Kết nối ưu tiên TN : Tổng số lân cận BSD : Berkeley Software Distribution e DANH MỤC CÁC BẢNG Bảng 2.1: Các thơng số cú pháp thư viện thuật tốn Adamic Adar 34 Bảng 2.2: Các thông số cú pháp thư viện thuật tốn hàng xóm chung 35 Bảng 2.3: Các thông số cú pháp thư viện thuật tốn đính kèm thích hợp 35 Bảng 2.4: Các thơng số cú pháp thư viện thuật tốn phân bổ tài nguyên 36 Bảng 2.5: Các thông số cú pháp thư viện thuật toán cộng đồng 36 Bảng 2.6: Các thông số cú pháp thư viện thuật toán tổng số lân cận 37 Bảng 2.7: Các thơng số cú pháp thuật tốn đếm số tam giác 38 Bảng 2.8: Cấu hình chung để thực thi thuật tốn đồ thị đặt tên 39 Bảng 2.9: Kết 39 Bảng 2.10: Các thông số cú pháp thuật toán hệ số phân cụm cục 40 Bảng 2.11: Cấu hình chung để thực thi thuật tốn đồ thị đặt tên 40 Bảng 2.12: Cấu hình cụ thể thuật tốn 41 Bảng 2.13: Kết 41 Bảng 2.14: Các số Positive Negative 49 Bảng 3.1: Bảng kết đánh giá mơ hình 67 e DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1: Ví dụ hai đỉnh khơng có cạnh nối Hình 1.2: Ví dụ hai đỉnh có cạnh nối Hình 1.3: Ví dụ hai đỉnh có nhiều cạnh nối Hình 1.4: Ví dụ cạnh có hướng Hình 1.5: Ví dụ cạnh khun Hình 1.6: Ví dụ đồ thị vô hướng với đỉnh cạnh Hình 1.7: Cấu trúc liệu theo danh sách cạnh Hình 1.8: Cấu trúc liệu theo ma trận kề Hình 1.9: Một số dạng đồ thị Hình 1.10: ví dụ CSDL đồ thị mạng xã hội Hình 1.11: Ví dụ đồ thị thuộc tính đơn giản 10 Hình 1.12: Biểu đồ RDF 12 Hình 1.13: Ví dụ dự đốn liên kết tình bạn mạng xã hội 12 Hình 1.14: Ví dụ phân loại nút 13 Hình 1.15: Ví dụ phân cụm đồ thị 13 Hình 1.16: Kiến trúc logic Neo4j 16 Hình 1.17: Nút, mối quan hệ tập thuộc tính 17 Hình 1.18: Ví dụ đồ thị đơn giản với nút thuộc tính 17 Hình 1.19: Mối quan hệ quan hệ liên quan 18 Hình 1.20: Một mối quan hệ nút bắt đầu nút kết thúc 18 Hình 1.21: Quan hệ vào quan hệ nút 18 Hình 1.22: Quan hệ nút 18 Hình 1.23: Ví dụ mạng xã hội 19 Hình 1.24: Biểu diễn thuộc tính 20 Hình 1.25: Đường 20 e Hình 1.26: Đường đến nút 21 Hình 1.27: Đường từ nút đến nút có quan hệ relationship 21 Hình 1.28: Biểu diễn nhãn 21 Hình 1.29: Các phiên Neo4j hổ trợ thư viện GDS v1.6 27 Hình 1.30: Cài đặt GDS cấp độ sở liệu 27 Hình 1.31: Cài đặt GDS cấu hình Neo4j 28 Hình 1.32: Kiểm tra phiên GDS 28 Hình 1.33: Các thuật tốn GDS 29 Hình 2.1: Các thuật toán dự đoán liên kết [[4]] 31 Hình 2.2: Đồ thị đơn giản Neo4j 42 Hình 2.3: Kết số hàng xóm chung nút Thu Nam 42 Hình 2.4: Kết số hàng xóm chung nút Thu Nhi 43 Hình 2.5: Kết số hàng xóm chung sử dụng hướng quan hệ nút Thu Nhi 43 Hình 2.6: Kết tích nút Thu Nam 44 Hình 2.7: Kết tổng số nút số tam giác đồ thị 44 Hình 2.8: Kết sử dụng thuật tốn hệ số phân cụm cục 45 Hình 3.1: Một mơ hình rừng ngẫu nhiên 56 Hình 3.2: Truy vấn kết kết nối với Neo4j 57 Hình 3.3: Lược đồ minh họa liệu DBLP.v10 Neo4j 57 Hình 3.4: Truy vấn Cyper biểu đồ đồng tác giả Neo4j 58 Hình 3.5: Truy vấn biểu đồ kết số báo theo năm 59 Hình 3.6: Truy vấn kết số bảo xuất trước từ năm 2006 sau 60 Hình 3.7: Truy vấn kết mối quan hệ đồng tác giả báo trước năm 2006 60 e 57 3.3 Cài đặt mô 3.2.1 Kết nối Neo4j: Trong Anaconda, mở Jupyter thực truy vấn sau để kết nối với Neo4j: Hình 3.2: Truy vấn kết kết nối với Neo4j 3.2.2 Nạp sở liệu DBLP vào Neo4j Kết sở liệu DBLP.v10 nạp vào Neo4j từ file Json có lược đồ minh họa hình 3.3: Hình 3.3: Lược đồ minh họa liệu DBLP.v10 Neo4j e 58 3.2.3 Xây dựng biểu đồ đồng tác giả Tập liệu không chứa mối quan hệ tác giả mô tả cộng tác họ, suy chúng dựa việc tìm kiếm báo viết nhiều người Truy vấn Cypher sau tạo mối quan hệ CO_AUTHOR tác giả viết báo Ở quan tâm đến lần tác giả cộng tác mà không quan tâm đến số lần cộng tác tác giả Hình 3.4: Truy vấn Cyper biểu đồ đồng tác giả Neo4j 3.2.4 Tạo tập liệu huấn luyện kiểm tra Như trình bày mục 2.3.2 khơng thể chia ngẫu nhiên liệu thành tập liệu huấn luyện tập liệu kiểm tra, bạn vơ tình sử dụng liệu khác với liệu huấn luyện để tạo mơ hình, xảy rị rỉ liệu Điều dễ dàng xảy sử dụng đồ thị, cặp nút tập huấn luyện kết nối với nút tập thử nghiệm Để giải vấn đề này, cần chia đồ thị thành đồ thị đào tạo đồ thị kiểm tra Đồ thị trích dẫn chứa thơng tin thời gian mà e 59 báo xuất bản, lấy để tiến hành phân chia liệu Chúng ta tạo đồ thị huấn luyện đồ thị kiểm tra cách tách liệu năm cụ thể Hình 3.5: Truy vấn biểu đồ kết số báo theo năm Nhìn vào biểu đồ ta thấy năm 2006 năm tốt để phân chia liệu, sau sử dụng năm để chia liệu tạo mô hình dự đốn mình, kiểm tra với năm khác để xem mơ hình có bị ảnh hưởng hay khơng Kiểm tra số báo xuất trước từ năm 2006 trở sau, với kết có khoảng 60% số báo xuất trước 40% từ 2006 trở sau: e 60 Hình 3.6: Truy vấn kết số bảo xuất trước từ năm 2006 sau Tạo mối quan hệ đồng tác giả CO_AUTHOR_EARLY báo từ năm 2005 trở trước kết có 81.096 cặp nút có liên kết: Hình 3.7: Truy vấn kết mối quan hệ đồng tác giả báo trước năm 2006 Tạo mối quan hệ đồng tác giả CO_AUTHOR_LATE báo từ năm 2006 trở sau kết có 72.128 cặp nút có liên kết: Hình 3.8: Truy vấn kết mối quan hệ đồng tác giả báo từ năm 2006 sau  Xây dựng liệu huấn luyện: Chúng ta xây dựng mẫu tiêu cực cách tìm cặp nút kết hợp hai ba bước nhảy xa nhau, loại trừ cặp có mối quan hệ Sau đó, giảm bớt cặp nút để có số lượng mẫu tích cực tiêu cực Bây viết đoạn mã sau để tạo DataFrame huấn luyện chứa mẫu tích cực tích cực tiêu cực dựa đồ thị e 61 CO_AUTHOR_EARLY: Hình 3.9: Truy vấn tạo DataFrame huấn luyện Tương tự tiến hành tạo DataFrame kiểm tra Hình 3.10: Truy vấn tạo DataFrame kiểm tra 3.2.5 Xây dựng mơ hình học máy Chúng ta tạo phân loại rừng ngẫu nhiên, phương pháp rừng ngẫu nhiên đảm bảo chúng tơi khơng tạo mơ hình làm thừa e 62 liệu đào tạo Chúng ta tạo mơ hình với mã sau: Hình 3.11: Tạo phân loại rừng ngẫu nhiên 3.2.6 Xây dựng tính dự đốn liên kết Tạo mơ hình để dự đốn liệu hai tác giả có hợp tác tương lai hay không dựa đặc điểm trích xuất từ hàng xóm chung (CN), kết nối ưu tiên (PA) tổng số lân cận (TN) Hình 3.12: Truy vấn lấy nút ghép nối từ DataFrame tính tốn kết cho cặp nút: (CN), (PA) (TN) Chúng ta áp dụng hàm vào trình đào tạo kiểm tra DataFrame Đối với DataFrame huấn luyện, số tính tốn dựa quan hệ “CO_AUTHOR_EARLY”, DataFrame kiểm tra, phép tính thực tồn quan hệ “CO_AUTHOR” e 63 Hình 3.13: Truy vấn mẫu DataFrame huấn luyện Tiếp theo ta tiến hành đào tạo mơ hình cách thực việc truy vấn sau: Hình 3.14: Truy vấn tạo mơ hình huấn luyện 3.2.7 Đánh giá mơ hình Luận văn dùng số metric dự đoán sau: Accuracy, Precision, Recall F1 để đánh giá mơ hình dự đốn liên kết Đoạn mã sau cho phép đánh giá mơ hình trả kết sau: Hình 3.15: Kết Accuracy, Precision, Recall, F1 e 64 Chúng ta tiến hành kiểm tra xem tính liên kết đóng vai trị bật Kết sau: Hình 3.16: Vai trị tính dự đốn liên kết 3.2.8 Xây dựng số tính đồ thị khác Luận văn sử dụng thêm hai thuật toán đếm số tam giác hệ số phân cụm cục nhóm thuật tốn phát cộng đồng để kiểm tra xem mơ hình dự đốn có hiệu khơng? Bởi thay tính tốn dựa cặp nút, chúng biện pháp tính tốn cụ thể nút Thuật tốn trả số lượng tam giác tạo thành nút hệ số phân cụm nút Hệ số phân cụm nút cho biết xác suất nút lân cận kết nối Chúng ta tiến hành chạy hai thuật toán đồ thị huấn luyện kiểm tra, kết có thêm node là: trianglesTrain, coefficientTrain, trianglesTest, and coefficientTest e 65 Hình 3.17: Truy vấn đếm số tam giác hệ số phân cụm cục Sau đó, thêm chúng vào DataFrames huấn luyện kiểm tra theo đoạn mã sau: Hình 3.18: Mẫu DataFrames Các tham số chúng không dành riêng cho ghép nối nút mà tham số cho nút Không thể đơn giản thêm giá trị vào DataFrame dạng tam giác nút hệ số nút, thứ tự ghép nối nút khơng thể đảm bảo cần phương thức khơng liên quan đến thứ tự Điều đạt cách lấy giá trị trung bình, tích giá trị cách tính giá trị nhỏ lớn nhất, sau: e 66 Hình 3.19: Truy vấn tính giá trị nhỏ lớn Tiếp theo đào tạo đánh giá mơ hình: Hình 3.20: Mơ hình đào tạo kết đánh giá mơ hình Chúng ta tiến hành kiểm tra xem tính liên kết đóng vai trị bật nhất: Hình 3.21: Vai trị tính e 67 3.3 Đánh giá kết đạt Dựa vào kết ta thấy, ban đầu sử dụng tính dự đoán liên kết cặp nút CN, PA, TN cho kết đánh giá tương đối tốt (trên 90%) Sau thêm hai tính đếm tam giác hệ số phân cụm cục bộ, kết đánh giá cải thiện thêm trung bình khoảng 4% metric đánh giá Cụ thể: Bảng 3.1: Bảng kết đánh giá mô hình Metric Với CN, PA, Bổ sung thêm đếm tam giác Phần đánh giá TN hệ số phân cụm cục trăm Accuracy 0.916 0.952 + 3,6% Precision 0.922 0.949 + 2.7% Recall 0.909 0.955 + 4.6% F1 0.915 0.952 + 3.7% STT Bện cạnh dựa vào hình 3.16 3.21 ta thấy tính CN hai trường hợp có ảnh hưởng lớn nhất, nhưng tầm quan trọng tính tam giác tăng lên tương đối Vấn đề cần đánh giá xem thử việc phân chia năm khác để đào tạo kiểm tra có ảnh hưởng đến dự đốn tơi khơng? Dựa vào hình 3.5 ta thấy báo xuất trước năm 1997, sau có nhiều báo xuất từ năm 2001 đến năm 2006, trước giảm sau tăng dần kể từ năm 2011 (khơng bao gồm năm 2013) Tôi tiến hành chọn năm 1997, 2004, 2013 để phân chia liệu tiến hành đào tạo kiểm tra Kết đánh giá mô sau:  Năm 1997: e 68 Hình 3.22: Kết đánh giá mơ hình năm 1997  Năm 2004: Hình 3.23: Kết đánh giá mơ hình năm 2004  Năm 2013: Hình 3.24: Kết đánh giá mơ hình năm 2013 Ta thấy việc phân chia năm khác để đào tạo kiểm tra kết thu metric đánh giá tương đối cao điểm số đánh giá sau cao đánh giá trước năm chọn để phân chia liệu Một điều nửa dễ nhận thấy điểm số Accuracy F1 gần nhau, điều chứng tỏ mơ hình đào tạo mà luận văn xây dựng mơ hình tương đối tốt dùng để dự đốn toán liên kết e 69 3.4 Tiểu kết chương Luận văn dựa vào tập liệu tạo đồ thị đồng tác giả dựa tác giả cộng tác báo sau dự đoán hợp tác tương lai cặp tác giả Tiến hành đào tạo đánh giá mơ hình dự đốn khác nhau, bắt đầu với tính đồ thị CN, PA, TN sau thêm hai tính thuật tốn đếm tam giác hệ số phân cụm cục nhóm thuật tốn phát cộng đồng để tăng khả dự đoán liên kết mơ hình dự đốn Kết ta có độ xác dự đốn 90% cho tính tăng khoảng 4% sau thêm hai tính nhóm thuật tốn phát cộng đồng Bên cạnh việc chọn năm khác để phân chia liệu không ảnh hưởng tới mơ hình dự đốn mà luận văn xây dựng, kết thu cho độ xác tương đối cao (trên 90%) e 70 KẾT LUẬN Luận văn trình bày cách tổng quan sở liệu đồ thị phổ biến CSDL đồ thị Neo4j Đã tìm hiểu, nghiên cứu khái niệm, ứng dụng phương pháp để giải tốn dự đốn liên kết Song song với luận văn xem xét việc sử dụng tính thuật toán thư viện thuật toán đồ thị Neo4j áp dụng vào toán dự đoán liên kết Đã trình bày vài khái niệm sơ sau mơ chi tiết việc kết hợp Neo4j ngơn ngữ lập trình Python 3.8 chạy tảng Anacoda để dự đoán liên kết Cụ thể, luận văn dựa vào tập liệu DBLP tiến hành tạo đồ thị đồng tác giả dựa tác giả cộng tác báo, sau dự đốn hợp tác tương lai cặp tác giả minh họa cách đánh giá mơ hình phân loại rừng ngẫu nhiên, kết hợp nhiều loại tính liên kết khác để cải thiện kết đánh giá Một số hướng phát triển: Trong nghiên cứu tương lai, đánh giá cách tiếp cận liệu lớn với liệu thông số sử dụng luận văn Bộ liệu DBLP có trích dẫn báo; sử dụng liệu để tạo tính khác dự đốn trích dẫn tương lai Và tơi dự định tiếp tục nghiên cứu, cải tiến để triển khai cài đặt nhiều liệu hơn, tạo nhiều kết có giá trị hơn, hỗ trợ truy vấn phức tạp e 71 DANH MỤC TÀI LIỆU THAM KHẢO [1] Mark Needham, Amy E Hodler, Graph Algorithms: Practical Examples in Apache Spark and Neo4j, O'Reilly Media, 2020, page 193 - 234 [2] Rik Van Bruggen, Learning Neo4j, Packt, 2014, page - 50 [3] Virinchi Srinivas, Pabitra Mitra, Link Prediction in Social Networks, Springer, 2016, page 57 - 60 [4] Jon Kleinberg David Liben-Nowell, The Link Prediction Problem for Social Networks, January 8, 2004, page – [5] Zuhal Kurt, Kemal Ozkan, Alper Bilge, Omer Nezih Gerek A SimilarityInclusive Link Prediction Based Recommender System Approach, Elektronika Ir Elektrotechnika, ISSN 1392-1215, VOL 25, NO 6, 2019 [6] M E J Newman Clustering and preferential attachment in growing networks Physical Review Letters E, 64, 2001 [7] Lada A Adamic and Eytan Adar Friends and neighbors on the web Social Networks, 25(3):211–230, July 2003 [8] Gerard Salton and Michael J McGill Introduction to Modern Information Retrieval McGrawHill, 1983 [9] M Al Hasan, V Chaoji, S Salem, and M Zaki Link prediction using supervised learning In Workshop on Link Discovery: Issues, Approaches and Apps., 2005 [10] "Resource Description Framework (RDF): Concept and Summary Syntax" www.w3.org Taken 2018-10-24 [11] https://neo4j.com/docs [12] http://www.vi.w3ki.com/ [13] https://db-engines.com/ [14] https://vi.wikiqube.net/ e ... tiết toán dự đoán liên kết dự đoán liên kết sở liệu đồ thị Neo4j nội dung luận văn e 30 Chương 2: BÀI TOÁN DỰ ĐOÁN LIÊN KẾT TRÊN CƠ SỞ DỮ LIỆU NEO4J Trên sở nội dung chương 1, chương luận văn sâu... nút 2.2 Dự đoán liên kết sở liệu đồ thị Neo4j 2.2.1 Ưu điểm sở liệu đồ thị toán dự đoán liên kết Cơ sở liệu Neo4j hệ sở liệu đồ thị tiếng nay, Neo4j có tích hợp thuật tốn dự đốn liên kết thuận... dự đoán liên kết liệu thường có mối liên hệ với nên việc sử dụng sở liệu mô hình đồ thị để lưu trữ liệu cho toán dự đoán liên kết khai thác nhiều điểm mạnh mơ hình liệu đồ thị Cơ sở liệu đồ thị

Ngày đăng: 27/03/2023, 06:32

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

Tài liệu liên quan