Seminar Môn Học Khai Thác Ngữ Liệu Văn Bản Nâng Cao - K31

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

ĐẠI HỌC QUỐC GIA TP.

HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
---------*****---------

SEMINAR MÔN HỌC


KHAI THÁC NGỮ LIỆU VĂN BẢN NÂNG CAO - K31
Condenser: a Pre-training Architecture for Dense Retrieval

Giảng viên hướng dẫn : Nguyễn Trường Sơn


Học viên thực hiện :
Hoàng Minh Thanh – 21C11029
Trần Hữu Nghĩa – 21C12005
Mục lục
1. Giới thiệu ............................................................................................................................................... 2
2. Các phương pháp liên quan ................................................................................................................... 3
2.1 Mô hình BERT....................................................................................................................................... 3
2.2 Mô hình SBERT ..................................................................................................................................... 5
2.3 Dense Retrieval .................................................................................................................................. 8
2.4 Inverse Cloze Task (ICT) ..................................................................................................................... 9
2.5 Effective Dense Retriever ................................................................................................................ 10
3. Mô hình Condenser ............................................................................................................................. 11
3.1 Nhược điểm của mô hình BERT ......................................................................................................... 11
3.2 Mô hình Condenser ........................................................................................................................... 12
4. Thực nghiệm ........................................................................................................................................ 16
4.1 Sentence Similarity .......................................................................................................................... 16
4.2 Retrieval cho Open QA .................................................................................................................... 17
4.3 Retrieval for Web Search ................................................................................................................. 18
4.4 Attention Analysis ............................................................................................................................ 19
5. Condenser trong bài toán Zalo 2021 ................................................................................................... 20
Bài toán Zalo AI 2021: Legal Text Retrieval ............................................................................................. 21
Mục tiêu thực hiện: ................................................................................................................................. 21
Các bước thực hiện:................................................................................................................................. 22
6. Kết luận ................................................................................................................................................ 23
7. Tài liệu kham khảo ............................................................................................................................... 24
Condenser: a Pre-training Architecture
for Dense Retrieval

1. Giới thiệu
Các mô hình dựa trên BERT sử dụng cơ chế attention đã trở thành mô hình biểu diễn văn
bản phổ biến và được ứng dụng rộng rãi trong xử lý ngôn ngữ tự nhiên.

Ưu điểm của mô hình Transformer đó là có khả năng biểu diễn rất tốt từ Sequence sang
Sequence. Tuy nhiên, việc chỉ dùng một vector CLS duy nhất để biểu diễn thông tin của
input đầu vào từ đó đạo hàm ngược và cập nhật trọng số khiến cho vector kết quả không
mô tả đầy đủ thông tin. Chính vì vậy phương pháp Condenser(CONditions on DENSE
Representation) đề xuất một phương pháp fine-tune lại mô hình BERT để cải thiện nhược
điểm này.

Thực nghiệm đã chứng minh rằng mô hình Condenser giúp cho việc Dense Retrieval tốt
hơn. Giúp kết quả của việc truy xuất văn bản tốt hơn.

Nghiên cứu trước đây fine-tune LM để encode text như câu và đoạn văn thành các biểu
diễn dense vector để so sánh và truy xuất văn bản hiệu quả. Nhưng dense encoders thì
yêu cầu nhiều dữ liệu và những kỹ thuật phức tạp để trong các tình huống mà có ít dữ
liệu. Bên trong tiêu chuẩn LM thì kiến trức Attention thì không sẵn sàng cho dense
encoder.

2
2. Các phương pháp liên quan
2.1 Mô hình BERT
Mô hình BERT là mô hình dựa trên cơ chế attention.

Cơ bản mục tiêu của mô hình BERT là biểu diễn một từ thành một vector sao cho vector
đó có thể biểu diễn đầy đủ thông tin và các đặc trưng vốn có của từ đó.

Ví dụ minh họa như ở đây, câu Apple is good for your health và câu Apple is good in its
design.

Từ Apple chỉ biểu diễn thành một vector có kích thước d chiều, thì rất khó để để biểu diễn
đúng trong các điều kiện và hoàn cảnh khác nhau. Vì vậy vector đó phải ở vị trí mà sao
cho khi nhân với các vector lận cận khác thì kết quả cuối cùng sẽ phân biệt được với nhau.
Ví dụ: khi nhân vector Apple X1 với các vector từ khác (Y1, Y2, Y3, Y4, Y5) ở câu thứ nhất,
và vector từ Apple khi nhân với các vector từ ở câu thứ hai thì kết quả phải khác nhau.

Đó chính là nền tảng và tư tưởng chính của cơ chế chú ý (attention mechanism).

Về mặt toán học cơ chế attention được biểu diễn theo công thức sau:

3
Với Softmax(Q*K^T/sqrt(d_k)) là một hệ số thể hiện sự quan trọng từng phần tử trong
vector query với vector key, sau đó mô hình nhân với vector value để được kết quả cuối
cùng. MultiHead Attention chỉ đơn giản là ghép các kết quả của attention rồi nhân với
một vector biến đổi tuyến tính.

Mô hình Transfomer được dựa trên cơ chế attention, với hai phần lớp Encoder và Decoder.
Đầu tiên các văn bản được nhúng sao cho các từ được nhúng để cho các từ được phân
biệt với nhau bằng kỹ thuật Position Embedding.

Mô hình đi qua hai thành phần chính là Encoder và Decoder. Với mục tiêu là tính sự quan
trọng của các vector input với nhau thông qua nhiều bước của attention mechanisn để
tạo ra nhiều bước lọc xếp chồng lên nhau trước khi đi đến kết quả cuối cùng.

Mô hình BERT là mô hình dựa trên cơ mô hình Transfomer nhưng chỉ sử dụng lớp Encoder
của Transfomer.

4
Kiến trúc của mô hình cũng tương tự như mô hình Transfomer như hình minh họa dưới
đây.

Như ta có thể thấy ở hình minh họa, mô hình BERT sẽ ghép hai câu lại với nhau ngăn cách
bởi token vector SEP và đưa vào các Block Transfomer. Với token đầu tiên sẽ được biểu
diễn thành một vector có ký hiệu là CLS. Vector cuối cùng sẽ được ký hiệu là SEP.

2.2 Mô hình SBERT


Mục tiêu của mô hình SBERT là biểu diễn câu, mô hình BERT cũng dựa trên mô hình
Transfomer và chỉ sử dụng lớp Encoder.

Tuy nhiên, thay vì sử dụng Cross-Encoder như mô hình BERT thì SBERT dùng Bi-encoders
để đảm bảo tính toán nhanh hơn giữa các vector, giúp việc lưu trữ các kết quả đã tính
toán để so sánh, inference trên các bộ dữ liệu cực lớn.

Bi-Encoders

5
Bi-Encoders sx tính độ tương đồng giữa queries và data trong không gian vector. Model
này được biểu diễn dữ liệu (văn bản, hình ảnh, video,…) dưới dạng vector. Nó sẽ chụp
(capture) ngữ cảnh và ngữ nghĩa của dữ liệu. Tương tự, các truy vấn tìm kiếm cũng có thể
được biểu diễn bằng cách Embbending vector. Có thể thực hiện tìm kiếm tương tự để
truy xuất (retrieve) các vectơ gần nhất.

Các mô hình tính toán các phép dense vector embeddings cho dữ liệu (mà sau này có thể
được sử dụng cho các truy vấn tìm kiếm) được gọi là các mô hình Bộ mã hóa hai chiều
(Bi-Encoder). Các vectơ dữ liệu và vectơ truy vấn có thể được so sánh bằng cách tính toán
độ tương tự (ví dụ cosine) giữa các vector. Tất cả các mục dữ liệu trong cơ sở dữ liệu có
thể được biểu diễn bằng cách vector embedding sử dụng mô hình Bi-Encoder.

Cross-Encoder

Cross-Encoder không tạo ra các embedding vector cho dữ liệu mà thay vào đó sử dụng
cơ chế phân loại cho các cặp dữ liệu. Đầu vào của mô hình luôn bao gồm một cặp dữ
liệu, ví dụ hai câu và xuất ra một giá trị từ 0 đến 1 cho thấy sự giống nhau giữa hai câu
này . Vì vậy, các câu riêng lẻ không thể được chuyển sang mô hình Cross-Encoder, nó
luôn cần một cặp "mục". Về tìm kiếm, cần sử dụng Cross-Encoder với từng mục dữ liệu
và truy vấn tìm kiếm, để tính toán mức độ tương đồng giữa truy vấn và đối tượng dữ liệu.

6
Cross-Encoder ta sẽ cho đồng thời cả hai câu vào trong mạng Transformer. Nó sẽ tạo ra
giá trị từ 0 đến 1 cho biết sự giống nhau của hai câu

Nếu một mô hình Cross-Encoder được đào tạo trên một tập huấn luyện đại diện, nó sẽ
đạt được độ chính xác cao hơn so với Bi-Encoder. Tuy nhiên, vì cần sử dụng mô hình
Cross-Encoder trong khi tìm kiếm mọi mục dữ liệu đơn lẻ kết hợp với truy vấn nên phương
pháp này rất kém hiệu quả. Đối với một ứng dụng tìm kiếm ngữ nghĩa trong đời thực –
với hàng nghìn hoặc hàng triệu đối tượng – điều này sẽ không thực tế, vì sẽ mất “mãi
mãi” để thực hiện tìm kiếm.

Bert sử dụng cross-encoder tức là sẽ cho hai vào trong transformer và dự đoán cặp giá
trị. Tuy như việc sử dụng cross-encoder cho các tác vụ hồi quy cặp khác nhau do có quá
nhiều kết hợp có thể.

Ví dụ Tìm trong tập hợp n = 10 000 câu, cặp có độ tương tự cao nhất yêu cầu với BERT
n·(n−1)/2 = 49 995 000 phép tính suy luận trên trên V100 GPU sẽ mất khoản 65 giờ.

Để giảm bớt vấn đề này, SBERT. Kiến trúc mạng siamese cho phép các vector có kích
thước cố định cho các câu đầu vào có thể được lấy ra. Sử dụng thước đo độ tương tự
như cosine có thể tìm thấy các câu giống nhau về mặt ngữ nghĩa. SBERT được sử dụng
để tìm kiếm sự tương đồng về ngữ nghĩa cũng như để phân cụm. Độ phức tạp để cặp
câu giống nhau nhất trong 10.000 câu được giảm từ 65 giờ với BERT xuống tính toán
10.000 sentence embeddings (khoảng 5 giây với SBERT) và tính toán cosine (khoảng
0,01 giây)

Language model (LM) pre-training rất hiệu quả trong công việc learning text encoders
có thể finetuned cho nhiều Nhiệm vụ phía sau (downstream tasks). Gần đây việc tinh
chỉnh Token CLS để encode input chuỗi văn bản đầu vào thành một biểu diễn vector. Do

7
đó, các vector có thể được sử dụng để so sánh hoặc truy xuất (retrieval) văn bản hiệu quả
bằng Không gian tích trong (inner product).

Không giống như các pre-train cụ thể Condenser pre-train hướng đến cấu trúc Bi-
encoder. Nhận thấy trong các thiết lập dữ liệu ít, với kiến trúc thời gian thử nghiệm giống
hệt nhau, Condenser mang lại sự cải thiện đáng kể so với LM tiêu chuẩn và cho thấy hiệu
suất tương đương với các mô hình được đào tạo trước dành riêng cho từng nhiệm vụ
mạnh mẽ. Với dữ liệu đào tạo lớn, nhận thấy công cụ truy xuất Condenser tối ưu hóa dễ
dàng hơn, vượt trội so với các Model trước đây được đào tạo bằng các kỹ thuật phức tạp
chỉ a single round of negative mining.

Việc đào tạo trước LM của Transformer Bi-encoder sau đó fine-tuning đã trở thành một
mô hình quan trọng trong NLP. Thử thách lớn của áp dụng deep Transformer là chi phí
tính toán khi tri xuất văn bản từ một tập dữ liệu lớn. SBERT đào tạo Bi-encoder từ BERT
và không gian tích trong(inner product) vector để so sánh độ tương đồng trong câu.
Transformer bi-encoders cũng sớm được sử dụng làm dense retriever.

2.3 Dense Retrieval


Dense Retrieval so sánh các vector truy vấn với các vector tài liệu văn bản bằng cách sử
dụng không gian tích trong. Các mô hình như vậy vẫn còn quá tốn kém để truy xuất kho
văn bản đầy đủ(full corpus). Một giải pháp thay thế là mô hình truy xuất thưa thớt theo
ngữ cảnh được đề xuất gần đây.

Bi-encoder để truy xuất danh sách các ứng cử viên kết quả, sau đó sử dụng Cross-Encoder
trên danh sách các ứng cử viên này để chọn ra (hoặc xếp hạng lại) các kết quả phù hợp
nhất. Bằng cách này sẽ hưởng lợi từ phương pháp truy xuất hiệu quả bằng cách sử dụng

8
Bi-encoder và độ chính xác cao của Cross-Encoder, có thể sử dụng phương pháp này trên
các bộ dữ liệu quy mô lớn.

Pre-train Bi-encoder một trong những phương pháp cho thấy tính hiệu quả trong bi-
encoder cho dense retrieval. Họ đã đề xuất đào tạo thêm BERT trước với Inverse Cloze
Task (ICT)

2.4 Inverse Cloze Task (ICT)

ICT sử dụng cặp đoạn văn và đoạn văn đầy đủ làm cặp huấn luyện giả. Kết quả cho thấy
rằng các mô hình không được đào tạo trước không tạo ra kết quả truy xuất với dữ liệu
thấp.Một câu được coi là một câu hỏi giả và ngữ cảnh của nó được coi là bằng chứng giả.
Đưa ra một câu hỏi giả, ICT yêu cầu chọn bằng chứng giả tương ứng trong số các ứng cử
viên trong một đợt.

Khác với các Cloze task tiêu chuẩn (standard Cloze task) thay vì dự đoán masked-out văn
bản trên ngử cảnh đó thì ICT cho một câu và dự đoán ngử cảnh của nó.

Một khía cạnh quan trọng của ICT là nó đòi hỏi phải học nhiều hơn các tính năng ghép
từ, vì câu hỏi giả không có trong bằng chứng (evidence). Ví dụ: câu hỏi giả trong Figure2
không bao giờ đề cập rõ ràng đến “Ngựa vằn”, nhưng retriever vẫn có thể chọn ngữ cảnh
thảo luận về Ngựa vằn.

9
Kết quả của họ cũng cho thấy rằng các mô hình không được đào tạo trước không tạo ra
kết quả truy xuất tốt trong các thiết lập ít dữ liệu

2.5 Effective Dense Retriever

Knowledge distillation là thuật toán lấy ý tưởng chính từ quá trình học tập ở người khi mà
kiến thức được truyền đạt từ giảng viên có hiểu biết tốt hơn tới người học có hiểu biết
kém hơn. Trong kỹ thuật knowledge distillation thì một model lớn hơn sẽ đóng vai trò là
teacher nhằm chuyển giao kiến thức sang model nhỏ hơn đóng vai trò là student.

Áp dụng knowledge distillation có thể tạo cải thiện đáng kể các tác vụ trên cả NLP và
computer vision với cùng một lớp mô hình. Ngoài ra nó còn giúp tạo ra những mô hình
nhỏ nhưng độ chính xác cao hơn ban đầu nhằm triển khai trên các thiết bị cấu hình yếu.

Quá trình distillation sẽ bao gồm các bước:

• Huấn luyện teacher: Teacher được huấn luyện trên một tập dữ liệu đã được
labeled. Bộ dữ liệu này thường có kích thước vừa đủ để teacher network học được
tổng quát các trường hợp. Sau khi teacher đã đủ tốt (giả sử đạt 95% accuracy),
chúng ta sử dụng teacher để huấn luyện student.
• Huấn luyện student: Quá trình này sẽ sử dụng gợi ý từ teacher để cải thiện
student. Nếu huấn luyện theo phương pháp thông thường thì student sẽ áp dụng
hàm loss function dạng cross-entropy dạng như sau:

10
3. Mô hình Condenser
3.1 Nhược điểm của mô hình BERT

Mô hình BERT sẽ nhúng từng câu thành các vector, như hình minh họa ở trên câu qua
các layer nhúng sẽ biến đổi thành hai vector tương ứng. Hai câu được ghép với nhau
bằng một vector token [SEP]. Tuy nhiên ở đoạn đầu tiên, ta thấy vector token [CLS] lại
được nhúng thành vector c, và vector đó mới tiếp tục biến đổi tiếp để tiến hành tính
score cuối cùng. Điều này khiến cho quá trình đạo hàm ngược sẽ cập nhật từ hàm f trở
xuống, và vector gần với hàm f nhất đó là vector đã được nhúng tương ứng với token
[CLS], vì vậy các vector được nhúng từ first_sentence -> u và second_sentence -> v sẽ
không có độ khớp tương xứng so với input ban đầu. Chính vì vậy mà tác giả có dẫn
chứng rằng khi training cho model pre-train thì hầu hết các sự cập nhật trọng số đến
từ phần giữa mô hình, tức là phần Transfomer Encoder. Các vector u, h được cập nhật
nhưng không tạo ra sự ảnh hưởng lớn tương xứng với từng input vào final score.

Chính vì sự lệnh pha này mà khi sử dụng các vector u, v cho fine-tune thì cần thiết kế để
xếp chồng lên các layer phù hợp (Sophisticated), và kết quả sẽ chưa đủ tốt bởi vì các

11
vector u, v chưa sẵn sàng để sử dụng trực tiếp. Chính vì vậy mà tác giả đề xuất mô hình
Condenser để cải thiện vấn đề này.

3.2 Mô hình Condenser


Ý tưởng:
Mô hình BERT có sự lệnh pha -> Ghép chồng thêm (cho đúng pha) -> xóa bỏ phần
thêm -> mô hình cuối cùng.

• Thay vì dùng u, v (hình trên) để fine-tune cho các tác vụ khác thì ta ghép thêm
một layer Head (Pre-train) Transfomer nữa, rồi training cho vector nhúng CLS
qua final score. Sau đó bỏ (drop) lớp layer Head vừa mới thêm, chỉ sử dụng
vector u, v để tiếp tục fine-tune như bình thường.

Vấn để của Transformer Encoder

Để fine-tune từ model BERT sang dense detriever ta cần có một phương pháp khá phức
tạp nhưng nếu ta sử dụng Condenser thì ta chỉ cần pre-train trước sau đó sủ dụng cấu
trúc Condenser ta có thể fine-tune đơn gian hơn như hình mô tả bên dưới

Nhận thấy BERT fine-tuning cẩn thận có thể tạo ra kết quả tốt hơn so với các hệ thống
dense retrieval được đào tạo trước đó.

Trong Transformers, tất cả các token, bao gồm cả CLS, chỉ nhận thông tin của các token
khác trong attention. Do đó, Attention xác định mức độ hiệu quả của CLS có thể tổng hợp
thông tin. Để hiểu các hành vi atttention của CLS,
1) Ở hầu hết các lớp giữa, Token CLS có Attention tương tự như các Token văn bản khác
và không được các Token khác tham gia.
2) Cho đến lớp cuối cùng, CLS có sự attention rộng rãi duy nhất trên toàn bộ chuỗi để
thực hiện nhiệm vụ NSP . Nói cách khác, token CLS vẫn không hoạt động ở nhiều lớp
trung gian và chỉ kích hoạt lại trong vòng attention cuối cùng. Bi-encoder hiệu quả nên

12
cố gắng tổng hợp thông tin có mức độ chi tiết khác nhau từ toàn bộ câu thông qua tất
cả các lớp và cấu trúc này trong LM được đào tạo trước tiêu chuẩn chưa sẵn sàng ngay
lập tức để fine-tunning.
Từ những vấn để đó mà ta có kiến trúc mới là Condenser
Giống như Transformer Encoder, Condenser được tham số hóa thành một chồng các khối
Transformer, được hiển thị trong Figure1

Thiết kế của mô hình Condenser được chia thành 3 nhóm

Le early encoder backbone layers

Ll late encoder backbone layers

Lh Condenser head Layers.

13
Condenser Head Thiết kế quan trọng đặt một mạch ngắn từ đầu ra sớm đến đầu, nhận
một cặp biểu diễn trễ-sớm

Train MLM loss với head output

Condenser, late encoder backbone có thể tinh chỉnh thêm các biểu diễn Token nhưng
chỉ có thể chuyển thông tin mới qua hlatecls ,late CLS. Do đó, Late CLS được yêu cầu để
tổng hợp thông tin mới được tạo later in the backbone và sau đó, header có thể tạo điều
kiện cho Late CLS để đưa ra dự đoán LM. Trong khi đó, bỏ qua việc kết nối các early layer,
loại bỏ encoding thông tin cục bộ và cấu trúc cú pháp của văn bản đầu vào, tập trung
CLS vào ý nghĩa toàn văn bản đầu vào. Số lớp Le và Ll kiểm soát sự phân tách thông tin
này.

Fine-tuning

Condenser head là một thành phần thời gian trước khi đào tạo và bị loại bỏ trong quá
trình Fine-tuning. Tinh chỉnh đào tạo late CLS hlatecls và backpropagate gradient vào
Backbone. Nói cách khác, Condenser giảm xuống encoder backbone của nó hoặc trở

14
thành Transformer encoder để fine-tuning một cách hiệu quả; head chỉ được sử dụng để
pre-training. Trong quá trình fine-tuning. Condenser có thể là một sự thay thế giảm trọng
lượng cho một Transformer LM điển hình như BERT.

15
4. Thực nghiệm
4.1 Sentence Similarity

Dataset: Bộ dữ liệu sử dụng hai bộ dữ liệu được giám sát: Semantic Textual Similarity
Benchmark và Wikipedia Section Distinction

Table 1: Hiển thị hiệu suất trên STS-b với các kích cỡ tàu khác nhau. BERT và Condenser
được đào tạo trước của NLP luôn vượt trội so với BERT và có margin lớn hơn nhiều với
quy mô đào tạo nhỏ hơn. Ngoài ra, chỉ với 500 cặp huấn luyện, hoạt động tốt hơn so với
Universal Sentence Encoder (USE) baseline.

Table 2: Kết quả gần như giống hệt nhau giữa các mô hình BERT và Condenser, vượt trội
so với các baseline BERT. Trong khi đó, ngay cả khi quy mô đào tạo nhỏ tới 1K, độ chính
xác chỉ giảm khoảng 10% so với đào tạo với tất cả dữ liệu. Không cần đào tạo với NSP
Task, Condenser vẫn hoạt động hiệu quả.

16
4.2 Retrieval cho Open QA
Dataset: Sử dụng hai bộ truy vấn (two query sets), Natural Question và Trivia QA, cũng
như kho ngữ liệu Wikipedia đã được làm sạch và phát hành bằng DPR. NQ chứa các câu
hỏi từ tìm kiếm của Google và TQA chứa một tập hợp các câu hỏi nhỏ. Cả NQ và TQA
đều có khoảng 60 nghìn dữ liệu đào tạo sau xử lý.

Table 3 Hiệu suất tập kiểm tra cho NQ và TQA với dữ liệu thấp. ICT và Condenser đều
hoạt động tốt hơn BERT, với margin đặc biệt lớn ở quy mô đào tạo 1K, giảm dưới 10% so
với đào tạo ở quy mô đầy đủ cho Top 20 Hit và dưới 5% cho Top 100. Sự cải thiện đáng
kể hơn khi xem xét mức tăng so với BM25 không giám sát. ICT và Condenser cho thấy
hiệu suất tương đương. ICT tốt hơn một chút trên NQ và Condenser trên TQA.

Table 4: So sánh Condenser được đào tạo với dữ liệu đào tạo đầy đủ với các hệ thống
khác. Trên NQ, tất cả các công cụ dense retrievers đều mang lại hiệu suất tốt hơn so với
các công cụ lexical retrievers, đặc biệt là những công cụ sử dụng hard negatives.
Condenser hoạt động tốt nhất cho Top 20 và nằm trong khoảng 0,1 so với RocketQA cho
Top 100 mà không yêu cầu hệ thống đào tạo phức tạp (sophisticated) và tốn kém. Trên
TQA, thấy GAR, từ vựng với mở rộng deep LM query, hoạt động tốt hơn tất cả các dense

17
systems khác ngoài Condenser. Điều này cho thấy TQA có thể yêu cầu các tín hiệu cấp độ
chi tiết khó nắm bắt đối với những dense retrievers. Tuy nhiên, Condenser vẫn có thể hoạt
động tốt hơn tất cả các hệ thống lexical và dense.

4.3 Retrieval for Web Search


Dataset: Sử dụng tập dữ liệu xếp hạng đoạn văn MS-MARCO, được xây dựng từ nhật ký
truy vấn tìm kiếm của Bing và tài liệu web do Bing truy xuất. Tập huấn luyện có khoảng
0,5 triệu truy vấn. Sử dụng corpus được xử lý trước và phát hành với RocketQA. Đánh giá
trên hai bộ truy vấn: truy vấn MS-MARCO Dev5 và TREC DL2019. Báo cáo về số liệu chính
thức của Nhà phát triển MRR@10 và Recall@1k, và DL2019 NDCG@10.

Table 5, ICT và Condenser hoạt động tốt hơn BERT với margin lớn. Khi có tới 10 nghìn dữ
liệu huấn luyện, 2% của tập huấn luyện đầy đủ, tất cả các công cụ dense retrievers đều
vượt trội so với BM25, với ICT và Condenser vẫn giữ được lợi nhuận so với BERT.
Condenser đã có thể cho thấy hiệu suất tương đương trong thu hồi và NDCG đối với BERT
được đào tạo trên tập huấn luyện đầy đủ. Condenser có thể hoạt động tốt hơn ICT ở các
kích cỡ đào tạo khác nhau, cho thấy rằng việc đào tạo trước LM chung của Condenser
giúp nó khái quát hóa tốt hơn giữa các miền so với ICT.

18
Table 6: Các kỹ thuật đào tạo khác nhau giúp cải thiện đáng kể so với tinh chỉnh.
Condenser có thể vượt trội hơn nữa các mô hình này nhờ margin lớn, cho thấy những lợi
ích do đào tạo trước mang lại. Không liên quan đến các kỹ thuật đào tạo phức tạp hoặc
làm nặng mô hình/truy xuất, Condenser đã có thể cho thấy hiệu suất tốt hơn một chút so
với RocketQA.

4.4 Attention Analysis

Figure 2: CLS của các mô hình khác nhau.

Figures 2a rằng BERT có sự thay đổi mạnh mẽ trong mô hình attention giữa các mô hình
được fine-tuning trước và các mô hình được fine-tuning. Điều này một lần nữa khẳng
định lý thuyết rằng các LM Transformer Encoder LMs chưa sẵn sàng để được fine-tuning
thành bi-encoder, mà cần trải qua những thay đổi lớn về cấu trúc bên trong

Figures 2b, 2c task-specific pre-trained ICT và Condenser LM chỉ có những thay đổi nhỏ,
giữ nguyên attention structure. ICT và Condenser đều thiết lập sự sẵn sàng về cấu trúc,
nhưng theo những cách rất khác nhau. Cả ICT và Condenser đều có sự chú ý mở rộng
(tăng entropy) trong các lớp sau, có khả năng là do tác vụ tìm kiếm thực tế yêu cầu tổng

19
hợp nhiều khái niệm cấp cao hơn so với đào tạo trước. Các kết quả ở đây một lần nữa xác
nhận lý thuyết rằng một cấu trúc sẵn sàng sử dụng (ready-to-use structure) có thể dễ
dàng đào tạo hơn; cấu trúc của chúng chỉ cần những thay đổi nhỏ để hoạt động như một
bi-encoder hiệu quả.

Table 7: So sánh với RocketQA để hiểu các chiến lược : very large batch, denoise hard
negatives, và data augmentation.. RocketQA nhận thấy các hard negatives được khai thác
có chứa các false negatives gây bất lợi cho quá trình đào tạo bi-encoder đề xuất sử dụng
cross-encoder để dán nhãn lại và khử nhiễu cho chúng, tuy nhiên, một quy trình tốn kém
hơn hàng nghìn lần so với khai thác hard negatives. Tiếp tục sử dụng kỹ thuật tăng cường
dữ liệu, sử dụng cross-encoder để gắn nhãn dữ liệu bên ngoài. Ở đây, Condenser được
đào tạo với batch size 64 và BM25 negatives có hiệu suất tốt hơn RocketQA với batch size
8192. Quan trọng hơn, Condenser có thể hạn chế noise hard negatives được khai thác,
được đào tạo tăng cường tốt với hard negatives được khai thác, không giống như
RocketQA có hiệu suất giảm rất nhiều mà không bị nhiễu. Condenser loại bỏ sự cần thiết
của nhiều kỹ thuật đào tạo phức tạp: nó chỉ bị vượt trội bởi RocketQA sử dụng dữ liệu
bên ngoài (tăng cường dữ liệu).

5. Condenser trong bài toán Zalo 2021


Kết quả thực nghiệm đạt được:
• Notebook Kaggle: https://www.kaggle.com/code/hmthanh/condenser-qa2021
• HuggingfaceModel : https://huggingface.co/hmthanh/VietnamLegalText-SBERT
• Github Condenser: https://github.com/hmthanh/zalo_ltr_2021

Dataset: Legal Text Retrieval


https://www.kaggle.com/datasets/hmthanh/legal-text-retrieval?select=zac2021-ltr-data

20
Mã nguồn thực hành của Condenser

• Nhóm tiến hành tham khảo mã nguồn từ bài toán Legal Text Retrieval từ cuộc thi
Zalo AI 2021 của CuongNN218. https://github.com/CuongNN218/zalo_ltr_2021
• Do mã nguồn của CuongNN218 được chạy trên con máy có 4 GPU A1000 nên các
thông số cho việc training chương trình rất lớn. Nên nhóm em phải thay đổi tham
số để thực nghiệm trên kaggle, training lại trên bộ dữ liệu rất nhỏ (Chỉ 100 câu
điều luật)

Bài toán Zalo AI 2021: Legal Text Retrieval


Input:
• Câu hỏi (VD: ”Trường hợp nào được miễn tham gia bồi dưỡng nghiệp vụ công
chứng hàng năm?”)
• Corpus:
o Các văn bản luật với law_id (VD : ”01/2021/tt-ttcp”)
o Nội dung mỗi văn bản luật gồm nhiều điều luật Các điều luật article phân
biệt bởi article_id ("1", "2"):
▪ Tên điều luật - title ("Điều 1. Phạm vi điều chỉnh")
▪ Nội dung điều luật - text ("Thông tư này quy định quy tắc ứng xử
chung, ứng xử trong thực hiện nhiệm vụ thanh tra, giải quyết khiếu
nại, tố cáo phòng, chống tham nhũng trong ngành Thanh tra và
trong thực hiện nhiệm vụ tiếp công dân.")

Output:

• Trả ra null hoặc danh sách một hoặc nhiều các văn bản luật của điều luật tương
ứng với câu hỏi.
o Văn bản luật (VD : "law_id": "195/2013/nđ-cp")
o Điều luật (VD : "article_id": "17")

Mục tiêu thực hiện:


Xếp hạng điểm số trong các câu trong Corpus, và đánh giá độ giống nhau dựa trên cosine
similarity score.

• Round1: Dùng BM25 để làm Negative sample cho việc training Contrastive loss.
• Round2: Dùng Sentence Transfomer mà dự đoán false positive để làm Negative
sample cho việc training Contrastive loss.

21
Các bước thực hiện:
1. Training Condenser
Lấy các mô hình có sẵn trên Huggingface như VinAI/PhoBERT, FPTAI/ViBERT để Fine-tune
trước để được các mô hình Condenser và CoCondenser. 2.

2. Training Sentence Transformer + Contrastive loss


(Là đưa các câu positive lại gần, đưa các mẫu negative ra xa):

• Dữ liệu của contractive loss:


o Positive sample: Lấy từ data answer (câu trả lời) của ban tổ chức cuộc thi.
o Negative sample: Dùng BM25 để tìm ra 50 hoặc 20 cặp câu giống nhau với
câu hỏi nhất và gán là Negative sample.
• Sử dụng các mô hình PhoBERT, ViBERT đã fine-tune Condenser và CoCondenser
để training Contractive loss với nhãn đã chuẩn bị.

3. Hard negative mining:


(Là dùng những câu được dự đoán false positive và gán là negative để tiếp tục training -
mục tiêu để model fix các lỗi sai positive)

• Dùng models trên dự đoán top 20 cặp trong training data có cosine-similarity
scores cao nhất cho từng model.
• Lưu lại các cặp câu này để training tiếp round 2 cho sentence transformer.

22
4. Training Sentence Transformer + Contrastive loss
Với dữ liệu được sinh ra từ Step 3.

• Positive sample: Lấy từ data answer (câu trả lời) của ban tổ chức cuộc thi.
• Negative sample: Lấy từ step 3.

5. Ensemble
• Esemble các mô hình trên với BM25

6. Tính final score


• BERT_score = ∑ w_i * cos_sim_model_i
• BM25_score = BM25 score của từng câu hỏi
• Final score = BM25_score * BERT_score

7. Post-processing:
• Loại bỏ 1 số trường hợp sai điều luật:
o nd-, nđ-cp (chữ đ ở 1 dạng kí tự khác) nđ-cp -> nd-cp
o 09/2014/ttlt-btp-tandtc-vksndtc -> 09/2014/ttlt-btp-tandtc-vksndtc-btc.
• Chỉ lấy tối đa 5 câu trong khoảng [max_score - 2.6, max_score].

6. Kết luận
Fine-tuning từ pre-trained LM như BERT đã trở thành rất phổ biến trong NLP. Các mô
hình như BERT có phải là công cụ khởi tạo phù hợp nhất cho bi-encoder hay không. LM
được đào tạo trước điển hình không có internal attention structure sẵn sàng cho bi-
encoder. Chúng không thể cô đọng thông tin một cách hiệu quả thành một biểu diễn
dense vector. Một kiến trúc mới, Condenser, thiết lập sự sẵn sàng trong cấu trúc với quá
trình đào tạo trước LM.

Condenser có hiệu quả đối với nhiều tác vụ khác nhau, tính tương tự của câu, truy xuất
câu trả lời cho câu hỏi và truy xuất tìm kiếm trên web.

Với dữ liệu thấp, Condenser hiển thị hiệu suất tương đương với các mô hình được đào
tạo trước theo nhiệm vụ cụ thể. Nó cũng cung cấp một quan điểm mới về huấn luyện
trước trong việc học những retrievers hiệu quả hơn là các chiến lược tinh chỉnh. Nếu được
đào tạo đầy đủ, Condenser và tinh chỉnh trực tiếp có thể là một giải pháp thay thế nhẹ
nhàng cho nhiều kỹ thuật đào tạo phức tạp.

Các kết quả tích cực với Condenser cho thấy rằng tính sẵn sàng của cấu trúc là một thuộc
tính cơ bản trong các bi-encoders dễ huấn luyện. Attention analysis cho thấy cả

23
Condenser và mô hình được đào tạo trước dành riêng cho nhiệm vụ đều thiết lập sự sẵn
sàng về cấu trúc, cho thấy mục tiêu dành riêng cho nhiệm vụ có thể không cần thiết.

Một lợi thế lớn của BERT là sau khi đào tạo trước phức tạp một lần, việc tinh chỉnh trở
nên dễ dàng với trình khởi tạo mô hình phổ quát này. Tuy nhiên, điều này không đúng
với bi-encoder BERT, đặc biệt là retriever, vốn cần được đào tạo cẩn thận và tốn kém.

7. Tài liệu kham khảo


https://www.sbert.net/examples/applications/cross-encoder/README.html

https://github.com/donggyukimc/Inverse-cloze-task

https://weaviate.io/blog/2022/08/Using-Cross-Encoders-as-reranker-in-multistage-
vector-search.html

Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

Dense Passage Retrieval for Open-Domain Question Answering

Latent Retrieval for Weakly Supervised Open Domain Question Answering

REALM: Retrieval-Augmented Language Model Pre-Training

End-to-End Training of Neural Retrievers for Open-Domain Question Answering

Trả lời thêm:


1. Condensor nghĩa là gì?

Condensor = CONdition + DENSE Presentation:

Condition là tùy hoàn cảnh của CLS token.

và DENSE là biểu diễn đặc (dense presentation) hay một scala của 1 vector đại diện cho
nhiều đặc trưng khác nhau. Hay một vector có nhiều giá trị phân biệt với sparse
presentation (biểu diễn thưa) - biểu diễn thưa là một vector có rất nhiều số 0 và chỉ một
vài giá trị khác 0 thể hiện giá trị đặc trưng.

2. CoCondensor là gì?

CoCondensor thuộc một bài báo khác (Unsupervised Corpus Aware Language Model Pre-
training for Dense Passage Retrieval - https://arxiv.org/pdf/2108.05540.pdf)

24
coCondenser là Condensor, nhưng thay vì chỉ tính 1 Loss duy nhất khi có
head_condenser thì coCondensor sẽ cộng thêm loss của lớp head_late.

coCondenser_loss = Condensor_loss_with_head (có head) +


Condensor_loss_without_head (không có head)

Chữ co trong coCondenser có nghĩa là cùng nhau (co-), cùng nhau condenser.

3. Condenser là mô hình Pre-training hay Fine-tune?

Condenser là mô hình pre-training.

Condenser kết hợp thêm một head Condenser mới từ BERT weight lúc pre-train lại mô
hình từ ban đầu để được Weight mới, và sẽ loại bỏ head Condenser này sau khi cần fine-
tune cho các tác vụ khác.

Condenser là một mô hình pre-train như BERT nên nó có thể được training từ đầu như
một mô hình Pre-train như BERT/RoBERTa chứ không nhất thiết phải fine-tune từ
BERT/RoBERTa.

Nhưng bài của cuộc thì Zalo AI 2021 thì họ training lại từ mô hình BERT từ corpus của văn
bản luật.

4. Mô hình Condenser sau khi fine-tune là dùng dữ liệu mới hay dùng dữ liệu cho
domain cụ thể?

Có thể training từ đầu và cả training cho domain cụ thể.

Tuy nhiên, trong mã nguồn, tác giả đưa ra hai model weight. Một cái là có head Condenser
và một cái headless Condenser.

Condenser (BERT + head Condenser) -> Condenser weight (headless) --(fine-tune)->


Question Answering Task.

25
5. "Vẫn không hiểu mô hình nó làm cái gì?"

Condenser bao gồm (Early Embedding + Late Embedding + Head Embedding)

Bên trái là mô hình BERT thông thường, bên phải là mô hình Dense Retrievers.

Trong Dense Retrievers và cả Dense Retrievers, score vẫn chỉ dùng 1 vector CLS duy nhất
đại diện cho toàn bộ vector nhúng input trước đó nên khi đạo hàm ngược thì không biểu
diễn đầy đủ thông tin từ input.

Phần score cho fine-tune chỉ được tính từ vector CLS duy nhất => Việc này không biểu
diễn đúng.

Mô hình Condenser (hình phía trên) kết hợp thêm 1 cái head condenser để training và có
được một trọng số mới (Condenser = BERT + head condenser).

Sau khi dùng Condenser headless (đã bỏ lớp head) để fine-tune thì vector CLS sẽ tổng
hợp được thông tin từ toàn bộ input.

26
27

You might also like