Xây dựng mô hình

Một phần của tài liệu Trích xuất dữ liệu từ resume dựa trên mô hình question answering kết hợp bert (Trang 40 - 49)

4 MÔ HÌNH ĐỀ XUẤT

4.3 Xây dựng mô hình

Mô hình được đề xuất ở đây gồm 3 phần chính đó là phần nhận và xử lí file resume, phân đoạn (segmentation) cho từng trường dữ liệu và phần trích xuất thông tin từ mô hình hỏi đáp dựa trên BERT.

Hệ thống Backend

Đầu tiên ta đề cập tới phần nhận và xử lí file resume. Đây là một hệ thống Back- end nhận file được truyền vào có các kiểu dữ liệu như PDF hoặc word để xử lí và trả về dữ liệu chúng ta mong muốn ở đây là văn bản tiếng Anh. Về phần này ta xử dụng các API có sẵn của Python để xây dựng hệ thống Backend.

Minh hoạ về quá trình xử lí Segmentation Text

Tiếp theo sẽ là phần segmentation cho từng trường dữ liệu. Mục đích chính của phần này là xác định được những segment của từng trường dữ muốn trích xuất để thu hẹp kích thước văn bản cần trích xuất trong resume vì dữ liệu văn bản trong resume rất nhiều và gồm nhiều segment khác nhau nên khi đưa vào mô hình trích xuất dễ dẫn đến trích xuất không đúng phần dữ liệu chúng ta mong muốn nên việc segmentation là rất cần thiết cho những resume có cấu trúc dài và phức tạp.

Hình 19: Kiến trúc hệ thống đề xuất

Để làm được điều này thì với kiến thức tham khảo từ các bài báo ở trên, đa số tác giả áp dụng kĩ thuật heuristic như xác định chỉ mục, dùng từ khoá.v.v để phân đoạn cho từng trường dữ liệu. Việc này chỉ hiệu quả với những resume có cấu trúc đơn giản còn với các cấu trúc resume phức tạp việc này dường như rất khó. Để giải quyết vấn đề này chúng ta có thể nghĩ đến segmentation bằng các kĩ thuật hiện đại hiện nay đó là word embedding.

Hình 20: Segmentation Text

Với kĩ thuật word embedding ta sẽ kết hợp với một kĩ thuật tên là sliding window. Với kĩ thuật này ta sẽ xác định một cửa sổ trượt với 2 thông số là kích thước cửa sổ

(size) và bước nhảy (step). Khi nhận được dữ liệu dạng văn bản của resume ta sẽ tiến hành trượt cửa sổ này trên văn bản đó để lấy ra những segment của văn bản đó. Phương pháp này khá giống với tích chập trong xử lý ảnh. Với bộ dữ liệu các segment đã được lấy ra ta tiếp hành cho qua sen2vec để có được những biểu diễn vectơ của những segment này, cùng lúc đó ta cũng lấy ra biểu diễn của từ đại diện cho trường dữ liệu ta cần lấy như education, experience, certificate, reference, hobby, activity, major, job title, skill. Sau khi có 2 vectơ biểu diễn của 2 thành phần này ta đưa vào công thức cosine-similarity để tính độ tương đồng của từ đại diện trường dữ liệu với những segment ta đã lấy ra. Kết quả ta sẽ lấy segment có độ tương đồng lớn nhất sau khi đã sắp xếp.

Mô hình trích xuất thông tin với BERT

Sau khi ta đã có segment có chứa dữ liệu cần trích xuất thì ta sẽ cho segment này qua model hỏi đáp dựa trên BERT đã được train với bộ dữ liệu VietNamWorks. Model này sẽ trích xuát dữ liệu theo từng trường dựa theo những câu hỏi đã được cài đặt sẵn và lúc này ta sẽ có những dữ liệu mình cần trích xuất.

Quá trình huấn luyện cho mô hình:

Trong quá trình này, sau khi ta đã tiền xử lí dữ liệu xong thì bộ dữ liệu được làm sạch sẽ được chia ra làm 2 bộ train và test. Với bộ dữ liệu train ta sẽ đưa các câu hỏi và câu trả lời vào train theo batch và mỗi batch sẽ có batch size và số lần train qua toàn bộ bộ dữ liệu là số epoch sẽ được điều chỉnh trong quá trình train để có kết quả tốt nhất. Còn đối với từng câu hỏi và câu trả lời thì ta sẽ đưa vào mô hình huấn luyện dạng text. Từng câu hỏi và câu trả lời sẽ được nối với nhau bằng token [SEP] để phân biệt và đầu chuỗi sẽ là token [CLS] để đánh dấu cho sự bắt đầu của chuỗi. Khi chuỗi đã được nối lại và đánh dấu thì sẽ được đưa qua một lớp embedding để mã hoá dữ diệu text thành vectơ. Tiếp theo đó ta sẽ cho qua một lớp positional encoding để mã hoá vị trí. Cuối cùng ta sẽ đưa vào mô hình BERT để huấn luyện cho mô hình hỏi đáp. Hàm loss ở đây được định nghĩa là cross-entropy cho 2 token bắt đầu và kết thúc của câu trả lời. Ta cũng cấu hình các hàm tối ưu để có kết quả tốt nhất. Để minh hoạ chi tiết cho quá trình này ta có thể lấy ví dụ sau: Ta đưa vào model một câu hỏi là "What skill is mentioned?" và đoạn context có câu trả lời là "In re- sume, the skills are ... excel". Khi đưa vào mô hình ta sẽ gắn 2 phần câu hỏi với context lại với nhau và thêm token [CLS] và [SEP] nên input sẽ có dạng "[CLS] What skill is mentioned [SEP] In resume, the skills are ... excel". Sau khi nhận vào input thì mô hình sẽ cho input qua một công đoạn xử lí embedding gồm 3 bước là token embedding, position embedding và segment embedding để có các vectơ embedding của từng từ. Tiếp sau đó ta sẽ cho các vectơ embedding qua kiến trúc transformer gồm encoder và decoder để tính toán các giá trị như Scaled Dot-Product Attention, Multi-Head Attention trong encoder và decoder tương ứng. Qua quá trình này ta có output của decoder. Output này ta sẽ cho qua 2 lớp fully connected và soft- max để đưa về phân phối xác suất cho từng token. Cuối cùng ta chỉ cần lấy ra token

Hình 21: Quá trình huấn luyện với BERT trên bộ dữ liệu Vietnamworks

có giá trị xác suất cao nhất cho start token và end token của câu trả lời.

4.4 Phương pháp đánh giá

Confusion matrix [25] là một bảng thường được sử dụng để mô tả hiệu suất của mô hình phân loại trên một tập dữ liệu thử nghiệm mà các giá trị thực đã biết. Bản thân confusion matrix tương đối đơn giản để hiểu, nhưng các thuật ngữ liên quan có thể gây nhầm lẫn.

Hình 22: Ví dụ cụ thể quá trình huấn luyện với BERT trên bộ dữ liệu Vietnamworks

Prediction outcome

Positive Negative Total

Actual value Positive a b a+b

Negative c d c+d

Total a+c b+d N

Bây giờ chúng ta hãy xác định các thuật ngữ cơ bản nhất:

• True positives (TP): Đây là những trường hợp chúng ta dự đoán là Positive và kết quả thực sự là Positive. Đối với bài toàn hỏi đáp thì giá trị này chính là số token trùng với nhau trong câu trả lời trên dự đoán và kết quả thực sự.

• True negatives (TN): Chúng ta dự đoán là Negative và kết quả thực sự là Neg- ative. Đối với bài toàn hỏi đáp thì giá trị này chính là số token trùng với nhau ngoài câu trả lời trên dự đoán và kết quả thực sự.

• False positives (FP): Chúng ta đã dự đoán là Positive nhưng kết quả thực sự là Negative. Đối với bài toàn hỏi đáp thì giá trị này chính là số token dự đoán sai

so với câu trả lời thực sự.

• False negatives (FN): Chúng ta dự đoán là Negative nhưng kết quả thực sự là Positive. Đối với bài toàn hỏi đáp thì giá trị này chính là số token là kết quả như bị dự đoán không phải câu trả lời thực sự.

Hình 23: Các khái niệm về Confusion matrix trong bài toán hỏi đáp

Precision= T P

T P+FP;Recall= T P

T P+FN (6)

Metrics cho bài toán hỏi đáp

Có hai số liệu đo lường được sử dụng trên nhiều tập dữ liệu câu hỏi trả lời, bao gồm SQuAD đó là Exact match (EM) và F1-score. Những điểm số này được tính trên các cặp câu hỏi, câu trả lời riêng lẻ. Khi có thể có nhiều câu trả lời đúng cho một câu hỏi nhất định, điểm tối đa của tất cả các câu trả lời đúng có thể được tính. Điểm EM và F1 tổng thể được tính cho một mô hình bằng cách lấy trung bình trên các điểm số ví dụ riêng lẻ.

Exact match

Chỉ số này nghe khá đơn giản. Đối với mỗi cặp câu hỏi, câu trả lời, nếu các ký tự trong dự đoán của mô hình khớp chính xác với các ký tự của (một trong các) câu trả lời đúng thì EM = 1, nếu không thì EM = 0. Đây là số liệu nghiêm ngặt nghĩa là hoặc hoàn toàn đúng hoặc không có gì, bị lệch bởi một ký tự duy nhất dẫn đến điểm 0. Khi đánh giá theo ví dụ không có câu trả lời, nếu mô hình dự đoán sai bất kỳ văn bản nào, nó sẽ tự động nhận được điểm 0 cho ví dụ đó.

F1-Score

F1-score là thước đo phổ biến cho các bài toán phân loại và được sử dụng rộng rãi trong QA. Nó phù hợp khi chúng ta quan tâm như nhau về precision và recall. Trong trường hợp này, nó được tính toán dựa trên các từ riêng lẻ trong dự đoán so

với những từ trong câu trả lời đúng. Số lượng từ được chia sẻ giữa dự đoán và kết quả thực sự là cơ sở của F1-score: precision là tỷ lệ giữa số từ được chia sẻ trên tổng số từ trong dự đoán và recall là tỷ lệ giữa số từ được chia sẻ đến tổng số từ của kết quả thực sự.

F1−Score= 2×Precision×Recall

Precision+Recall (7)

5 KẾT QUẢ THỬ NGHIỆM

5.1 Mục tiêu thử nghiệm

• Hiện thực xây dựng mô hình Question Answering dựa trên BERT với bộ dữ liệu VietNamWorks.

• Điều chỉnh các tham số của mô hình.

• Kiểm tra tính đúng đắn của mô hình Question Answering dựa trên BERT.

5.2 Quá trình thử nghiệm

Sau quá trên train trên Google Colab ta có một số kết quả ban đầu được ghi lại.

5.3 Kết quả thử nghiệm

Sau quá trình train thì kết quả F1-score và Exatc match ban đầu thu được là:

EM EM-Approximate F1-Score Precisions Recall

Traning 0.97 0.98 0.99 0.99 0.99

Test 0.73 0.82 0.92 0.91 0.93

Bảng 1: Kết quả khi huấn luyện với mô hình BERT

Với kết quả thu được có giá trị exact match 0.97 ở tập train và ở tập test là 0.73 được coi là chấp nhận được với một bộ dữ liệu tuỳ chọn chưa được tinh chỉnh nhiều. Trong quá trình huấn luyện nhận thấy đa số kết quả thường chỉ sai khác so với kết quả thực sự chỉ có 1 token nên ở đây ta có thêm một thông số là approximation exact match được tính bằng cách cho phép câu trả lời chỉ sai ở mức±1so với kết quả thực tế. Với kết quả này ta thấy cần cải thiện tinh chỉnh bộ dữ liệu để mô hình học hiệu quả hơn để đạt kết quả 0,8x ở tập test.

Hình 24: Biểu đồ exact match và F1-score trong quá trình huấn luyện

Hình 25: Biểu đồ exact match và F1-score trên tập test

Sau khi huấn luyện với mô hình BERT thì ta có thử với một số mô hình khác khá nổi tiếng trong bài toán hỏi đáp như RoBerta, AlBert và ELECTRA để có kết quả so sánh như bảng dưới đây.

Thông qua kết quả có được ta có thể thấy mô hình Albert cho kết quả khá tốt với bộ dữ liệu VietnamWorks gần như ở mọi thông số. Kết quả này có thể được giải thích ngắn gọn như sau:

Model EM EM-Approximate F1-Score Precisions Recall BERT Traning 0.97 0.98 0.99 0.99 0.99 Test 0.73 0.82 0.92 0.91 0.93 RoBerta Traning 0.96 0.97 0.99 0.99 0.99 Test 0.73 0.81 0.92 0.91 0.94 AlBert Traning 0.98 0.99 0.99 0.99 0.99 Test 0.75 0.84 0.93 0.93 0.93 ELECTRA Traning 0.96 0.97 0.98 0.98 0.99 Test 0.62 0.71 0.87 0.85 0.90 Bảng 2: So sánh giữa các mô hình

• Các tham số embedding đã được xác thực hóa và tách chúng khỏi trạng thái ẩn, cho phép các thông số embedding có kích thước thấp hơn. Điều này làm giảm hàng loạt các tham số trong các mô hình giúp tính toán nhanh hơn.

• Chia sẻ thông số nhiều lớp giữa các phân đoạn attention trong các phân đoạn encoder, cũng như các phân đoạn chuyển tiếp nguồn cấp dữ liệu. Một lần nữa, điều này làm giảm số lượng tham số đáng kể.

• Một task ngôn ngữ khác: thay vì Next Sentence Prediction (NSP), Sentence- order prediction (SOP) được thực hiện, để cải thiện những lo ngại về NSP. Với ba điểm khác biệt chính, các tác giả đã cố gắng chứng minh rằng các mô hình NLP tốt hơn không nhất thiết có nghĩa là các mô hình lớn hơn. Các thí nghiệm cho thấy rằng một mô hình tốt hơn và theo ngữ cảnh hơn (ALBERT xxlarge) có thể được đào tạo để cải thiện khi BERT lớn chỉ bằng 70% lượng tham số lớn của BERT. Điều này cho thấy rằng các mô hình ngôn ngữ tốt hơn có thể được tạo ra với ít tham số hơn.

5.4 Demo hệ thống

Với hệ thống được xây dựng như được định nghĩa bên trên ta có thể chạy demo hệ thống và nhận được kết quả khá tốt.

6 KẾT LUẬN

6.1 Đánh giá kết quả.

Tổng kết thành quả của chúng ta trong quá trình nghiên cứu lý thuyết về Word Em- bedding, Transformer, BERT, Question Answering gồm nguyên nhân ra đời, cơ sở lý thuyết, sơ lược các mô hình chính và cách xử lí với dữ liệu.

Kết quả nghiên cứu có thể được dùng làm tài liệu tham khảo cho những ai muốn làm quen với bài toán trích xuất dữ liệu từ resume giúp tiết kiệm thời gian tiếp cận.

Hình 26: Kết quả demo hệ thống

6.2 Một số hạn chế.

• Kết quả huấn luyện chưa đạt như mong muốn (exact match là 0.8x).

• Chưa triển khai mô hình được với dữ liệu tiếng Việt.

6.3 Hướng phát triển.

Ta có thể đề xuất một số cải tiến để có kết quả khả quan hơn :

• Xây dựng kết hợp với mô hình BERT tiếng Việt qua đó xây dựng mô hình Question Answering tiếng Việt [26].

• Sau khi trích xuất dữ liệu xong ta có thể lưu lại ở cơ sở dữ liệu nào đó.

Một phần của tài liệu Trích xuất dữ liệu từ resume dựa trên mô hình question answering kết hợp bert (Trang 40 - 49)

Tải bản đầy đủ (PDF)

(52 trang)