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

NLP Notes – Kikai Tech

Summary of
“Speech and Language Processing”
3rd Edition
Authors of Book: Daniel Jurafsky (Stanford), James H. Martin (Colorado at Boulder)

Summary Writen By:


Nguyen Thi Tham (email: thamnguyenthi975@gmail.com)

1
NLP Notes – Kikai Tech

Mục lục
I. Bài toán .......................................................................................................... 4
1. Text Normalization .................................................................................... 4
2. Word Tokenization .................................................................................... 4
3. Word Normalization .................................................................................. 5
4. Sentence Segmentation .............................................................................. 6
5. String Similarity ........................................................................................ 6
6. Language Model ........................................................................................ 7
7. Text Classification ....................................................................................10
8. Vector Semantics / Word Embedding .......................................................15
9. Sequence Labeling ....................................................................................17
10. Machine Translation .................................................................................19
11. Constituency Parsing ................................................................................25
12. CCG Parsing .............................................................................................27
13. Dependency Parsing .................................................................................28
14. Semantic Parsing ......................................................................................29
15. Information Extraction ..............................................................................30
16. Relation Extraction ...................................................................................30
17. Time Extraction ........................................................................................33
18. Event Extraction .......................................................................................35
19. Timeline Extraction ..................................................................................36
20. Template Filling .......................................................................................37
21. Word Sense Disambiguation .....................................................................38
22. Semantic Role Labeling ............................................................................41
23. Selectional Preference ..............................................................................44
24. Affective Information Utilizing ................................................................46
25. Coreference Resolution.............................................................................50
26. Discourse Structure Parsing ......................................................................55
27. Question Answering .................................................................................61
2
NLP Notes – Kikai Tech

28. Information Retrieval................................................................................65


29. Reading Comprehension ...........................................................................69
30. Entity Linking...........................................................................................71
31. Dialogue System .......................................................................................73
32. ChatBot ....................................................................................................74
33. Task-based Dialogue System ....................................................................76
II. Các khái niệm ...............................................................................................82
III. Các vấn đề cơ bản trong học máy ................................................................82
1. Evaluation ................................................................................................82
2. Statistical Significance Testing .................................................................82
IV. Mô hình/Thuật toán/Kiến trúc chung ...........................................................83
1. Neural Network ........................................................................................83
2. Recurrent Neural Network & Its Variance ................................................83
3. Transformers ............................................................................................83
4. Các neural net cho parsing ........................................................................83
V. Linguistic ......................................................................................................83

****Còn cập nhật nữa


(X) : cần hoàn thiện
(?) : chưa rõ
(*): chú ý
(>): cách làm được ưu tiên
(…dfd): còn bổ sung
(+) : các corpus
(_) : baseline

3
NLP Notes – Kikai Tech

I. Bài toán
1. Text Normalization
1.1. Mô tả
Text Normalization là một tập các tasks thực hiện nhằm mục đích đưa văn
bản về một dạng chuẩn, tạo đầu vào thuận tiện cho các xử lý ở cấp cao hơn.
1.2. Bài toán con / thành phần
- Word Tokenization
- Word Normalization
- Sentence Segmentation
1.3. Tham khảo
- P13

2. Word Tokenization
2.1. Mô tả
Mục tiêu là tách văn bản thành các từ
2.2. Trở ngại & Vấn đề còn tồn tại
- Có nhiều mập mờ trong việc xác định các thành phần (ref.1-p15):
o Dấu câu: bỏ đi hay giữ lại
o Ký tự đặc biệt & số: khó xác định ranh giới (do chưa có quy
chuẩn chung giữa các ngôn ngữ)
o Có nhiều cụm từ có nghĩa hoàn chỉnh không nên tách
o Cụm đặc biệt (email, url, hashtag,..): mập mờ trong xác định cụm
o Viết tắt: cần mở rộng
- Có một số tiếng như Trung Quốc, Thái Lan, Nhật Bản không sử dụng
dấu cách để ngắt giữa các từ đơn.
➔ Xem mỗi ký tự là một từ (Trung Quốc) hoặc phải có thuật toán word
segmentation (Nhật Bản và Thái Lan)
2.3. Kỹ thuật và phương pháp giải

4
NLP Notes – Kikai Tech

- Unix command line: Giúp tokenize theo cách đơn giản và thống kê
nhanh từ vựng của corpus
- Regex (nltk lib): ưu điểm là nhanh nhưng cần được thiết kế cẩn thận
cho những trường hợp mập mờ
- Byte-Pair Encoding (X)
- Unigram Language Model (X)
2.4. Cách đánh giá
Không có
2.5. Ghi chú
Cần ưu tiên tốc độ
2.6. Tham khảo
- C2.4.2

3. Word Normalization
3.1. Mô tả
Đưa token/word về dạng chuẩn (chọn một form cho một từ e.g. ổi, ủi ->
ổi), đặc biệt quan trọng trong các ngôn ngữ có hình thái từ phức tạp (chia
theo thì, nhiều tiền tố, hậu tố,..)
3.2. Bài toán con / thành phần
- Case folding: đưa các từ viết hoa về dạng viết thường. Mục đích là giúp
generalization. Tuy nhiên, có nhiều task chuẩn hóa chữ hoa là không
cần thiết (vd: machine translation, information extraction,..)

- Lemmatization: xác định 2 form có phải thuộc cùng một từ không (vd:
is, am, are -> be). Đây là task phức tạp

- Stemming (đơn giản hơn lemmatization): loại bỏ tất cả các tiền tố, hậu
tố của từ
3.3. Trở ngại & Vấn đề còn tồn tại
3.4. Kỹ thuật và phương pháp giải

5
NLP Notes – Kikai Tech

- Porter Stemmer: cho word đi qua chuỗi các rule, theo kiểu cascade
(output của rule trước là input của rule sau)

3.5. Tham khảo


- C2.4.4

4. Sentence Segmentation
4.1. Mô tả
Tách văn bản thành chuỗi các câu
4.2. Bài toán con / thành phần
4.3. Trở ngại & Vấn đề còn tồn tại
- Khó xác định chính xác mục đích của dấu câu trong các ngữ cảnh khác
nhau
4.4. Kỹ thuật và phương pháp giải
- Sử dụng luật: xây dựng từ điển (thủ công hoặc qua ML) để xác định
mục đích của dấu ngắt câu (để tách câu hay dùng cho mục đích khác)
4.5. Tham khảo
- C2.4.5

5. String Similarity
5.1. Mô tả
Đo độ tương đồng giữa hai xâu
5.2. Bài toán con / thành phần
5.3. Trở ngại & Vấn đề còn tồn tại
6
NLP Notes – Kikai Tech

5.4. Kỹ thuật và phương pháp giải


- Sử dụng minimum edit distance giữa hai xâu. Sử dụng Minimum
Edit Distance Algorithm để xác định (X)
5.5. Ứng dụng
- Spelling correction: gợi ý từ thay thế cho từ viết sai chính tả
- Coreference: xem xét hai xâu có phải ám chỉ đến cùng một đối tượng
không
- Alignment trong Machine Translation (?)
5.6. Ghi chú
5.7. Tham khảo

6. Language Model
6.1. Mô tả
Mô hình được dùng để gán giá trị xác suất cho chuỗi từ.
6.2. Bài toán con / thành phần
6.3. Trở ngại & Vấn đề còn tồn tại
Với mô hình N-gram Language Model, có những vấn đề sau cần phải cân nhắc:
- Cần cân nhắc khả năng generalize của mô hình:
Cẩn trọng khi chọn dữ liệu huấn luyện (dialect/variety và tính chất đặc thù của
nguồn thu thập dữ liệu).

Ngoài ra, tập train và test cần đồng bộ với nhau (cùng thể loại,…).

Mô hình cần có phương án đối phó với sparity. Cụ thể là: Làm sao để mô hình
có khả năng tạo ra những cụm từ mới hoàn toàn, chưa có trong tập train? Đối phó
với những context (cụm (n-1)-gram) chưa từng gặp ở tập train nhưng xuất hiện ở
tập test như thế nào? Giải pháp cho vấn đề này là Smoothing.

- Cần đối phó với unknown word:


Có những tác vụ mà chắc chắn tập từ vựng là đầy đủ (trong các closed vocabulary
system) -> không cần xử lý unknown words. Ví dụ: trong speech recognition/

7
NLP Notes – Kikai Tech

machine translation, tập từ vựng (từ điển các âm/ bảng các cụm từ) được coi là
đầy đủ và cố định.

Những trường hợp khác (open vocabulary) thì cần phải xử lý unknown words
(hay out of vocabulary – OOV). Ở đây, những unknown words thường được
thay thế bằng một từ giả <UNK>. Có 2 cách được dùng để tìm ra xác suất cho
<UNK>:
o Cách 1: Chọn tập từ vựng cố định -> học từ tập train (từ nào không có
trong tập từ vựng thì coi là <UNK> ). Từ đây sẽ ra được xác suất của
<UNK>
o Cách 2: Những token nào xuất hiện ít hơn n lần trong training set sẽ được
coi là <UNK>.
Ref.C3.3
Với các Neural Language Model lớn, có một số vấn đề sau cần quan tâm:
- Bias:
Do thường được huấn luyện trên một tập dữ liệu rất lớn, nên có thể nó sẽ bị ảnh
hưởng bởi các bias (định kiến) hoặc vô tình sinh ra những đoạn text không phù
hợp (tác hại sẽ hiện rõ ở những ứng dụng phổ biến như web search, hay typing
predict trong email).
Hơn nữa, LM thậm chí có thể làm cường điệu hóa các bias nhỏ tồn tại trong dữ
liệu huấn luyện (?)
- Quyền riêng tư:
LM có thể làm lộ các thông tin riêng tư có trong dữ liệu huấn luyện (đặc biệt là
với những tập dữ liệu mang tính riêng tư vd: hồ sơ bệnh án của bệnh nhân)
➔ Giải pháp:
o Cần cẩn trọng khi chọn dữ liệu huấn luyện. Khi tạo dữ liệu, có
thể sử dụng datasheet/model card để xác định rõ các thông tin
liên quan đến corpus sử dụng huấn luyện.
o Khi thấy mô hình có xu hương tạo ra toxic output, có thể huấn
luyện nó thêm trên một bộ dữ liệu lành mạnh hơn.
Ref.C9.5
6.4. Kỹ thuật và phương pháp giải
8
NLP Notes – Kikai Tech

- N-gram Language Model (X)


- Smoothing (kỹ thuật hỗ trợ cho n-gram LM) (X)
- Feedforward NN with sliding window (X): Ref.C7
- RNN LM (X): Ref.C9.2.3
- Transformers (X) : Ref.C9.4.1
6.5. Cách đánh giá (Perplexity)
a. Với intrinsic evaluation: sử dụng metric để đo hiệu quả mô hình (cụ thể là
perplexity).
Perplexity là một cách nhìn khác liên quan đến xác suất sinh ra tập test của
mô hình.
Công thức:
1
𝑃𝑃 (𝑊 ) = 𝑃(𝑤1 𝑤2 … 𝑤𝑛 )−𝑛
𝑁 1
= √
𝑃 (𝑤1𝑤2 … 𝑤𝑁 )

𝑁
𝑁 1
= √∏
𝑃(𝑤𝑖 |𝑤𝑖−1)
𝑖

PP càng nhỏ tương đương với xác suất sinh ra chuỗi từ càng lớn. Liên hệ PP
với entropy, có thể coi PP là weighted average branching factor (số phương
án trung bình mà mô hình cần chọn lựa khi dự đoán từ tiếp theo, trong đó, các
phương án có trọng số khác nhau). Branchinh factor là số khả năng mà từ
tiếp theo sẽ nhận. Khi xác suất là đều thì:
weighted average branching factor = branching factor
(*) Chú ý khi sử dụng:
- Có thể coi toàn bộ tập test là một chuỗi. Khi đó cần thêm các marker
<s> và </s> để đánh dấu ranh giới giữa các câu
- Cần thêm </s> vào tập từ vựng, còn <s> thì không (?)
- Nếu test set giống với train set thì PP sẽ thấp.
- Việc chọn vocab cho mô hình LM sẽ ảnh hưởng nhiều đến PP của mô
hình. Nếu tập từ vựng nhỏ & xác suất cho <UNK> lớn thì PP thấp. Đây

9
NLP Notes – Kikai Tech

là lý do khiến cho khi muốn dùng PP để so sánh 2 mô hình thì 2 mô


hình đó cần phải có cùng tập vocab.
- PP thường chỉ để kiểm tra nhanh thuật toán. Còn cải thiện về mặt mô
hình thì luôn cần phải end-to-end evaluation.

b. Với extrinsic evaluation: đánh giá hiệu quả LM dự vào hiệu quả mà nó đem
lại khi ứng dụng vào một hệ thống end-to-end.
Cách đánh giá này dựa trên việc quan niệm rằng chất lượng của một LM được
phản ánh qua tính rành mạch, hợp lý của output mà nó sinh ra. Cách tiếp cận
để tạo output thường được sử dụng là autoregressive generation. Cụ thể, ban
đầu chọn ngẫu nhiên một từ đầu tiên. Sau đó cho mô hình sinh ra từ tiếp theo
dựa vào các từ được chọn trước đó. Mô hình dừng sinh khi output đã đạt đến
giới hạn độ dài hoặc nó sinh ra ký tự đánh dấu kết thúc.
Đây cũng là cách thức được sử dụng để sinh văn bản cho các bài toán như
Machine Translation, Text Summarization,…

6.6. Ứng dụng


c. Speech recognition
d. Spelling correction / Grammatical error correction
e. Machine translation
f. Augmentative and Alternative communication (AAC): hệ thống hỗ trợ giao
tiếp cho những người liệt (phải sử dụng mắt hoặc cử động nhỏ để tạo nội dung
nói từ menu). Trong hệ thống này, LM có thể hỗ trợ đưa ra các gợi ý từ trong
menu để họ chọn.
6.7. Ghi chú
6.8. Tham khảo
- C3
- C9

7. Text Classification
7.1. Mô tả
Yêu cầu của bài toán là gán nhãn cho một đoạn văn bản.

10
NLP Notes – Kikai Tech

Các bài toán phân loại văn bản phổ biến:


Doc level:
- Sentiment analysis: trích xuất sentiment từ văn bản (bình luận một sản
phẩm/ bài báo liên quan đến chính trị)
- Spam Detection: gán nhãn cho một email là spam / not spam
- Language ID: nhận diện ngôn ngữ được sử dụng trong text (trong mạng
xã hội). Đây là một bước trong các NLP pipeline.
- Authorship attribution: Xác định một văn bản có phải do một tác giả
này viết không, hay là của tác giả khác. Áp dụng cho Digital Humanities
(áp dụng công nghệ để nghiên cứu các khía cạnh liên quan quan đến
con người – xã hội, tư tưởng, văn hóa,…), xã hội học, pháp lý,…
- Topic modeling: xác định topic cho môt văn bản (paper,..). Áp dụng
trong các hệ thống IR
Below doc level:
- Period disambiguation: xác định một dấu câu có phải dấu ngắt câu hay
không
- Word tokenization: xác định một ký tự có phải word boundary không
- Language Modeling: coi mỗi từ trong tập từ vựng là một nhãn
- POS tagger: xác định từ loại của một từ (danh từ/ động từ)

7.2. Bài toán con / thành phần
Các thành phần cho một mô hình phân loại xác suất:
- Feature representation:
Mỗi input 𝑥 sẽ được biểu diễn bởi feature vector 𝑥 = (𝑥1, … , 𝑥𝑛 )𝑇 . Để có được
feature vector như vậy, có hai cách được sử dụng:
o Sử dụng feature function:

Các hàm này được xây dựng thủ công dựa vào tổ hợp các thuộc tính khác nhau
của input. Giá trị trả về nó là giá trị nhị phân.

11
NLP Notes – Kikai Tech

Để đơn giản hóa quá trình thiết kế đặc trưng cần trích chọn, người ta thường sử
dụng feature template. Trong feature template, việc cần làm là chỉ ra các đặc
trưng cần trích rút. Giá trị của đặc trưng có thể là một xâu, một số, một chuỗi nhị
phân, một nhãn,… Sau đó, tập những đặc trưng đó sẽ được chuyển về dạng
feature vector như cho feature function ở trên. (X)
Nhược điểm của phương pháp này là feature vector bị thưa và có thể chứa nhiều
feature không cần thiết.
Ref.C5.1.1
Ref.C5.6.1 (X)
o Xu hướng hiện nay là học feature tự động thông qua
representation learning (X)
- Classification function: sigmoid / softmax (X) – Ref.C5.1
- Objective Function (X) - Ref.C5.3; Ref.C5.6.2
- Optimization Algorithm (X) – Ref.C5.4
- Regularization (X) – Ref.C5.5
7.3. Trở ngại & Vấn đề còn tồn tại
Khi thực hiện huấn luyện mô hình cần tránh các harm sau:
- Representation Harms: Việc quyết định của mô hình dựa vào những feature
không có cơ sở
- Nhạy cảm với một số feature: một số feature khi xuất hiện trong 1 context sẽ
thường cho 1 nhãn cụ thể. Tuy nhiên, mô hình lại quan trọng hóa feature đó,
xem nó là yếu tố quyết định duy nhất đến việc chọn nhãn (cho trọng số của
feature đó quá lớn)
Nguyên nhân của vấn đề trên là từ bias trong dữ liệu:
- Việc gán nhãn bằng tay (có bias)
- Kiến trúc mô hình
- Các tài nguyên sử dụng (lexicons hay pretrained embeddings)
➔ Cần phải tạo ra model card (Mitchell 2019) (X)

7.4. Kỹ thuật và phương pháp giải


12
NLP Notes – Kikai Tech

Các phương pháp thường áp dụng cho bài toán phân loại:
- Sử dụng luật:
Luật thường được tích hợp thêm vào các hệ thống phân loại
Nhược điểm: Luật có thể không đúng mãi mãi; Trong một số trường hợp, con
người không thể nghĩ ra được tập luật bao quát hết tất cả mọi trường hợp.
- Sử dụng các thuật toán học có giám sát (>): đây là cách được áp dụng
nhiều.
Thay vì đưa ra kết quả là một nhãn xác định, một phân phối xác suất trên tập các
nhãn sẽ hữu dụng hơn khi áp dụng vào hệ thống thực.
Có hai cách tiếp cận: Generative classifier & Discriminative classifier
(*) So sánh Generative và Discriminative Classifier:
Mục tiêu của hai loại classifier này đều là tính giá trị post probability: 𝑝(𝑦|𝑥 ) cho
tất cả các nhãn và sau đó, chọn nhãn cho post probability lớn nhất. Tuy nhiên,
cách thức tính của hai loại mô hình lại khác nhau.
o Generative Classifier
Mô hình dạng này tính post probability thông qua công thức Bayes:
𝑝(𝑥|𝑦). 𝑝(𝑦)
𝑝(𝑦|𝑥 ) =
𝑝(𝑥 )
Để tìm 𝑝(𝑦|𝑥) cho giá trị lớn nhất, mô hình cần phải biết được likelihood 𝑝(𝑥|𝑦)
và prior 𝑝(𝑦). Đây là các tham số mà mô hình phải học.
Gọi đây là mô hình sinh vì có thể sử dụng mô hình này để sinh ra dữ liệu. (…Mô
tả quá trình sinh dữ liệu). Các tham số của mô hình thường hướng tới sao cho dữ
liệu mà mô hình sinh sinh ra giống tập dữ liệu huấn luyện nhất có thể.
Khi muốn phân loại 1 ảnh là ảnh chó hay mèo thì mô hình sẽ thực hiện:
1. Áp ảnh đó vào mỗi loại, tính 𝑝(𝑦|𝑥) cho từng loại
2. Nó sẽ trích những đặc trưng của ảnh cần phân loại. Căn cứ vào khả năng
xuất hiện của loại đang xét 𝑝(𝑦) và độ phổ biến của những đặc trưng của ảnh
trong loại đang xét 𝑝(𝑥|𝑦) để tính
NB huấn luyện nhanh, không cần tối ưu, dễ cài đặt
13
NLP Notes – Kikai Tech

(Xem lại phần mixture model để hiểu rõ hơn)


Mô hình thuộc dạng này: Naïve Bayes (X)
o Discriminative Classifier
Ta có một tập các loại đặc trưng cho mỗi ví dụ đầu vào. Tham số mà mô hình có
là trọng số của từng đặc trưng ứng với mỗi nhãn. Từ tham số này, mô hình sẽ xác
định đặc trưng quan trọng cho từng nhãn (ví dụ: con người thì đặc trưng quan
trọng là có hình giống que, có 4 chi) và căn cứ vào đó để xác định nhãn.
Mô hình thuộc dạng này: Logistic Regression (X)
- Sử dụng mạng RNN(X) : Ref.C9.2.5
7.5. Cách đánh giá
Để đánh giá mô hình phân loại nhị phân với mục đích detection, người ta thường
dùng confusion matrix.
Từ confusion matrix có 3 metric có thể tính ra được:
- Accuracy: phần trăm nhãn mà mô hình dự đoán đúng. Metric này thường
không được sử dụng cho bài toán detection. Do nó không phản ánh đúng hiệu
năng của mô hình khi số lượng thống kê trên mỗi loại nhãn không cân bằng.
Trong khi bài toán detection, thường sẽ có sự chệnh lệch nhiều về số lượng
giữa các nhãn.
- Precision: phần trăm dự đoán chính xác của mô hình trên số lượng nhãn quan
tâm mà mô hình tìm ra được
- Recall: phần trăm dự đoán chính xác của mô hình trên số lượng nhãn quan
tâm thực có.
- F-measure: Kết hợp cả recall và precision (theo trọng số). Nếu 𝛽 > 1, đề cao
recall, nếu 𝛽 < 1, đề cao precision.

(β2 + 1)𝑃𝑅
𝐹β =
β2 𝑃 + 𝑅
Dựa vào HarmonicMean:
𝑛
𝐻𝑎𝑟𝑚𝑜𝑛𝑖𝑐𝑀𝑒𝑎𝑛 (𝑎1, 𝑎2 , 𝑎3 , … , 𝑎𝑛 ) =
1 1 1 1
+ + + ⋯+
𝑎1 𝑎2 𝑎3 𝑎𝑛

14
NLP Notes – Kikai Tech

(*) HarmonicMean của hai giá trị thường gần với giá trị min của chúng hơn
là mean thông thường
Ngoài phân loại nhị phân, confusion matrix có thể sử dụng cho bài toán phân loại
nhiều nhãn. Từ confusion matrix, để tính ra giá trị các metric là recall, precision,
ta có thể áp dụng các cách thức sau:
- Macroaveraging: tính các metric cho mỗi nhãn, và sau đó lấy trung bình (tính
trung bình performance của các hệ thống phân loại nhị phân – nhãn 𝑐𝑖 và nhãn
𝑛𝑜𝑡𝑐𝑖
- Microaveraging: chỉ có 1 confusion matrix duy nhất, từ confusion này tính ra
các metric:

Chiến thuật để đánh giá mô hình phân loại: cross-validation.


Cách thực hiện: Chọn ngẫu nhiên các train & test set -> evaluate chúng -> lấy giá
trị trung bình.
(*) Vấn đề của cách thức này là sẽ không có tập devset. Toàn bộ dữ liệu có sẵn
sẽ được sử dụng vào để test -> nếu quan sát tập dữ liệu để đưa ra điều chỉnh cho
mô hình thì rất có thể nó sẽ bị hiện tượng train on test set. Tuy nhiên việc quan
sát dữ liệu để lựa chọn kiểu mô hình/ tham số là cần thiết.
Giải pháp: chia thành tập train & test. Và thực hiện cross-validation trên tập train
7.6. Ứng dụng
7.7. Ghi chú
7.8. Tham khảo

8. Vector Semantics / Word Embedding


15
NLP Notes – Kikai Tech

8.1. Mô tả
Dựa vào một giả thuyết nói về mối quan hệ giữa ngữ nghĩa của từ và ngữ cảnh
mà từ đó xuất hiện: (distributional hypothesis)
“Words that occur in similar contexts tend to have similar meanings.”
Nên một lớp bài toán được đặt ra với mục đích để tìm ra biểu diễn số học đặc
trưng cho mỗi từ bằng cách xem xét ngữ cảnh mà từ đó thường xuất hiện. Lớp
bài toán đó được gọi là representation learning. Các phương pháp giải quyết
bài toán này và tạo ra biểu diễn cho từ ở dạng vector được gọi là vector semantic.
Có thể chia vector semantic dựa vào tính tùy biến của embedding ứng với một từ
ở những ngữ cảnh khác nhau: static embedding (vd: word2vec) hoặc dynamic
embedding (vd: BERT).
Còn một cách chia khác là dựa vào đặc điểm của vector tạo ra. Chia các cách biểu
diễn thành dạng sparse (TF-IDF, Bag-of-word,…) hay dense (lsa, word2vec,…).
Biểu diễn dạng dense vector của một từ thường được gọi là embedding.
8.2. Bài toán con / thành phần
8.3. Trở ngại & Vấn đề còn tồn tại
- Vấn đề bias trong embedding (X)
- Vấn đề với các cặp từ trái nghĩa (antonyms):
Thường có xu hướng tạo các embedding tương tự nhau cho các cặp từ trái
ngược nhau (do những từ đối lập nhau thường xuất hiện ở context giống
nhau).
→ Giải pháp: Có hai hướng chính để mô hình phân biệt được antonyms
o Cách 1: Huấn luyện lại: sử dụng hàm loss khác (static
embedding),… (Ref.C18.6)
o Cách 2: retrofitting / counterfitting: Học thêm một phép map (dựa
vào thesaurus) để dịch các embedding của từ đồng nghĩa lại gần
nhau, còn embedding của từ trái nghĩa ra xa nhau (Ref.C18.6)
8.4. Kỹ thuật và phương pháp giải
a. TF-IDF (X)
b. PPMI (X)
c. LSA(X)

16
NLP Notes – Kikai Tech

d. Neural Network Embedding (X)


e. SGNS (X)
f. fastText (X)
g. GloVe (X)
8.5. Cách đánh giá
Cách đánh giá hiệu quả nhất cho vector model đó là áp dụng vector mà nó sinh
ra vào giải quyết một bài toán NLP cụ thể (extrinsic evaluation).
Ngoài ra, để đánh giá trực tiếp, metric thường dùng là dựa vào similarity. Cụ thể
là cho mô hình cho điểm mức độ tương đồng giữa các cặp từ (2 từ đơn lẻ hoặc 2
từ được đặt vào trong một ngữ cảnh) sau đó so sánh kết quả với điểm cho bởi con
người. (+) Có một số bộ dữ liệu được dùng để đánh giá vector model theo cách
này.
Metric khác là áp dụng nó vào giải quyết analogy task. Mô hình sẽ giải quyết
bài toán: “Nếu a tương ứng với b thì a* tương ứng với ?”. (+) Một số bộ dữ liệu
cho cách này.
Vì một số mô hình embedding có ẩn chứa tính ngẫu nhiên khi tạo embedding (vd:
word2vec có sử dụng negative sampling), nên để đánh giá hiệu quả thường cần
sử dụng phương pháp bootstrap sampling và lấy giá trị trung bình làm kết quả
đánh giá.
Ref.C6.12
8.6. Minh họa embedding (X)
8.7. Ghi chú
8.8. Tham khảo

9. Sequence Labeling
9.1. Mô tả
Sequence Labeling là bài toán thực hiện gán nhãn cho mỗi phần tử trong chuỗi
đầu.
Có hai dạng bài điển hình là Named Entity Recognition (NER) và Part-of-
speech tagging (POS tagging)
a. POS

17
NLP Notes – Kikai Tech

Gán nhãn từ loại cho mỗi từ trong xâu đầu vào. (_) Mô hình baseline giải
quyết bài toán này là: để gán nhãn cho một từ, lấy nhãn được gán cho từ đó
nhiều lần nhất trong tập huấn luyện.
b. NER
Bài toán này phức tạp hơn. Nó bao gồm task nhỏ sau: nhận diện (tìm span) và
phân loại các thực thể trong xâu đầu vào. NER được ứng dụng trong nhiều bài
toán to khác như: SA, link text to Wiki, trích rút sự kiện và các bên liên quan.
Cách thường được áp dụng là đưa về bài toán BIO tagging, IO tagging (có
nhiều kiểu khác nữa) sau đó áp dụng các mô hình cho Sequence Labeling để
giải quyết.
9.2. Bài toán con / thành phần
a. POS
b. NER
9.3. Trở ngại & Vấn đề còn tồn tại
Với bài toán POS tagging, những ngôn ngữ có hình thái từ đa dạng sẽ khó giải
quyết hơn. Ở những ngôn ngữ này (vd: Turkish), một từ nó có thể chứa nhiều
thông tin(vd: giới tính,…). Do đó, POS cần thiết phải xác định những loại thông
tin mà từ cung cấp, khi đó, nhãn tạo ra sẽ ở dạng chuỗi:

➔ Cách giải quyết: cần chú trọng việc phân tích hình thái từ (morphological
analysis)
9.4. Kỹ thuật và phương pháp giải
Có ba lớp mô hình được sử dụng để giải quyết bài toán này:
- Mô hình được xây dựng bởi tập luật (rule-based model):
o Sử dụng Regex, từ điển, semantic constrants,…
(>) Trong thực tế, các mô hình NER ở trong các ứng dụng thương mại thường
là mô hình kết hợp cả luật và mô hình xác suất.
18
NLP Notes – Kikai Tech

Có thể tận dụng tập luật để tạo dữ liệu huấn luyện cho mô hình học có giám
sát cho bài toán NER. Các bước thực hiện như sau:
1. Sử dụng các luật cho độ chính xác cao để trích ra các entity
2. Tìm ra các xâu con trong dữ liệu giống với các entity được tìm ra bởi
luật
3. Có thể sử dụng một danh sách application-specific name để tìm ra các
entity thuộc domain quan tâm
4. Sử dụng mô hình học có giám sát để học dữ liệu được gán nhãn từ ba
bước trên.
Cách khác là sử dụng nhiều luật để trích ra nhiều càng nhiều ent / gán pos rồi
sau đó sử dụng các ràng buộc để chỉnh sửa lại kết quả tạo ra.
- Lớp mô hình xác suất:
o Generative model: Hidden Markov Model (X)
o Discriminative model: Conditional Random Field (X)
- Lớp mô hình hiện đại (mạng nơ-ron):
o Recurrent Neural Network: BiLSTM(X)
o Transformer (X)
9.5. Cách đánh giá
POS thường được đánh giá bởi accuracy
NER được đánh giá bởi recall, precision, F1 measure (coi một entity là một đơn
vị khi tính metric thay vì là nhãn của một từ). Tuy nhiên, vì mục đích huấn luyện
của mô hình là gán nhãn đúng cho 1 từ chứ không phải là tìm ra chính xác entity,
nên metric này sẽ không bao quát được hiệu năng của mô hình (?)
Ref.C8.6
9.6. Ghi chú
9.7. Tham khảo

10. Machine Translation


10.1. Mô tả
Machine Translation là quá trình sử dụng máy tính để dịch từ ngôn ngữ này sang
ngôn ngữ khác. Đây là một bài thuộc lớp bài toán Sequence to Sequence.

19
NLP Notes – Kikai Tech

- Chú ý dạng này khác với Sequence Labeling ở chỗ:


o Sequence Labeling: len(input) = len(output) do cần gán nhãn cho
mỗi thành phần trong input.
o Seq2Seq: sinh ra một chuỗi output từ input, không nhất thiết phải
map 1 thành phần ở input với 1 thành phần ở output.
Ứng dụng chủ yếu của nó là giúp tiếp cận thông tin dễ dàng hơn (information
access).
Ngoài ra, MT còn giúp hỗ trợ người dịch. Cụ thể, bản dịch của hệ thống MT sau
đó có thể được chỉnh sửa bởi con người để tạo ra bản chất lượng hơn (computer-
aided translation).
Ứng dụng gần đây của MT là incremental translation (hỗ trợ dịch theo kiểu on-
the-fly, cho đầu vào đến đâu thì dịch luôn đến đó không phải đợi đến nhập hết
đầu vào).
MT cũng được sử dụng kết hợp với hệ thông ORC để dịch text có trong ảnh
(menu hoặc biển số).
10.2. Bài toán con / thành phần
a. Tokenization
Có thể sử dụng các thuật toán tokenization như BPE (X) hay wordpiece (X)
Ref.C11.7.1
(*) (?) Thường hệ thống MT có một tập từ vựng cố định chung cho cả source và
target language. Mục đích là để những tên riêng được giữ nguyên khi dịch.
Ref.C11.7.1
b. Sentence alignment
Tập dữ liệu huấn luyện cho MT thường ở dạng các cặp câu (sentence
alignments). Cần phải có cách giải quyết để tạo ra các cặp câu như vậy ở số
lượng lớn.
Bài toán: Cho 2 tài liệu là bản dịch của nhau ở 2 ngôn ngữ, nhiệm vụ cần tạo ra
các sentence alignments từ cặp tài liệu đó.
Giải quyết bằng cách:
- Cần có hàm cost để tính độ không liên quan giữa 2 span trong source và
target document
20
NLP Notes – Kikai Tech

(1 − 𝑐𝑜𝑠(𝑥, 𝑦))𝑛𝑆𝑒𝑛𝑡𝑠 (𝑥 )𝑛𝑆𝑒𝑛𝑡𝑠 (𝑦)


𝑐(𝑥, 𝑦) =
∑𝑆𝑠=1 1 − 𝑐𝑜𝑠(𝑥, 𝑦𝑠 ) + ∑𝑆𝑠=1 1 − 𝑐𝑜𝑠(𝑥𝑠 , 𝑦)
Trong đó:
▪ 𝑛𝑆𝑒𝑛𝑡𝑠 (𝑥 ): số lượng sentence trong span x
Nhận xét:
▪ Thiên về các span có ít câu
▪ (*): các hàm cost hay score thường có mẫu để normalize
▪ Hàm này có tính đối xứng nên normalize factor của nó hơi
khác(?)
- Cần có thuật toán để tìm ra tất cả các sentence alignment qua score tính
được
o Sử dụng thuật toán quy hoạch động (dựa vào thuật Minimum Edit
Distance)
𝑑 [𝑖][𝑗] = 𝑚𝑖𝑛𝑚,𝑛 + 𝑐(𝑚 → 𝑖, 𝑛 → 𝑗)
(?) Không biết có chính xác không
Sau khi tạo các sentence alignment bằng thuật toán trên, có thể áp dụng rule để
loại bỏ các cặp câu nhiễu (cặp câu quá ngắn/dài, quá giống nhau, có các cụm đặc
biệt như URL, …) hoặc thêm bước tính multilingual embedding cosin score và
loại bỏ những cặp cho score thấp.
c. Backtranslation
Phương pháp này giúp tận dụng lượng lớn dữ liệu của target language để huấn
luyện hệ thống MT. (Khá hiệu quả)
Cách thức thực hiện:
- Tạo một hệ thống target-to-source MT trung gian, huấn luyện dựa trên
parallel corpus
- Sử dụng hệ thống MT ở trên để dịch dữ liệu viết ở target language về
source language (tạo thêm parallel data)
- Sử dụng parallel data sinh ra ở trên để huấn luyện thêm cho hệ thống
source-to-target MT (hệ thống chính cần huấn luyện)
Các tham số cần xác định khi áp dụng backtranslation gồm:

21
NLP Notes – Kikai Tech

- Cách thức chọn output sinh ra từ target-to-source MT: greedy hay beam
search hay sampling theo phân phối xác suất sinh ra từ model (tên gọi cho
cách này là Monte Carlo search)
- Tỷ lệ giữa dữ liệu tạo bởi backtranslation và parallel corpus sẵn có. Có thể
làm lớn parallel corpus sẵn có để có tỷ lệ tương xứng bằng cách nhân bản
nó lên (?)
d. Beam Search (X)
10.3. Trở ngại & Vấn đề còn tồn tại
Machine Translation là task cần map chuỗi từ từ ngôn ngữ này sang ngôn ngữ
khác. Do đó, một số điểm khác nhau giữa source language và target language
(translation divergence) có thể gây khó khăn. Hệ thống MT muốn hiệu quả thì
cần phải cân nhắc chúng để giải quyết. Những điểm khác nhau xét ở đây là những
khác nhau mang tính hệ thống (systematic difference).
- Word Order Typology (X): Ref.C11.1.1
- Lexical Divergence (X): Ref.C11.1.2
- Morphological Typology (X): Ref.C11.1.3
- Referential Density (X): Ref.C11.1.4
MT có thể làm cường điệu bias ở trong tập dữ liệu huấn luyện.
Các hệ thống MT, và các bộ dữ liệu cho MT được tạo ra thường chỉ tập trung vào
một số ngôn ngữ phổ biến như Tiếng Anh.
10.4. Kỹ thuật và phương pháp giải
(>) Thuật toán thường dùng cho MT đó là sử dụng encoder-decoder network.
- Encoder-decoder network với RNN (X)
- Encoder-decoder network với Attention (X)
- Encoder-decoder network với Transformer (X)
10.5. Cách đánh giá
Khi đánh giá, cần phải cân nhắc tới độ đủ thông tin (adequate) và tính trôi chảy
(fluency) của output.
Có 2 cách đánh giá: dùng con người & đánh giá tự động qua metric.
Các metric thường được sử dụng để đánh giá hệ thống MT là: BLEU, NIST, TER,
Precision and Recall, METEOR.
22
NLP Notes – Kikai Tech

Thường, ta có thể chia việc đánh giá tự động thành hai lớp phương pháp chính:
- Các metric tập trung so sánh độ giống nhau giữa bản dịch của máy và của
người (vd: BLEU)
- Các metric giúp cải thiện hạn chế của BLEU đó là bỏ qua khả năng
paraphrase của hệ thống (vd: embedding-based methods, METEOR,…)
a. Sử dụng người đánh giá
- Cho điểm bản dịch dựa trên hai tiêu chí fluency và adequate.
(*) Nếu sử dụng thang điểm chi tiết, thì có thể normalize kết quả đánh giá (mean
= 0 & variance = 1). (?) Có phải chuẩn hóa để dễ visualize không?
- Xếp hạng bản dịch: cho họ chọn bản dịch mà họ thích hơn

b. Sử dụng metric đánh giá


Ý tưởng của BLEU là: một bản dịch máy tốt thường sẽ chứa những cụm từ/ từ
mà ở trong bản dịch của người cũng có.
Giả thiết rằng: có bản dịch của người 𝑟𝑒𝑓 và bản dịch của máy 𝑠𝑦𝑠. Độ chính
xác của 𝑠𝑦𝑠 so với 𝑟𝑒𝑓 được tính như sau:
1
4 4
𝑏𝑙𝑒𝑢 = 𝑏𝑝 × (∏ 𝑝𝑟𝑒𝑐𝑛 )
𝑛=1

∑𝐶∈{𝐶𝑎𝑛𝑑𝑖𝑑𝑎𝑡𝑒} ∑𝑛−𝑔𝑟𝑎𝑚∈𝐶 𝐶𝑜𝑢𝑛𝑡𝑚𝑎𝑡𝑐ℎ_𝑐𝑙𝑖𝑝𝑝𝑒𝑑 (𝑛 − 𝑔𝑟𝑎𝑚)


𝑝𝑟𝑒𝑐𝑛 =
∑𝐶 ′ ∈𝐶𝑎𝑛𝑑𝑖𝑑𝑎𝑡𝑒 ∑𝑛−𝑔𝑟𝑎𝑚′∈𝐶′ 𝐶𝑜𝑢𝑛𝑡 (𝑛 − 𝑔𝑟𝑎𝑚)

𝑟𝑒𝑓_𝑙𝑒𝑛
𝑏𝑝 = 𝑚𝑖𝑛 (1, 𝑒𝑥𝑝 (1 − ))
𝑠𝑦𝑠_𝑙𝑒𝑛

BLEU là score tính cho toàn bộ corpus (tập các candidate).

𝐵𝐿𝐸𝑈 = ∑ 𝑏𝑙𝑒𝑢𝐶𝑎𝑛𝑑𝑖𝑎𝑡𝑒
𝐶𝑎𝑛𝑑𝑖𝑑𝑎𝑡𝑒∈𝐶𝑜𝑟𝑝𝑢𝑠

Trong đó:
𝐶𝑜𝑢𝑛𝑡𝑚𝑎𝑡𝑐ℎ_𝑐𝑙𝑖𝑝𝑝𝑒𝑑 : số lần xuất hiện trong 𝑟𝑒𝑓 của n_gram. Với một
n_gram chỉ có duy nhất một giá trị, và chỉ cộng vào tổng một lần.

23
NLP Notes – Kikai Tech

𝐶𝑜𝑢𝑛𝑡: số lần xuất hiện của n_gram trong bản dịch 𝑠𝑦𝑠
𝐶: là một câu trong candidate.
(*) Chú ý:
- BLEU hoạt động tốt khi với mỗi bản dịch 𝑠𝑦𝑠 có nhiều bản 𝑟𝑒𝑓 tương ứng
- Thư viện cho sử dụng metric này là: SACREBLEU
- Để đánh giá độ tự tin (confidence interval) của một giá trị BLEU score,
người ta thường sử dụng phương pháp bootstrap test (Ref.C4.9)
- Phù hợp cho đo độ cải thiện một hệ thống thay vì so sánh giữa hai hệ thống
khác nhau. Khi muốn dùng BLEU để so sánh 2 hệ thống, cần sử dụng các
phương pháp kiểm định giả thuyết như: pair bootstrap test hoặc similar
randomization test Ref.C11.8.2
- BLEU chưa xét đến độ fluency và discourse coherence (những thuộc tính
liên quan trật tự các thành phần trong bản dịch)
- BLEU chưa xét đến khả năng paraphrase của hệ thống dịch

c. Sử dụng các phương pháp dựa vào embedding


- Có dữ liệu huấn luyện đã được con người gán nhãn ở dạng (𝑥, 𝑥̃, 𝑟):
o Dùng mạng neuron học nhãn 𝑟 từ embedding của 𝑥, 𝑥̃
Ví dụ: BLEURT
- Nếu không có dữ liệu dạng trên, thì sử dụng độ tương đồng giữa 𝑥, 𝑥̃ để
đánh giá
Ví dụ: BERTSCORE tính precision và recall giữa 2 bản 𝑥, 𝑥̃ như sau:
1
𝑅𝐵𝐸𝑅𝑇 = ∑ 𝑚𝑎𝑥𝑥̃∈𝑥 𝑥 . 𝑥̃𝑗
𝑗 ̃ 𝑖
|𝑥|
𝑥𝑖 ∈𝑥
1
𝑃𝐵𝐸𝑅𝑇 = ∑ 𝑚𝑎𝑥𝑥𝑖∈𝑥 𝑥𝑖 . 𝑥̃𝑗
|𝑥̃|
̃∈𝑥
𝑥 𝑗 ̃
Có thể thay dot product bằng cosin.
Ref.C11.8.3

10.6. Ghi chú


10.7. Tham khảo

24
NLP Notes – Kikai Tech

11. Constituency Parsing


11.1. Mô tả
Syntactic Parsing là quá trình phân tích cấu trúc cú pháp của một câu.
Có hai dạng parsing: constituency parsing và dependency parsing
Constituency parsing là quá trình phân tích cú pháp của một câu dựa vào
context-free grammar (grammar được xây dựng dựa trên việc xem xét cấu tạo
của các thành phần trong một câu Ref.C12.2).
Ứng dụng của syntactic parsing bao gồm:
- Grammar checking
- Sentiment analysis (bước trung gian)
- Question answering: xác định intent / phục vụ semantic parsing
11.2. Cơ sở ngôn ngữ học
Constituency grammar (X)
11.3. Trở ngại & Vấn đề còn tồn tại
Khó khăn lớn nhất cho các hệ thống phân tích cú pháp đến từ sự mập mờ trong
cấu trúc cú pháp của các ngôn ngữ (structural ambiguity)
Structural ambiguity: một câu có thể được phân tích thành các cấu trúc cú pháp
khác nhau. (có thể gán nhiều parse tree cho một câu).
Có hai loại structural ambiguity:
- attachment ambiguity: một thành phần có thể gắn vào parse tree ở nhiều
vị trí (vị trí nào cũng hợp lý)
- coordination ambiguity: sự mập mờ trong việc hiểu các cấu trúc song
hành: (vd: 2 chai nước, 1 nước muối, 1 nước độc)
➔ Thuật toán CKY (kết hợp với neural network) đảm bảo giải quyết được các
vấn đề mập mờ này
Ref.C.13.1
11.4. Kỹ thuật và phương pháp giải

25
NLP Notes – Kikai Tech

- Thuật toán Cocke-Kasami-Younger (CKY) (X): giúp tìm ra tất cả các


cách parse có thể có cho một câu
- Neural span-based parser (X): huấn luyện mô hình phân loại để cho điểm
các cách các parse từ đó khi kết hợp với CKY, có thể tìm ra cách parse tốt
nhất
- Các phương pháp parsing một phần (partial parsing) (X)
11.5. Cách đánh giá
(>) Cách đánh giá tiêu chuẩn cho các parser đó là PARSEVAL metrics.
Giả thiết có: cấu trúc phân tích được sinh ra từ parser là 𝐶ℎ và cấu phân tích được
gán bởi người 𝐶𝑟 .
Một thành phần trong 𝐶ℎ được coi là gán nhãn đúng nếu nó cũng có trong 𝐶𝑟 với
giới hạn giống y hệt.
Trong PARSEVAL có các metric sau:
- Recall:

𝑠ố 𝑡ℎà𝑛ℎ 𝑝ℎầ𝑛 đượ𝑐 𝑔á𝑛 𝑛ℎã𝑛 đú𝑛𝑔 𝑡𝑟𝑜𝑛𝑔 𝐶ℎ


𝑅=
𝑠ố 𝑡ℎà𝑛ℎ 𝑝ℎầ𝑛 đượ𝑐 𝑔á𝑛 𝑛ℎã𝑛 đú𝑛𝑔𝑡𝑟𝑜𝑛𝑔𝐶𝑟

- Precision:
𝑠ố 𝑡ℎà𝑛ℎ 𝑝ℎầ𝑛 đượ𝑐 𝑔á𝑛 𝑛ℎã𝑛 đú𝑛𝑔 𝑡𝑟𝑜𝑛𝑔 𝐶ℎ
𝑃=
𝑠ố 𝑡ℎà𝑛ℎ 𝑝ℎầ𝑛 𝑡𝑟𝑜𝑛𝑔𝐶ℎ

- Cross-brackets: số thành phần trong 𝐶𝑟 có dạng ((A B) C) nhưng trong 𝐶ℎ


có dạng (A (B C)) (?)
Bộ metrics này được cài đặt trong thư viện evalb.
(*)Để so sánh giữa hai parser sử dụng ngữ pháp khác nhau, cần sử dụng thuật
toán để loại bỏ được các điểm khác nhau nhiều nhất có thể rồi tính điểm
(Ref.P270)
11.6. Ghi chú
11.7. Tham khảo

26
NLP Notes – Kikai Tech

12. CCG Parsing


12.1. Mô tả
Đây là quá trình phân tích cú pháp của câu dựa vào Combinatory Categorical
Grammar (CCG)
12.2. Cơ sở ngôn ngữ học
Combinatory Categorical Grammar (X)
12.3. Trở ngại & Vấn đề còn tồn tại
Vấn đề của CCG parsing đến từ số lượng lớn các lexical category được định
nghĩa cho từng từ.
Trong grammar, một từ có thể nhận nhiều chức năng khác nhau, do đó, nó sẽ có
nhiều lexical category tương ứng. Khi parse một câu, mỗi cách chọn lexical
category cho một từ sẽ ứng với một cách parse khác hẳn.
12.4. Bài toán con / Thành phần
Để giải quyết bài toán CCG Parsing, cần phải thực hiện hai công việc sau:
- Với mỗi từ trong câu đầu vào, cần phải xác định lexical category phù hợp
cho nó
➔ Cần một classifier (supertags)
- Thực hiện phân tích (tìm cách parse phù hợp nhất cho câu)
➔ Sử dụng thuật toán A* hoặc sử dụng mô hình phân loại adaptive
supertagging
12.5. Kỹ thuật và phương pháp giải
a. Suppertagging (X) Ref.C13.6.3
b. A* cho CCG Parsing (X) Ref.C13.6.4
c. Adaptive supertagging (X)
12.6. Cách đánh giá
12.7. Ghi chú
12.8. Tham khảo

27
NLP Notes – Kikai Tech

13. Dependency Parsing


13.1. Mô tả
Đây là quá trình phân tích cú pháp của câu dựa vào Dependency Grammar.
Trong dependency grammar, cấu trúc cú pháp của một câu được miêu tả dưới
dạng tập các mối quan hệ phụ thuộc giữa các cặp từ.
Mục đích của dependency grammar:
- Thường dùng cho các rich-morphological language
- Nó không quan tâm đến thứ tự của từ trong câu nên phù hợp với các ngôn ngữ
có cấu trúc ngữ pháp lỏng lẻo (free word order)
- Sử dụng cho các bài toán mà cần quan tâm đến mối quan hệ giữa predicate vs
các argument của nó (vd: coreference resolution, question answering và
information extraction)
Có thể chuyển thông tin từ Constituency tree sang Dependency tree bằng cách sử
dụng các luật tìm từ gốc (head-finding rules)
13.2. Cơ sở ngôn ngữ học
Dependency Grammar (X) Ref.C14.1, Ref.C14.2
13.3. Trở ngại & Vấn đề còn tồn tại
13.4. Bài toán con / Thành phần
13.5. Kỹ thuật và phương pháp giải
a. Transition-based Dependency Parsing (X) Ref.C14.4
b. Graph-Based Dependency Parsing (X) Ref.C14.5
13.6. Cách đánh giá
Sử dụng các metric nhạy cảm nhất có thể
Cách đánh giá thường dùng đó là sử dụng bộ 3 metric: unlabeled attachment score
(UAS), labeled attachment score (LAS) và label score (LS)
- UAS: accuracy không quan tâm đến nhãn của relation. Một relation cho
một từ được coi là đúng nếu nó tìm được đúng head word.

28
NLP Notes – Kikai Tech

- LAS: accuracy quan tâm đến nhãn và head word. Một relation cho một từ
là đúng nếu nó tìm được đúng head word cho từ đó và xác định đúng loại
relation.
- LS: accuracy không quan tâm đến headword. Một relation cho một từ là
đúng nếu nó được xác định đúng loại.
Ngoài ra còn có thể sử dụng các metric thường sử dụng cho bài toán phân loại
nhiều nhãn. (để xác định hiệu quả phân loại relation của parser)
13.7. Ghi chú
13.8. Tham khảo

14. Semantic Parsing


14.1. Mô tả
Semantic Parsing là quá trình tạo và gán biểu diễn ngữ nghĩa (meaning
representation) cho một chuỗi từ.
Meaning representation là một cấu trúc tiêu chuẩn giúp biểu diễn ý nghĩa của một
chuỗi từ.
14.2. Cơ sở ngôn ngữ học
Cần nắm được các meaning representation language dùng để xây dựng meaning
representation. Chúng bao gồm:
- First Order Logic (X) Ref.C15.3
- Abstract Meaning Representation (AMR)
- Frame-based representation
- Slot-filler representation (X) Ref.C17
- Description Logics (X) Ref.C15.5
Lý thuyết về model (X) Ref.C15.2
14.3. Trở ngại & Vấn đề còn tồn tại
14.4. Bài toán con / Thành phần
14.5. Kỹ thuật và phương pháp giải
14.6. Cách đánh giá
14.7. Ghi chú
29
NLP Notes – Kikai Tech

14.8. Tham khảo

15. Information Extraction


15.1. Mô tả
Information Extraction là quá trình chuyển thông tin từ dạng phi cấu trúc (ở trong
văn bản) → có cấu trúc để có thể lưu trữ vào cơ sở dữ liệu.
15.2. Bài toán con / Thành phần
Information Extraction bao gồm các bài toán nhỏ sau:
- Relation extraction:
Tìm và phân loại mối quan hệ ngữ nghĩa giữa các entities trong văn bản. Mục
tiêu của relation extraction thường là để xây dựng cơ sở dữ liệu quan hệ
(relational database). Các công cụ tìm kiếm thường sử dụng knowledge graph
(một dạng cơ sở dữ liệu quan hệ) để lưu trữ thông tin.
Ref.Web : Link đọc thêm: https://www.searchenginejournal.com/how-
google-knowledge-graph-works/400485/#close (Cách thức google sử dụng
knowledge graph cho search engine)
- Event Extraction: trích rút sự kiện
- Event coreference: tìm các đề cập trong văn bản nói cùng về một sự kiện
- Temporal expression: Đưa các diễn đạt chỉ thời gian về dạng ngày tháng
cụ thể (tạo ra timeline)
- Template filling: Tìm các thông tin trong văn bản để điền vào slot trong
template
- Named Entity Recognition
15.3. Cách đánh giá
15.4. Ghi chú
15.5. Tham khảo

16. Relation Extraction


16.1. Mô tả
30
NLP Notes – Kikai Tech

Trích rút các mối quan hệ giữa các thực thể có trong văn bản.
Mối quan hệ cần trích rút có thể là những quan hệ chung chung (generic relation)
như is-a, part-of hay mang tính đặc thù cho một lĩnh vực (domain-specific
relation).
(*) Trích rút các thực thể và mối quan hệ giữa chúng sẽ giúp tạo nên một model
(nhận thức về thế giới), đây là cơ sở để xây dựng nên các biểu diễn ngữ nghĩa.
Các cơ sở dữ liệu tri thức lớn đều được tổ chức dưới dạng quan hệ giữa các thực
thể. (?)

16.2. Dữ liệu
(+) Có nhiều bộ dữ liệu về relation được tạo ra để huấn luyện mô hình / tổ chức
thông tin:
- Y tế có UMLS (Unified Medical Language System)
- Wikipedia: các mối quan hệ được thể hiện trong các infobox của mỗi bài
báo
- DBpedia là một ontology dẫn xuất từ Wikipedia chứa các RDF triple
(resource description framework có dạng entity-relation-entity)
- FreeBase chứa các mối quan hệ : người-quốc tịch
- WordNet : chứa relation thể hiện mối quan hệ phân cấp giữa các từ/concept
(is-a / hypernym)
- TACRED: chứa các relation triples về người / tổ chức … (có phần lớn các
mqh giữa entity được gán nhãn là no relation)
- SemEval 2010 task 8: mối quan hệ giữa các cụm danh từ (nominal)
Ref.C17.1
16.3. Trở ngại & Vấn đề còn tồn tại
16.4. Bài toán con / Thành phần
16.5. Kỹ thuật và phương pháp giải
Có 5 lớp thuật toán chính cho bài toán trích rút quan hệ:
- Handwritten Pattern (X)
- Supervised Learning (X)
31
NLP Notes – Kikai Tech

- Semi-supervised learning (via boostrapping) (X)


- Semi-supervised learning (via distant supervision) (X)
- Unsupervised learning (X)
16.6. Cách đánh giá
Cách đánh giá cho hệ thống phụ thuộc vào phương pháp hệ thống đó sử dụng để
trích rút quan hệ:
- Supervised RE system:
Đánh giá qua dự đoán trên tập test và sử dụng Labeled và Unlabeled Precision,
Recall, F-measure.
(*) Những hệ thống thực hiện xác định đối tượng, rồi gán nhãn thì metric
thường dùng để đánh giá là cả Labeded và Unlabeled (P, R, F1)
- Semi-supervised | Unsupervised RE system:
Không thể sử dụng tập test ((*) vì dữ liệu dùng để huấn luyện nó rất lớn, muốn
chính xác tập test cũng cần phải lớn).
Cách để đánh giá các hệ thống này là xấp xỉ precision bằng cách:
o Chọn ngẫu nhiên tập các relation từ output của hệ thống.
o Sau đó, con người sẽ đánh giá tính hợp lý của từng relation được
chọn
o Tính precision
(Cách đánh giá này không có dữ liệu gán nhãn để đối sánh nên chỉ có thể đánh
giá độ hợp lý của relation được trích rút ra).
Để có thêm thông tin về Recall từ Precision xấp xỉ ở trên, có thể tính precision
ở nhiều mức recall. Cụ thể là sẽ tính xấp xỉ precision cho 1000 relations, rồi
cho 10 000 relations, rồi cho 100 000 relations,… Sau đó, theo dõi precision
curve để có thêm thông tin về recall.
(Giải thích: khi số lượng relations tăng -> recall tăng. Nếu khi recall tăng mà
precision giảm dần, thì tức là hệ thống có recall ~ precision. Còn ngược lại thì
có thể recall < precision.) (?)
(*) Phương pháp đánh giá sử dụng precision curve được sử dụng ở đây, và ở
các hệ thống xếp hạng rank.

32
NLP Notes – Kikai Tech

16.7. Ghi chú


16.8. Tham khảo

17. Time Extraction


17.1. Mô tả
Quá trình trích rút các cụm từ chỉ thời gian (temporal expression extraction) có
trong văn bản, sau đó đưa chúng về định dạng chuẩn để có thể thực hiện suy diễn
được (normalization).
Cần trích rút thông tin về thời gian vì trong một số bài toán như (question
answering, personal assistant application), thông tin này khá quan trọng.
17.2. Cơ sở ngôn ngữ học
Cụm từ chỉ thời gian có thể thuộc các loại sau:
- Chỉ thời điểm tuyệt đốt (absolute temporal expression): có thể trực xác
định một thời điểm trong lịch
- Chỉ thời điểm tương đối (relative temporal expression): để xác định cần
phải neo vào một thời điểm khác.
- Chỉ khoảng thời gian (duration)
Cần nghiên cứu kỹ đặc điểm của các cụm từ chỉ thời gian (mang tính đặc thù cho
từng ngôn ngữ) (X) Eng: Ref.C17.3.1
Cần nghiên cứu một số chuẩn để biểu diễn thời gian khi gán nhãn
(vd: ISO8601) (X) Ref.C17.3.2
17.3. Khó khăn
- Có nhiều cụm ý nghĩa vốn dĩ là để chỉ thời gian nhưng trong ngữ cảnh đang
xét, mục đích sử dụng nó lại không phải để chỉ thời gian (vd: …bộ phim
đang chiếu là Reply 1988…).

- Phần lớn các temporal expression thể hiện thời điểm tương đối. Nó thường
neo với một thời điểm cụ thể khác (thời điểm viết văn bản). Thời điểm cụ
thể đó được gọi là temporal anchor.

33
NLP Notes – Kikai Tech

Các relative temporal expression có nhiều lúc sẽ gây mập mờ về thời điểm
chính xác.
→ Giải quyết bằng temporal athrimetic
17.4. Bài toán con / Thành phần
- Temporal Expression Extraction:
Đây là bài toán xác định span (điểm bắt đầu & kết thúc) gắn với temporal
expression.
- Temporal Normalization:
Đây là quá trình đưa temporal expression về dạng chuẩn.
Dạng chuẩn ở đây là:
o Với thời điểm: một ngày, một thời điểm trong ngày, 1 năm,…
o Với khoảng thời gian: điểm bắt đầu – điểm kết thúc, độ dài,..
17.5. Kỹ thuật và phương pháp giải
- Cho task Temporal Expression Extraction:
o Cách 1: Sử dụng tập luật: thực hiện theo kiểu cascade để có thể tìm
ra các chunks có kích thước khác nhau
o Cách 2: Coi đây là bài toán Sequence Labeling: có thể sử dụng IOB
scheme như cho NER
- Cho task Temporal Normalize:
o Cách giải quyết chính là sử dụng luật:
Sử dụng pattern kết hợp với compositional rule-to-rule approach
trong semantic analysis.
Ý tưởng của phương pháp này là: dạng chuẩn của một cụm từ sẽ được
suy diễn ra từ ý nghĩa của các thành phần tạo nên nó (để suy diễn sử
dụng temporal arithmetic). (X)
17.6. Cách đánh giá
- Cho task Temporal Expression Extraction:
o Sử dụng các metrics như: recall, precision, F-measure

34
NLP Notes – Kikai Tech

(*)Với những task như (NER hay Temporal…), những task mà mô hình
có thể sẽ nhớ những cụm từ đặc trưng, thì khi đánh giá cần để ý đến những
trường hợp False Positive.
17.7. Ghi chú
17.8. Tham khảo

18. Event Extraction


18.1. Mô tả
Xác định các event mention trong văn bản.
Event mention là cụm từ chỉ một sự việc diễn ra trong một khoảng thời gian hoặc
một thời điểm cụ thể.
18.2. Cơ sở ngôn ngữ học
a. Đặc điểm của các event mention
Một event mention thường liên quan đến động từ. Ngoài ra, nó cũng có thể được
xác định qua cụm danh từ. (nhưng không phải động từ nào, cụm danh từ nào
cũng đề cập tới một sự kiện).
(X) Cần tìm hiểu thêm Ref.C17.4
18.3. Khó khăn
18.4. Bài toán con / Thành phần
Event Extraction có thể được phát biểu theo nhiều cách khác nhau, tùy theo mục
đích.
Ví dụ, theo TempEval shared task, Event Extraction yêu cầu:
- Xác định event mention
→ Sequence Labeling
- Phân loại event: thuộc một trong các loại (action, state, reporting,
perception)
- Xác định aspect của event
- Xác định tense của event
- Xác định modality của event

35
NLP Notes – Kikai Tech

→ multi-class classifier
18.5. Kỹ thuật và phương pháp giải
18.6. Cách đánh giá
18.7. Ghi chú
18.8. Tham khảo

19. Timeline Extraction


19.1. Mô tả
Trích rút một chuỗi các sự kiện và thời gian mà nó diễn ra sau đó sắp xếp chúng
theo một trình tự nào đó.
Việc sắp xếp các event vào một timeline được coi là một task khó. (?)
Thường thay vì trích rút một timeline hoàn chỉnh, để đơn giản hóa bài toán, người
ta chỉ tập trung vào xác định thứ tự xảy ra của 2 sự kiện.
19.2. Cơ sở
Mối quan hệ thời gian giữa hai sự kiện bao gồm những loại sau: (được định nghĩa
theo Allen relations)

19.3. Bài toán con / Thành phần

36
NLP Notes – Kikai Tech

- Event Extraction
- Temporal Expression Extraction
- Sắp xếp các event vào một timeline (đơn giản bằng xác định mối quan hệ
giữa 2 sự kiện)
→ Sử dụng multi-class classifier
19.4. Kỹ thuật và phương pháp giải
19.5. Cách đánh giá
19.6. Ghi chú
19.7. Tham khảo

20. Template Filling


20.1. Mô tả
Nhiều khi một đoạn văn bản có thể coi là một kịch bản (script) vì nó có thể chứa
thông tin về một sự kiện (event): bao gồm các sự kiện con, các bên liên quan, vai
trò của từng bên và mối quan hệ giữa chúng.
Để phục vụ suy diễn hiệu quả, thông tin trong script thường được biểu diễn đơn
giản dưới dạng một template.
Một template sẽ bao gồm các trường nội dung (slot). Giá trị cụ thể của từng slot
được gọi là slot-filler.
Template filling là quá trình tìm các văn bản có đặc điểm của một script; sau đó,
trích rút ra các slot và slot-filler từ văn bản đó để tạo thành template.
Ví dụ một template:

20.2. Cơ sở
20.3. Kỹ thuật và phương pháp giải

37
NLP Notes – Kikai Tech

Tập dữ liệu huấn luyện: các văn bản với các span text được chỉ rõ là filler của
slot nào trong template.
a. Phương pháp dùng mô hình Machine Learning
Bao gồm hai task nhỏ sau:
- Template recognition: xác định xem một câu có chứa thông tin về template
không
→ Có thể coi như là một bài Sentence Classification
- Role-filler extraction: xác định slot trong template mà câu đó chứa thông
tin
→ Sử dụng một binary classifier riêng cho mỗi slot, chạy qua các cụm danh
từ.
(?) khi nào nên dùng một tập các binary classifier thay vì 1 multi-class
classifier?
b. Phương pháp dùng luật (finite-state template-filling system)
Dùng luật theo kiểu cascade.

20.4. Cách đánh giá


20.5. Ghi chú
20.6. Tham khảo

21. Word Sense Disambiguation


21.1. Mô tả
38
NLP Notes – Kikai Tech

Word Sense Disambiguation (WSD) là quá trình xác định chính xác ý nghĩa của
một từ trong một ngữ cảnh. (Vì một từ thường có nhiều nghĩa khác nhau).
- Đầu vào của WSD: một từ & ngữ cảnh mà nó xuất hiện & tập hợp các
sense có thể có của từ đó
- Đầu ra: một sense của từ đó (phù hợp với ngữ cảnh đã cho)
(?) Bài toán này có nhiều ứng dụng trong thực tế:
- Question answering: xác định intent của câu hỏi
- Machine Translation
- Giúp đánh giá các Natural Language Understanding model
21.2. Cơ sở
Cần tìm hiểu về những vấn đề sau:
- Word Senses (X) Ref.C18.1
- Mối quan hệ giữa các sense (X) Ref.C18.2
- WordNet (X) Ref.C18.3
21.3. Kỹ thuật và phương pháp giải
a. Task setup:
Do đầu vào của WSD cần có trước một tập sense cho từ cần xác định sense. Như
vậy cần xác định một nguồn để lấy tập các sense cho từng từ (sense tag
inventory).
Việc chọn nguồn phụ thuộc vào từng task mà WSD phục vụ, và độ chi tiết của
sense (fine/coarse-grain).
b. Dữ liệu huấn luyện:
Tập dữ liệu huấn luyện cho các mô hình supervised có dạng là tập các câu, trong
đó, các từ thuộc open-class được xác định rõ một sense (sense này lấy từ 1
thesaurus, thường là WordNet).
(+) Ref.C18.4.1
Ngoài ra có thể tận dụng các anchor link trong Wikipedia để làm dữ liệu huấn
luyện (với mỗi trang trong Wiki xác định một sense).
Cần quan tâm đến cách thức map các concept của Wikipedia với sense tag
inventory khác (vd WordNet).
39
NLP Notes – Kikai Tech

Ref.C18.5.4
c. Thuật toán supervised dùng để xác định sense:
- (_) Most Frequent Sense baseline: với mỗi từ, chọn sense mà được sử
dụng nhiều nhất trong tập dữ liệu huấn luyện (khá mạnh).
- Sử dụng heuristic dựa trên ý tưởng one sense per discourse (một từ xuất
hiện nhiều lần trong một câu / discourse thì sense của các lần xuất hiện đó
thường giống nhau) (không mạnh cái trên (?)).
- (>) Thuật toán state-of-the-art: 1-nearest-neighbor kết hợp với
contextual word embedding.
Đo độ tương đồng giữa target word embedding và sense embedding (lấy
từ dữ liệu huấn luyện) (Ref.C18.4.2).
Nếu trường hợp không xác định được sense embedding do từ đó không
xuất hiện trong dữ liệu huấn luyện, sử dụng Most Frequent Sense baseline.
Ngoài ra có thể sử dụng tổ chức kiểu phân cấp (sense ⊂ synset ⊂
hypernym-specific synset ⊂ supersense-specific synset) trong WordNet để
học sense embedding. Tìm theo kiểu bottom up: nếu thành phần ở cấp thấp
không xuất hiện ở trong tập huấn luyện thì tìm lên cấp cao hơn chứa nó.
Nếu cấp cao hơn có thành phần con xuất hiện trong tập huấn luyện thì lấy
sense embedding cần tính là embedding của cấp này luôn. Embedding của
một cấp được tính bằng trung bình các embedding của các thành phần con
xuất hiện trong tập huấn luyện.
Ref.C18.4.2
- Feature-based WSD: đơn giản và có thể đạt hiệu quả ~ contextual language
model.
Kết hợp đa dạng các loại feature kể cả embedding, sau đó cho vào SVM
(?) xác định tagset như thế nào?
d. Thuật toán knowledge-based (không cần dữ liệu gán nhãn):
Nguồn tri thức cho thuật toán đến từ thesaurus (thường là WordNet)
- (_) Lesk algorithm: chọn sense có độ tương đồng giữa định nghĩa của
sense (gloss) và context của target word là lớn nhất. Độ tương đồng ở đây
đơn giản tính bằng số từ giống nhau (Simplified Lesk) hoặc giữa các
embedding hoặc tfidf,…
c. Thuật toán unsupervised (Word Sense Induction):

40
NLP Notes – Kikai Tech

Sử dụng các thuật toán phân cụm (clustering) để xác định sense. Tập các điểm
chính là các context embedding của các lần xuất hiện của 1 từ. Mỗi cụm hình
thành sau khi phân cụm các điểm đó sẽ được coi là một sense. Có thể sử dụng
tâm mỗi cụm làm sense vector để phục vụ cho việc dự đoán.
21.4. Cách đánh giá
(*) Trong nhiều task, để đánh giá mô hình, cần phải thiết kế một hệ thống sử dụng
mô hình để giải quyết một vấn đề nào đó. Hiệu quả của model sẽ được xem là
hiệu quả của hệ thống và có thể được đánh giá dễ dàng hơn.
Để đánh giá hiệu quả của WSD có thể sử dụng hệ thống phân loại, đầu vào là hai
câu cùng chứa một target word, đầu ra là xác định target word trong 2 câu đó là
cùng 1 sense hay thuộc 2 sense khác nhau. Đây được gọi là word-in-context task
(WIC).
Với phương pháp sử dụng thuật toán unsupervised, thường người ta đánh giá theo
kiểu extrinsic. Còn đánh giá theo kiểu intrinsic thì có nhiều metric được định
nghĩa nhưng chưa có cái nào được làm metric tiêu chuẩn.

21.5. Ghi chú


21.6. Tham khảo

22. Semantic Role Labeling


22.1. Mô tả
Trong một mệnh đề, các động từ chính ám chỉ đến các sự kiện chính được gọi là
predicates. Với mỗi predicate, các danh từ bổ nghĩa cho nó (tham gia vào sự
kiện) được gọi là argument.
Semantic role thể hiện vai trò của argument đối với sự kiện được ám chỉ ở
predicate.
Semantic role labeling (SRL) là bài toán yêu cầu cần gán nhãn semantic role
cho mỗi span trong một câu.
22.2. Cơ sở
Tìm hiểu về đặc điểm Semantic Roles trong linguistics (X) Ref.C19.1 &
Ref.C19.2
41
NLP Notes – Kikai Tech

Cách thức biểu diễn role (X):


- Coi 1 role là kết hợp của nhiều role cơ bản: Ref.C19.8
- (…): Ref.C19.1
Khó khăn trong việc định nghĩa tập các role (X) Ref.C19.3
Tìm hiểu về các resouces cho bài toán này (Eng):
- PropBank (X): Ref.C19.4
o Mỗi verb sense sẽ tương ứng với một tập role cho các argument
(verb-specific). Đi kèm theo đó là các ví dụ được gán nhãn. Ngoài
ra, còn định nghĩa nhiều role chung (ARGM) có thể dùng mọi chỗ,
không mang tính đặc thù cho verb sense nào.

- FrameNet (X): Ref.C19.5


o Mỗi frame (có thể hiểu giống như một model) sẽ có: một định nghĩa
cụ thể + tập role cho argument + tập các target word (predicate) +
một số ví dụ được gán nhán
22.3. Kỹ thuật và phương pháp giải
a. Tài nguyên sử dụng:
Sử dụng các nguồn tài nguyên như PropBank hay FrameNet để cung cấp:
o Tập các roles
o Tập các predicates
o Dữ liệu để train và test
b. Yêu cầu đầu ra đầu vào
- Input: 1 câu
- Output: cần xác định predicate và xác định role của các span khác trong
câu đối với predicate đó
c. Các phương pháp giải quyết
- Feature-based algorithm:
42
NLP Notes – Kikai Tech

Ý tưởng: Đầu tiên, tìm các predicate và parse tree của câu bằng cách dùng
parser. Sau đó, sử dụng một feature-based classifer để xác định role đối với
predicate của các node trong cây.
Ở đây có thể thực hiện quá trình huấn luyện theo 3 giai đoạn:
o Pruning (loại bỏ những node không thể là argument, dùng heuristic)
o Identification (loại bỏ những node không thể là argument, dùng
binary classification)
o Classification (gán nhãn role)
o Sử dụng các thuật toán tìm kiếm tối ưu (Viterbi, Integer linear
programming, re-rank approach): tìm kiếm lời giải tối ưu toàn
cục thỏa mãn ràng buộc nào đó.
Feature template được sử dụng cho bài toán này: Ref.P382
(*) Với những bài toán cần tìm rồi xác định loại cho đối tượng thì có thể giải
quyết bằng cách kết hợp 2 mô hình: detection (binary classifier) và
classification (1-N classifier). Cách này, giúp tận dụng những đặc trưng tốt
cho từng task nhỏ và giúp việc tính toán hiệu quả hơn.
(*)Việc dự đoán nhãn cho các thành phần sử dụng classifer là độc lập với
nhau, trong khi giữa các nhãn của các thành phần có thể có mqh ràng buộc.
Do vậy, cần sử dụng thêm thuật toán để tìm kiếm kết quả thỏa mãn các ràng
buộc.
- Neural Algorithm:
Coi SRL là một bài toán Sequence Labeling sử dụng BIO scheme.
Do bài toán này, đầu ra có ràng buộc giữa các labels trong câu, nên có thể sử
dụng kiến trúc BiLSTM/BERT + CRF, sau đó sử dụng thuật toán Viterbi để
tìm kiếm lời giải.
22.4. Cách đánh giá
- Thường sử dụng các metric cho bài toán phân loại nhiều nhãn (Precision,
Recall, F-measure)
- (*) Nếu kết hợp nhiều model để giải quyết thì cần đánh giá từng cái riêng
rẽ
- Sử dụng các dataset tiêu chuẩn để đánh giá (vd Eng: CoNLL-2005 và
CoNLL-2012)

43
NLP Notes – Kikai Tech

22.5. Ghi chú


22.6. Tham khảo

23. Selectional Preference


23.1. Mô tả
Để được làm một argument có một role cụ thể với một predicate, thì các cụm từ
cần thỏa mãn một/một số các ràng buộc về ý nghĩa.
Ví dụ: một cụm từ muốn có role là THEME (đối tượng bị ảnh hưởng bởi sự kiện)
của động từ “ăn” thì thường nó phải là những cụm từ chỉ đồ ăn.
Những ràng buộc đó gọi là Selectional Restrictions.
Selectional restrictions hỗ trợ mô hình WSD loại bỏ các sense mang nghĩa không
hợp với role của từ. (?)
Tuy nhiên, không nên loại bỏ hoàn toàn những trường hợp không thỏa mãn
Selectional Restrictions (do có thể cách diễn đạt đó mang ẩn ý nào đó). Vì vậy,
khi ứng dụng thực tế, người ta thường gọi Selectional Preference thay vì
Selectional Restriction.
Có hai bài toán liên quan đến mối quan hệ giữa predicate và ngữ nghĩa của
argument của nó:
- Selectional Association: Xác định độ liên quan giữa predicate với một
semantic class (có thể lấy từ WordNet)
- Selectional Preference: Xác định trực tiếp độ liên quan giữa một
predicate(verb) và một argument (noun)
23.2. Cơ sở
Cần tìm hiểu về đặc điểm của selectional restriction (X) Ref.C19.7
Cần tìm hiểu về cách biểu diễn selectional restriction:
- Thường sử dụng synset trong WordNet (X) Ref.C19.7.1
23.3. Kỹ thuật và phương pháp giải
a. Selectional Association

44
NLP Notes – Kikai Tech

Dựa trên Kullback-Leibler Divergence giữa 𝑝(𝑐 ) và 𝑝(𝑐|𝑣) (Đo lượng thông
tin mà predicate 𝑣 cho biết về semantic class 𝑐 mà arguemnt của nó có thể nhận.
𝑃(𝑐|𝑣)
𝑃 (𝑐|𝑣)𝑙𝑜𝑔
𝑃 (𝑐 )
𝐴𝑅 (𝑣, 𝑐 ) =
𝑃 (𝑐′|𝑣 )
∑𝑐′ 𝑃 (𝑐′|𝑣 )𝑙𝑜𝑔
𝑃 (𝑐′)
b. Selectional Preference
Đo xác suất xuất hiện của một argument khi biết predicate và role của argument
𝑃 (𝑛|𝑣, 𝑟). Giá trị xác suất này được tính thông qua việc thống kê trong tập dữ
liệu huấn luyện.
𝐶 (𝑛, 𝑣, 𝑟)
𝑃(𝑛|𝑣, 𝑟) = { 𝐶 (𝑣, 𝑟) if 𝐶 (𝑛, 𝑣, 𝑟) > 0
0 otherwise
Hoặc có thể sử dụng inverse probability 𝑃(𝑣|𝑛, 𝑟).
(…) Vẫn còn nhiều cách khác
(?) Tốt hơn khi áp dụng để trích rút preference cho subject argument so với cho
object argument.
23.4. Cách đánh giá
(*) Khi thiết kế task để test hiệu quả của model thì cần thiết kế sao cho nó càng
khó càng tốt
Tạo dữ liệu test như sau:
- Trích rút hết các predicate và argument của nó từ raw text
- Với mỗi cặp verb-argument, tìm một từ khác là nearest neighbor của
argument (để tăng độ khó)
Nhiệm vụ của mô hình là chọn argument chính xác trong hai phương án
(argument và nearest neighbor của nó)
Cách thứ hai là sử dụng con người để tạo các verb-argument pair và sau đó họ sẽ
cho điểm về độ phù hợp của từng cặp (sử dụng phương pháp magnitude
estimation (X) ). Kết quả của model sau đó sẽ được đánh giá dựa trên tương quan
với điểm cho bởi người.

45
NLP Notes – Kikai Tech

23.5. Ghi chú


23.6. Tham khảo

24. Affective Information Utilizing


24.1. Mô tả
Affect là khái niệm chung, ám chỉ về tất cả các khía cạnh liên quan đến trạng thái
tinh thần của con người.
Các khía cạnh đó (affective state) bao gồm:
- Emotion: Cảm xúc (phản ứng đối với một sự kiện gây tác động đáng kể)
vd: xấu hổ, tự hào, buồn, sợ,…
- Mood: Tinh thần (là thứ có thể cảm nhận được từ bên ngoài, ở cường độ
thấp nhưng trong một thời gian dài)
vd: phấn chấn, hăng hái, suy sụp,…
- Interpersonal stance: thái độ (thường hướng tới người khác trong một
tình huống tương tác nào đó)
Vd: nồng nhiệt, cởi mở,…
- Attitude: thái độ (hướng tới một đối tượng (người/vật), ảnh hưởng bởi
cách nhìn nhận về người/vật đó)
vd: kì thị, ghét, thích,…
- Personality trait: tính cách (đặc thù cho mỗi người, chi phối hành vi của
một người)
vd: đố kỵ, lo lắng, đố kỵ
Nếu có thể trích rút và nghiên cứu kỹ các trạng thái tinh thần của con người trong
một số tình huống thực tế sẽ đem lại rất nhiều lợi ích. Cụ thể:
- Trích rút attitude từ review/blog/tweet → biết được những cái gì được ưa
thích, cái gì gây khó chịu (task tương ứng: Sentiment Analysis)
- Trích rút emotion & mood của học sinh từ những tương tác với hệ thống
học online → đánh giá mức độ hứng thú của học sinh với việc dạy từ hệ
thống
- Trích rút interpersonal stances từ các cuộc hội thoại → giúp đánh giá thái
độ ứng viên trong buổi phỏng vấn, hay giúp tóm tắt cuộc họp bằng cách
tìm ra các conversational hot spots (những phần tương tác sôi nổi).
- Trích rút personality của từ hội thoại với người dùng → giúp trợ lý ảo đưa
ra những ứng xử phù hợp.
46
NLP Notes – Kikai Tech

Để dự đoán attitude, emotion, mood thì thông tin về sắc thái của từ là một đặc
trưng giá trị. Để có được thông tin đó, thường sẽ phải xây dựng một affective
lexicon và tham khảo thông tin từ lexicon đó.
Như vậy, có hai task cần giải quyết ở đây:
- Xây dựng affective lexicon
- Sử dụng affective lexicon để giải quyết các bài toán cụ thể ntn
Tập các bài toán liên quan đến trích rút các affect states được gọi chung là Affect
Recognition. Mặc dù chúng sử dụng thông tin khác nhau, nhưng thuật toán giải
quyết thì tương tự nhau do có thể coi chúng cùng là bài toán Text Classification.
Ngoài thực hiện affect state cho toàn bộ một văn bản, trong nhiều ứng dụng, việc
cân nhắc affect state của entity còn quan trọng hơn (Entity-Centric Affect).
24.2. Cơ sở
Định nghĩa về Emotion (X) Ref.C20.1
Tìm hiểu về các Affect lexicon (X) Ref.C20.2
Tìm hiểu cụ thể về Persionality (X) Ref.C20.7
Tìm hiểu về Interpersonal Stance (X) Ref.C20.7
Tìm hiểu về các lexicon phổ biến (X)
Tìm hiểu Connotation Frame: kết hợp affect lexicon và frame semantic lexicon
(dựa trên sentiment về các argument (noun) thường biểu hiện qua sắc thái của
predicate) (X) Ref.C20.10
24.3. Kỹ thuật và phương pháp giải
a. Xây dựng affective lexicon
- Gán nhãn thủ công:
Đây là cách vẫn còn được sử dụng và thường áp dụng những kỹ thuật
crowdsourcing (tận dụng một lượng lớn người tham gia gán nhãn nhưng vẫn
đảm bảo độ chính xác) (X) Ref.C20.3
- Sử dụng thuật toán semi-supervised induction:

47
NLP Notes – Kikai Tech

Ý tưởng: định nghĩa 2 cực sắc thái (tích cực – tiêu cực) bằng cách xác định
một tập từ ban đầu (seed word) cho mỗi cực; sau đó, gán nhãn cho một từ dựa
vào độ tương đồng của nó với mỗi tập.
Có hai thuật toán chính cho cách này:
o Axis-based algorithm (X) Ref.C20.4.1
o Graph-based algorithm (X) Ref.C20.4.2
o Các cách khác (sử dụng cách đo độ tương đồng khác nhau) (X)
Ref.C20.4.3
- Sử dụng thuật toán supervised learning:
Có thể tận dụng một số nguồn dữ liệu sẵn có để làm dữ liệu huấn luyện (như
review và rate ở các trang mua sắm, xem phim,…)
Ý tưởng: những positive words thường xuất hiện ở những bình luận rate cao,
còn negative words thì ngược lại.
Có thể sử dụng Pottsdiagram để thể hiện sentiment của một từ. (hoành: rate
categories; tung: PottsScore).
𝑐𝑜𝑢𝑛𝑡 (𝑤, 𝑐 )
𝑃 (𝑤|𝑐 ) =
∑𝑤∈𝑐 𝑐𝑜𝑢𝑛𝑡 (𝑤, 𝑐 )
𝑃 (𝑤|𝑐 )
𝑃𝑜𝑡𝑡𝑠𝑆𝑐𝑜𝑟𝑒(𝑤, 𝑐 ) =
∑𝑐′ 𝑃 (𝑤|𝑐′)

(Đặc điểm của diagram sẽ cho biết thông tin về sentiment của từ)
Ref.C20.5

48
NLP Notes – Kikai Tech

Ngoài ra, có thể tận dụng việc giải bài toán Sentiment Classification bằng
thuật toán Logistic Regression với feature là tập tất cả từ/cụm từ trong văn
bản để có thêm thông tin xây dựng lexicon. (phân tích weight của mô hình và
thực hiện prunning nếu cần)
b. Sử dụng lexicon vào bài toán Sentiment Recognition
Sentiment Recognition là dự đoán sắc thái của một đoạn văn bản là positive
/negative/ neutral.
Thông tin từ lexicon có thể kết hợp được vào cả hệ thống rule-based và hệ thống
supervised.
- Hệ thống rule-based: đếm số lượng các từ neg (𝑓 −) và các từ pos (𝑓 +) có
trong văn bản. Và sử dụng công thức sau để quyết định nhãn:

𝑓+
+ if − > 𝜆
𝑓
𝑠𝑒𝑛𝑡𝑖𝑚𝑒𝑛𝑡 = 𝑓−
− if + > 𝜆
𝑓
{ 0 otherwise
(*) Chú ý ý nghĩa công thức (muốn nhãn là neg và pos thì cần phải có sự
chênh lệch rõ rệt giữa 𝑓 − và 𝑓 +)
- Hệ thống supervised: nhân trọng số / normalize với 𝑓 ở trên để tạo đặc
trưng (?)
c. Giải quyết các bài Affect Recognition nói chung
Có thể coi Affect Recognition là bài toán Text Classification bình thường và áp
dụng các thuật toán phân loại như (SVM, Logistic Regression, Neural Net).
Do các model giải quyết bài toán này thường được huấn luyện trên tập dữ liệu
lớn, nếu sử dụng feature template để trích rút đặc trưng có thể sinh ra một lượng
lớn đặc trưng cho mô hình. Vì thế cần phải áp dụng một số kỹ thuật để điều chỉnh.
(*) Chú ý một số thay đổi cho bài toán phân loại khi dữ liệu huấn luyện lớn.
Một số kỹ thuật bao gồm:
- Lọc các words/phrases feature: Loại bỏ các feature là từ được sử dụng quá
ít (bằng cách: chỉ giữ lại các unigram xuất hiện trong ≥ 1% văn bản, các
2-gram, 3-gram chỉ được giữ lại nếu có 𝑝𝑚𝑖 < 2 ∗ 𝑙𝑒𝑛𝑔𝑡ℎ)

49
NLP Notes – Kikai Tech

𝑝(𝑛 − 𝑔𝑟𝑎𝑚)
𝑝𝑚𝑖(𝑛 − 𝑔𝑟𝑎𝑚) = 𝑙𝑜𝑔
∏𝑤∈𝑛−𝑔𝑟𝑎𝑚 𝑝(𝑤 )
(?) pmi luôn nhỏ hơn 2*length mà nhỉ?

- Tận dụng nhiều cách tạo feature số thực (weighted feature):


o Raw count
o Normalized probability
o Log probability
o … (X) Ref.P409
- Nếu dữ liệu của bài toán có đặc thù là sparse (tập test khả năng cao không
giống tập train), thì có thể sử dụng lexicon. (*) cần linh hoạt sử dụng
lexicon để tạo đặc trưng

d. Entity-Centric Affect
Yêu cầu của bài toán là xác định affect score của entity trong văn bản.
Cách thường dùng cho bài này là sử dụng affect lexicon kết hợp với contextual
embedding.
Dùng contextual embedding để tính representation cho entity, và huấn luyện mô
hình regression với dữ liệu huấn luyện là affect lexicon.
24.4. Cách đánh giá
24.5. Ghi chú
24.6. Tham khảo

25. Coreference Resolution


25.1. Mô tả
Yêu cầu của bài toán Coreference Resolution (CR) là xác định xem 2 đề cập
entity (mention) trong văn bản có phải cùng ám chỉ tới một đối tượng không.
Các từ cùng ám chỉ đến một đối tượng được gọi la corefer của nhau.
Đầu vào của bài toán: đoạn văn bản
Đầu ra: các chuỗi corefers (coreference chain hay cluster)

50
NLP Notes – Kikai Tech

Coreference Resolution là một thành phần quan trọng trong các hệ thống NLU
(dialogue, question answering, machine translation,…).
Bài toán này bao gồm 3 task nhỏ:
- Xác định mentions
- Linking các mentions để tạo coreference chains cho mỗi discourse entity
- (không bắt buộc) map discourse entity với entity ở thế giới thực(entity
linking): thường là map với một ontology như Wikipedia.
Bài toán khác thuộc CR là Event Coreference (phức tạp hơn so với Entity
Coreference)
25.2. Cơ sở ngôn ngữ học
Một số background liên quan đến chỉ từ (reference) (X) Ref.C21.1
25.3. Khó khăn và vấn đề còn tồn tại
- Các mentions của nhiều đối tượng có thể bị lồng vào nhau. Vd: her dress

- Một số trường hợp hóc búa gây khó khăn cho các CR models. (Winograd
Schema problems). Ví dụ:
“Thằng bé đang chơi trò đó. Đúng là nó dễ bị/gây nghiện thật!”
(X) Ref.P417 & Ref.P435
→ Cần tìm cách truyền tri thức vào model
- Mô hình có cần cân nhắc tới các entity chỉ được đề cập một lần (singleton)
không?

- Cần cân nhắc vấn đề bias của mô hình (giới tính). Tất cả các kiến trúc sử
dụng cho CR đều bị bias đáng kể
(*) Chú ý một số phương pháp giúp debias mô hình
→ Sử dụng các kỹ thuật debias sau:
o kết hợp hai bộ dữ liệu (bộ gốc và bộ gender-swapped)
o sử dụng debiased embedding
o data augmentation
Ref.C21.9

51
NLP Notes – Kikai Tech

25.4. Kỹ thuật và phương pháp giải


Một số cách tiếp cận và kỹ thuật được áp dụng:
- Mention detection -> clustering
- End-to-end: huấn luyện mô hình cả detect cả link cùng một lúc
- Entity-based architecture, Mention-based architecture
a. Mô hình hóa bài toán
Cho đoạn văn bản 𝑇, cần tìm tất cả các entity và các coreference links giữa
chúng.
Có hai task cần thực hiện: mention detection và entity clustering.
b. Dữ liệu huấn luyện
Một số các coreference dataset như (+):… Ref.C21.2
c. Mention Detection
Nhiệm vụ là: tìm tất cả các span trong văn bản có đề cập đến entity.
Cách tiếp cận thường dùng: thiết kế model với tập luật lỏng (tập trung tăng recall)
sau đó thực hiện lọc chọn.
- Có thể sử dụng nhiều model để tìm ra các trường hợp có khả năng cao là
mention (vd: cụm danh từ, đại từ, danh từ riêng,…). Hoặc đơn giản là lấy
tất cả các n-gram với (n<10).

(*) :Nếu muốn tăng recall thì có thể thực hiện cách đơn giản nhất, sau đó
lọc chọn để tăng precision.
Để chọn lọc ra các mentions có thể sử dụng:
o Regex, rule
o Sử dụng feature-based classifier (khó chọn threshold để detect)
o Kết hợp thêm các nguồn tri thức để thêm căn cứ lọc (vd: tìm các NP
xuất hiện nhiều trong dữ liệu huấn luyện nhưng không được gắn là
mentions; sử dụng Google N-gram để loại bỏ các reference xuất
hiện trong thành ngữ (fixed phrases)
(*) Nên nghĩ cách tận dụng các nguồn tri thức có sẵn để huấn luyện
mô hình.

52
NLP Notes – Kikai Tech

d. Linking cách 1: mention-pair architecture (Cách đơn giản và ảnh hưởng nhiều
nhất)
Ý tưởng: Link mention với một mention trước đó được coi antecedent của nó.
Đầu vào: một cặp mentions gồm một mention gốc (antecedent) và một chỉ từ trỏ
đến nó (anaphor).
Đầu ra: True/False (cặp đó có cùng chỉ đến cùng một entity không?)
Mô hình:
o Featured-based: một số feature hữu dụng (X) Ref.P430
(*) học một số tip trích rút feature được chỉ ra ở Ref.P430, cụ thể:
▪ Một số loại feature: lexical feature, weight feature
▪ Một số kỹ thuật: back-off (vd: với đặc trưng là word form,
nếu từ hiếm thì có thể back off về POS của nó); sử dụng
feature conjunction (tạo feature là phép toán trên các feature
khác); sử dụng decision tree/ random forest để học feature
conjunction

o Neural representation learning


(?) (X) Kết hợp các feature vào contextual embedding kiểu gì? Cụ thể:
“However other features like mention length, distance between mentions,
or genre can complement neural contextual embedding models nicely.”
Ref.P430
Một số kỹ thuật hỗ trợ training và testing:
o Cách thức chọn các cặp mentions để huấn luyện (nếu xét tất cả các cặp
thì quá nhiều) (X)
o Cách thức thực hiện link các mention trong một câu một cách tuần từ:
dùng kỹ thuật close-first clustering (link với mention gần nhất ở trước
nó cho score > 0.5) hoặc best-first clustering (link với mention ở trước
nó cho score cao nhất).
(?) Vấn đề của cái này
e. Linking cách 2: Mention-rank architecture (được sử dụng phổ biến)
Ý tưởng: link mỗi mention với một trong các mention trước đó.

53
NLP Notes – Kikai Tech

Xử lý trường hợp mà mention hiện tại là non-anaphoric (không phải chỉ từ) hoặc
discouse-new (mention đề cập tới entity lần đầu tiên).
Thực hiện xử lý 2 task: anaphoricity detection & linking cùng một lúc, bằng cách
thêm vào một dummy mention ∋ vào tập nhãn cùng với các mention (1 -> i-1).
Nếu input là mention i và output là dummy mention, thì có nghĩa là mention i là
non-anaphoric hoặc discourse-new.
Mô hình chủ yếu sử dụng là dùng mạng neural (neural mention-ranking
algorithm) và huấn luyện theo kiểu end-to-end (thực hiện cả mention detection
và linking cùng một lúc):
- Input của mô hình khi đó sẽ là cặp span i và j; đầu ra là score(i, j): khả năng
i, j chỉ về cùng một entity
- Chi tiết mô hình Ref.C21.6 (X)
Ở cách tiếp cận này, một coreference chain có một tập antecedents, và mỗi
anaphoric trong chuỗi đó có nhiều cách chọn từ để làm antecedent. Như vậy khi
huấn luyện, lấy antecedent nào làm nhãn chính xác cho mention? (X) Ref.P429
f. Linking cách 3: Entity-based Models
Ý tưởng: linh mỗi mention với một cụm mentions trước đó (cùng ám chỉ tới một
entity)
Input: tập các cụm mentions
Output: phân phối xác suất trên các cụm
Có hai cách tiếp cận chính:
- Featured-based: trích rút đặc trưng của các cụm, có thể tận dụng mention-
pair classifier để tạo feature. (tính score của các cặp mention trong cụm,
sau đó sử dụng hàm aggregate để tạo weighted feature)

- Neural model: học representation của cụm, hoặc học representation của
từng mention pair, sau đó thực hiện pooling để tạo representation cho cụm.
(*) chú ý kỹ thuật aggregate/pooling features cho mô hình
25.5. Cách đánh giá
Ref.C21.7

54
NLP Notes – Kikai Tech

Metric sử dụng để đánh giá là CONLL F1 score (Bao gồm: MUC, B3, CEAFe).
Ngoài ra còn có BLANC, LEA metric.
Hiện tại đang có hypothesis chains tạo bởi model (H) và reference chain từ tập
test (R).
MUC F-measure: dựa vào số lượng cặp mention chung (số link chính xác) giữa
H và R để tính F-measure.
B3: với mỗi mention i trong Reference, tính Precision và Recall dựa theo số lượng
mention chung giữa hai chain (chain chứa i trong R và chain chứa i trong H). Sau
đó thực hiện tính Precision và Recall cho toàn task (tính bằng weight sum
precision và recall của các mention).

Trong đó, giá trị của 𝑤𝑖 tự tìm thuật toán để xác định (X)
Ngoài ra, với một số task đặc thù, cần tạo ra các metric chuyên biệt. (vd: metric
quan tâm đến lượng thông tin mà các chain mang lại, hay metric như NEC F1 xét
đến khả năng tìm ra variant referent của model).(?) Ref.P435
25.6. Ghi chú
25.7. Tham khảo

26. Discourse Structure Parsing


26.1. Mô tả
Discourse là nhóm các câu giúp xây dựng dần dần hiểu biết về một model (bao
gồm các entity, thuộc tính và tương tác của chúng).
Tính rành mạch (coherence) của discourse thể hiện qua 2 mức: local coherence
và global coherence. Trong đó, local coherence được xét qua độ rành mạch giữa
các câu trong discouse, còn global coherence thể hiện qua tập các ý và bố cục của
của discourse.

55
NLP Notes – Kikai Tech

Giữa các câu trong discourse thường có một mối quan hệ về nghĩa nào đó. Mối
quan hệ đó gọi là coherence relation.
Local coherence của một đoạn văn bản có thể được xem xét qua ba khía cạnh:
- Một là dựa vào coherence relation giữa các thành phần. Discourse
Parsing là bài toán khai thác khía cạnh này để xác định coherence của văn
bản (xác định coherence relation giữa các câu). Có hai kiểu parsing:
o RST Parsing (Rhetorical Structure Theory): Xác định coherence
relation giữa tất cả các span trong văn bản (tạo ra full parse tree, đơn
vị là một mệnh đề)
o PDTB Parsing (Penn Discourse TreeBank): xác định coherence
relation giữa các cặp câu liên tiếp trong văn bản dựa vào từ nối
chúng (discourse connectives).
- Hai là dựa vào các entity quan trọng trong model mà discourse xây dựng.
Ở đây có hai model xác định coherence theo kiểu này:
o Centering Theory
o Entity grid model
- Ba là dựa vào semantic field mà các câu dùng cùng nói về: các câu trong
cùng một discourse thường nói cùng về một topic
Hiện tại, đánh giá global coherence của discourse hiện tại thường tập trung vào
những văn bản có cấu trúc discourse rõ ràng, đơn giản. Ví dụ, Argumentative
Essay, Scientific Paper,…
26.2. Cơ sở
Tìm hiểu về coreference relation: 2 cách nhìn về cách tổ chức discourse và corpus
(theo kiểu RST và theo kiểu PDTB) (X) Ref.C22.1
a. Nói qua về RST:
Theo RST, trong một discourse, mối quan hệ giữa 2 spans văn bản thường là mối
quan hệ nucleus-satellite. Nucleus là thành phần trung tâm, nếu đứng một mình
nó vẫn diễn đạt một ý nghĩa hoàn chỉnh. Satellite thì luôn phải đi kèm với một
nucleus, ý nghĩa của nó chỉ hoàn chỉnh khi kết hợp với nucleus.

56
NLP Notes – Kikai Tech

Hình trên là một full parse tree thể hiện cấu trúc discourse theo cách nhìn của
RST. Trong đó, các lá (thành phần nhỏ nhất) có thể là một câu/mệnh đề/cụm từ,
gọi chung chúng là Elementary Discourse Unit (EDU).
Tìm hiểu về 2 model liên quan đến entity-based coherence (Centering Theory và
Entity Grid). (X)
26.3. Kỹ thuật và phương pháp giải
a. RST parsing
Input: Chuỗi các câu
Output: Full parse tree (unit: EDU)
RST parsing thường được thực hiện qua hai giai đoạn: EDU segmentation và
parsing.
- EDU segmentation: giải quyết như một bài toán Sequence Labeling. (X)
Ref.C22.2.1
Cụ thể: BERT -> BiLSTM
- Parsing:
o Thực hiện thuật toán shift-reduce parsing: tại mỗi bước cần phải
căn cứ vào trạng thái hiện tại để xác định hành động tiếp theo (shift
hay reduce)

57
NLP Notes – Kikai Tech

o Hành động tiếp theo được xác định bởi mô hình phân loại
(hierarchical BiLSTM để học embedding cho EDU, dùng nó để tạo
state representation, rồi sử dụng MLP để phân loại).
o … (X) Ref.C22.2.2
(*) Học embedding cho một tập gồm nhiều thành phần nhỏ, thì học
embedding cho từng thành phần nhỏ rồi thực hiện pooling chúng (nếu
không cần quan tâm đến thứ tự), hoặc sử dụng hierachical BiLSTM
(nếu cần bắt trọn context),… (X)
(*) Chú ý cách thiết kế mô hình
b. PDTB parsing
PDTB parsing hay còn gọi là shallow discourse parsing, do nó chỉ cần xác định
coreference relation giữa các cặp spans dựa vào discourse connective.
PDTB parsing bao gồm 4 tasks nhỏ:
- Tìm discourse connective (phân biệt cái này với liên từ dùng để kết hợp
các cụm danh từ)
- Tìm 2 spans tương ứng cho mỗi connective: coi như bài toán Sequence
Labeling (BERT->BiLSTM)
- Gán nhãn relation cho 2 spans
- Gán nhãn cho tất cả cặp câu liên tiếp
(3 tasks đầu là dựa vào các connective, còn task cuối là tìm các relation không
được thể hiện qua connective)
Ref.C22.2.3
c. Centering Theory
Ý tưởng: Tại một điểm trong discourse, thì luôn có 1 entity là quan trọng (salient
entity). Một discourse mà ở đó, các câu liên tiếp duy trì salient entity giống nhau,
được coi là rành mạch (coherent) hơn discourse ở trường hợp ngược lại.
Mỗi discourse unit thứ n: 𝑈𝑛 sẽ đặc trưng bởi hai thành phần nhau:
- Salient entity hiện tại 𝐶𝑏 (𝑈𝑛 ) hay còn gọi là backward-looking center
- Tập các salient entity mà các câu sau có thể nói đến 𝐶𝑓 (𝑈𝑛 ) hay còn gọi là
forward-looking center. Các entity trong đây sẽ được cho điểm, cái có
điểm cao nhất được gọi là preferred center 𝐶𝑝 .

58
NLP Notes – Kikai Tech

Dựa vào mối quan hệ giữa các 𝐶𝑏 , 𝐶𝑝 của cặp câu liên tiếp để xác định kiểu
discouse relation giữa 2 câu:

Và căn cứ vào luật sau để đánh giá độ rành mạch của văn bản:

Luật 1: (?)
Vd: “Cái váy này đẹp hơn cái váy kia nên tôi sẽ lấy nó. Dù sao cái váy/tôi/nó ….
(luật có vẻ đúng)
Đọc thêm về cái này: (X) Ref.C22.3.1
d. Entity grid model
Ý tưởng: sử dụng thuật toán ML để học đặc điểm của pattern đề cập entity trong
discourse rành mạch.

Trong đó:
- s: entity được đề cập ở chủ ngữ của câu

59
NLP Notes – Kikai Tech

- o: entity được đề cập ở tân ngữ của câu


- x: entity có xuất hiện nhưng không được đề cập qua chủ ngữ/tân ngữ
- - : entity không xuất hiện
(X) Ref.C22.3.2
e. Semantic field coherence model
Ý tưởng: discourse rành mạch là nhờ vào việc các thành phần trong nó nói cùng
về một topic và sử dụng cùng một semantic field (chủ đề từ vựng)
Có một số thuật toán sử dụng cách tiếp cận này:
- Tìm và tạo lexical chains xuyên suốt discourse (sử dụng kết hợp với
thesaurus), sau đó phân tích mật độ và kích thước của lexical chain để
đánh giá tính rành mạch.
- Tính độ tương đồng giữa các span sử dụng các phương pháp topic
modeling (LSP, BOW)
- Sử dụng representation learning model, huấn luyện theo kiểu self-
supervised. (X) Ref.C22.4
- Huấn luyện RNN language modeling, tính loss của 1 câu ở hai trường hợp
(có và không có context trước đó), sau đó so sánh loss để đánh giá độ rành
mạch. (X) Ref.C22.4; kết quả từ model dựa trên LM như thế này thường
sẽ được đánh giá qua mô hình huấn luyện qua Sentence Order
Discrimination hoặc Sentence Insertion.
f. Global coherence: Argumentation Structure
Tập trung vào phân tích cấu trúc của các văn bản nghị luận.
Argumentation mining là quá trình sử dụng thuật toán để tìm ra hệ thống luận
điểm đưa ra trong văn nghị luận.
(X) Ref.C22.5.1
g. Global coherence: Scientific Discourse
Các bài báo khoa học thường có cấu trúc rất rõ ràng. Mỗi câu trong bài báo đều
có một chức năng cụ thể. Do đó, có thể thực hiện gán nhãn chức năng cho mỗi
câu trong bài báo.
h. Một số kỹ thuật khác để đánh giá coherence của văn bản
- Người cho điểm (rate) tính rành mạch của văn bản sau đó huấn luyện một
mô hình phân loại để dự đoán rate
60
NLP Notes – Kikai Tech

- Áp dụng các chiến thuật self-supervised để huấn luyện mô hình:


o Sentence order discrimination: cho mô hình so sánh tính rành mạch
giữa một văn bản thường và một văn bản có trật tự các câu đã bị xáo
trộn
o Sentence Insertion: (khó hơn) Tạo negative sample bằng cách copy
văn bản gốc, chọn 1 câu trong văn bản gốc để chèn vào một vị trí bất
kỳ trong bản copy đó.
o Sentence Order Reconstruction: đầu vào: là một văn bản có trật tự
câu được xáo trộn; đầu ra: văn bản đã được phục hồi lại thứ tự (khó hơn
2 task trên)
Ref.C22.3.3
26.4. Cách đánh giá
a. RST parsing
Sử dụng các TreeBank để test và dùng metric RST-Pareval để đánh giá.
Cụ thể, cần chuyển parse tree trong treebank về dạng right-branching binary
tree (để có thể track kết quả lần lượt), và tính F1 cho 4 trường hợp sau: chỉ độc
các span; có span và đã xác định nucleus-satellite; có span và xác định relation
giữa span; full tree (gồm cả nucleus-satellite và nhãn relation giữa chúng).
26.5. Ghi chú
26.6. Tham khảo

27. Question Answering


27.1. Mô tả
Question Answering system là hệ thống được thiết kế để trả lời câu hỏi của người
dùng chủ yếu nhằm phục vụ nhu cầu cung cấp thông tin.
Loại câu hỏi mà QA system hiện nay tập trung phục vụ là câu hỏi tìm kiếm thông
tin, có câu trả lời ở dạng ngắn (factoid questions). Ngoài ra còn có các loại câu
hỏi khác như why question, community question, exam question…
Trong các hệ thống hơn như trợ lý ảo, công cụ tìm kiếm,...luôn có một thành phần
thực hiện nhiệm vụ giải quyết bài toán Question Answering.

61
NLP Notes – Kikai Tech

Có hai kiểu thiết kế chính cho hệ thống QA để trả lời factoid question, đó là:
Information-retrieval (IR) based QA và Knowledge-based QA.
- Hoạt động của hệ thống IR-based QA chủ yếu dựa vào thành phần xử lý
nhiệm vụ thu thập thông tin, nên cơ sở của hệ thống là các công nghệ giải
quyết bài toán Information Retrieval và Reading Comprehension.
- Tương tự, hệ thống Knowledge-based QA có cơ sở dựa vào các công nghệ
giải quyết bài toán Entity Linking (trong việc xây dựng cơ sở dữ liệu)
Ngoài ra còn có một số kiểu thiết kế khác như: Language Model QA, hybrid
QA.
27.2. Bài toán con/Thành phần
- Information Retrievel
- Reading Comprehension
- Entity Linking
27.3. Kỹ thuật và phương pháp giải
a. IR-based Factoid QA
Thiết kế theo kiểu này, hệ thống cần thực hiện hai bước sau: retrieve (tìm tập các
văn bản liên quan đến query, sử dụng các IR model) và read (sử dụng Reading
Comprehension algorithm để chọn các span tạo thành câu trả lời).

b. Knowledge-based QA
Ý tưởng: trả lời câu hỏi bằng cách đưa câu hỏi về một biểu diễn truy vẫn cơ sở
dữ liệu.

62
NLP Notes – Kikai Tech

Có hai phương pháp được dùng cho kiểu hệ thống này là graph-based QA, cơ
sở tri thức được lưu dưới dạng graph, và QA by semantic parsing, phân tích ngữ
nghĩa để tìm câu trả lời.
- Graph-based QA:
Ý tưởng: Đưa câu hỏi về dạng RDF triple bị khuyết argument.
Vd: Ai phát minh bóng đèn? -> (subject: ?; predicate: phát minh; object: bóng
đèn)
Trong đó, predicate cần tương ứng với relation trong knowledge base. Sau khi
thực hiện entity linking, nhiệm vụ cần làm chỉ còn relation detection. Task này
giải quyết bằng BERT
(+) Một số dataset huấn luyện Ref.P482
(X) Tìm hiểu cách thiết kế BERT cho task này Ref.C23.4.1
Kết quả của entity linking và relation detection có thể cho ra tập j các entity tốt
nhất và tập k relation tốt nhất.
Dựa vào đó để tìm ra tập các RDF triples trong knowledge base.
Cuối cùng để chọn RDF triple phù hợp nhất, hoặc là tìm cách rank các triple,
hoặc là huấn luyện mô hình cho điểm.
- QA by Semantic Parsing:
Ý tưởng: Đưa câu hỏi về dạng một chương trình để tìm ra câu trả lời (có thể ở
dạng predicate calculus, hoặc ngôn ngữ truy vấn SQL hay SPARQL,…)
Các thức là sử dụng các thuật toán Semantic Parsing (supervised dùng BERT
hoặc weakly supervised)
(*) weakly supervised thì dữ liệu huấn luyện là cặp question-answer, còn biểu
diễn truy vấn ở dạng latent variable (kiến trúc là như thế nào (?) )
c. Language Model for QA
(*) Tham khảo ý tưởng huấn luyện
Ban đầu huấn luyện mô hình pretrained LM theo kiểu điền thêm vào chỗ trống.
Sau đó fine-tunning với các cặp question-answer.
d. Hybrid QA (rule & featured-based): Watson DeepQA system

63
NLP Notes – Kikai Tech

Dạng câu hỏi mà Watson phải trả lời có dạng:


Thức ăn: Đây là một loại quả khi chín màu vàng, có hoa màu đỏ, thường ra thành
buồm, rất hay dùng để thắp hương ở Việt Nam.
Kiến trúc của Watson được minh họa ở hình vẽ sau:

Cách thành phần của nó bao gồm:


- Question Processing: xác định question focus (mention ám chỉ tới đối
tượng trong câu trả lời), lexical answer type (phạm vi nghĩa của câu trả
lời), question type,…
- Candidate Answer Generation: kết hợp câu hỏi đã được xử lý + các tri thức
khác (text doc / cơ sở tri thức) để trích rút ra tập các câu trả lời
- Candidate Answer Scoring: xác định điểm dựa trên ràng buộc về nghĩa
giữa câu trả lời và lexical answer type (cần sử dụng các ontology); hoặc
ràng buộc về thời gian; hoặc sử dụng text retrieval để tìm ra các evidence
để tăng độ tự tin cho câu trả lời (X) Tìm hiểu thêm
- Answering Merging and Scoring: Gộp các candidate tương đương nhau,
sau khi gộp thì kết hợp các đặc trưng của chúng lại. Huấn luyện mô hình
để tính confidence score để rank.
(?) Gộp feature vector kiểu gì
(*) Kỹ thuật xử lý inbalanced data (có sự chênh lệch lớn giữa số lượng
các example thuộc các nhãn): sử dụng instance weight (X)

64
NLP Notes – Kikai Tech

(X) Tìm hiểu thêm những kỹ thuật sử dụng trong Watson


27.4. Cách đánh giá
Metric được sử dụng phổ biến để đánh giá factoid QA là Mean Reciprocal Rank
(MRR)
(*) Metric cho các mô hình đầu ra có dạng ranked list, trong đó có 1 đáp án đúng
Mặc định rằng đầu ra của hệ thống QA có dạng là một danh sách các đáp án cho
mỗi câu hỏi.
Cần đánh giá hệ thống trên tập N câu hỏi
𝑁
1 1
𝑀𝑅𝑅 = ∑
𝑁 𝑟𝑎𝑛𝑘𝑖
𝑖=1 𝑠.𝑡 𝑟𝑎𝑛𝑘𝑖 ≠0

Trong đó, 𝑟𝑎𝑛𝑘𝑖 là xếp hạng cao nhất trong ranked list mà câu trả lời đúng cho
câu hỏi i nhận được. Nếu trong danh sách câu trả lời không có đáp án đúng thì
𝑟𝑎𝑛𝑘 = 0.
27.5. Ghi chú
27.6. Tham khảo

28. Information Retrieval


28.1. Mô tả
Information Retrieval (IR) được coi là một lĩnh vực tập trung tìm ra các cách
thức thu thập các loại thông tin dựa vào nhu cầu của người dùng.
Các phương pháp IR thường sẽ được ứng dụng vào các hệ thống phục vụ tìm
kiếm (search engine).
(X) tìm hiểu thêm các loại IR
Kiểu IR xem xét ở đây là ad-hoc retrieval. Hệ thống IR theo kiểu này sẽ trả về
một danh sách xếp hạng các văn bản, lấy từ một bộ sưu tập, sao cho phù hợp với
query của người dùng. Kiến trúc của nó như sau:

65
NLP Notes – Kikai Tech

Cách giải quyết thường áp dụng cho hệ thống IR là dựa vào vector space model
để tìm kiếm văn bản (chọn doc dựa vào độ tương đồng giữa represenatation
vector của doc và query).
28.2. Bài toán con/Thành phần
28.3. Kỹ thuật và phương pháp giải
a. Tạo vector cho document và query
Có các cách sau:
- Sử dụng các phương pháp tạo term weight (mỗi doc là một vector có thành
phần là trọng số của mỗi từ trong vocab đối với doc đó). Có hai kỹ thuật
thường hay sử dụng: tf-idf weighting và BM25 (tốt hơn).
(X) Ref.C23.1.1 & Ref.C23.1.2
- Sử dụng dense embedding, dùng BERT tạo representation cho query và
doc.
(*) Một số insights về BERT:
o (X) Cách thức fine-tuning encoder để phù hợp với IR
o Cần tạo representation từ BERT một cách linh hoạt, vì có rất nhiều
cách khác nhau
o (X) Cách thức xử lý input có độ dài vượt quá giới hạn
o (X) Thuật toán nào là hiệu quả khi cân nhắc tới độ phức tạp tính toán
trên dense embedding (approximate nearest neighbor vector
search algo – Faiss)
Ref.C23.1.5
b. Kỹ thuật xử lý stopwords
(*) Chú ý trong IR, việc loại bỏ stopword bằng sử dụng stop list thường không
cần thiết
66
NLP Notes – Kikai Tech

c. Kỹ thuật tính term weight


Sử dụng inverted index để lưu trữ thông tin về vị trí của word trong bộ sưu tập
các document.
Inverted index là một dictionary (key: word; value: danh sách các id của
docment chứa word tương ứng, có thể bổ sung thêm các thông tin khác vào danh
sách này).
(*) Có thể cải tiến thêm bằng cách sử dụng tập vocab là tập n-gram thay vì uni-
gram
Ngoài ra, với hệ thống lớn, người ta thường sử dụng hashing algorithm thay vì
inverted index.
28.4. Cách đánh giá
(*) Chú ý metric đánh giá cho những model có đầu ra thuộc kiểu ranked list
Kết quả của các hệ thống IR là tập các văn bản được xếp hạng.
Để đánh giá kết quả đó, cần phải có một dataset để đối chiếu. Dataset có các entry
dạng (query-tập các văn bản liên quan đến query).
Khi đó, kết quả đối chiếu cho 1 query như sau: (R: relevant; N: not relevant)

Metric trung gian là tính precision (Pr) và recall (Re) tại từng rank. Công thức
tính precision và recall tại rank thứ k là như sau:
𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑟𝑒𝑙𝑒𝑣𝑒𝑛𝑡 𝑑𝑜𝑐𝑠 𝑠𝑒𝑒𝑛 𝑓𝑟𝑜𝑚 1𝑠𝑡 → 𝑘 𝑡ℎ 𝑟𝑎𝑛𝑘
𝑅𝑒𝑐𝑎𝑙𝑙𝑘 =
𝑡𝑜𝑡𝑎𝑙 𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡 𝑑𝑜𝑐𝑠

67
NLP Notes – Kikai Tech

𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑟𝑒𝑙𝑒𝑣𝑎𝑛𝑡 𝑑𝑜𝑐𝑠 𝑠𝑒𝑒𝑛 𝑓𝑟𝑜𝑚 1𝑠𝑡 → 𝑘 𝑡ℎ 𝑟𝑎𝑛𝑘


𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛𝑘 =
𝑘
Có hai cách để đánh giá: sử dụng precision-recall curve và Mean Average
Precicion (MAP)
a. Precision-recall curve
Sau khi tính Re và Pr cho từng rank, thực hiện vẽ precision-recall curve để đánh
giá mô hình.

Nhận xét:
- Recall luôn không giảm khi xét rank từ trên xuống (1 trở đi)
- Recall tăng ~ văn bản ở rank đó là Relevant; Recall không đổi ~ văn bản
ở rank đó là Not Relevant.
- Precision cho biết mức độ quan trọng của các rank. Precision càng cao chỗ
recall thấp thì càng tốt; còn precision thấp ở chỗ recall cao thì cũng ko ảnh
hưởng lắm (?) Tác dụng của nó
Để đánh giá hiệu quả hệ thống khi thử nghiệm nhiều query, thì họ thực hiện như
sau:
- Tính recall, precision theo rank cho từng query
- Tại các mức recall cố định (0, 0.1, 0.2, .. 1) thực hiện tính AvgPrecision
trên các query, sau đó tính interpolated Precision cho từng mức recall 𝑟
như sau:
𝐼𝑛𝑡𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 (𝑟) = max 𝐴𝑣𝑔𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛(𝑖)
𝑖≥𝑟

Việc tính Interpolated Precision giúp precicion-recall curve được smooth


hơn.

68
NLP Notes – Kikai Tech

(*) Khi muốn đồ thị được smooth, thì tính theo kiểu interpolate
(?) Tính theo kiểu interpolate như thế này cho phép mô hình được quyền
cân nhắc những doc ở rank thấp hơn.
Ref.P471: “It is designed to give systems the benefit of the doubt by
assigning the maximum precision value achieved at higher levels of recall
from the one being measured.”
b. MAP
Thực hện tính Average Precision (AP) cho mỗi query (AP này khác với
AvgPrecision ở trên)
1
𝐴𝑃 = ∑ 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛𝑟 (𝑑)
|𝑅𝑟 |
𝑑∈𝑅𝑟

Sau đó tính Mean AP cho tập tất cả các query


1
𝑀𝐴𝑃 = ∑ 𝐴𝑃(𝑞)
|𝑄|
𝑞∈𝑄

MAP càng cao càng tốt


28.5. Ghi chú
28.6. Tham khảo

29. Reading Comprehension


29.1. Mô tả

69
NLP Notes – Kikai Tech

Là quá trình tìm ra span trong một văn bản khả năng cao là câu trả lời của một
câu hỏi nhất.
(Đang xét dạng cơ bản)
Input: Một factoid question 𝑞 và một đoạn văn 𝑝
Output: Câu trả lời 𝑎 (nếu có)
Dạng cơ bản này thường được áp dụng vào hệ thống IR-based QA theo kiểu
(retrieve and read).
29.2. Khó khăn
Thiết kế hệ thống multilingual reading comprehension
29.3. Kỹ thuật và phương pháp giải
(+) Một số tập dữ liệu huấn luyện (X) Ref.C23.2.1
a. Sử dụng thuật toán Span Labeling
Ý tưởng: Tính 𝑝(𝑎 |𝑝, 𝑞) (a là câu trả của q lời nằm trong span (𝑎𝑠 , 𝑎𝑒 ) ở trong
đoạn văn 𝑝) bằng công thức sau:
𝑝 (𝑎|𝑝, 𝑞) = 𝑝𝑠𝑡𝑎𝑟𝑡 (𝑎𝑠 |𝑝, 𝑞). 𝑝𝑒𝑛𝑑 (𝑎𝑒 |𝑝, 𝑞)
Cho chuỗi có cấu trúc như sau: [CLS]-q-[SEP]-p vào trong BERT
Thêm hai vector mới có thể học được qua quá trình fine-tuning: span-start
embedding 𝑆 và span-end embedding 𝐸.
Với mỗi output token 𝑝′ tương ứng với token trong 𝑝 sẽ được đưa đi qua một
Linear Layer, huấn luyện cùng với 𝑆 và 𝐸 để xác định xác suất để nó làm span-
start và span-end.
exp (𝑆. 𝑝𝑖′ )
𝑃𝑠𝑡𝑎𝑟𝑡𝑖 =
∑𝑗 exp(𝑆. 𝑝𝑗′ )

exp(𝐸. 𝑝𝑖′ )
𝑃𝑒𝑛𝑑𝑖 =
∑𝑗 exp(𝐸. 𝑝𝑗′ )

Hàm mất mát sử dụng:


𝐿 = −𝑙𝑜𝑔𝑃𝑠𝑡𝑎𝑟𝑡𝑖 − log 𝑃𝑒𝑛𝑑𝑖

70
NLP Notes – Kikai Tech

Token [CLS] trong chuỗi đầu vào giúp huấn luyện mô hình học được trường hợp
trong 𝑝 không có câu trả lời (khi đó span-end và span-start đều trỏ vào [CLS]).
Câu trả lời có thể là [CLS] không tồn tại câu trả lời trong 𝑝; hoặc, span có score
cao nhất với score tính bởi công thức sau:
𝑔(𝑠, 𝑒) = 𝑠𝑡𝑎𝑟𝑡𝑖 + log 𝑃𝑒𝑛𝑑𝑖 𝑠𝑡𝑎𝑟𝑡𝐶𝐿𝑆 + log 𝑃𝑒𝑛𝑑𝐶𝐿𝑆
(?) Công thức có vấn đề? Ref.P477
b. Kỹ thuật xử lý khi kích thước đoạn văn bản quá dài
(*) xử lý khi input vào BERT bị vượt quá giới hạn
Vì BERT chỉ chấp nhận input có kích thước tối đa là 512 token, nên nếu cần xử
lý chuỗi input dài hơn thì phải sử dụng sliding window (nên sử dụng overlapping
window)
Cho input của mô hình có dạng:
[CLS]-q-[SEP]-window
29.4. Cách đánh giá
Metric được sử dụng có thể là:
- Exact match
- F1 score: coi predicted answer và gold answer như là BOW, và tính F1 dựa
vào độ trùng lặp.
(+) một số test sets phổ biến
Tận dụng test set từ bài đọc hiểu trắc nghiệm cho học sinh cấp 1.
29.5. Ghi chú
29.6. Tham khảo

30. Entity Linking


30.1. Mô tả
Entitiy Linking là quá trình liên kết một mention (đề cập tới một đối tượng nào
đó trong text) với một entity ở thế giới thật. Entity ở thế giới thật được xác định
thông qua một ontology.

71
NLP Notes – Kikai Tech

Entity Linking là thành phần cốt lõi trong mọi hệ thống Knowledge-based QA.
Thường, ontology dùng cho linking ở hệ thống QA là Wikipedia; mỗi entity ở
thế giới thật sẽ được đại diện bởi 1 page trong Wiki. Entity linking, lúc này, còn
được gọi là wikification.
30.2. Khó khăn
30.3. Kỹ thuật và phương pháp giải
Entity linking có thể được giải quyết bởi các phương pháp sau:
- Linking dựa vào anchor dictionary và thông tin từ Wikipedia graph
structure (X) Ref.C23.3.1
Ý tưởng: sử dụng anchor dictionary có key: 1 page trong Wikipedia và value
là các anchor text (các cụm từ chứa siêu liên kết ở trang khác trỏ đến trang
key).
Tử anchor dictionary có thể xác định khả năng một cụm từ có thể là một
mention (từ ý tưởng: nếu là mention thì khả năng cao nó sẽ chứa siêu liên kết):
𝑙𝑖𝑛𝑘 (𝑎)
𝑙𝑖𝑛𝑘𝑝𝑟𝑜𝑏 (𝑎) =
𝑓𝑟𝑒𝑞 (𝑎)
Dựa công thức này để tìm ra tất cả mention xuất hiện trong query.
Để xác định xác suất để mention trong a ám chỉ tới entity X, những cái cần
cân nhắc tới bao gồm:
o Tập các anchor xung quanh khác (tận dụng topic để giải quyết mập
mờ)
o Các entity liên quan đến các anchor xung quanh.
(X) Tìm hiểu thêm Ref.C23.3.1
- Neural Graph-based Linking (X) Ref.C23.3.2
(X) Tìm hiểu cách thiết kế kiến trúc
30.4. Cách đánh giá
30.5. Ghi chú

30.6. Tham khảo


72
NLP Notes – Kikai Tech

31. Dialogue System


31.1. Mô tả
Dialogue System là hệ thống giao tiếp với người dùng bằng việc sử dụng ngôn
ngữ tự nhiên (như con người giao tiếp với con người).
Có thể phân loại dialogue system thành hai loại sau:
- Task-oriented dialogue agent: giao tiếp với người dùng để hoàn thành
một tác vụ nào đó
- Chatbots: chat với người dùng (cuộc hội thoại không có cấu trúc và tự
nhiên).
31.2. Cơ sở
- Tìm hiểu tính chất của Human Conversation: Ref.C24.1
- Tìm hiểu các nguyên lý thiết kế Dialogue System Ref.C24.6
31.3. Thách thức
- Vấn đề lạm dụng người dùng (thông tin cá nhân)
- Vấn đề cường điệu hóa bias/ học hate speech trong dữ liệu huấn luyện
- Phòng tránh trường hợp bị adversarial attack (trường hợp hệ thống
dùng hội thoại với người dùng làm dữ liệu huấn luyện luôn)
→ Cần nghiên cứu các phương pháp kiểm tra độ bias của hệ thống; các
phương pháp giúp debias hệ thống (làm sao để hệ thống tự phát hiện được
nội dung độc hại); phương pháp che dấu thông tin cá nhân;…
(X) Ref.C24.6.1
31.4. Bài toán con/thành phần
- Task-oriented dialogue agent
- Chatbots
31.5. Cách đánh giá
Chatbot và task-based có cách đánh giá khác nhau.
31.6. Ghi chú
31.7. Tham khảo

73
NLP Notes – Kikai Tech

32. ChatBot
32.1. Mô tả
Chatbot là loại dialogue system đơn giản nhất. Ở đó, hệ thống cần phải biết cách
mở rộng cuộc hội thoại (biết cách tán gẫu với người dùng).
Có hai loại kiến trúc được dùng để xây dựng chatbot:
- Rule-based system: dùng luật để tạo lời nói. ví dụ điển hình là ELIZA và
PARRY
- Corpus-based system: tạo lời nói bằng cách khai thác bộ dữ liệu hội thoại
32.2. Kỹ thuật và phương pháp giải
a. Rule-based chatbots:
Ý tưởng: Thiết kế chatbot trên cơ sở áp dụng các kiến thức về tâm lý học liên
quan đến hội thoại.
Ở đây xét kiến trúc của một chatbot nổi tiếng: ELIZA
ELIZA được thiết kế theo một kiểu người rất thích hỏi han, biết hỏi những cái
người khác muốn được hỏi.
ELIZA được xây dựng trên một tập luật (theo kiểu: người dùng nói có cấu trúc
như thế này -> nên hỏi như thế này)
Để xác định xem cần áp dụng rule nào:
- Mỗi rule/pattern trong ELIZA được liên kết với một keyword, khi đó, một
câu nói của user có tạo câu trả lời từ nhiều rule
- Để chọn rule, thì mỗi keyword phải được xếp hạng, và sẽ chọn rule của
keyword có hạng cao hơn
- Trường hợp trong câu nói của user không có keyword nào, ELIZA xử lý
nó bẳng memory tricks (lưu những cái liên quan đến user đã đề cập trước
đó, đến khi cần thì yêu cầu user nói nhiều hơn về cái đó – chuyển hướng
cuộc nói chuyện)
Có thể cải tiến Rule-based chatbots bằng cách bổ sung vào đó thành phần tạo ra
trạng thái cảm xúc cho bot. (PARRY).
b. Corpus-based chatbots

74
NLP Notes – Kikai Tech

Nguồn dữ liệu để sử dụng cho chatbot rất đa dạng:


- Một cố corpus hội thoại chuyên dùng để huấn luyện. (+)
- Dữ liệu để huấn luyện chatbot thường sẽ phải rất lớn, do đó, có thể thực
hiện pretrain model dựa trên các đoạn trò chuyện trên social platform.
- Ngoài ra, có thể tận dụng các nguồn tri thức khác như Wiki, news
- Khi ứng dụng thực tế, có thể tận dụng luôn những câu trả lời của người
dùng làm dữ liệu (cần phải biết loại bỏ những thông tin mang tính riêng
tư).
Corpus-base chatbot có hai cách để tạo câu trả lời: retrieval hoặc generation
- Trả lời bằng retrieval: sử dụng các kỹ thuật retrieval (coi lượt nói trước đó
của user là query, và tập các lượt nói trong corpus là văn bản cần chọn)
Nên chú trọng trích rút nhiều context nhất có thể, hoặc tận dụng thông tin
về user, sentiment,… (X) Ref.C24.2.2
- Trả lời bằng generation: sử dụng encoder-decoder model
(*) một số kỹ thuật tăng tính đa dạng cho output của encoder-decoder
model:
o Sử dụng diversity-enhance version của beam search (Ref.P503)
o Sử dụng diversity-focused training objective (Ref.P503)
o Thêm các ràng buộc về độ dài cho output (Ref.P503)
o …
Ngoài ra, có thể fine-tune pretrained Language Model trên các corpus hội
thoại để nó sinh ra câu trả lời
Để chatbot có khả năng sinh ra câu trả lời gắn với nhiều lượt nói khác nhau,
có thể sử dụng chiến lược huấn luyện reinforcement learning, hay
adversial network.
- Trả lời bằng kết hợp retrieving và refining:
Kết hợp các nguồn tri thức vào chatbot bằng cách chọn câu trả lời trực tiếp
từ knowledge source.
Tìm hiểu thêm kỹ thuật query expansion từ user turn (X)
Huấn luyện encoder-decoder với dữ liệu là cặp (user’s turn – đoạn text liên
quan với turn đó lấy từ Wiki)
c. Hybrid architecture

75
NLP Notes – Kikai Tech

Ví dụ một hệ thống hybrid bao gồm các thành phần sau


- NLP pipeline: Entity Linking (xác định vđ đang đề cập), User Intent
Classification (xem user đã muốn thay đổi topic chưa), Dialogue Act
Classification (xác định user đang hỏi/kể/khẳng định).
- Một tập các generators là các language models, huấn luện trên các dataset
khác nhau
- Một tập các generator là rule-based models
- Một ranker dùng để chọn response
32.3. Cách đánh giá
Đánh giá bởi con người:
- Sau khi chat với bot, cho họ thực hiện làm bài đánh giá.
- Cho họ đọc đoạn hội thoại của bot rồi đánh giá
(X) Tìm hiểu các khía cạnh để đánh giá
Chưa có metric nào thuyết phục nào được sử dụng để đánh giá chatbot.
(*) Chiến thuật đánh giá hay: Ngoài ra, có thể đánh giá tự động bằng cách xây
dựng một “Turing-like” evaluator classifier để phân biệt chat bởi người và
chat bởi bot. Nếu bot có thể lừa được evaluator này thì bot càng tốt. Chiến thuật
này có tên gọi chung là adversarial evaluation.
32.4. Ghi chú
32.5. Tham khảo

33. Task-based Dialogue System


33.1. Mô tả
Task-based Dialogue System là hệ thống giao tiếp với người dùng với mục đích
giúp người dùng giải quyết một tác vụ nào đó.
Ở đây sẽ tìm hiểu hai kiến trúc của task-based dialogue system: GUS
architecture và Dialogue State architecture.
Các hệ thống task-based đều hoạt động dựa trên frames. Frame là một cấu trúc
gồm những trường nội dung (slot) có filler là thông tin mà hệ thống cần trích rút
từ câu trả lời của người dùng. Filler của mỗi slot thường sẽ có giới hạn về nghĩa
(phải thuộc loại nào đó).

76
NLP Notes – Kikai Tech

Một đoạn hội thoại có thể liên quan đến nhiều frames. Tập các frame trong đoạn
hội thoại được gọi là domain ontology.
Mục đích của các hệ thống làm việc dựa vào frame là: tìm filler trong lời nói của
người dùng, điền nó vào slot, thực hiện hành động phục vụ người dùng khi đã có
đủ thông tin, trả lại kết quả cho người dùng.
33.2. Các kiến trúc
a. GUS architecture
- Cấu trúc điều khiển (chiến thuật điền slot)
Trong kiến trúc GUS, có tập các condition-action rule gắn vào slots. (dạng:
Nếu user đề cập thông tin của slot này thì,…). Giúp giải quyết được vấn đề
một câu trả lời chứa nhiều thông tin để điền vào nhiều slot. (?)
Do đoạn hội thoại có thể chứa nhiều frame (vd: hội thoại với mục đích đặt
phòng khách sạn có các frame: frame hỏi đường, frame hỏi giá cả,…), nên hệ
thống cần xác định thông tin người dùng cung cấp đang ở frame nào và sau
đó thực hiện chuyển hướng sang frame đó.
→ GUS xây dựng trên cơ sở production rule (dựa vào lượt nói hiện tại của
user và lịch sử hội thoại trước đó để chọn frame) (?)
- NLU (Natural Language Understanding) component
Mục tiêu của NLU component là trích rút 3 thứ sau từ các lượt nói của user:
domain, intent và filler. Mối thứ tương ứng với một tác vụ mà component này
phải giải quyết:
o Domain classification: xác định domain (1-n classification)
o Intent determination: Xác định kết quả user muốn nhận được
o Slot Filling: trích rút slot, filler từ lời nói của user (GUS dùng rules
thiết kế theo kiểu Context-Free Grammar) và chuẩn hóa filler
Một số hệ thống hiện đại hơn sử dụng các thuật toán ML cho task
này.
- ASR (Automatic Speech Recognition) component:
Kết quả tạo ra bởi ASR có thể độc lập hoặc phụ thuộc vào dialogue state
(Thường nên để phụ thuộc).
- NLG (Natural Language Generation) component:

77
NLP Notes – Kikai Tech

Với frame-based system, thường sẽ sinh lời nói dựa vào mẫu đã được thiết kế
sẵn (template-based generation).
(*) Cần tìm hiểu những pattern thường thấy khi nói chuyện, ví dụ như: xác
nhận đã tiếp nhận được thông tin (Okay, Uhm,…)
GUS architecture (đặc biệt là cách thiết kế luật) được sử dụng rất nhiều trong
những ứng dụng có domain hẹp và có sẵn chuyên gia.
b. Dialogue State Architecture
- Tổng quan:
Kiến trúc này bao gồm 6 thành phần sau:
o Automatic Speech Recognition (ASR)
o Spoken Language Understanding (SLU): dùng ML algorithm thay
vì dùng rules
o Dialog State Tracker (DST): Quản lý trạng thái hiện tại của chatbot
(những cái đã nói, những thông tin đã tiếp nhận, biểu diễn frame,
các filler,.. )
o Dialog Policy: Xác định hệ thống cần làm gì tiếp theo (trả lời, hỏi,
gợi ý, xác nhận lại,…)
o Natural Language Generation (NLG)
o Text to Speech (TTS)

78
NLP Notes – Kikai Tech

- Spoken Language Understanding:


Kiểu kiến trúc này coi mỗi lượt nói trong đoạn hội thoại đều có một chức
năng. Chức năng đó gọi là dialogue act của lượt nói. Mỗi hệ thống xử lý một
nghiệp vụ nào đó cần được định nghĩa một tập các dialogue act riêng.
Mỗi dialogue act của một lượt nói sẽ được gắn với các slot fillers cung cấp
trong lượt nói đó.
SLU có thể sử dụng sequence model để xác định fillers, sử dụng sentence
representation để xác định intent và domain.
Các slot filler tìm được từ sequence model sau đó cần phải được chuẩn hóa.
Có thể chuẩn hóa bằng cách homonym dictionary.(X)
(*) Có thể tận dụng rules để bootstrap, huấn luyện mô hình theo kiểu semi-
supervised

79
NLP Notes – Kikai Tech

- Dialogue State Tracking (DST):


Nhiệm vụ của thành phần này là xác định trạng thái hiện tại của frame. Để xác
định được, tại mỗi lượt nói, hệ thống này sẽ tìm ra dialogue act (chức năng và
fillers) của nó.
Việc xác định chức năng được thực hiện bởi supervised classifier.
Slot fillers có thể sử dụng sequence model, reading comprehension
architecture (phức tạp hơn)… Hoặc dùng classifier xem giá trị của slot có bị
thay đổi trong lượt nói hiện tại không, nếu có thì thực hiện span detection.
Cần có khả năng nhận biết dialogue act đặc biệt, mà ở đó user thực hiện đính
chính ý họ vừa nói ra (user correction act). (X) Tìm hiểu đặc điểm của loại
này Ref.P512
- Dialogue Policy
Xác định hành động mà hệ thống phải làm tiếp theo (lượt nói tiếp theo có chức
năng gì).
Bài toán mà thành phần này phải giải quyết có dạng sau:
o Đầu vào: Trạng thái hiện tại của frame (𝐹𝑟𝑎𝑚𝑒𝑖−1), dialogue act
của lượt nói ngay trước đó của user 𝑈𝑖−1 và hệ thống 𝐴𝑖−1.
o Đầu ra: một dialogue act
Có thể giải quyết bài toán này bằng một neural classifier.

80
NLP Notes – Kikai Tech

Hoặc phức tạp hơn là huấn luyện theo kiểu reinforcement learning. (X) Tìm
hiểu thêm về cái này
(*) Reinforcement Learning:
Hệ thống sẽ nhận được phần thưởng (positive hoặc negative) tại cuối mỗi cuộc
hội thoại. Và nó sẽ căn cứ vào phần thưởng nhận được này để huấn luyện
dialogue policy.
Chú ý các trường hợp hệ thống cần phải từ chối / xác nhận lại những thông
tin nhận được. (X) Tìm hiểu những chiến thuật từ chối, xác nhận lại để không
bị gượng gạo Ref.P514
- Natural Language Generation:
Tạo nội dung phản hồi lại cho người dùng, hay còn gọi là quá trình Sentence
Realization.
Đầu vào của thành phần này là một dialog act, các slot và filler cần thiết
(những cái này đã được xác định nhờ dialogue policy).
Vd:

Tuy nhiên, dữ liệu để huấn luyện NLG không thể là cặp giống như input-
output như trên. Mà thường sẽ phải thực hiện quá trình delexicalization nhãn
đầu ra thành như thế này:

Mô hình cho NLG thường là encoder-decoder model.


Chú ý: một số dialogue act đặc biệt cần có thuật toán xử lý riêng (vd:
clarification question) sao cho đảm bảo tự nhiên nhất có thể.
Những ứng dụng thương mại hiện tại chủ yếu là GUS kết hợp với dialogue-state
component. Còn Dialogue State mới chỉ được tập trung ở trong lab nghiên cứu.
33.3. Cách đánh giá
81
NLP Notes – Kikai Tech

Ngoài cách sử dụng người đánh giá sau khi trải nghiệm, còn có một số thông số
để đánh giá sau:
- Slot Error Rate, Slote Precision/Recall/F-score, Task Error Rate
𝑁𝑢𝑚 𝑜𝑓 𝐼𝑛𝑠𝑒𝑟𝑡𝑒𝑑/𝑑𝑒𝑙𝑒𝑡𝑒𝑑/𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑒𝑑 𝑠𝑙𝑜𝑡𝑠
𝑆𝑙𝑜𝑡 𝐸𝑟𝑟𝑜𝑟 𝑅𝑎𝑡𝑒 𝑓𝑜𝑟 𝑎 𝑆𝑒𝑛𝑡𝑒𝑛𝑐𝑒 =
𝑁𝑢𝑚 𝑜𝑓 𝑟𝑒𝑓𝑒𝑟𝑒𝑛𝑐𝑒 𝑠𝑙𝑜𝑡𝑠

- Efficiency cost: thời gian xử lý, tỉ lệ lượt nói dùng để đính chính lại của
cả user và hệ thống (turn correction ratio)
- Quality cost: các metric đo độ hiểu của hệ thống (tập trung vào ASR) và
tính phù hợp của output hệ thống sinh ra.
33.4. Ghi chú
33.5. Tham khảo

II. Các khái niệm


III. Các vấn đề cơ bản trong học máy
1. Evaluation
(X)
Có hai loại đánh giá: extrinsic evaluation và intrinsic evaluation
- Với extrinsic evaluation: đánh giá hiệu quả LM dự vào hiệu quả mà nó đem lại khi mà ứng
dụng vào một hệ thống end-to-end
- Với intrinsic evaluation: sử dụng metric để đo hiệu quả mô hình
o Ở đây cần sử dụng test set. Huấn luyện trên tập train và đánh giá trên tập test. Tập
test phải tách rời khỏi tập train, vì vậy còn gọi là held out corpora.
o Ngoài ra cần có một test set (ngầm tune theo đặc điểm của test set này, thường là
dùng để chọn các hyperparameter). Tập này được gọi là devset / val set
o Tỉ lệ chia thường là : 0.8 train, 0.1 dev, 0.1 test

(*) Cần chọn / định nghĩa metric sao cho nó nhạy cảm (sentitive) nhất có thể

2. Statistical Significance Testing


(X)
Ref.C4.9

82
NLP Notes – Kikai Tech

IV. Mô hình/Thuật toán/Kiến trúc chung


1. Neural Network
2. Recurrent Neural Network & Its Variance
Ref.C9.2 & Ref.C9.3

3. Transformers
4. Các neural net cho parsing

Log odds Ratio Informative Dirichlet Prior


(Tìm những từ đại diện có thể giúp phân biệt rõ hai văn bản với nhau)
Ref.C20.5.1
Các kỹ thuật fine-tuning BERT

V. Linguistic
Word
Ref.C6.1

83

You might also like