BAO MAT PHAN MEM BANG HOC
3.4. Huấn luyện mô hình học sâu
Ở phần cuối cùng, chúng tôi sử dụng mô hình học sâu để huấn luyện và phân
loại bộ dit liệu. Đầu vào của chúng tôi là các vector đã được nhúng ở phần 3.3.
Mô hình được chúng tôi đề xuất sử dụng đó là GNN.
Với mô hình GNN, chúng tôi sử dụng mô hình GCN để huấn luyện. Mô hình
GCN của chúng tôi xây dựng sẽ nhận đầu vào của dit liệu dưới dạng đồ thị. Các vector nhúng ở phần 3.3 cần được xử lý đồ thị hóa dữ liệu trước khi đưa vào
mô hình của chúng tôi để huấn luyện. Để thực hiện bước này, chúng tôi cần tạo
các ma trận kề cho các vector nhúng, đồng thời các vector nhúng này cần được
chuyển hóa thành dạng các nút của đồ thị. Hình 3.7 mô tả kiến trúc sử dụng
mô hình đề xuất GCN để huấn luyện và dự đoán kết quả trên tập dữ liệu.
Cụ thể, chúng tôi xây dựng một đồ thị không đồng nhất bao gồm cả các word
nodes và slice nodes, dựa trên ý tưởng được đề xuất trong nghiên cứu của Yao
[1]. Trong ma trận đơn vị này, mỗi word hoặc slice được biểu diễn dưới dạng
vector one-hot và được sử dụng làm đầu vào cho mô hình GCN. Chúng tôi xây dựng các cạnh giữa các nút dựa trên sự xuất hiện của word trong slice (cạnh slice-word) và sự xuất hiện chung của các word trong toàn bộ ngữ liệu (cạnh word-word). Trọng số của một cạnh giữa hai nút i và 7 được định nghĩa là:
PPMI(i,7), i,j are words and i zZ j TF-IDF(i,j), 71s slice, 7 is word
0, otherwise
Giá tri term frequency-inverse document frequency (TF-IDF) của word trong
slice sẽ xác định trong số của cạnh giữa một nút slice và một nút word. Chỉ số
này dùng để đánh giá tầm quan trong của một từ trong một slice, gid trị cao
48
z Source Code H Related code slices H Slice SeVCs |
| |
Adjacency Matrix im đị) G12 ô++ Ain
đại 422 ..- Gan
CodeBERT
'Word-Slice Graph
Training and Prediction
Graph Conv. Graph Conv. FC Layer
Non Vulnerable
Vulnerable
Hành 3.7: Các bước sử dụng mô hành dé xuất GCN để huấn luyện va du đoán kết quả
49
thể hiện độ quan trọng cao của từ đối với slice. Trong đó:
e TF (Tần suất xuất hiện của từ) là số lần từ xuất hiện trong slice.
e IDF (Nghịch dao tần suất của slice) được tinh bằng công thức:
IDF = log a (3.1)
Thị
Với N là tổng số slice trong ngữ liệu và n; là số lượng slice chứa từ đó. Chỉ
số này giúp đánh giá tầm quan trọng của một từ đối với slice, các từ thường xuất hiện càng thường xuyên sẽ được gán chỉ số IDF thấp.
e Trọng số TF-IDF được tính bằng cách nhân term frequency (TF) và inverse
document frequency (IDF).
Chỉ số PPMI được dùng để xác định trong số của hai cặp từ với nhau, chỉ số
này càng cao thì mối quan hệ và số lần xuất hiện cùng nhau của hai từ càng
lớn. Giá tri PPMI của i và 7 sẽ được tính theo công thức:
PPMI(, 7) = max(log Tàn .0) (3.2)
Trong đó:
e p(i) là xác suất xuất hiện i trong một slice.
e p(7)là xác suất xuất hiện 7 trong một slice.
e p(¡,7) là xác suất xuất hiện đồng thời cả i và 7 trong một slice.
Đối với các nút của ma trận kề, chúng tôi sử dụng các vector nhúng đầu ra của mô hình CodeBERT và sử dụng chúng làm đầu vào đại diện cho các slice
node
Sau khi xây dựng được dit liệu bao gồm ma trận kề và các nút của ma trận, chúng tôi sẽ sử dụng hai dữ liệu này làm đầu vào cho mô hình GCN. Mô hình
GCN chúng tôi xây dựng cũng bao gồm hai lớp mô hình an, kèm theo các lớp fully connected để hội tụ đầu ra theo mục tiêu của bài toán phân loại văn bản.
50
Các mô hình chúng tôi sẽ sử dụng để huấn luyện bao gồm RNN, LSTM, GRU,
BiLSTM, BiGRU va GCN.
Ngoài ra, chúng tôi còn sử dung mô hình RNN va các biến thé của chúng bao gồm LSTM, GRU, BiLSTM và BiGRU để huấn luyện và dự đoán trên tập
dữ liệu, chúng tôi triển khai các mô hình này nhận đầu vào là các vector đã được nhúng. Mô hình sẽ bao gồm hai lớp mô hình an và kèm theo các lớp fully connected để hội tụ đầu ra theo mục tiêu của bài toán phân loại văn ban.
51