Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 51 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
51
Dung lượng
1,64 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - lu an NGUYỄN VĂN HÒA n va p ie gh tn to NGHIÊN CỨU PHƯƠNG PHÁP TƯ VẤN CỘNG TÁC d oa nl w CHO CÁC CỔNG LẬP TRÌNH TRỰC TUYẾN nf va an lu lm ul LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) z at nh oi z m co l gm @ an Lu HÀ NỘI - 2022 n va ac th si HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - lu an n va NGUYỄN VĂN HÒA p ie gh tn to NGHIÊN CỨU PHƯƠNG PHÁP TƯ VẤN CỘNG TÁC CHO CÁC CỔNG LẬP TRÌNH TRỰC TUYẾN d oa nl w Chuyên ngành: Hệ thống thông tin lu nf va an Mã số: 8.48.01.04 lm ul LUẬN VĂN THẠC SĨ KỸ THUẬT z at nh oi (Theo định hướng ứng dụng) z NGƯỜI HƯỚNG DẪN KHOA HỌC @ m co l gm TS NGUYỄN DUY PHƯƠNG an Lu HÀ NỘI - 2022 n va ac th si i LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu riêng tôi, kết đạt luận văn sản phẩm riêng cá nhân, không chép lại người khác Trong toàn nội dung luận văn, điều trình bày cá nhân tổng hợp từ nhiều nguồn tài liệu Tất tài liệu tham khảo có xuất xứ rõ ràng trích dẫn hợp pháp Các số liệu, kết nêu luận văn trung thực Tác giả luận văn Nguyễn Văn Hòa lu an n va p ie gh tn to d oa nl w nf va an lu z at nh oi lm ul z m co l gm @ an Lu n va ac th si ii LỜI CẢM ƠN Em xin gửi lời cảm ơn tới thầy hướng dẫn TS Nguyễn Duy Phương, thầy tận tình hướng dẫn giúp đỡ, chỉnh sửa bảo em suốt q trình nghiên cứu hồn thành luận văn Em xin chân thành cảm ơn thầy Học viện Cơng nghệ Bưu Viễn thơng, đặc biệt thầy cô khoa Công nghệ thông tin, tận tình dạy dỗ, giúp đỡ tạo điều kiện tốt cho em suốt quãng thời gian em theo học học viện, để em hoàn thành luận văn Mặc dù cố gắng hoàn thành luận văn chắn khơng tránh khỏi lu an sai sót, em kính mong nhận thơng cảm góp ý thầy cô n va bạn p ie gh tn to Em xin trân trọng cảm ơn w d oa nl Nguyễn Văn Hòa nf va an lu z at nh oi lm ul z m co l gm @ an Lu n va ac th si iii MỤC LỤC LỜI CAM ĐOAN i MỤC LỤC iii DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT v DANH MỤC CÁC BẢNG vi DANH MỤC HÌNH ẢNH vii LỜI MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ CỔNG LẬP TRÌNH TRỰC TUYẾN VÀ HỆ TƯ VẤN CỘNG TÁC 1.1 Giới thiệu công nghệ lập trình trực tuyến lu an n va PC2 1.1.2 CMS .5 1.1.3 Domjudge 1.1.4 Kattis .6 1.1.5 SPOJ 1.1.6 DLab gh tn to 1.1.1 Tổng kết ie 1.1.7 p 1.2 Giới thiệu hệ tư vấn Phương pháp lọc nội dung (Content Filtering) w 1.2.1 1.2.3 Phương pháp lọc kết hợp (Hybrid Filtering) 11 d oa nl Phương pháp lọc cộng tác (Collaborative Filtering) 10 1.2.2 lu an 1.3 Phương pháp tư vấn cộng tác based-line .12 Phương pháp tư vấn cộng tác User-based 13 1.3.2 Phương pháp tư vấn cộng tác Item-based 18 nf va 1.3.1 lm ul 1.4 Một số vấn đề tư vấn cộng tác 21 z at nh oi 1.5 Kết luận 23 CHƯƠNG 2: PHƯƠNG PHÁP TƯ VẤN CỘNG TÁC CHO CỔNG LẬP TRÌNH TRỰC TUYẾN 24 z 2.1 Phát biểu toán 24 @ gm 2.2 Phương pháp tư vấn cộng tác cho cổng lập trình trực tuyến 25 Thuật toán tư vấn cộng tác cho cổng lập trình trực tuyến 29 m 2.2.2 co l 2.2.1 Phương pháp ước lượng mức độ phù hợp người dùng toán .25 an Lu 2.3 Kết luận 33 CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ .35 va n 3.1 Phương pháp thực nghiệm 35 ac th si iv 3.2 Dữ liệu thực nghiệm .36 3.2.1 Dữ liệu đầu vào 36 3.2.2 Xử lý liệu 37 3.3 Kết thực nghiệm .37 3.4 Phân tích đánh giá thực nghiệm 39 3.5 Kết luận 40 TÀI LIỆU THAM KHẢO 41 lu an n va p ie gh tn to d oa nl w nf va an lu z at nh oi lm ul z m co l gm @ an Lu n va ac th si v DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT Viết tắt Tiếng Anh Tiếng việt CF Collaborative filtering Lọc cộng tác ICPC International Collegiate Programming Contest Cuộc thi lập trình quốc tế MAE Mean absolute error Độ đo trung bình giá trị tuyệt đối lỗi lu an n va p ie gh tn to d oa nl w nf va an lu z at nh oi lm ul z m co l gm @ an Lu n va ac th si vi DANH MỤC CÁC BẢNG Bảng 1: Ma trận đánh giá Người dùng – Sản phẩm .15 Bảng 2: Ma trận đánh giá R theo độ tương quan Pearson 19 Bảng 3: Ví dụ với ma trận đánh giá hệ gồm người dùng sản phẩm 26 Bảng 4: Ma trận đánh giá R 31 Bảng 5: Giá trị MAE phương pháp 39 lu an n va p ie gh tn to d oa nl w nf va an lu z at nh oi lm ul z m co l gm @ an Lu n va ac th si vii DANH MỤC HÌNH ẢNH Hình 1: Mơ tả phương pháp Hybrid Filtering 11 Hình 2: Đồ thị hai phía tương ứng với ma trận đánh giá hệ gồm người dùng sản phẩm .27 Hình 3: Ảnh minh họa liệu đầu vào 36 lu an n va p ie gh tn to d oa nl w nf va an lu z at nh oi lm ul z m co l gm @ an Lu n va ac th si LỜI MỞ ĐẦU Ngày chứng kiến phát triển mạnh mẽ chưa có cổng lập trình trực tuyến Các cổng lập trình cung cấp cho người dùng mơi trường lập trình đa ngơn ngữ để lập trình, kết lập trình chấm cách tự động Đồng hành với người dùng cổng lập trình trực tuyến trường đại học, tập đoàn kinh tế lớn nhằm mục tiêu đào tạo tuyển dụng nguồn nhân lực chất lượng cao cơng nghệ thơng tin ví dụ tập đồn lớn cơng nghệ Microsoft, Google, Facebook, Apple, Samsung… Ở Việt Nam có FPT, Viettel, VNPT, tập đồn khơng xây dựng riêng cho cổng lập trình trực tuyến mà cịn bảo trợ tài cung cấp kho nội dung số cho cổng lập trình trực lu tuyến trường đại học khác Một số trường đại học MIT, Stanford, Baylor an xem cổng lập trình trực tuyến công cụ quan trọng giảng dạy, rèn luyện n va đánh giá kỹ lập trình kỹ sư ngành công nghệ thông tin Nhận thức tầm tn to quan trọng hiệu công nghệ lập trình trực tuyến, số trường đại học ie gh Việt Nam Đại học Quốc Gia Hà Nội, Đại học Quốc Gia thành phố HCM Đại học p Bách Khoa, Học viện cơng nghệ Bưu Chính Viễn Thơng xây dựng riêng cho cổng lập trình trực tuyến ứng dụng thành công giảng dạy rèn luyện w oa nl kỹ lập trình sinh viên d Có nhiều công nghệ khác để xây dựng nên cổng lập trình trực tuyến Ở lu nf va an cấp độ trung học sở hay phổ thông trung học hầu hết quốc gia chọn công nghệ PC2 CMS giảng dạy, luyện tập tổ chức kỳ thi lập trình quốc gia lm ul (NOI) quốc tế (IOI) Ở cấp bậc cao hơn, trường đại học thường lựa chọn z at nh oi công nghệ Domjudge, Katis DMOJ giảng dạy, luyện tập tổ chức kỳ thi lập trình quốc gia quốc tế theo chuẩn ACM/ICPC Sự khác biệt công nghệ nhỏ phân biệt ta triển khai ứng dụng dựa vào quy z @ mô nhỏ hay lớn, nhiều hay người dùng, độ lớn liệu test phương pháp l gm đánh giá giải pháp người lập trình theo mức phần hay tồn phần Đối với cổng lập trình trực tuyến, tài nguyên quan trọng kho nội dung co m số nạp bên cổng lập trình Kho nội dung số thể dạng tập an Lu toán với liệu kiểm thử tương ứng Mỗi toán cần xây dựng nhiều liệu kiểm thử, liệu kiểm thử xác định tính chất va n mà giải pháp lập trình cần đạt Một giải pháp lập trình xem tốt ac th si 28 𝑊={ 𝑛ế𝑢 𝑟𝑖𝑥 ≠ 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 𝑊1 = { (18) 𝑛ế𝑢 𝑟𝑖𝑥 > 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 (19) 𝑛ế𝑢 𝑟𝑖𝑥 < 0 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 (20) 𝑊2 = { Khi đó, số lượng tất đường có độ dài L từ đỉnh i∈U đến đỉnh x∈P toàn ma trận đánh giá R xác định theo công thức (21) Đây số lượng ba loại đường từ đỉnh i∈U đến đỉnh x∈P Số lượng đường loại 1(đường qua cạnh có trọng số 1) từ đỉnh i∈U đến đỉnh x∈P xác định theo công thức (22) Số lượng đường loại 2(đường qua cạnh có trọng số -1) từ đỉnh i∈U đến đỉnh x∈P xác định theo công thức (23) Số lượng đường loại 3(đường lu an qua cạnh có trọng số -1) từ đỉnh i∈U đến đỉnh x∈P xác định theo n va công thức (24) Trong đó, 𝑊 𝑇 ma trận chuyển vị W, (𝑊 )𝑇 ma trận chuyển vị gh tn to 𝑊 , (𝑊 )𝑇 ma trận chuyển vị 𝑊 𝑊𝐿 = { 𝑛ế𝑢 𝐿 = 𝑛ế𝑢 𝐿 = 3, 5, … (21) p ie 𝑊 𝑊 𝑊 𝑇 𝑊 𝐿−2 𝑊1 𝑊 (𝑊 )𝑇 (𝑊 )𝐿−2 oa nl w (𝑊 )𝐿 = { 𝑊2 𝑊 (𝑊 )𝑇 (𝑊 )𝐿−2 d (𝑊 )𝐿 = { (22) 𝑛ế𝑢 𝐿 = 𝑛ế𝑢 𝐿 = 3, 5, … (23) an lu 𝑛ế𝑢 𝐿 = 𝑛ế𝑢 𝐿 = 3, 5, … (𝑊 )𝐿 = 𝑊 𝐿 − (𝑊 )𝐿 − (𝑊 )𝐿 nf va (24) lm ul Như ta xác định số lượng loại đường có độ dài L từ đỉnh z at nh oi i∈U đến đỉnh x∈P, Gọi MAX số lượng đường có độ dài L lớn từ đỉnh i∈U đến đỉnh x∈P xác định theo (25) Khi đó, phương pháp dự đốn mức độ phù hợp người dùng i∈U tốn x∈P xác định theo cơng thức (26) z @ 𝐿 𝑀𝐴𝑋 = 𝑚𝑎𝑥 {𝑤𝑖𝑥 : 𝑖 = 1, 2, , 𝑛; 𝑥 = 1, 2, , 𝑚} 𝑀𝐴𝑋 > 0.5 > 0.5 𝐿 𝑀𝐴𝑋 > 0.5 (26) n va {−1 𝑛ế𝑢 (𝑤 )𝑖𝑥 an Lu 𝑛ế𝑢 𝐿 (𝑤 )𝑖𝑥 m 𝑟𝑖𝑥 = 𝑀𝐴𝑋 co 𝑛ế𝑢 l gm 𝐿 (𝑤 )𝑖𝑥 (25) ac th si 29 Trong công thức dự đoán, để hạn chế cặp (i, x) có số lượng đường độ dài L 𝐿 nhỏ có số lượng đường độ dài L thuộc loại chiếm đại đa số so với 𝑤𝑖𝑥 , Chính vậy, chúng tơi so sánh với giá trị lớn ma trận 𝑊 𝐿 để tiến hành so sánh Giá trị dự đoán quan điểm người dùng i toán x rix=1 tỉ 𝐿 số (𝑤 )𝑖𝑥 𝑀𝐴𝑋 > 0.5 Điều có nghĩa số lượng đường độ dài L từ đỉnh i đến đỉnh x phải đạt giá trị đủ lớn số lượng đường độ dài L qua cạnh có trọng số dương chiếm đại đa số Tương tự vậy, giá trị dự đoán rix =-1 số lượng đường độ dài L từ đỉnh i đến đỉnh x phải đạt giá trị đủ lớn số lượng đường độ dài L qua cạnh có trọng số âm chiếm đại đa số Giá trị dự đoán rix =0 số lượng đường độ dài L từ đỉnh i đến đỉnh x phải đạt giá trị đủ lớn số lượng dường độ dài L qua cạnh lu có trọng số âm lẫn dương chiếm đại đa số Dựa vào phương pháp dự đoán an n va xây dựng theo (26) luận văn đề xuất thuật toán tư vấn cộng tác cho cổng lập trình trực tuyến Mục 2.2.2 to Thuật tốn tư vấn cộng tác cho cổng lập trình trực tuyến (ký hiệu GraphBased) ie gh tn 2.2.2 Thuật tốn tư vấn cộng tác cho cổng lập trình trực tuyến p thực thông qua bước Hình Tại bước thuật tốn ta tiến nl w hành xây dựng đồi thị hai phía Đồ thị W dùng để xác định số lượng đường d oa có độ dài L từ đỉnh i∈U đến đỉnh x∈P Đồ thị W1 dùng để xác định số lượng đường an lu có độ dài L từ đỉnh i∈U đến đỉnh x∈P qua cạnh có trọng số dương Đồ nf va thị W2 dùng để xác định số lượng đường có độ dài L từ đỉnh i∈U đến đỉnh x∈P lm ul qua cạnh có trọng số âm Trong đó, giá trị L xác định thông qua thử nghiệm Trong báo này, chúng thử nghiệm lấy L=7 cho kết tốt z at nh oi Tại bước thuật tốn, tiến hành tìm số lượng đường có độ dài L từ đỉnh i∈U đến đỉnh x∈P đồ thị W Kết nhận ma trận WL ghi nhận số z lượng tất loại đường có độ dài L từ đỉnh i∈U đến đỉnh x∈P Tiếp đến ta tìm @ gm số lượng đường độ dài L qua cạnh có trọng số dương ma trận (𝑊 )𝐿 co l số lượng đường độ dài L qua cạnh có trọng số dương ma trận (𝑊 )𝐿 m Cuối ta xác định ma trận (𝑊 )𝐿 ghi lại số lượng đường độ dài L an Lu qua cạnh có trọng số âm dương va Tại bước thuật toán tiến hành điền giá trị dự đoán rix theo cơng n thức (20) Trong đó, số nhãn lúc đầu có rix = thay giá trị 1, số ac th si 30 khác thay giá trị -1, phần lại có giá trị tương ứng với việc ta chưa thể đưa dự đoán Thuật toán chi tiết thể Hình Thuật tốn GraphBased: Đầu vào: Ma trận đánh giá R xác định theo cơng thức (17) Đầu ra: Danh sách k tốn x∈P phù hợp người dùng i∈U Các bước tiến hành: Bước Xây dựng đồ thị hai phía từ ma trận đánh giá R: 1.1 Xây dựng ma trận kề biểu diễn đồ thị hai phía tồn R theo cơng thức (18): 𝑛ế𝑢 𝑟𝑖𝑥 ≠ 𝑊={ 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 lu an n va 1.2 Xây dựng ma trận kề biểu diễn đồ thị hai phía cho đánh giá có giá trị theo công thức (19): 𝑛ế𝑢 𝑟𝑖𝑥 > 𝑊1 = { 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 to p ie gh tn 1.3 Xây dựng ma trận kề biểu diễn đồ thị hai phía cho đánh giá có giá trị -1 theo công thức (20): 𝑛ế𝑢 𝑟𝑖𝑥 < 𝑊2 = { 𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒 d oa nl w Bước Tìm số lượng đường độ dài L loại: 2.1 Tìm số lượng đường độ dài L từ đỉnh i∈U đến đỉnh x∈P toàn R theo công thức (21): 𝑊 𝑛ế𝑢 𝐿 = 𝑊𝐿 = { 𝑇 𝐿−2 𝑊 𝑊 𝑊 𝑛ế𝑢 𝐿 = 3, 5, … 2.2 Tìm số lượng đường loại có độ dài L từ đỉnh i∈U đến đỉnh x∈P theo công thức (22): 𝑊1 𝑛ế𝑢 𝐿 = (𝑊 )𝐿 = { 1 𝑇 𝐿−2 𝑊 (𝑊 ) (𝑊 ) 𝑛ế𝑢 𝐿 = 3, 5, … 2.3 Tìm số lượng đường loại có độ dài L từ đỉnh i∈U đến đỉnh x∈P theo công thức (23): 𝑊2 𝑛ế𝑢 𝐿 = (𝑊 )𝐿 = { 2 𝑇 𝐿−2 𝑊 (𝑊 ) (𝑊 ) 𝑛ế𝑢 𝐿 = 3, 5, … 2.4 Tìm số lượng đường loại có độ dài L từ đỉnh i∈U đến đỉnh x∈P theo công thức (24): (𝑊 )𝐿 = 𝑊 𝐿 − (𝑊 )𝐿 − (𝑊 )𝐿 Bước Dự đoán quan điểm i∈U tốn x∈P: 3.1 Tìm số lượng đường độ dài L từ đỉnh i∈U đến đỉnh x∈P tồn R theo cơng thức (25): 𝐿 𝑀𝐴𝑋 = 𝑚𝑎𝑥 {𝑤𝑖𝑥 : 𝑖 = 1, 2, , , 𝑛; 𝑥 = 1, 2, , , 𝑚} 3.2 Sinh dự đoán quan điểm i∈U tốn x∈P theo cơng thức (26): nf va an lu z at nh oi lm ul z m co l gm @ an Lu n va ac th si 31 𝐿 𝑛ế𝑢 (𝑤 )𝑖𝑥 𝑀𝐴𝑋 > 0.5 𝐿 𝑟𝑖𝑥 = 𝑛ế𝑢 (𝑤 )𝑖𝑥 MAX > 0.5 𝐿 {−1 𝑛ế𝑢 (𝑤 )𝑖𝑥 𝑀𝐴𝑋 > 0.5 Bước Tạo nên tư vấn cho người dùng i∈U toán x∈P: 4.1 Sắp xếp rix theo thứ tự tăng dần trọng số 4.2 Chọn k tốn có rix=1 để tư vấn cho người dùng i Hình 2: Thuật tốn GraphBased Ví dụ: Xét ma trận trọng số sau: lu an n va P1 P2 P3 P4 P5 P6 U2 -1 -1 ie gh tn to U1 -1 -1 U3 -1 1 -1 0 U4 -1 -1 0 -1 U5 -1 1 U6 1 -1 p Bảng 4: Ma trận đánh giá R Ma trận kề biểu diễn đồ thị hai phía tồn R: 1 1 1 1 1 0 1 1 1 1 0 1 1 - Ma trận kề biểu diễn cho đánh giá có giá trị 1: 0 1 1 0 0 1 0 0 1 0 0 1 m co l gm @ z Ma trận kề biểu diễn cho đánh giá có giá trị -1: 1 0 n va an Lu - z at nh oi nf va an lu lm ul d oa nl - w Bước 1: Xây dựng đồ thị hai phía ac th si 32 0 1 1 0 0 0 1 1 0 0 0 0 Bước 2: Xác định số lượng đường độ dài L loại, xét L = Tìm số lượng đường di độ dài L = toàn R: - 𝑊 = 𝑊 𝑊 𝑇 𝑊 𝑊 𝑇 𝑊 196 171 191 161 169 196 175 175 180 162 175 075 199 178 197 159 171 199 lu = an 241 222 240 201 217 241 n va 125 129 129 122 132 125 188 169 183 163 172 188 gh tn to Tìm số lượng đường độ dài L = có giá trị 1: 𝑻 p ie - 𝑻 18 19 26 16 13 14 18 10 11 8 17 13 20 19 nf va an lu = 11 lm ul d oa nl w (𝑾𝟏 )𝟓 = 𝑾𝟏 𝑾𝟏 𝑾𝟏 𝑾𝟏 𝑾𝟏 17 z at nh oi z m co l gm @ an Lu n va ac th si 33 Tìm số lượng đường độ dài L = có giá trị 1: - 𝑻 𝑻 (𝑾𝟐 )𝟓 = 𝑾𝟐 𝑾𝟐 𝑾𝟐 𝑾𝟐 𝑾𝟐 = 12 16 5 5 11 1 10 0 15 10 10 0 11 16 1 Tìm số lượng đường loại độ dài L = 5: - (𝑾𝟑 )𝟓 = 𝑾𝟓 − (𝑾𝟏 )𝟓 − (𝑾𝟐 )𝟓 lu an 179 163 171 144 155 174 va n 162 156 156 145 148 158 to 182 161 183 151 157 181 tn = gh 230 211 218 193 199 223 p ie 119 117 121 115 115 117 nl w 170 155 164 142 151 168 d oa Bước 3: Sinh dự đoán an lu Ví dụ ta sinh dự đốn U2 lên toán P1 𝑾𝟑 𝟏,𝟐 nf va 𝒓𝟏,𝟐 = 𝟎 𝑴𝒂𝒙 = 𝟏𝟔𝟑 𝟏𝟕𝟏 > 𝟎 𝟓 2.3 Kết luận z at nh oi lm ul Điều có nghĩa chưa thể dự đốn U2 làm tốn P1 hay khơng Chương đề xuất phương pháp cho cổng lập trinh trực tuyến, hai phương pháp User-based Item-based, hai phương pháp phổ biến chúng z khắc phục nhược điểm nhau, phương pháp User-based khơng có tính @ gm hiệu quả, thực tế cho thấy cổng lập trình trực tuyến có lượng người dùng lớn l nhiều so với số lượng tốn lúc hệ thống gặp nhiều khó khăn m co khâu tính tốn ma trận tương tự cặp người dùng lúc ma trận tương an Lu quan lớn phương pháp Item-based cho thấy hiệu phương diện người dùng toán thực tế số lượng người dùng đa phần lớn n va nhiều so với tốn điều làm ma trận đánh giá Item-based ac th si 34 đầy đủ có đánh giá chất lượng từ nhiều người dùng với số lượng tốn nhiều người dùng giúp hệ thống tính tốn đưa gợi ý nhanh so với phương pháp User-based Tuy hai phương pháp lại có nhược điểm liệu thưa thớt khó để đưa phán đốn xác liệu thưa thớt ảnh hưởng lớn đến khâu tính tốn độ tương quan tơi trình bày hai phương pháp sử dụng công thức tương quan cosin, để tăng độ xác phải cần lượng liệu lớn điều khó với hệ thống chạy giai đoạn đầu mà luận văn đề xuất phương pháp lọc cộng tác dựa mơ hình đồ thị, phương pháp mạnh mẽ điểm đưa dự đốn liệu khơng đủ lớn cách tính tốn số đường theo loại mà toán đưa từ số lượng đường tính ta phán đốn quan điểm người dùng toán theo tỷ lệ số loại đường lu an mà cặp người dùng tốn Ở chương sau, luận văn thực nghiệm n va cổng lập trình trực tuyến Học Viện Cơng Nghệ Bưu Chính Viễn Thông để thấy to ưu việt phương pháp lọc cộng tác theo mơ hình đồ thị hai phía so với hai p ie gh tn phương pháp lại d oa nl w nf va an lu z at nh oi lm ul z m co l gm @ an Lu n va ac th si 35 CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ 3.1 Phương pháp thực nghiệm Thuật toán dựa đồ thị (GraphBased) đề xuất tiến hành thử nghiệm tập liệu thu thập từ cổng lập trình trực tuyến Dlab Học viện Cơng nghệ Bưu Viễn thông Phương pháp xây dựng liệu kết thử nghiệm đánh giá so sánh với phương pháp khác theo thủ tục mô tả Trước tiên, toàn tập người dùng chia thành hai phần, phần Utr sử dụng làm liệu huấn luyện, phần lại Ute sử dụng để kiểm tra Tập liệu huấn luyện dùng để xây dựng mơ hình theo thuật toán lọc sử dụng Với người dùng u∈ Ute, đánh giá ru,p≠ ∅ chia thành hai phần Ou Pu Ou lu coi biết, Pu đánh giá cần dự đoán từ liệu huấn luyện Ou Giả an sử phương pháp lọc đưa dự đoán cho người dùng tập Pu P’u, Khi đó, sai số n va dự đoán thực cách so sánh đánh giá hai tập Pu P’u, tn to Có nhiều phương pháp đánh giá sai số phân loại khác đề xuất ie gh Phương pháp phổ biến sử dụng lọc nội dung lọc kết hợp đánh giá p sai số phân loại thơng qua độ xác, độ nhạy Phương pháp đánh giá sai số phân loại thơng dụng lọc cộng tác trung bình giá trị tuyệt đối lỗi w oa nl Độ đo trung bình giá trị tuyệt đối lỗi d Đánh giá sai số phân loại trung bình giá trị tuyệt đối lỗi (MAE) Breese đề lu an xuất năm 1998 xem phương pháp tiêu chuẩn cho lọc cộng tác Sai số dự đoán nf va MAEu cho người dùng u thuộc tập liệu kiểm tra tính trung bình giá trị z at nh oi lm ul tuyệt đối hiệu số giá trị dự đoán giá trị thực tất mặt hàng thuộc tập Pu (27) Sai số dự đoán tồn tập liệu kiểm tra tính trung bình cộng sai z gm @ số dự đốn cho khách hàng thuộc Ute tính tốn theo cơng thức (27) Giá trị MAE nhỏ, phương pháp dự đốn xác m co l an Lu (28) n va ac th si 36 3.2 Dữ liệu thực nghiệm 3.2.1 Dữ liệu đầu vào Phương pháp tư vấn cộng tác nhóm nghiên thu thập trực tiếp từ cổng lập trình trực tuyến Học viện Cơng nghệ Bưu Viễn thơng, Tập liệu thu thập từ tháng 8/2020 đến tháng năm 2021 6435 người dùng đăng ký tham gia cổng lập trình trực tuyến Kho nội dung số xây dựng vòng năm với 1245 tốn để người học lập trình chấm tự động Tổng số lượt giải (submission) 6435 người dùng ghi nhận cổng lập trình trực tuyến đến ngày 20/6/2021 1,151,000 Trong đó, người dùng i lập trình tốn x cổng lập trình ghi lại giá trị 1, người dùng i lập trình chưa tốn x cổng lập trình ghi lại giá trị -1, người dùng i chưa giải tốn x cổng lập trình ghi lại giá trị Mỗi người lập trình lu an submit nhiều lần hệ thống ghi nhận giá trị 1, -1 cho kết cuối n va Trong số 6435 người dùng, luận văn lọc 6120 người dùng tham gia lập trình to 20 dù sai để tiến hành thử nghiệm Dữ liệu đầu vào minh họa p ie gh tn hình d oa nl w nf va an lu z at nh oi lm ul z m co l gm @ an Lu Hình 3: Ảnh minh họa liệu đầu vào n va ac th si 37 Ở hình 3, cột thể id người dùng, cột thứ id tập, cột thứ trạng thái giải người dùng tập 3.2.2 Xử lý liệu Toàn tập người dùng chia thành hai phần: 𝑼𝒕𝒓 sử dụng làm liệu huấn luyện 𝑼𝒕𝒆 sử dụng để kiểm tra Chọn ngẫu nhiên 2000, 3000, 4000 tập 6120 người dùng làm liệu huấn luyện Chọn ngẫu nhiên 400, 600, 800 người số lại làm tập liệu kiểm tra Để thử nghiệm khả phương pháp đề xuất so với phương pháp khác trường hợp có liệu, chúng tơi thay đổi số lượng lập trình người dùng tập kiểm tra cho số lượng lập trình 5, 10 20, lu an phần lại đánh giá cần dự đoán n va Dữ liệu đầu vào chuyển dạng ma trận với cột ứng với toán, tn to hàng ứng với người dùng Với phương pháp ứng với ma trận đầu vào, với phương pháp Gragh-based ma trận đầu vào biến đổi thành ma gh p ie trận ứng với loại đường 3.3 Kết thực nghiệm nl w Phương pháp GraphBased đề xuất Mục 2.2 thử nghiệm so sánh với d oa phương pháp sau: an lu - Phương pháp Userbased sử dụng độ tương quan Person, phương pháp nf va lọc cộng tác dựa người dùng trình bày mục 1.3.1 lm ul - Phương pháp Itembased sử dụng độ tương quan Person, phương pháp lọc cộng tác dựa tốn trình bày mục 1.3.2 z at nh oi Giá trị MAE Bảng 10 ước lượng từ trung bình 10 lần thử nghiệm ngẫu nhiên Kết thử nghiệm cho thấy phương pháp đề xuất cho giá trị MAE nhỏ z phương pháp UseBassed ItemBased tất trường hợp liệu biết trước gm @ 5, 10 hay 20 đánh giá Cụ thể, trường hợp liệu thưa với số lượng đánh giá l biết trước tập liệu kiểm tra giá trị MAE phương pháp Usebased, m co ItemBased, GraphBased 0.2158, 0.2172, 0.208 tập liệu huấn luyện 2000 người dùng Giá trị MAE phương pháp Userbased, ItemBased, an Lu GraphBased có xu hướng nhỏ dần kích cỡ tập liệu huấn luyện tăng lên 3000 n va 4000 người dùng Tuy nhiên, phương pháp GraphBased có giá trị MAE nhỏ ac th si 38 phương pháp lại Điều chứng tỏ phương pháp đề xuất phát huy hiệu trường hợp liệu thưa lọc cộng tác Trong trường hợp có tương đối đầy đủ liệu, cụ thể với số lượng đánh giá biết trước 20 giá trị MAE phương pháp GraphBased có giá trị nhỏ hẳn phương pháp lại Giá trị MAE phương pháp GraphBased 0.1812, 0.1792, 0.1712, hai phương pháp Userbased-Graph, Itembased-Graph cho kết tương đối tốt không Graph-Based với MAE khoảng [0.17,0.19] phương pháp UserBased ItemBased cho kết MAE >1.820 Điều lý giải phương pháp tư vấn dựa độ tương quan thực ước lượng mức độ cặp người dùng toán trực tiếp tập giao đánh giá toán hay người dùng Tuy nhiên, với phương pháp dựa vào đồ thị, suy diễn lu an mức độ tập đường có trọng số dương tập đường có trọng số âm n va đồng thời không đưa dự đốn với đường có trọng số âm lẫn dương Điều Mặc dù kết phương pháp Graph cho kết tốt hẳn gh tn to cho phép ta tận dụng mối liên hệ gián tiếp vào kết dự đốn p ie phương pháp thơng thường lại gặp vấn đề liên thông đỉnh đồ thị tức có cặp đỉnh khơng có cạnh nối hồn tồn bị tách khỏi đồ thị nl w có tập người dùng tốn khổng lồ liệu lại thưa thớt d oa điều dẫn đến ta tách mô hình đồ thị tổng quát thành đồ thị thể an lu đường âm dương dẫn đến đồ thị liên thông, đồ thị không nf va liên thông ảnh hưởng cao đến kết ta tăng độ dài L = 5,7,9 … lm ul Để khắc phục nhược điểm tăng cường lọc liệu cho tập training, thấy vấn đề đồ thị không liên thông thưa thớt liệu đỉnh với z at nh oi mà tơi chọn 6000 người dùng làm 20 tốn tốn phải tối thiểu có 20 người làm điều chắn cho z đồ thị liên thơng hạn chế bớt không liên thông đỉnh @ gm đồ thị Có thể tăng liệu lên 30, 50 để khắc phục vấn đề Một hướng khác l thấy thử nghiệm phương pháp 10 lần để lấy kết trung m co bình, điều nhằm hạn chế vài trường hợp xuất đồ thị không an Lu liên thông nên lấy trung bình kết cách giảm thiểu sai số gặp đồ thị khơng liên thơng Để mà chắn tách thành đồ thị thể n va đường âm dương đồ thị liên thơng yếu tố liệu quan trọng, với ac th si 39 phương pháp phần hạn chế không liên thông xảy khơng hồn tồn khắc phục triệt để vấn đề Kích thước tập Số lượng đánh giá biết trước Phương pháp liệu huấn luyện 2000 người dùng 3000 người dùng lu an 4000 người dùng n va 10 20 UserBased 0.2158 0.2117 0.2042 ItemBased 0.2172 0.2146 0.1992 GraphBased 0.2068 0.1984 0.1872 UserBased 0.2147 0.2012 0.1924 ItemBased 0.2145 0.2116 0.1967 GraphBased 0.2043 0.1877 0.1792 UserBased 0.2037 0.2117 0.1942 ItemBased 0.2012 0.2146 0.1820 GraphBased 0.1987 0.1784 0.1712 to gh tn Bảng 5: Giá trị MAE phương pháp 3.4 Phân tích đánh giá thực nghiệm ie p Phương pháp User-based khơng có tính hiệu quả, thực tế cho thấy cổng lập nl w trình trực tuyến có lượng người dùng lớn nhiều so với số lượng tốn oa lúc hệ thống gặp nhiều khó khăn khâu tính tốn ma trận tương tự d cặp người dùng lúc ma trận tương quan lớn lu nf va an Còn phương pháp Item-based cho thấy hiệu phương diện người dùng toán thực tế số lượng người dùng đa phần lớn nhiều so với số lm ul lượng toán Cũng điều làm ma trận đánh giá Item-based z at nh oi đầy đủ có đánh giá chất lượng từ nhiều người dùng Không với số lượng tốn người dùng giúp hệ thống đưa gợi ý nhanh so với phương pháp User-based z gm @ Cả hai phương pháp vừa nêu thành công việc cố gắng nắm bắt điểm tương đồng hai người dùng hay hai Tuy nhiên, thấy l mơ hình lại có nhược điểm liệu thưa thớt khó để đưa phán đốn co m xác liệu thưa thớt ảnh hưởng lớn đến khâu tính tốn độ tương quan an Lu trình bày Hai phương pháp sử dụng công thức tương quan cosin, để tăng độ va xác phải cần lượng liệu lớn điều khó với hệ thống chạy giai n đoạn đầu Từ kết quả, thấy mơ hình Gragh-based thành công ac th si 40 việc nắm bắt điểm tương đồng hai User tốt User-based Itembased Gragh-based không dễ bị ảnh hưởng hiệu ứng phân cụm, không bị giới hạn việc đề xuất lẫn người dùng giống khám phá để xem xét mục khác Do đó, kết luận tập liệu có ma trận xếp hạng thưa thớt, mơ hình Gragh-based hoạt động tốt mơ hình truyền thống 3.5 Kết luận Nghiên cứu đề xuất phương pháp tư vấn lọc cộng tác cổng lập trình trực tuyến Học viện Cơng nghệ Bưu Viễn thơng nhằm cung cấp cho tập toán phù hợp với khả lập trình cho người dùng Mơ hình đề xuất phát huy hiệu trường hợp liệu thưa mà mơ hình tư vấn lọc cộng tác khác lu an thường gặp phải khó khăn Phương pháp tư vấn cộng tác đề xuất đem lại hiệu n va thiết thực cho người học lập trình trực tuyến Học viện Cơng nghệ Bưu Viễn p ie gh tn to thông d oa nl w nf va an lu z at nh oi lm ul z m co l gm @ an Lu n va ac th si 41 TÀI LIỆU THAM KHẢO [1] Wasik, S.; Antczak, M.; Badura, J.; Laskowski, A.; Sternal, T A Survey on Online Judge Systems and Their Applications ACM Comput Surv.(CSUR) 2018, 51, 1–34 [2] Liu, J.; Zhang, S; Yang, Z.; Zhang, Z.; Wang, J.; Xing, X Online Judge System Topic Classification In Proceedings of the 2018 14th International Conference on Natural Computation, Fuzzy Systems and Knowledge Discovery (ICNC-FSKD), Huangshan, China, 28–30 July 2018; pp 993–1000 [3] Paolo, A.; C, Estler.; Durica, N.; Marco, P.; Bertrand, M (2015) An Incremental Hint System ´ For Automated Programming Assignments In Proceedings lu of the 2015 ACM Conference on Innovation and Technology in Computer Science an Education ACM, 320–325 va n [4] Joeran, B.; Bela, G.; Stefan, L.; Corinna, B Research-paper recommender to tn systems: a literature survey International Journal on Digital Libraries; 17 (2016), - ie gh S 305-338 p [5] Nirav, R.; Vijayshri, K A Review Paper On Collaborative Filtering Based Moive Recommedation System International Jounal of Sciencetific & Technology nl w oa Research, Volume 8, 2019 d [6] Cui, Bei-Bei.(2017) Design and Implementation of Movie Recommendation lu nf va an System Based on Knn Collaborative Filtering Algorithm ITM Web of Conferences 12 04008 10.1051/itmconf/20171204008 lm ul [7] Zhao, Zhi-Dan & Shang, Ming Sheng (2010) UserBased Collaborative- z at nh oi Filtering Recommendation Algorithms on Hadoop 3rd International Conference on Knowledge Discovery and Data Mining, WKDD 2010 478-481 [8] Kharita, M K., Kumar, A., & Singh, P.(2018) ItemBased Collaborative z @ Filtering in Movie Recommendation in Real-time 2018 First International Conference l gm on Secure Cyber Computing and Communication(ICSCCC) [9] Thakkar, Priyank & Varma(Thakkar), Krunal & Ukani, Vijay & Mankad, co m Sapan &Tanwar, Sudeep.(2019) Combining User-Based and Item-Based Collaborative an Lu Filtering Using Machine Learning: Proceedings of ICTIS 2018, Volume 978-981 n va ac th si 42 [10] Tu Minh Phuong, Do Thi Lien, Nguyen Duy Phuong (2019) Graph-based Context-aware Collaborative Filtering Expert System and Application, Vol: 126, pp: 9-19 [11] Gediminas Adomavicius and Alexander Tuzhilin Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions IEEE Trans on Knowl and Data Eng., 17(6):734–749, 2005 [12] Marko Balabanovic and Yoav Shoham Fab: Content-based, collaborative recommendation Communications of the Association for Computing Machinery, 40(3):66–72, 1997 [13] Abhay S Harpale and Yiming Yang Personalized active learning for collaborative filtering In SIGIR ’08: Proceedings of the 31st annual international ACM lu an SIGIR conference on Research and development in information retrieval, pages 91–98, n va New York, NY, USA, 2008 ACM tn to [14] Greg Linden, Brent Smith, and Jeremy York Amazon.com recommendations: Item-to-item collaborative filtering IEEE Internet Computing, 7(1):76–80, 2003 gh p ie [15] Rong Pan and Martin Scholz Mind the gaps: Weighting the unknown in large- scale one-class collaborative filtering In 15th ACM SIGKDD Conference on oa nl w Knowledge Discovery and Data Mining (KDD), 2009 [16] Alexandrin Popescul, Lyle Ungar, David M Pennock, and Steve Lawrence d an lu Probabilistic models for unified collaborative and content-based recommendation in nf va sparse-data environments In Proceedings of the Seventeenth Conference on Uncertainity in Artificial Intelligence, 2001 lm ul [17] Nguyễn Mạnh Sơn, Nguyễn Duy Phương: “MỘT PHƯƠNG PHÁP TƯ VẤN z at nh oi CỘNG TÁC CHO CÁC CỔNG LẬP TRÌNH TRỰC TUYẾN” Kỷ yếu Hội nghị KHCN Quốc gia lần thứ XIV Nghiên cứu ứng dụng Công nghệ thông tin (FAIR), z TP HCM, ngày 23-24/12/2021 DOI: 10.15625/vap.2021.0039 gm @ Danh mục Website tham khảo: [3] The TensorFlow Blog [4] https://www.code.ptit.edu.vn an Lu AWS Machine Learning Blog (amazon.com) m [2] co l [1] Information-filtering http://dsv.su.se/jpalme/select/information-filtering.pdf n va ac th si