Xác định bài toán Bài toán phân loại cảm xúc hay thái độ của người dùng qua bình luậncomment trên các trang thương mại điện tử, thế giới di động, … Hay như trongứng dụng chatbot, bài toá
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Giảng viên hướng dẫn: PGS-TS Phạm Văn Hải
Hà Nội, tháng 5 năm 2021
Trang 3I Tóm tắt
Trong những năm gần đây, nhất là khoảng thời gian dịch corona bùng nổ.Lượng người chuyển sang tiêu dùng online ngày một tăng cao Tuy nhiên tiêudùng online có mặt rủi ro khi sản phẩm rao bán khác với sản phẩm thực tế, hay sảnphẩm có thực sự tốt không Vậy nên khi mua hàng, người dùng thường tham khảonhững bình luận của người dùng đã mua hàng trước đó để xem sản phẩm tốt haykhông
Để tiện cho việc đánh giá một sản phẩm, chúng em đánh giá tất cả bình luậncủa người dùng, tổng hợp và đưa ra đánh giá cuối cùng giúp người dùng nhanhchóng có cái nhìn tổng quát về sản phẩm mình quan tâm
1 Xác định bài toán
Bài toán phân loại cảm xúc hay thái độ của người dùng qua bình luận(comment) trên các trang thương mại điện tử, thế giới di động, … Hay như trongứng dụng chatbot, bài toán phân loại văn bản được sử dụng để phát hiện mục đíchcủa người dùng
Chúng em phân loại phản hồi khách hàng thành 3 loại: Tích cực(Positive), Tiêu cực(Negative) và Trung tính(Neutral)
Dựa vào việc phân loại được tự động các bình luận chúng ta có thể đánh giáđược tác động của một sản phẩm, dịch vụ, xu hướng lên khách hàng, cộng đồng làtích cực hay tiêu cực để có những chiến lược kinh doanh phù hợp Các công cụnhư thế kết hợp với các công cụ thu thập dữ liệu tự động từ nhiều nguồn khác nhau(mạng xã hội, báo điện tử, diễn đàn, trang thương mại điện tử…) sẽ tạo lên bộcông cụ điều tra thăm dò cực kỳ giá trị
BERT sử dụng Transformer là một mô hình attention (attention
mechanism) học mối tương quan giữa các từ (hoặc 1 phần của từ) trong một văn
Trang 4bản Transformer gồm có 2 phần chính: Encoder và Decoder, encoder thực hiệnđọc dữ liệu đầu vào và decoder đưa ra dự đoán Ở đây, BERT chỉ sử dụngEncoder.
Khác với các mô hình directional (các mô hình chỉ đọc dữ liệu theo 1 chiềuduy nhất - trái→phải, phải→ trái) đọc dữ liệu theo dạng tuần tự, Encoder đọc toàn
bộ dữ liệu trong 1 lần, việc này làm cho BERT có khả năng huấn luyện dữ liệutheo cả hai chiều, qua đó mô hình có thể học được ngữ cảnh (context) của từ tốthơn bằng cách sử dụng những từ xung quanh nó (phải & trái)
Hình trên mô tả nguyên lý hoạt động của Encoder Theo đó, input đầu vào làmột chuỗi các token w1, w2, được biểu diễn thành chuỗi các vector trước khiđưa vào trong mạng neural Output của mô hình là chuỗi các vector có kích thướcđúng bằng kích thước input Trong khi huấn luyện mô hình, một thách thức gặpphải là các mô hình directional truyền thống gặp giới hạn khi học ngữ cảnh của từ
Để khắc phục nhược điểm của các mô hình cũ, BERT sử dụng 2 chiến lượctraining như sau:
a.Masked LM (MLM)
Trước khi đưa vào BERT, thì 15% số từ trong chuỗi được thay thế bởi token
[MASK], khi đó mô hình sẽ dự đoán từ được thay thế bởi [MASK] với context là
các từ không bị thay thế bởi [MASK] Mask LM gồm các bước xử lý sau :
-Thêm một classification layer với input là output của Encoder
Trang 5-Nhân các vector đầu ra với ma trận embedding để đưa chúng về không gian
từ vựng (vocabulary dimensional)
-Tính toán xác suất của mỗi từ trong tập từ vựng sử dụng hàm softmax
Hàm lỗi (loss function) của BERT chỉ tập trung vào đánh giá các từ được
đánh dấu [MASKED] mà bỏ qua những từ còn lại, do đó mô hình hội tụ chậm hơn
so với các mô hình directional, nhưng chính điều này giúp cho mô hình hiểu ngữcảnh tốt hơn.(Trên thực tế, con số 15% không phải là cố định mà có thể thay đổitheo mục đích của bài toán.)
Trong chiến lược này, thì mô hình sử dụng một cặp câu là dữ liệu đầu vào
và dự đoán câu thứ 2 là câu tiếp theo của câu thứ 1 hay không Trong quá trìnhhuấn luyện, 50% lượng dữ liệu đầu vào là cặp câu trong đó câu thứ 2 thực sự làcâu tiếp theo của câu thứ 1, 50% còn lại thì câu thứ 2 được chọn ngẫu nhiên từ tập
dữ liệu Một số nguyên tắc được đưa ra khi xử lý dữ liệu như sau:
-Chèn token [CLS] vào trước câu đầu tiên và [SEP] vào cuối mỗi câu.
-Các token trong từng câu được đánh dấu là A hoặc B
-Chèn thêm vector embedding biểu diễn vị trí của token trong câu (chi tiết
về vector embedding này có thể tìm thấy trong bài báo về Transformer)
Positional embeddings: vị trí token trong câu, tối đa 512 tokens
Token embeddings: các token của xâu đầu vào Token đầu tiên là [CLS].Token kết thúc câu là [SEP] Trong task phân loại, đầu ra của Transformer (hiddenstate cuối cùng) ứng với token này là giá trị phân loại
Segment embeddings: phân biệt 2 câu trong trường hợp đầu vào là cặp câu,câu A là các giá trị 0, câu B là các giá trị 1
Các bước xử lý trong Next Sentence Prediction:
Trang 6-Toàn bộ câu đầu vào được đưa vào Transformer.
-Chuyển vector output của [CLS] về kích thước 2x1 bằng một
classification layer
-Tính toán xác suất IsNextSequence bằng softmax.
2 Một số mô hình sử dụng BERT
- Mô hình trên bên trái: Áp dụng bài toán phân loại cặp câu
- Mô hình trên bên phải: Áp dụng bài toán phân loại câu, câu hỏi, phân loại cảm xúc
- Mô hình dưới bên trái: Áp dụng bài toán hỏi - đáp
- Mô hình dưới bên phải: Áp dụng bài toán gán nhãn
Trang 7III Giới thiệu về phương pháp PhoBERT
Kiến trúc PhoBERT như một mạng xương sống với một số sửa đổi Đầu racủa mỗi khối Transformer thể hiện một mức ngữ nghĩa khác nhau cho các đầu vào.Trong các thử nghiệm của mình, chúng em sử dụng các kết hợp đầu ra khác nhaucủa các khối Transformer đó Mô hình kiến trúc chung được thể hiện trong Hình 1.Các tính năng được kết hợp trên các đầu ra của nhiều khối biến áp bằng cách ghéphoặc thêm vào được đưa vào đầu phân loại Đầu phân loại đơn giản là một mạngđược bảo vệ hoàn toàn không có các lớp ẩn
Trang 8Hơn nữa, để một mô hình lớn như vậy được đào tạo thành công mà khôngquên việc khởi tạo tốt của nó (do gradient giảm dần quá xa so với nó) hoặc khônghội tụ (do các mô hình sâu không tốt trong việc lan truyền qua các lớp xa hơn),chúng em sẽ khởi động sơ đồ lập kế hoạch tỷ lệ học tập Bắt nguồn từ báo cáo [15]dưới tên "tỷ lệ học tập hình tam giác nghiêng".
Mục đích chính của phương pháp này là làm cho mô hình hội tụ nhanh hơncho một vùng thích hợp của không gian tham số trong quá trình bắt đầu đào tạo.Cho n thuộc tính X1, X2, …, Xn với bộ trọng số {w1,w2,…,wn }, cho mphương án A1,A2,…, Am
2.Chiến lược tối ưu hóa:
Cố định hoặc không Cố định: Mỗi lớp trong mạng RoBERTa nắm bắt cácmức ngữ cảnh khác nhau Cụ thể, các lớp thấp hơn tạo ra các bản nhúng toàn cụccho các từ trong khi các bản nhúng từ các lớp trên thì không cụ thể hơn chúng emmuốn bảo vệ toàn bộ kiến thức trong khi điều chỉnh các biểu diễn ngữ cảnh cho
mô hình phân loại của chúng em
Trang 9Trong một vài kỷ nguyên đầu tiên, chúng em chỉ giữ lại các lớp được kết nốiđầy đủ chịu trách nhiệm phân loại chuỗi văn bản và phần RoBERTa bị đóng băng.Điều này cho phép mô hình tìm hiểu một quyết định phù hợp cho nhiệm vụ Saucác kỷ nguyên này, chúng em giải phóng tất cả các lớp và đặt tốc độ học tập khácnhau cho các lớp khác nhau: lớp càng sâu, tỷ lệ học tập càng tăng Điều này ngăn
mô hình quên ý nghĩa toàn cục hữu ích của các từ trong khi buộc nó phải học ngữcảnh của miền
3.Làm mịn nhãn:
Để một mô hình lớn như vậy phù hợp với một tập dữ liệu tương đối nhỏ, môhình có xu hướng trở nên mất tự tin về hiệu suất của nó, đi đến mặt tối của việctrang bị quá nhiều Để tránh điều này, chúng em sử dụng tính năng làm mịn nhãn,làm mềm các nhãn trung thực một mặt đất nóng của chúng em Cụ thể, đối với môhình xác suất đầu ra yk của K lớp, thay vì gắn nhãn sự thật cơ bản của chúng tabằng mã hóa một nóng:
Chúng em cân bằng lại một chút phân phối mục tiêu để nó trở nên ít bị "phânquyền" hơn bằng cách làm mịn các xác suất với,
Đối với một số tham số làm mịn α Kết quả là, kỹ thuật này dạy cho mô hình
có một số sự không chắc chắn trong các dự đoán của nó và giảm mức độ nghiêmtrọng của việc trang bị quá mức Hơn nữa, vì chúng em đang điều chỉnh trên một
mô hình được đào tạo trước, vectơ xác suất đầu ra ban đầu của mô hình gần vớimột điểm nóng Điều này dẫn đến sự không ổn định về số nếu nhãn thực mới cũng
là một nóng, vì với entropy chéo là hàm mất mát, tổn thất sẽ trở thành 1 log 0 =
−∞ Do đó, đang được sử dụng ở đây, làm mịn nhãn đóng vai trò như một nhiễuloạn nhỏ trong phương pháp số của chúng em, làm cho quá trình đào tạo ổn địnhhơn, giúp mô hình của chúng em hội tụ tốt hơn
Trang 10IV SVM
Support Vector Machines (SVM) là kỹ thuật mới đối với việc phân lớp dữ liệu, là phương pháp học sử dụng không gian giả thuyết các hàm tuyến tính trên không gian đặc trưng nhiều chiều, dựa trên lý thuyết tối ưu và lý thuyết thống kê.
Trong kỹ thuật SVM không gian dữ liệu nhập ban đầu sẽ được ánh xạ vào không gian đặc trưng và trong không gian đặc trưng này mặt siêu phẳng phân chia tối ưu sẽ được xác định.
Ta có tập S gồm e các mẫu học
S = {(x1,y1), (x2,y2), (x3,y3)… ( xe,ye)}⊆ (X×Y)e
với một vectơ đầu vào n chiều x i ∈ Rn thuộc lớp I hoặc lớp II (tương ứng
nhãn y i = 1 đối với lớp I v à y i = - 1 đối với lớp II) Một tập mẫu học được
gọi là tầm thường nếu tất cả các nhãn là bằng nhau.
Đối với các dữ liệu phân chia tuyển tính, chúng ta có thể xác định được siêu
phẳng f(x) mà nó có thể chia tập dữ liệu Khí đó, với mỗi siêu phẳng nhận được ta có: f(x)≥ 0 nếu đầu vào x thuộc lớp dương, và f(x)< 0 nếu x thuộc lớp âm
Trang 11Siêu phẳng có khoảng cách với dữ liệu gần nhất là lớn nhất (tức có biênlớn nhất) được gọi là siêu phẳng tối ưu.
Mục đích đặt ra ở đây là tìm được một ngưỡng (w,b) phân chia tập mẫuvào các lớp có nhãn 1 (lớp I) và -1 (lớp II) nêu ở trên với khoảng cách là lớnnhất
1 Trình bày tóm tắt về phân lớp dữ liệu
- Phân lớp dữ liệu là một kỹ thuật trong khai phá dữ liệu được sử dụng rộng
rãi nhất và được nghiên cứu mở rộng hiện nay.
- Mục đích: Để dự đoán những nhãn phân lớp cho các bộ dữ liệu hoặc mẫu mới.
Trang 12Đầu vào: Một tập các mẫu dữ liệu huấn luyện,với một nhãn phân lớp
cho mỗi mẫu dữ liệu Đầu ra: Bộ phân lớp dựa trên tập huấn luyện,hoặc những nhãn phân lớp
Phân lớp dữ liệu dựa trên tập huấn luyện và các giá trị trong một thuộc tính phân lớp và dùng nó để xác định lớp cho dữ liệu mới
Kỹ thuật phân lớp dữ liệu được tiến hành bao gồm 2 bước:
Bước 1: Xây dựng mô hình từ tập huấn luyện
Bước 2: Sử dụng mô hình – kiểm tra tính đúng đắn của mô hình và dùng
nó để phân lớp dữ liệu mới.
Bước 1 Xây dựng mô hình
- Mỗi bộ/mẫu dữ liệu đƣợc phân vào một lớp đƣợc xác định trước.
- Lớp của một bộ/mẫu dữ liệu được xác định bởi thuộc tính gán
- Phân lớp cho những đối tượng mới hoặc chưa được phân lớp
- Đánh giá độ chính xác của mô hình
Lớp biết trước của một mẫu/bộ dữ liệu đem kiểm tra được so sánh với kết quả thu được từ mô hình.
Tỉ lệ chính xác bằng phần trăm các mẫu/bộ dữ liệu được phân lớp đúng bởi mô hình trong số các lần kiểm tra
Trang 13Hình 2: Sử dụng mô hình
2 Thuật toán SMV
2.1 Giới thiệu
Bài toán phân lớp (Classification) và dự đoán (Prediction) là hai bài toán cơ
bản và có rất nhiều ứng dụng trong tất cả các lĩnh vực như: học máy, nhận dạng, trí tuệ nhân tạo, v.v Trong khóa luận này, chúng em sẽ đi sâu nghiên cứu phương pháp Support Vector Machines (SVM), một phương pháp rất hiệu quả hiện nay.
Phương pháp SVM được coi là công cụ mạnh cho những bài toán phân lớp phi tuyến tính được các tác giả Vapnik và Chervonenkis phát triển mạnh mẽ năm
1995 Phương pháp này thực hiện phân lớp dựa trên nguyên lý Cực tiểu hóa Rủi ro
có Cấu trúc SRM (Structural Risk Minimization), được xem là một trong các
phương pháp phân lớp giám sát không tham số tinh vi nhất cho đến nay Các hàm công cụ đa dạng của SVM cho phép tạo không gian chuyên đổi để xây dựng mặt phẳng phân lớp
Trang 14Cho trước một tập huấn luyện, đươcc biểu diễn trong không gian vector, trong đó mỗi tài liệu là một điểm, phương pháp này tìm ra một siêu phẳng quyết định tốt nhất có thể chia các điểm trên không gian này thành hai lớp riêng biệt tương ứng là lớp + và lớp - Chất lượng của siêu phẳng này được quyết định bởi khoảng cách (gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này Khi
đó, khoảng cách biên càng lớn thì mặt phẳng quyết định càng tốt, đồng thời việc phân loại càng chính xác.
Mục đích của phương pháp SVM là tìm đƣợc khoảng cách biên lớn nhất, điều này được minh họa như sau:
Hình 3: Siêu phẳng phân chia dữ liệu học thành 2 lớp + và - với khoảng cách biên lớn nhất Các điểm gần nhất (điểm được khoanh tròn) là các Support Vector.
2.4 Nội dung phương pháp
2.4.1 Cơ sở lý thuyết
SVM thực chất là một bài toán tối ưu, mục tiêu của thuật toán này là tìmđược một không gian F và siêu phẳng quyết định f trên F sao cho sai số phânloại là thấp nhất
Cho tập mâu (x1, y1), (x2, y2), … (xf, y f ) } với ∈ Rn , thuộc vào hai lớpnhãn: yi ∈ {-1,1} là nhãn lớp tương ứng của các xi (-1 biểu thị lớp I, 1 biểu thịlớp II)
Ta có, phương trình siêu phẳng chứa vectơ ⃗x i trong không gian:
⃗
x i ⃗w i + b = 0
Đặt f( ⃗X i) = sign( ⃗X i ⃗ W i+b) = {+1, ⃗X i ⃗ W i+b>0
−1, ⃗X i ⃗ W i+b< 0
Trang 15Như vậy, f( ⃗X i) biểu diễn sự phân lớp của ⃗X i)vào hai lớp như đã nêu Ta nói
y i =+1 nếu ⃗X i€ lớp I và y i = -1 nếu ⃗X i€ lớp II Khi đó, để có siêu phẳng f ta sẽ phải giải bài toán sau:
Tìm min ‖⃗w´‖ với W thỏa mãn điều kiện sau:
y i (sin( ⃗X i ⃗ W i+b))≥1 với ∀ i∈⃗ 1 , n
Bài toán SVM có thể giải bằng kỹ thuật sử dụng toán tử Lagrange để biến đổi
về thành dạng đẳng thức Một đặc điểm thú vị của SVM là mặt phẳng quyết định chỉ phụ thuộc các Support Vector và nó có khoảng cách đến mặt phẳng quyết
định là 1/ ‖⃗w´‖ Cho dù các điểm khác bị xóa đi thì thuật toán vẫn cho kết quả giống
như ban đầu Đây chính là điểm nổi bật của phương pháp SVM so với các phương pháp khác vì tất cả các dữ liệu trong tập huấn luyện đều được đùng để tối ưu hóa kết quả.
TÓM LẠI: trong trường hợp nhị phân phân tách tuyến tính, việc phân lớp
đƣợc thực hiện qua hàm quyết định f(x) = sign(<w.x> + b), hàm này thu được bằng việc thay đổi vectơ chuẩn w, đây là vectơ để cực đại hóa viền chức năng
Việc mở rộng SVM để phân đa lớp hiện nay vẫn đang được đầu từ nghiên cứu Có một phương pháp tiếp cận để giải quyết vấn để này là xây dựng và kết hợp nhiều bộ phân lớp nhị phân SVM (Chẳng hạn: trong quá trình luyện với SVM, bài toán phân m lớp có thể được biến đổi thành bài toán phân 2*m lớp, khi đó trong mỗi hai lớp, hàm quyết định sẽ được xác định cho khả năng tổng quát hóa tối đa) Trong
phương pháp này có thể đề cập tới hai cách là một-đổi-một, một-đối-tất cả
2.4.2 Bài toán phân 2 lớp với SVM
Bài toán đặt ra là: Xác định hàm phân lớp để phân lớp các mẫu trong tương lai, nghĩa là với một mẫu dữ liệu mới x i thì cần phải xác định x i được phân vào lớp +1 hay lớp -1
Để xác định hàm phân lớp dựa trên phương pháp SVM, ta sẽ tiến hành tìm
hai siêu phẳng song song sao cho khoảng cách y giữa chúng là lớn nhất có thể để
phân tách hai lớp này ra làm hai phía Hàm phân tách tương ứng với phương trình siêu phẳng nằm giữa hai siêu phẳng tìm được
Trang 16Hình 6: Minh họa bài toán 2 phân lớp bằng phương pháp SVM
Các điểm mà nằm trên hai siêu phẳng phân tách được gọi là các Support Vector Các điểm này sẽ quyết định đến hàm phân tách dữ liệu
2.4.3 Bài toán nhiều phân lớp với SVM
Để phân nhiều lớp thì kỹ thuật SVM nguyên thủy sẽ chia không gian dữ liệu thành 2 phần và quá trình này lặp lại nhiều lần Khi đó hàm quyết định phân dữ liệu vào lớp thứ i của tập n , 2-Iớp sẽ là:
đối-Giả sử bài toán cần phân loại có k lớp (k > 2), chiến lược "một-đối-một”sẽ
tiến hành k(k-l)/2 lần phân lớp nhị phân sử dụng phương pháp SVM Mỗi lớp sẽ tiến hành phân tách với k-1 lớp còn lại để xác định k-1 hàm phân tách dựa vào bài toán phân hai lớp bằng phương pháp SVM.
2.4.4 Các bước chính của phương pháp SVM
Phương pháp SVM yêu cầu dữ liệu được diễn tả như các vector của các số thực Như vậy nếu đầu vào chưa phải là số thì ta cần phải tìm cách chuyển chúng về dạng số của SVM