Với SoftmaxQ*K^T/sqrtd_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.. Tuy nhiên, t
Trang 1ĐẠ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
Trang 2Mụ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
Trang 3Condenser: a Pre-training Architecture
for Dense Retrieval
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
Trang 42 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:
Trang 5Vớ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
Trang 6Kiế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
Trang 7Bi-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
Trang 8Cross-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
Trang 9đó, 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 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
Bi-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
Trang 10Bi-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
Trang 11Kế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:
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
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:
Trang 123 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
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
Trang 13vector 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
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
Trang 14cố 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
Trang 15Condenser 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
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
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ở
Trang 16thà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
Trang 174 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ả