Những báo cáo lỗi được những người sử dụng gửi thường được lưu trữ và quản lý bởi những hệ thống quản lý lỗi của những dự án phần mềm nguồn mở như Open Office, Mozilla Firefox, Eclipse... Trong bài viết này, nhóm tác giả giới thiệu một phương pháp mới tự động dò tìm những báo cáo lỗi trùng nhau bằng cách sử dụng mô hình LDANWF (Latent Dirichlet Allocation-New Weight Feature).
ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ - ĐẠI HỌC ĐÀ NẴNG, VOL 19, NO 7, 2021 53 TĂNG CƯỜNG TRỌNG SỐ BM25 KẾT HỢP MƠ HÌNH NGỮ CẢNH CHO VIỆC DỊ TÌM BÁO CÁO LỖI TRÙNG NHAU IMPROVING BM25 WEIGHTING COMBINED WITH CONTEXTUAL MODEL FOR DUPLICATE BUG REPORT DETECTION Nhan Minh Phúc1*, Nguyễn Thừa Phát Tài1, Nguyễn Hoàng Duy Thiện1 Trường Đại học Trà Vinh Tác giả liên hệ: nhanminhphuc@tvu.edu.vn (Nhận bài: 07/9/2020; Chấp nhận đăng: 28/6/2021) * Tóm tắt - Những báo cáo lỗi người sử dụng gửi thường lưu trữ quản lý hệ thống quản lý lỗi dự án phần mềm nguồn mở Open Office, Mozilla Firefox, Eclipse Những lập trình viên dựa vào báo cáo lỗi để xử lý lỗi Tuy nhiên, có nhiều báo cáo lỗi gửi đến hệ thống, có báo cáo lỗi trùng Do đó, việc phải xác định báo cáo lỗi vừa gửi đến có bị trùng hay không nhiều thời gian công sức người phân công xử lý lỗi Trong báo này, nhóm tác giả giới thiệu phương pháp tự động dị tìm báo cáo lỗi trùng cách sử dụng mơ hình LDANWF (Latent Dirichlet Allocation-New Weight Feature) Mơ hình kết hợp mơ hình LDA với đặc điểm trọng số Kết thực nghiệm ba hệ thống Open Office, Eclipse Mozilla cho thấy, phương pháp giới thiệu đạt tỉ lệ xác cao phương pháp trước từ khoảng 4-9% Abstract - Bug reports submitted by users are usually stored and managed by issue management systems in open source software projects such as Open Office, Mozilla Firefox, Eclipse The developers will rely on these bug reports to process bugs However, there are too many bug reports sent to the system, which leads to the duplication of bug reports Therefore, it will take time and effort of the person assigned to handle the bug for determining if the bug has been duplicated or not In this paper, we introduce a new approach of detecting duplicate bug reports automatically using the Latent Dirichlet Allocation-New Weight Feature (LDA) model This model is a combination of the LDA model with the new weighting feature Experimental results on the three systems of Open Office, Eclipse and Mozilla show that, the introduced method achieves a higher accuracy rate than previous methods at about 4-9% Từ khóa - Báo cáo lỗi; LDA; trọng số BM25; báo cáo lỗi trùng nhau; hệ thống báo cáo lỗi Key words - Bug report; Latent Dirichlet Allocation (LDA); BM25 weighting; duplicate bug report; bug report system Đặt vấn đề Những dự án mã nguồn mở lớn Bugzilla, Open Office thường có phần mềm để lưu trữ quản lý lỗi người dùng sử dụng gặp phải để xử lý Những lỗi gửi người dùng trình họ sử dụng phần mềm giúp việc bảo trì cải thiện tính hệ thống tốt [1] Theo nghiên cứu gần đây, với việc phát triển nhanh chóng hệ thống phần mềm, ngày có hàng trăm báo cáo lỗi gửi đến Khi xảy tình trạng báo cáo lỗi bị trùng, lý lỗi người dùng trước gửi đến hệ thống Hay nói cách khác báo cáo lỗi bị trùng có nhiều người dùng gửi báo cáo lỗi giống [2] Những báo cáo lỗi thường mô tả dùng ngơn ngữ tự nhiên lỗi giống được diễn tả từ ngữ khác hay nhiều cách khác Bảng 1, Bảng minh họa hai báo cáo lỗi trùng hệ thống quản lý lỗi Open Office Chúng ta dễ nhận thấy hai báo cáo lỗi báo cáo lỗi nhiên lại sử dụng từ ngữ khác Với số lượng báo cáo lỗi ngày tăng, việc dị tìm báo cáo lỗi trùng thủ công việc gây lãng phí nhiều thời gian, tốn nhiều cơng sức người Vì vậy, năm gần đây, nhiều phương pháp việc tự động dị tìm báo cáo lỗi trùng lắp nghiên cứu để giải vấn đề Hiện có vài phương pháp giới thiệu Phương pháp sử dụng phổ biến trước sử dụng kỹ thuật lấy thông tin (IR) sử dụng mơ hình vector (Vector Space Model) [3, 4] Một phương pháp khác cải tiến sử dụng kỹ thuật lấy thông tin kết hợp với phương pháp xử lý ngơn ngữ tự nhiên [5, 6] Ngồi ra, cịn số phương pháp khác sử dụng mơ hình học máy [7], mơ hình phân loại nhị phân [8] Tuy nhiên, giới hạn phương pháp tỷ lệ xác kết thực nghiệm thấp Gần đây, phương pháp cải tiến kỹ thuật rút trích thơng tin nhóm tác giả Sun cộng [9] giới thiệu cho thấy, có cải tiến phương pháp tự động dị tìm trùng báo cáo lỗi Phương pháp sử dụng đặc điểm trọng số BM25F kết hợp với việc xem xét nhiều thuộc tính tập tin báo cáo lỗi Phương pháp sau thực nghiệm cho thấy, kết có cải tiến dựa vào tương đồng báo lỗi cao Tuy nhiên, thực tế có nhiều báo cáo lỗi khác sử dụng từ (term) khác để diễn tả cho lỗi Do đó, so sánh báo cáo lỗi độ tương đồng cho kết khác Trong trường hợp phương pháp Sun et al khơng cho kết tốt Trong báo này, nhóm tác giả giới thiệu mơ hình LDA-NWF, mơ hình dị tìm báo cáo lỗi tự động để kiểm tra xem có bị trùng hay khơng?, tận dụng ưu điểm không kỹ thuật rút trích thơng tin mà cịn dựa vào mơ hình đặc điểm chủ đề sử dụng LDA Mơ hình thiết kế để giải toán cho hai báo cáo lỗi không tương đồng xem trùng họ báo cáo cho lỗi giống Tra Vinh University (Nhan Minh Phuc, Nguyen Thua Phat Tai, Nguyen Hoang Duy Thien) Nhan Minh Phúc, Nguyễn Thừa Phát Tài, Nguyễn Hoàng Duy Thiện 54 Phương pháp giới thiệu Phương pháp nhóm tác giả gồm hai phần chính: Đầu tiên xây dựng mơ hình LDA tính độ tương đồng LDA; Tiếp theo xây dựng phương pháp tính đặc điểm trọng số (NWF) Sau đó, kết hợp hai mơ hình lại với gọi LDA-NWF Hình cho thấy phương pháp tổng thể mơ hình Hình Mơ hình tổng qt 2.1 Cấu trúc tiền xử lý báo cáo lỗi Tất báo cáo lỗi kho quản lý lỗi tổ chức theo cấu trúc liệu kiểu danh sách Cấu trúc dạng kiểu liệu bảng băm Trong đó, danh sách chứa báo cáo lỗi Bc (được xem báo cáo lỗi đầu tiên) Những báo cáo lỗi Bc xem khóa danh sách, tất báo cáo lỗi Trl trùng với báo cáo lỗi xem giá trị danh sách chứa loại lỗi với báo cáo Điều có nghĩa danh sách chứa lỗi khác tất báo cáo lỗi danh sách có loại lỗi Khi báo cáo lỗi người dùng gửi đến, kiểm tra có trùng với báo cáo lỗi gửi đến kho trước hay khơng Nếu báo cáo phát trùng, thêm vào danh sách tương ứng với danh sách báo cáo lỗi mà trùng, ngược lại danh sách tạo báo cáo lỗi trở thành báo cáo danh sách tạo Ngồi ra, nhóm tác giả tiến hành bước tiền xử lý với báo cáo lỗi Do tập tin báo cáo lỗi thường chứa nhiều thơng tin Những thơng tin có vài thông tin khác hệ thống kho mã nguồn mở khác Nhưng nhìn chung họ giống Bảng Bảng cho thấy cụ thể tập tin báo cáo lỗi Open Office Bảng Báo cáo lỗi Open Office có mã lỗi: 9002 Bug ID 9002 Pro Math Com Code Sum formatting of font attributes Des The attributes: vector, check, bar, grave, tilde,… so on which are removed from the font The problem seems to be used to define for Font Widebar or widehat are works around It is seems that this has a change from SVv4 that used according toTimes bold which is a conventional mathematical notation, and it is incidentally has better character kerning Beside the ‘wide’ version almost don’t exist for all properties Font ‘bold’ is translated into some type of arial font which has characters which is poor spacing Bảng Báo cáo lỗi Open Ofice có mã lỗi 4524 Bug ID Pro Com Sum Des 4524 Math UI It is too big for spacing between a arrow and vector Dear, The space is too big making the formula so high between a arrow and its It is clumsy when formular is a own paragraph It is easy to make more clear is to copy this file in a sxw text after that insert the formula in middle the previous text like “vec u” as the formula “AB and widevec” This is compared with what you get to insert to the formula “overline AB” Thanks Do tập tin báo cáo lỗi gốc thuộc dạng XML chứa nhiều thơng tin dư thừa, nhóm tác giả sử dụng công cụ Java SAX để chuyển đổi rút trích lấy bốn thơng tin tập tin báo cáo lỗi như: Thông tin nội dung tóm tắt lỗi, thơng tin dùng để mơ tả chi tiết lỗi, loại lỗi thông tin trùng lắp Thông tin tóm tắt lỗi phần mơ tả chi tiết lỗi chứa thông tin văn tập tin báo cáo lỗi Thông tin loại lỗi chứa bốn phần gồm: Loại lỗi, sản phẩm, thành phần phiên Thông tin trùng lắp dùng để kiểm tra độ xác kết thực nghiệm Tiền xử lý bước thực việc trích liệu bao gồm bước: Làm liệu, tách từ, tìm từ gốc, tìm từ đồng nghĩa, tìm từ khơng có nghĩa để loại bỏ Với bước tiền xử lý trong báo nhóm tác giả sử dụng cơng cụ GATE [10] Lucene [11] để làm việc 2.2 Xây dựng mô hình LDA Vấn đề mơ hình LDA làm để tạo chủ đề từ tập tin báo cáo lỗi phân tích Trong LDA, thuật ngữ (term) hay từ tất tập tin báo cáo lỗi thu thập thành tập từ vựng, nhóm tác giả gọi V Một chủ đề tạo từ từ khác tập tập từ vựng Khi từ tập từ vựng V có tầng suất xuất khác việc tạo chủ đề k, chủ đề tạo thơng qua hay nhiều từ Để làm điều này, LDA sử dụng vector chọn từ gọi ∅𝑘 có kích thước V cho chủ đề k Mỗi thành phần vector ∅𝑘 dựa vào phân bố xác suất từ, tương ứng với vị trí thành phần tập từ vựng V dùng để tạo chủ đề k Mỗi thành phần 𝜗 ∅𝑘 có giá trị khoảng [0-1] Giả sử chủ đề 1, ∅1 =[0,24; 0,23; 0,14; ] Hình 2, điều cho thấy, việc phân bố tầng suất xuất từ tập từ vựng sử dụng để tạo chủ đề k chiếm 24%, từ thứ hai chiếm 23%, tương tự 14% từ thứ ba, Một chủ đề tạo từ tập từ tùy vào phân bố xác suất chúng Khi đó, ta có ma trận ∅=K x V dùng để chọn từ dựa vào việc phân bố từ cho chủ đề Hình Chủ đề cách chọn chủ đề ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ - ĐẠI HỌC ĐÀ NẴNG, VOL 19, NO 7, 2021 2.2.1 Sử dụng LDA xử lý tập tin báo cáo lỗi Nhóm tác giả tiến hành rút trích tất liệu từ hai trường báo cáo lỗi: Mơ tả (descriptions) tóm tắt (summaries) Khi đó, tập tin báo cáo lỗi b chứa 𝑁𝑏 từ, để sử dụng LDA với báo cáo lỗi cần hai tham số Đầu tiên vector dùng để gán chủ đề 𝑍𝑏 Đối với vị trí 𝑁𝑏 báo cáo lỗi b xem xét gán cho chủ đề Vector 𝑍𝑏 dùng để gán chủ đề cho báo cáo lỗi b có kích thước 𝑁𝑏 Mỗi thành phần vector 𝑍𝑏 mục cho chủ đề Tham số thứ hai 𝜃, báo cáo lỗi b có nhiều chủ đề, thuật tốn LDA sử dụng tham số 𝜃 để xác định tỷ lệ xác suất cho chủ đề báo cáo lỗi b 𝜃𝑏 báo cáo lỗi b trình bày vector với K thành phần Mỗi thành phần giá trị nằm khoảng [0-1] để mơ hình hóa tỷ lệ chủ đề báo báo lỗi b Mỗi giá trị đề cập đến chủ đề tổng chúng 100% Giá trị 𝜃𝑏 [𝑘] cao có nhiều từ thuộc chủ đề k có báo cáo lỗi b Ví dụ báo cáo lỗi Hình 3, 𝜃𝑏 =[0,20; 0,24; 0,13; ], có nghĩa 20% báo cáo b có chứa từ “editing”, 24% chứa từ “versioning”, … Hình Mơ hình liệu 2.2.2 Mơ hình sinh LDA dạng học máy thường gọi mơ hình sinh (generative model) Từ khía cạnh sinh nó, báo cáo lỗi b xem đối tượng tạo ba tham số 𝑍𝑏 , 𝜃𝑏 , ∅ Hình Ví dụ báo cáo lỗi b, mơ hình sinh vector 𝑍𝑏 để xác định chủ đề cho vị trí dựa vào xác suất 𝜃𝑏 tính tỉ lệ từ b Mỗi mục tương ứng với từ 𝑤𝑏 theo chủ đề gán việc phân bổ từ chủ đề ∅𝑖 tương ứng với chủ đề đó, q trình gọi tiến trình sinh mơ hình LDA Khi báo cáo lỗi người dùng gửi đến, mơ hình LDA gán chủ đề 𝑍𝑏𝑛𝑒𝑤 tỷ lệ 𝜃𝑏𝑛𝑒𝑤 chủ đề cho 𝑏𝑛𝑒𝑤 Nhóm tác giả training mơ hình với liệu tồn kho quản lý lỗi bao gồm tập tin báo cáo lỗi thông tin trùng lặp Những thơng tin sử dụng để ước lượng cho vector dùng để gán chủ đề tất tập tin báo cáo lỗi tỷ lệ xác suất chủ đề mà chia sẻ có lỗi Để dự đốn lỗi, nhóm tác giả sử dụng phương pháp cho báo cáo lỗi vừa gửi đến Khi tham số huấn luyện để ước lượng tỷ lệ chủ đề 𝜃𝑏𝑛𝑒𝑤 𝑏𝑛𝑒𝑤 Việc tính độ tương đồng dựa vào tỷ lệ chủ đề 𝑏𝑛𝑒𝑤 nhóm báo lỗi trùng lắp G tính sau: 𝑡𝑜𝑝𝑖𝑐𝑠𝑖𝑚(𝑏𝑛𝑒𝑤 , 𝐺) = (𝑡𝑜𝑝𝑖𝑐𝑠𝑖𝑚(𝑏𝑛𝑒𝑤 , 𝑏𝑖 )) (1) Trong đó, topicSim(𝑏𝑛𝑒𝑤 , 𝑏𝑖 ) độ tương đồng chủ đề hai báo cáo lỗi 𝑏𝑛𝑒𝑤 , 𝑣à 𝑏𝑖 Điều có nghĩa độ tương đồng cao lấy báo cáo lỗi 𝑏𝑛𝑒𝑤 55 nhóm báo cáo lỗi trùng lắp G Nhóm tác giả dùng phương pháp Jensen-Shannon divergence để làm việc Cuối tất nhóm báo cáo lỗi trùng Gj xếp lại nhóm có độ tương đồng cao theo xếp top-k xem ứng viên trùng với báo cáo lỗi 𝑏𝑛𝑒𝑤 2.3 Mơ hình đặc điểm trọng số (NWF) 2.3.1 Trọng số BM25 Sau rút trích tồn từ tập tin báo cáo lỗi sang mơ hình vector, từ xem tương ứng chiều mơ hình vector, giá trị trọng số tùy thuộc vào xác suất từ xuất file báo cáo lỗi Việc xác định độ tương đồng hai báo cáo lỗi tính dựa vào khoảng cách giá trị trọng số mơ hình vector Phương pháp cổ điển trước thường dùng sử dụng mơ hình TF-IDF Tuy nhiên, phương pháp nhiều hạn chế Gần vài nghiên cứu giới thiệu mơ hình tính trọng số gọi BM25 [12] Phương pháp cho thấy, hiệu thơng qua kết dựa vào thực nghiệm hệ thống báo cáo lỗi mã nguồn mở Mozila, Open Office BM25 mô hình dùng để xếp thứ hạng phát triển cho việc sử dụng hệ thống tìm kiếm truy xuất thông tin Okapi [12] Đối với BM25, liệu đánh giá xếp dựa vào số lần truy xuất từ, xem từ câu lệnh truy vấn để xác định phụ thuộc dựa xác suất tính từ file báo cáo lỗi Đơn giản hơn, hiểu BM25 xác định mối quan hệ bên từ câu truy vấn file báo cáo lỗi, thay xác định mối quan hệ từ truy vấn báo cáo lỗi Ngoài đặc điểm trên, BM25 sử dụng để biểu diễn cho số hàm sử dụng giá trị trọng số biến thể báo cáo lỗi khác để dùng thay đổi giá trị tham số cho phương pháp dùng để truy xuất liệu tương ứng Trong báo này, nhóm tác giả sử dụng giá trị trọng số BM25 cho câu truy vấn q file báo cáo lỗi d định nghĩa bên dưới: 𝑡𝑓(𝑞𝑖 ,𝑑)⋅(𝑘1 +1) |𝑞| 𝑠(𝑞, 𝑑) = ∑𝑖=1 𝑖𝑑𝑓(𝑞𝑖 ) 𝑡𝑓(𝑞𝑖 ,𝑑)+𝑘1 ⋅(1−𝑏+𝑏⋅ |𝑑| ) 𝑑𝑙𝑎𝑣𝑔 (2) Trong đó, tf (qi, d) hiểu tần số dùng cho việc lặp lại từ qi để xác định xuất báo cáo lỗi, |d| tổng độ dài báo cáo lỗi d xác dịnh dựa vào thuật ngữ hay từ, dlavg độ dài trung bình báo cáo lỗi toàn tập liệu kho báo cáo lỗi Ngoài ra, tham số k1 tham số b sử dụng tham số heuristic dùng để điều chỉnh giá trị trọng số để tính tần suất số lần xuất thuật ngữ, chiều dài giá trị báo cáo lỗi Giá trị sử dụng phổ biến tham số k1 1,2 ≤ k1 ≤ 2,0 tham số b 0,5 ≤ b ≤ 0,8 Ngoài ra, idf(qi) dùng để số lần báo cáo lỗi nghịch đảo tính dựa vào truy vấn qi Nó định nghĩa theo công thức bên dưới: 𝑁−𝑑𝑓(𝑞𝑖 +0.5 𝑖𝑑𝑓(𝑞𝑖 ) =𝑙𝑜𝑔 ( 𝑑𝑓(𝑞𝑖 )+0.5 ) (3) Trong (3), N tính dựa vào tổng số báo cáo lỗi xác định tập liệu kho báo cáo lỗi dùng cho thực nghiệm df(qi) dùng để xác định số báo cáo lỗi mà chứa từ hay thuật ngữ truy vấn qi Nhan Minh Phúc, Nguyễn Thừa Phát Tài, Nguyễn Hoàng Duy Thiện 56 2.3.2 Giới thiệu đặc điểm trọng số (NWF) Mặc dù, BM25 cho thấy hiệu việc tính đặc điểm trọng số Tuy nhiên, theo [9] BM25 cịn hạn chế Cụ thể, việc tính cosine ranking, BM25 cho kết tốt câu truy vấn ngắn Ngược lại, câu truy vấn dài thuật toán chưa cho thấy hiệu Điều gặp phải vài thuật tốn xếp hạng khơng cho BM25 Để khắc phục hạn chế này, sau quan sát đánh giá liệu từ tập tin báo cáo lỗi, nhóm tác giả nhận thấy BM25 khơng chứa giá trị âm, cho kết tốt câu truy vấn ngắn Sau phân tích, nhóm tác giả nhận thấy điều liên quan đến thành phần IDF: 𝑁+1 𝑟𝑠𝑣𝑞 = ∑𝑡 ∈𝑞 𝑙𝑜𝑔 ( 𝑑𝑓 (𝑘1 +1).𝑡𝑓𝑡𝑑 ) 𝑡 +0.5 𝑘1 ((1−𝑏)+𝑏.( 𝐿𝑑 𝐿𝑎𝑣𝑔 (4) ))+𝑡𝑓𝑡𝑑 Khi nhóm tác giả đề xuất lại IDF cách xếp lại để có: 𝑟𝑠𝑣𝑞 = ∑𝑡 ∈𝑞 𝑙𝑜𝑔 ( 𝑁+1 𝑑𝑓𝑡 +0.5 ) (𝑘1 +1).𝐶𝑡𝑑 𝑘1 +𝐶𝑡𝑑 (5) Trong đó: 𝐶𝑡𝑑 = 𝑡𝑓𝑡𝑑 1−𝑏+𝑏.( 𝐿𝑑 ) 𝐿𝑎𝑣𝑔 (6) Đối với cơng thức này, nhóm tác giả quan tâm đến ảnh hưởng thành phần Ctd, để khắc phục trường hợp câu truy vấn dài Giải pháp đưa bổ sung thêm số nguyên dương O, điều có tác dụng làm thay đổi chức ưu tiên số nhỏ (nghĩa mẫu số lớn, giá trị Ld lớn tài liệu dài) 2.4 Kết hợp LDA với đặc điểm trọng số Trong phần này, đề cập đến phương pháp sử dụng kết hợp LDA với NWF cho việc xác định báo cáo lỗi xem trùng Trong mơ hình này, nhóm tác giả đưa hai kỹ thuật dự đoán p1 p2 Kỹ thuật p1 dựa vào mơ hình chủ đề (LDA), p2 dựa vào đặc điểm trọng số Hai kỹ thuật có ưu điểm khác mơ hình dự đoán báo cáo lỗi trùng Kỹ thuật NWF cho kết xác hai báo cáo lỗi có độ tương đồng thuật ngữ tập tin báo cáo lỗi Tuy nhiên, kỹ thuật cho kết thấp hai báo cáo lỗi khác lại mô tả lỗi (trùng nhau), thuật ngữ khác hai báo cáo lỗi Ngược lại, phương pháp sử dụng mô hình LDA xác định hai báo cáo lỗi có trùng hay không dựa vào độ tương đồng chủ đề, chí trường hợp hai báo cáo lỗi khơng có độ tương đồng thuật ngữ Điều có nghĩa hai báo cáo lỗi dùng thuật ngữ khác viết báo cáo lỗi, diễn tả lỗi phát sinh giống nhau, phương pháp cho kết dị tìm tốt phương pháp p1 Tuy nhiên, phương pháp LDA dựa vào độ tương đồng chủ đề hai báo lỗi, mà mơ hình chủ đề thường tóm tắt nội dung mơ tả lỗi, kết tính độ tương đồng khơng hiệu việc so sánh thuật ngữ cách tính đặc điểm trọng số từ Với việc kết hợp hai kỹ thuật, tận dụng ưu điểm hai phương pháp để bổ trợ cho việc xác định tương đồng hai báo cáo lỗi, báo cáo lỗi trùng cho kết tốt Để thực việc này, nhóm tác giả sử dụng phương pháp học máy gọi Ensemble Average, phương pháp tuyến tính Việc kết hợp thực sau: p=⍺1 x p1 + ⍺2 x p2 (7) Trong đó, ⍺1 ⍺2 tham số việc ước lượng xem báo cáo lỗi có trùng hay khơng phải thỏa điều kiện ⍺1+⍺2=1 Điều có nghĩa, ⍺1=1 ⍺2=0, áp dụng kỹ thuật nghĩa sử dụng mơ hình LAD Ngược lại, ⍺1=0 ⍺2=1 phương pháp dị tìm sử dụng kỹ thuật xác định độ tương đồng so sánh hai báo cáo lỗi dựa vào đặc điểm trọng số NW Việc chọn giá trị để tối ưu cho hai tham số thảo luận phần kết thực nghiệm Thuật tốn 3.1 Thuật tốn cho mơ hình LDA Mục đích thuật toán để ước lượng tham số cho mơ hình LDA 𝑧𝑏 , 𝜃𝑏 , 𝜃𝑏𝑟 với liệu training kho báo cáo lỗi B tập hợp nhóm báo cáo lỗi trùng {Gj(b)} Nhóm tác giả sử dụng thuật tốn Gibbs sampling để làm điều Đầu tiên hai tham số 𝑧𝑏 𝜃𝑏𝑟 gán cho giá trị ngẫu nhiên Khi vịng lặp thực để ước lượng tham số dựa vào việc tính phân bổ chủ đề từ giá trị có sẳn Vòng lặp kết thúc tổng khác việc phân bổ chủ đề ước lượng phân bổ chủ đề ước lượng trước nhỏ ngưỡng Ý tưởng thuật tốn mơ tả sau: 3.1.1 Ước lượng việc gán chủ đề cho báo cáo lỗi B Với báo cáo lỗi b B, mô hình LDA ước lượng việc gán chủ đề 𝑧𝑏 [𝑖] cho vị trí i Cho chủ đề k K chủ đề, ước lượng dựa vào xác suất mà chủ đề k gán cho vị trí i báo cáo lỗi b Khi gán chủ đề dựa vào giá trị xác suất k Có hai trường hợp xảy ra: Trường hợp thứ nhất, báo cáo lỗi khơng có báo cáo lỗi trùng với nó, việc ước lượng gán chủ đề thực theo thuật toán Gibbs sampling mơ hình LDA sau: 𝑝(𝑧𝑏 [−𝑖]], 𝑤𝑏 ) = (𝑁𝑏 [−𝑖,𝑘]+𝛼).(𝑁𝐵𝑅,𝑘 [−𝑖,𝑤𝑖 ]+𝛽) (𝑁𝑏 −1,+𝐾𝛼).(𝑁𝐵𝑅,𝑘 −1+𝑉𝛽) (8) Trong đó, 𝑁𝑏 [−𝑖, 𝑘] số từ b (ngoại trừ vị trí thứ i) gán đến chủ đề k Nb tổng số từ b (𝑁𝐵𝑅,𝑘 [−𝑖, 𝑤𝑖 ] số từ wi tất báo cáo lỗi B (ngoại trừ vị trí tại) gán đến chủ đề k 𝑁𝐵𝑅,𝑘 tổng số từ B gán đến chủ đề k Trường hợp thứ 2, báo cáo lỗi b xác định trùng với nhóm báo cáo lỗi Gj, nghĩa có chủ đề với nhóm Cơng thức bên thể điều này: 𝑝(𝑧𝑏 [−𝑖]], 𝑤𝑏 ) = (𝑁∗𝑏 [−𝑖,𝑘]+𝛼).(𝑁𝐵𝑅,𝑘 [−𝑖,𝑤𝑖 ]+𝛽) (𝑁∗𝑏 −𝑖,+𝐾𝛼).(𝑁𝐵𝑅,𝑘 −1+𝑉𝛽) (9) Trong đó, (𝑁𝐵𝑅,𝑘 [−𝑖, 𝑤𝑖 ] số từ wi tất báo cáo lỗi B, ngồi trừ vị trí gán đến k, 𝑁𝐵𝑅,𝑘 số từ S mô tả thông tin k So với công thức (4), báo cáo lỗi trùng có chủ đề với báo cáo lỗi nhóm Tỷ lệ 𝜃 chủ đề k mô tả báo cáo lỗi, bao gồm tỷ lệ chủ đề 𝜃𝑏 tỷ lệ chủ đề chia 𝜃𝐹𝑗 nhóm báo cáo lỗi trùng Gj ISSN 1859-1531 - TẠP CHÍ KHOA HỌC VÀ CƠNG NGHỆ - ĐẠI HỌC ĐÀ NẴNG, VOL 19, NO 7, 2021 57 Từ ta có 𝑁 ∗𝑏 [−𝑖, 𝑘] = 𝑁𝑏 [−𝑖, 𝑘]𝑁𝐺𝑗 𝑘 𝑁 ∗𝑏 [−𝑖] = (𝑁𝑏 − 1)𝑁𝐺𝑗 𝑘 Trong đó, 𝑁𝑏 [−𝑖, 𝑘] số thuật ngữ b ngoại trừ cho vị trí mà gán chủ đề k; Nb tổng số từ b; 𝑁𝐺𝑗 𝑘 tổng số vị trí gán cho chủ đề k tập liệu báo cáo lỗi trùng nhóm Gj NGj tổng báo cáo lỗi dựa vào chiều dài Cơng thức tác động đến việc chia chủ đề việc ước lượng 𝜃𝑏 [𝑘] làm 𝜃𝐹𝑖 [𝑘] phản ánh ước lượng thông qua tỉ lệ 𝑁𝐺𝑗 𝑘/𝑁𝐺𝑗 3.1.2 Ước lượng cho chủ đề dựa vào 𝜃𝑏 cho báo cáo lỗi b Sau việc gán chủ đề cho tất vị trí b ước lượng, tỷ lệ ước lượng 𝜃𝑏 [𝑘] chủ đề k b tính đơn giản tỷ lệ số từ mô tả chủ đề k chiều dài báo cáo lỗi 3.1.3 Ước lượng việc phân bố từ 𝜃𝐵𝑅 Đây bước cuối dùng để ước lượng việc phân bố từ chủ đề Đối với từ wi Voc chủ đề k 𝜃𝑘 [𝑤𝑖 ] tính dựa vào tỷ lệ số lần mà từ xuất vị trí thứ i Voc dùng để diễn tả chủ đề k tổng số lần mà thuật ngữ sử dụng để mô tả cho chủ đề k 3.2 Mơ hình LDA-NWF Mơ hình LDA-NWF kết hợp mơ hình LDA mơ hình đặc điểm trọng số Khi đó, ta cần xác định ⍺1 ⍺2 để tính độ tương đồng báo cáo lỗi nhóm báo cáo lỗi phân loại trùng Đầu tiên nhóm tác giả training mơ hình LDA NWF Những tham số mơ hình training dùng để ước lượng mức độ tương tự hai báo cáo lỗi mức độ giống chủ đề báo cáo lỗi nhóm báo cáo lỗi giống Những mức độ tương đồng kết hợp sử dụng sim(Btest, Gtest) thông qua đặc điểm trọng lượng khác ⍺1 Việc kết hợp giá trị tương đồng dùng để xếp hạng báo cáo lỗi nhóm báo cáo lỗi phân loại trùng Danh sách xếp hạng Lpred sử dụng để đánh giá chức MAP(Gtest, Lpred) sử dụng để tìm giá trị tối ưu cho ⍺1 Giá trị ⍺1 nhận từ giá trị cao trả từ MAP(Gtest, Lpred) Hàm sử dụng để tính độ xác trung bình [3] định nghĩa sau: 𝑀𝐴𝑃(𝐿𝑡𝑒𝑠𝑡 , 𝐿𝑝𝑟𝑒𝑑 ) = |𝐿 𝑡𝑒𝑠𝑡 | |𝐿 𝑡𝑒𝑠𝑡 ∑𝑖=1 | 𝑖𝑛𝑑𝑒𝑥𝑖 (10) Trong đó, Ltest liên kết đến báo cáo lỗi trùng kho liệu dùng cho testing Lpred danh sách xếp liên kết đực dự đoán Indexi vị trí nhóm báo cáo lỗi trùng lấy từ truy vấn thứ i Do MAP sử dụng để đo lường độ xác thuật toán xếp liên kết nên coi chức việc training cho mơ hình LDA-NWF Trọng lượng từ ⍺1 ⍺2 training dùng để tính việc kết hợp báo cáo lỗi độ tương đồng chủ đề tính sau: Sim=⍺1*sim1+⍺2*sim2 (11) Trong đó, sim1 sim2 tập tin báo cáo lỗi độ tương đồng chủ đề báo cáo lỗi bnew nhóm báo cáo lỗi G Độ tương đồng kết hợp cao bnew xem trùng với báo cáo lỗi nhóm G Thuật tốn thể Hình Hình Thuật toán Kết đánh giá 4.1 Tập liệu tham số K Để đánh giá phương pháp giới thiệu, nhóm tác giả sử dụng tập liệu báo cáo lỗi công bố [9] Hai thông tin quan trọng file báo cáo lỗi thơng tin dùng để tóm tắt (summary) phần mơ tả (description) sau rút trích từ tập tin báo cáo lỗi lưu tập tin liệu Sau đó, nhóm tác giả thực tiền xử lý với kỹ thuật tách từ, phục hồi từ gốc, bỏ từ khơng có nghĩa… Khi đó, tất thuật ngữ lại đánh mục Sau giai đoạn báo cáo lỗi xem vector từ mục tương ứng Tất báo cáo lỗi xếp theo trình tự thời gian Nhóm tác giả chia tập liệu sang hai phần: Phần dùng cho huấn luyện phần dùng cho kiểm tra Phần dùng để huấn luyện bao gồm M báo cáo lỗi xác định đầu tiên, 200 báo cáo lỗi số trùng nhau, dùng để huấn luyện cho mơ hình LDA NWF Những báo cáo cịn lại dùng cho việc kiểm tra đánh giá Sau nhóm tác giả thực nghiệm cho phần kiểm tra (testing), xác định báo cáo trùng b, trả danh sách top-k ứng viên nhóm báo cáo lỗi trùng Nếu báo cáo lỗi xác định trùng với nhóm lỗi G danh sách top-k, nhóm tác giả đếm có xác định Khi đó, thêm báo cáo lỗi b đến nhóm để huấn luyện sau Độ xác top-k hay cịn gọi recall rate tính tỷ lệ số báo cáo xác định tổng số báo cáo lỗi xem xét Recal rate = Số dự đoán Tổng số báo cáo lỗi trùng (12) Ngồi ra, nhóm tác giả xem xét tác động liên quan đến việc chọn số chủ đề K Nhóm tác giả thực nghiệm tập liệu Eclipse khoảng 20 đến 400 với khoảng cách 20 kết lấy top-10 Kết Hình Từ việc quan sát kết ta thấy, K nhỏ (K380 độ xác bắt đầu giảm số chủ đề lớn dẫn đến chồng lắp ngữ nghĩa báo cáo lỗi có nhiều chủ đề với tỷ lệ tương đồng gần giống Điều ảnh hưởng đến tỷ lệ xác định mức độ xác việc xác định báo cáo lỗi trùng Hình So sánh số chủ đề K 4.2 So sánh với phương pháp khác Để đánh giá hiệu phương pháp, nhóm tác giả làm thực nghiệm để so sánh phương pháp giới thiệu với kỹ thuật công bố gần Cụ thể, bố [9] sử dụng mơ hình trọng số BM25F Mặc dù, phương pháp cho kết dị tìm dựa kết thực nghiệm có cải tiến so với phương pháp khác Tuy nhiên, hiệu báo cáo lỗi diễn tả từ hay thuật ngữ (term) tương tự mô tả lỗi, không hiệu trường hợp báo cáo lỗi sử dụng từ hay thuật ngữ khác mô tả lỗi Ngoài ra, để so sánh kết đánh giá phương pháp giới thiệu với phương pháp khác, nhóm tác giả thực so sánh với mơ hình LDA NWF riêng biệt Kết quan sát cho thấy, phương pháp LDA-NWF cho kết tốt phương pháp C.Sun, LDA NWF thấy Hình đến Hình Hình So sánh phương pháp trước Open Office Hình So sánh phương pháp trước Eclipse Hình So sánh phương pháp trước Mozilla Kết luận Bài báo sử dụng kỹ thuật LDA-NWF việc xác định báo cáo lỗi trùng Phương pháp không dựa vào kỹ thuật lấy thơng tin mà cịn dựa vào mơ hình chủ đề LDA Mơ hình tận dụng ưu điểm mơ hình kỹ thuật lấy thơng tin file báo cáo lỗi có độ tương đồng, mơ hình LAD sử dụng cho file báo cáo lỗi với độ tương đồng Kết sau thực nghiệm cho thấy, mơ hình LAD-NWF cho kết dị tìm tốt kỹ thuật trước cơng bố so sánh ba hệ thống mã nguồn mở từ 4-9% TÀI LIỆU THAM KHẢO [1] J Lerch and M Mezini, "Finding Duplicates of Your Yet Unwritten Bug Report," 2013 17th European Conference on Software Maintenance and Reengineering, pp 69-78, doi: 10.1109/CSMR.2013.17 [2] N S a I Ciordia, "Bugzilla, ITracker, and other bug”, 2013, 17th European Conference on Software Maintenance and Reengineering IEEE, 69–78, 2005 [3] M & B C.-P & H A E Rakha, "Revisiting the Performance Evaluation of Automated Approaches for the Retrieval of Duplicate Issue Reports”, in IEEE Transactions on Software Engineering PP 10.1109/TSE.2017.2755005., 2017 [4] S L D Chengnian, X Wang, J Jiang and S.-C Khoo, "A discriminative model approach for accurate duplicate bug report retrieval”, in Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering, ACM, pp 45-54., 2010 [5] Y Tian, C Sun and D Lo, "Improved Duplicate Bug Report Identification", 2012 16th European Conference on Software Maintenance and Reengineering, 2012, pp 385-390, doi: 10.1109/CSMR.2012.48 [6] L Z T X J A a J S X Wang, "An approach to detecting duplicate bug reports using natural language and execution information”, in ACM/IEEE 30th International Conference on Software Engineering, Leipzig, 2008, pp 461-470, 2008 [7] Meng-Jie Lin, Cheng-Zen Yang, Chao-Yuan Lee, Chun-Chang Chen, "Enhancements for duplication detection in bug reports with manifold correlation features”, Journal of Systems and Software, Elservier, vol Volume 121, no November, pp Pages 223-233, 2016 [8] N J a W Weimer, "Automated duplicate detection for bug tracking systems”, in IEEE International Conference on Dependable Systems and Networks with FTCS and DCC (DSN), Anchorage, AK, 2008, pp 52-61, doi: 10.1109/DSN.2008.4630070 [9] D L., K a J J C Sun, "Towards more accurate retrieval of duplicate bug reports”, in 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2016), pp 253-262, Lawrence, KS, 2017 [10] D M K B H Cunningham, "GATE: an architecture for development of robust HLT applications”, in Proceedings of the 40th annual meeting on association for computational linguistics, pp.168–175, 2002 [11] M O Gospodnetic and E Hatcher, " Lucene in Action”, Manning Publications Co., Greenwich, CT 2005 [12] J Whissell and C Clarke, "Improving document clustering using Okapi BM25 feature weighting”, information Retrieval Journal, vol Vol 14, no Issue 5, pp p466-487, 2011 ... cáo lỗi Tuy nhiên, kỹ thuật cho kết thấp hai báo cáo lỗi khác lại mô tả lỗi (trùng nhau) , thuật ngữ khác hai báo cáo lỗi Ngược lại, phương pháp sử dụng mơ hình LDA xác định hai báo cáo lỗi có trùng. .. sim2 tập tin báo cáo lỗi độ tương đồng chủ đề báo cáo lỗi bnew nhóm báo cáo lỗi G Độ tương đồng kết hợp cao bnew xem trùng với báo cáo lỗi nhóm G Thuật tốn thể Hình Hình Thuật tốn Kết đánh giá... trường hợp hai báo cáo lỗi khơng có độ tương đồng thuật ngữ Điều có nghĩa hai báo cáo lỗi dùng thuật ngữ khác viết báo cáo lỗi, diễn tả lỗi phát sinh giống nhau, phương pháp cho kết dị tìm tốt