3.2 Các đặc trưng của mơ hình 3.2.1 Word2vec 3.2.1 Word2vec
Để có thể xử lý được văn bản bằng các mơ hình Deep Learning đã nêu ở trên, ta phải tìm cách biểu diễn được các từ trong một văn bản thành một dạng vector và từ đó thực hiện những phép tính tốn trên những vector đó. Một trong những phương pháp phổ biến nhất đối với các mơ hình xử lý ngơn ngữ tự nhiên là word2vec, được giới thiệu lần đầu tiên vào năm 2013 bởi Mikolov và các cộng sự [1]
Word2Vec là 1 trong những mơ hình đầu tiên về Word Embedding sử dụng mạng
neural, vẫn khá phổ biến ở thời điểm hiện tại, có khả năng vector hóa từng từ dựa trên tập các từ chính và các từ văn cảnh... Về mặt tốn học, thực chất Word2Vec là việc ánh xạ từ từ 1 tập các từ (vocabulary) sang 1 không gian vector, mỗi vector được biểu diễn bởi n số thực. Mỗi từ ứng với 1 vector cố định. Sau q trình huấn luyện mơ hình bằng thuật tốn backprobagation, trọng số các vector của từng từ được cập nhật liên tục. Từ đó, ta có thể thực hiện tính tốn bằng các khoảng cách quen thuộc như euclide, cosine, mahattan, ,..., những từ càng "gần" nhau về mặt khoảng cách thường là các từ hay xuất hiện cùng nhau trong văn cảnh, các từ đồng nghĩa, các từ thuộc cùng 1 trường từ vừng, ...
HUẤN LUYỆN MƠ HÌNH
Dữ liệu huấn luyện
Tiền xử lý dữ liệu Huấn luyện mơ hình
Đánh giá kết quả
Lưu mơ hình tốt nhất
Mơ hình
ỨNG DỤNG WEB
Dữ liệu đầu vào Tiền xử lý dữ liệu
Phân tích khía cạnh
Phân tích ý kiến
38
Hình 3. 2: Mơ hình Word2Vec12
Mơ hình Word2Vec là một mơ hình học biểu diễn mỗi từ thành một véc-tơ có các phần tử mang giá trị diễn tả mối quan hệ giữa từ này với từ khác do Mikolov và các cộng sự (2013) đề xuất. Mơ hình Word2Vec có khả năng làm việc với những tập dữ liệu và có hai kiến trúc mạng nơ-ron đơn giản: Mơ hình túi từ liên tục (Continuous Bag-of-Words (CBOW)) và mơ hình Skip-gram.
Ý tưởng của mơ hình CBOW là dự đốn một từ đích dựa trên các ngữ cảnh của nó.
Cho một chuỗi các từ huấn luyện 1, 2,...,T, hàm đối tượng của mơ hình CBOW là hàm trung bình cực đại hóa xác suất như sau:
1
𝑇∑ log 𝑝(𝜔𝑡|𝜔𝑡−𝑘, … , 𝜔𝑡+𝑘)
𝑇−𝑘
𝑡=𝑘
(3.1)
Trong đó: k là kích cỡ của ngữ cảnh. Công việc dự đốn của mơ hình
CBOW được thực hiện thơng qua hàm softmax.
12 https://www.miai.vn/2020/05/22/nlp-series-4-lam-nham-cuoi-tuan-ve-bieu-dien-van-ban-bang-trong-hoc- may-word2vec/
39
log 𝑝(𝜔𝑡|𝜔𝑡−𝑘, … , 𝜔𝑡+𝑘) = 𝑒𝑦𝜔𝑡
∑ 𝑒𝑖 𝑦𝑖 (3.2)
Từng giá trị yi là xác suất-log không xác định cho từng từ đầu ra từ i được tính như sau:
𝑦 = 𝑏 + 𝑈ℎ(𝜔𝑡−𝑘, … , 𝜔𝑡+𝑘; 𝑊) (3.3)
với U và b là tham số của hàm softmax, h được tính bằng cách lấy giá trị
trung bình hoặc nối kết hợp của các véc-tơ được trích xuất từ ma trận W.
Skip-gram là mơ hình có kiến trúc đối lập với kiến trúc của mơ hình CBOW. Skipgram học các véc-tơ từ dựa trên giả thiết: một từ có thể sinh ra được các từ khác thuộc ngữ cảnh của nó. Hàm đối tượng của mơ hình Skip-gram là hàm trung bình cực đại hóa xác suất như sau:
1 𝑇∑ ∑ log 𝑝(𝜔𝑡+𝑗|𝜔𝑡) −𝑘≤𝑗≤𝑘,𝑗≠0 𝑇−𝑘 𝑡=𝑘 (3.4) Trong đó: k là kích cỡ của ngữ cảnh.
Sử dụng lợi thế của Word2Vec giúp thể hiện được sự tương quan giữa các từ trong túi từ vựng, hỗ trợ rất tốt trong việc phân tích khía cạnh cũng như ý kiến về khía cạnh của câu bình luận. Ví dụ: Các từ tương đồng sẽ có khoảng cách gần nhau như: “nhà_hàng” gần “thức_ăn”, “dịch_vụ” sẽ gần với “phục_vụ”, “giá” gần với “rẻ” hay “đồ_ăn” gần với “ngon”…
3.2.2 Mơ hình CNN
Mạng tích chập CNN đã được nghiên cứu áp dụng trong các bài tốn Xử lý Ngơn ngữ Tự nhiên và đạt hiệu quả trên một số bộ dữ liệu. Vì thế, trong đề tài này, tơi cũng nghiên cứu áp dụng mơ hình CNN được đề xuất bởi tác giả Yoon Kim [11] để phát hiện ra các loại khía cạnh và trạng thái ý kiến. Hình 3.3 mơ tả kiến trúc của mơ hình CNN được áp dụng để dự đốn ra loại khía cạnh và trạng thái ý kiến của loại khía cạnh. Mơ hình gồm các thành phần chính như sau: Lớp đầu vào (Input), Lớp nhúng từ (Word embedding), Lớp tích chập (Convolutional), Lớp Pooling, Lớp phân loại (Fully connected) và lớp đầu ra (Output). Mỗi lớp có chức năng như sau:
40
Lớp đầu vào: Mỗi bình luận sau khi qua bước tiền xử lý sẽ được biểu diễn thành
các vector số với chiều dài cố định, ở đây, chúng tơi sử dụng bình luận dài nhất là chiều của vectơ cố định. Các bình luận khơng đủ độ dài sẽ được tự động thêm giá trị <PAD>.
Lớp nhúng từ: Để rút trích ra các vector cho mỗi từ vựng, chúng tôi sử dụng một
bộ nhúng từ đã được huấn luyện được công bố trên trang Github. Các nghiên cứu trước đây đã chứng minh sử dụng một bộ nhúng từ đã được huấn luyện trong cùng miền dữ liệu sẽ đem lại hiệu quả tốt hơn.
Lớp tích chập: Trong lớp này, chúng tôi áp dụng 128 bộ lọc (filters) với các kích
thước khác nhau qua ma trận của lớp nhúng từ. Cụ thể, kích thước bộ lọc được sử dụng trong lớp này có kích thước là 3,4 và 5.
Lớp Pooling: Ở lớp này, chúng tôi sử dụng sự kết hợp giữa Global Max Pooling và
Global Average Pooling cho mỗi lớp tích chập để rút trích ra các đặc trưng quan trọng của bình luận.
Lớp phân loại: Sau khi rút trích ra các đặc trưng quan trọng của lớp Pooling, chúng
tôi đưa các đặc trưng này qua lớp phân loại với hàm kích hoạt hoạt Relu.
Lớp đầu ra: Mỗi khía cạnh sẽ được biểu diễn thành một one-hot vector có độ dài là
4 giá trị với các thông tin như sau: o Nếu giá trị 1 xuất hiện ở y1 thì bình luận sẽ được khơng được gán loại khía cạnh đang xét. o Nếu giá 1 xuất hiện một trong các vị trí y2 đến y6 thì sẽ loại khía cạnh sẽ được gán cho bình luận kèm theo trạng thái ý kiến của loại khía cạnh tương ứng là rất tích cực, tích cực, trung tính, tiêu cực và rất tiêu cực.
Ví dụ như sau: Loại khía cạnh đang xét là Food#Quality, đầu ra của mơ hình là
vectơ [0,1,0,0] thì sẽ được hiểu là bình luận được gán loại khía cạnh Food#Quality và trạng thái ý kiến là trung tính (positive). Chi tiết cài đặt mơ hình như sau: chiều của vector từ vựng huấn luyện tập tập dữ liệu bình luận nhà hàng là 300 chiều, kích thước của mỗi bộ lọc là 128 cịn kích thước cửa sổ là 3,4,5. Ở lớp phân lớp sử dụng 300 nốt và sử dụng hàm kích hoạt Relu. Thuật tốn tối ưu được sử dụng trong nghiên cứu này là Adam.
41
Hình 3. 3: Mơ hình mạng nơ-ron tích chập CNN13
3.2.3 Mơ hình LSTM
Tương tự như mơ hình CNN, q trình hoạt động của mơ hình LSTM của chúng tơi được thông qua các bước cơ bản sau.
Bước đầu tiên một layer embedding sẽ được thêm mới ngay sau layer input nhằm biến dữ liệu ma trận 2 chiều thành một khối tensor 3 chiều, layer embedding này cho phép biểu diễn mỗi một từ bởi một vector, các phần tử của một vector từ sẽ chính là các tham số cần tối ưu của mơ hình, các từ có nghĩa càng giống nhau thì giá trị khoảng cách của các vectors càng sát nhau.
Tiếp theo chúng tôi xây dựng các lớp cơ bản của mơ hình LSTM, mơ hình này được khởi tạo bởi một bộ word2vec đã được huấn luyện sẵn . Sau đó các node trong mơ hình LSTM sẽ học trên các từ vựng này đưa ra vector biểu diễn cho bình luận đầu vào. Kết quả mơ hình được trình bày như hình 3.2. Số lượng unit của lớp LSTM được chúng tôi chọn là 32. Bên cạnh đó, chúng tơi cũng sử dụng lớp Attention để lựa chọn ra các từ vựng thể hiện các khía cạnh và trạng thái ý kiến một cách hiệu quả hơn. Số lượng unit
42
của lớp Attention cũng là 32. Giá trị dropout được chọn là 0.5 ở lớp đầy đủ và hàm kích hoạt là Relu.
Hình 3. 4: Mơ hình ví dụ thuật tốn LSTM để phân tích ý kiến theo khía cạnh 14
3.2.4 Mơ hình kết hợp CNN-LSTM
Mơ hình học sâu kết hợp giữa các tính năng ưu việt của CNN và LSTM là mục tiêu chúng tôi đang phát triển. Mơ hình này bao gồm hai phần chính: Phương pháp học sâu lai (CNN-LSTM) và Nhận dạng ý kiến theo khía cạnh. Mơ hình này kết hợp LSTM với trình trích xuất đặc trưng phân cấp sâu - mơ hình CNN. Do đó, mơ hình kết hợp này có thể học cách nhận biết và tổng hợp cho các nhiệm vụ liên quan đến phân tích đặc trưng. Mỗi đặc trưng được xác định thông qua CNN được chuyển đến LSTM tương ứng và tạo ra một biểu diễn vectơ có độ dài cố định hoặc thay đổi. Các đầu ra sau đó được
14 https://www.researchgate.net/figure/Overview-of-RNN-LSTM-based-natural-language-processing- architecture_fig1_318800688
43
chuyển vào một mơ-đun học theo trình tự lặp lại. Cuối cùng, phân phối dự đốn được tính bằng cách áp dụng softmax.
Hình 3. 5: Sơ đồ cấu trúc mơ hình CNN-LSTM
3.2.5 Mơ hình MultiCNN-LSTM
Qua nhiều thực nghiệm, việc huấn luyện sâu nhiều phân cấp CNN tạo thành mơ hình MultiCNN-LSTM đạt được kết quả cao và khả quan nhất trong các mơ hình, với số điểm từ các độ đo Recall, Accuracy, F1, … cũng như thời gian huấn luyện và tốc độ phân tích bình luận vượt hơn so với các mơ hình khác rất nhiều.
44
3.2.6 Phân tích ý kiến người dùng theo khía cạnh
Phân tích ý kiến người dùng theo khía cạnh là bài tốn phân lớp được chia thành hai phần chính Xác định khía cạnh và Phân tích ý kiến người dùng theo khía cạnh.
3.2.6.1 Xác định khía cạnh
Để huấn luyện mơ hình dự đốn các khía cạnh của văn bản, chúng tơi xây dựng các mơ hình học sâu và thực hiện việc huấn luyện trên từng khía cạnh. Kết quả dự đốn là tổng hợp các kết quả dự đốn trên từng khía cạnh để có được kết quả cuối cùng là các khía cạnh có trong bình luận.
3.2.6.2 Phân tích ý kiến người dùng theo khía cạnh
Áp dụng các mơ hình học sâu đã xây dựng được, chúng tơi huấn luyện việc phân lớp ý kiến cho từng khía cạnh theo dữ liệu bình luận đã thu thập. Kết hợp kết quả xác định khía cạnh để dự đốn kết quả bài tốn Phân tích ý kiến người dùng theo khía cạnh.
3.2.6.3 Các bước giải quyết bài toán
Bước 1: Thu thập dữ liệu: thu thập dữ liệu phù hợp để đưa vào các mơ hình máy
học là một bước rất quan trọng để có kết quả tốt nhất và dự đốn chính xác nhất.
Bước 2: Xử lý dữ liệu: tiền xử lý dữ liệu trước khi đưa vào các mơ hình máy học là
một bước rất quan trọng trong lĩnh vực Xử lý ngôn ngữ Tự nhiên. Bước này giúp chúng ta loại bỏ các trường hợp nhiễu, giảm kích thước đầu vào và làm tăng hiệu suất của các mơ hình.
Bước 3: Xây dựng mơ hình: xây dựng các mơ hình học sâu để trích xuất đặc trưng
và dự đốn các kết quả tốt nhất cho bài toán.
Bước 4: Đánh giá kết quả: đánh giá kết quả huấn luyện các mơ hình, chọn ra mơ
hình tốt nhất.
Bước 5: Xây dựng ứng dụng: xây dựng ứng dụng cho phép trực quan hóa kết quả
huấn luyện, ứng dụng demo phân tích ý kiến người dùng theo khía cạnh, hiển thị kết quả dự đoán.
45
3.3 Phương pháp đánh giá kết quả
Có nhiều phương pháp đánh giá các mơ hình phân lớp (classification), tuỳ vào những bài toán khác nhau mà chúng ta sử dụng các phương pháp khác nhau.Trong luận văn của chúng tơi, để đánh giá q trình phân tích ý kiến người dùng theo khía cạnh, chúng tơi chọn các phương pháp đánh giá trên 2 bài tốn phân tích khía cạnh từ bình luận và nhận dạng ý kiến theo khía cạnh. Các phương pháp thường được sử dụng là: Độ chính xác (Accuracy score), Độ đo F1 (Precision, Recall và F1 score),... Trong đó:
- Accuracy cho chúng ta biết được bao nhiêu phần trăm lượng dữ liệu được phân loại đúng.
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑆ố 𝑘ế𝑡 𝑞𝑢ả 𝑑ự đ𝑜á𝑛 đú𝑛𝑔
𝑇ổ𝑛𝑔 𝑠ố 𝑘ế𝑡 𝑞𝑢ả 𝑐ầ𝑛 𝑑ự đ𝑜á𝑛 (3.5)
- Độ đo độ phủ Recall (R) được tính theo cơng thức sau:
𝑅𝑒𝑐𝑎𝑙𝑙 = |𝑆∩𝐺|
|𝐺| (3.6)
- Độ đo precision (P) được tính theo cơng thức sau:
𝑃𝑟𝑒𝑐𝑖𝑜𝑛 = |𝑆∩𝐺|
|𝑆| (3.7)
- Độ đo F1-score (F1) được tính theo cơng thức sau:
𝐹1 = 2∗𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛∗𝑅𝑒𝑐𝑎𝑙𝑙
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛+𝑅𝑒𝑐𝑎𝑙𝑙 (3.8)
Trong đó: S là phân lớp được hệ thống dự đốn ra, G là phân lớp đích (phân lớp được người dùng gán nhãn).
46
CHƯƠNG 4 THỰC NGHIỆM
Trong chương này chúng tơi xin trình bày quá trình thực nghiệm bao gồm: cơ sở dữ liệu sử dụng phục vụ việc nghiên cứu, công nghệ sử dụng và xây dựng ứng dụng phân tích ý kiến người dùng theo khía cạnh.
4.1 Dữ liệu
4.1.1 Thu thập dữ liệu
Thu thập dữ liệu phù hợp để đưa vào các mơ hình máy học là một bước rất quan trọng để có kết quả tốt nhất và dự đốn chính xác nhất. Trong phần này chúng tôi sử dụng bộ dữ liệu VLSP 2018 (miền dữ liệu nhà hàng).
Dữ liệu là các bài báo, đăng trên các phương tiện truyền thông xã hội, không phải dữ liệu nhân tạo (do người làm dữ liệu sinh ra).
Trong đó, ba loại thực thể có tên được xác định tương thích với các loại thực thể được mô tả như sau:
a/ Tên địa lí (Địa danh - Location) bao gồm các thực thể có toạ độ địa lí nhất định,
ghi lại được trên bản đồ:
- Tên gọi các hành tinh: Mặt Trăng, Mặt Trời, Trái Đất…
- Tên gọi các thực thể mang yếu tố địa lí tự nhiên và địa lí lịch sử (quốc gia vùng lãnh thổ, châu lục), các vùng quần cư (làng, thị trấn, thành phố, tỉnh, giáo khu, giáo xứ), các điểm kinh tế (vùng nông nghiệp, khu công nghiệp). - Tên gọi các thực thể tự nhiên (đèo, núi, dãy núi, rừng, sông, suối, hồ, biển,
vịnh, vũng, eo biển, đại dương, thung lũng, cao nguyên, đồng bằng, khu bảo tồn thiên nhiên, bãi biển, khu sinh thái, v.v.) .
- Tên gọi các thực thể là cơng trình xây dựng, cơng trình kiến trúc cơng cộng (cầu, đường, cảng, đập, lâu đài, tháp, quảng trường, bảo tàng, phòng trưng bày, hội trường, trường học, nhà trẻ, thư viện, bệnh viện, viện dưỡng lão, trung tâm y tế, nhà thờ, nhà xứ, tu viện, nhà ở, chung cư, kí túc xá, chợ, cơng viên, nhà hát, rạp chiếu phim, khu thể thao, bể bơi, trung tâm thanh thiếu niên, khu cắm trại, doanh trại quân đội, nhà máy, sân bay, nhà ga, nhà kho, bãi đỗ xe,
47
sân chơi, nghĩa trang, ...). Tên gọi địa điểm, địa chỉ thương mại (hiệu thuốc, quán rượu, nhà hàng, khách sạn, câu lạc bộ đêm, các địa điểm tổ chức âm nhạc, ...) .Một số địa danh trừu tượng khác (Vườn Địa Đàng, Sông Ngân, Cầu Ô Thước…).
b/ Tên tổ chức (Organization) bao gồm các loại tên sau:
- Các cơ quan chính phủ (các bộ ngành, uỷ ban nhân dân, hội đồng nhân dân, tồ án, cơ quan báo chí, hội nghề nghiệp, đồn thể chính trị, phịng ban, ...). - Công ti (ngân hàng, thị trường chứng khoán, hãng phim, nhà sản xuất, hợp
tác xã, phòng ban, ....) - Các thương hiệu
- Các tổ chức chính trị (các đảng phái chính trị, các tổ chức khủng bố, ...) - Các ấn phẩm (các tạp chí, báo)
- Các cơng ti âm nhạc (ban nhạc, dàn nhạc, đội hợp xướng ...) - Các tổ chức công cộng (trường học, tổ chức từ thiện)
- Các tổ chức khác của con người (câu lạc bộ thể thao, các hiệp hội, nhà hát, công ti, tôn giáo, tổ chức thanh niên...)
c/ Tên người (Person) bao hàm các loại tên sau:
- Tên, tên đệm và họ của một người - Tên động vật và các nhân vật hư cấu - Các bí danh