2.4.2 Mơ hình Long short-term Memory
Long short-term memory (LSTM – Mạng nơ-ron hồi quy LSTM) là một trong những mơ hình Deep Learning trong cơng nghệ Trí tuệ nhân tạo. LSTM ra đời với ý tưởng chính là sử dụng một bộ nhớ để lưu lại thông tin từ từ những bước tính tốn xử lý trước để dựa vào nó có thể đưa ra dự đốn chính xác nhất cho bước dự đốn hiện tại dựa trên các hạn chế của kiến trúc trước đó là RNN. Cơ bản thì nó là một mạng neural hồi quy là một mạng neural chứa một vòng lặp bên trong nó. Nhiều mơ hình dự báo đã cho kết quả tốt khi sử dụng LSTM vì nó có khả năng học được các phụ thuộc xa.
LSTM xuất hiện năm 1997, sau đó đã được cải tiến và phổ biến rộng rãi như hiện nay.
Hình 2. 8: Mơ tả một đoạn mạng nơ-ron hồi quy.8
Hình trên mơ tả một đoạn của mạng nơ-ron hồi quy A với xt là đầu vào và ht là đầu ra. Một vịng lặp cho phép thơng tin có thể được truyền từ bước này sang bước khác. Một mạng nơ-ron hồi quy có thể được coi là nhiều bản sao chép của cùng một mạng,
7 https://www.datacamp.com/community/tutorials/deep-learning-python 8 https://dominhhai.github.io/vi/2017/10/what-is-lstm/
25
trong đó mỗi đầu ra của mạng này là đầu vào của một mạng sao chép khác. Các mơ hình mạng nơ-ron hồi quy (RNN) tích hợp các nhiệm vụ mà nó u cầu dự đốn đầu ra của thời điểm t dựa vào thơng tin có được tại thời điểm t-1. Một mạng nơ-ron thường sử dụng trạng thái ẩn (hidden state) ht như một sự tổng hợp có tính mất mát để biểu diễn đầu ra tại thời điểm t. Thông thường, trạng thái ẩn ht thuộc R là một phép biến đổi thông qua một hàm phi tuyến tính lên tồn bộ các phần của vector được tính tốn bởi các biểu thức sau :
ℎ𝑡 = 𝜕(𝑊𝑥𝑡 + 𝑈ℎ𝑡−1+ 𝑏) (2.1)
Hình 2. 9: Mơ hình mạng hồi quy RNN.9
Mạng hồi quy Long Short-Term Memory – thường được gọi là LSTMs là một mạng học sâu có khả năng học được các chuỗi thông tin dài (long-term dependencies), chúng được giới thiệu bởi tác giả [3] và được các nhà nghiên cứu tìm hiểu và cải tiến hiệu quả. Do đó, mơ hình này đã được chứng minh sự hiệu quả trong nhiều bài toán khác nhau. Đặc biệt mơ hình mạng LSTM được thiết kế đặc biệt để tránh vấn đề không xử lý được chuỗi thông tin dài như RNN. Và việc xử lý chuỗi thông tin trong một khoảng thời gian dài là khả năng mặc định của LSTM. Mạng LSTM có dạng chuỗi lặp lại giống như mạng RNN, nhưng thay vào đó, cấu trúc bên trong của mạng LSTM phức tạp hơn rất nhiều, thay vì có 1 lớp như RNN, LSTM có 4 lớp và các lớp này tương tác với nhau theo một cách đặc biệt. Hình 2.3 miêu tả cấu trúc đặc biệt của mạng LSTM với 4 lớp và các hàm, phép tốn mà các lớp đó tương tác với nhau.
26
Hình 2. 10:Cấu trúc của một tế bào trong mơ hình LSTM.10
Mỗi tế bào trong mơ hình LSTM đều có cùng giá trị đầu vào và đầu ra như một mạng nơ-ron hồi quy bình thường nhưng lại có thêm các thơng số khác và hệ thống các cổng thành phần để điều khiển các luồng thông tin ra vào. Ký hiệu d là số chiều của véc-tơ biểu diễn cho memory cell, input gate (cổng đầu vào) được biểu diễn bởi véc-tơ it d (cho thời điểm t trong dãy tuần tự), mọi phần tử trong véc-tơ it rơi vào khoảng mở [0,1] thông qua hàm số sigmoid như sau:
it = σ( ) = σ (W (i)xt + U(i)ht-1 + b(i)) (2.2)
Trong đó xt d (với n là số chiều của véc-tơ đại diện cho phần tử thứ t trong dãy tuần tự) là véc-tơ đầu vào tại thời điểm t hiện tại, ht-1 là véc-tơ trạng thái ẩn đầu ra của lớp trước đó, và W(i), U(i), b(i) lần lượt là ma trận trọng số đầu vào (input weight), ma trận trọng số hồi quy (recurrent weight) và véc-tơ bias cho input gate (cổng đầu vào) của LSTM cells. Ngoài ra, sự mở rộng để memory cell thời điểm trước đó được quên đi, được điều khiển bởi một forget gate (cổng quên) ft:
ft = σ( ) = σ (W (f)xt + U(f)ht-1 + b(f)) (2.3)
27
Trong đó W(f), U(f), b(f) lần lượt là ma trận trọng số quên (forget weight), ma trận trọng số hồi quy và véc-tơ bias cho LSTM cell. Thơng tin được rút trích từ véc-tơ đầu vào hiện tại xt là output gate ut (cổng ra):
ut = tanh( ) = tanh (W (u)xt + U(u)ht-1 + b(u)) (2.4) Và như vậy, thành phần quan trọng bậc nhất đó là memory cell ct của thời điểm hiện tại. Tiếp theo, input gate it (cổng vào) quyết định thông tin từ output gate ut để lưu trữ vào memory cell ct kèm theo điều kiện của forget gate ft kiểm soát memory cell ct-1 như sau:
ct = it ut + ft ct-1 (2.5) trong đó ký hiệu biểu thị cho phép nhân véc-tơ tương ứng với toàn bộ phần tử (element-wise vector product hay còn gọi là phép nhân Hadamard product). Sau cùng, đầu ra ht của một LSTM cell có thể thu được bởi việc cổng ot quyết định thông tin nào được lấy ra từ memory cell ct hiện tại:
ot = σ( ) = σ (W (o)xt + U(o)ht-1 + b(o)) (2.6)
ht = ot tanh(ct) (2.7)
Mơ hình LSTM được nghiên cứu và áp dụng trong nhiều bài toán và lĩnh vực khác nhau, nổi bật có thể kể đến như huấn luyện mơ hình ngơn ngữ (language modeling), bài tốn dịch máy (machine translation), tạo ra chữ viết tay (hand writing generation). Có thể thấy rằng các bài tốn có xu hướng sử dụng các thơng của một chuỗi dài thì mơ hình LSTM thể hiện được sự hiệu quả đối với các dạng bài toán này.
2.4.3 Mạng nơ-ron tích chập
Mạng nơ-ron tích chập (Convolutional Neural Network - CNN) là một trong những phương pháp được áp dụng nhiều nhất trong lĩnh vực xử lý ảnh (computer vision) để giải quyết các bài tốn như nhận dạng hình ảnh, phân loại hình ảnh, phát hiện đối tượng, nhận diện khuôn mặt,…v.v. CNN được xây dựng từ ba ý tưởng chính: trường tiếp nhận cục bộ (local receptive fields), chia sẻ trọng số (shared weights) và tổng hợp (pooling). CNNs bao gồm một vài tầng convolution kết hợp với các hàm kích hoạt phi tuyến (nonlinear activation function) để tạo ra thông tin trừu tượng hơn cho các tầng tiếp theo.
28
Lớp tích chập (Convolution)
Mục đích của tầng này là trích xuất các đặc trưng tương ứng với đầu vào. Từ ý tưởng local receptive fields, sẽ tiến hành chọn lựa một bộ lọc để tìm và lấy ra những thông tin quan trọng từ đầu vào và thu nhỏ số chiều cho những lớp ẩn tiếp theo. Để tính tốn các giá trị đầu ra cho các vùng lọc chúng tơi sẽ dùng đến các hàm kích hoạt. Một số hàm kích hoạt được sử dụng hiện nay là ReLU, hàm kích hoạt Tanh hay Sigmoid. Hiện nay, hàm kích hoạt ReLU được sử dụng nhiều hơn so với các hàm cịn lại. Hình 2.11 sẽ mơ tả q trình tính tốn tại tầng tích chập, sử dụng hàm kích hoạt ReLu để tính tốn và sử dụng bước trượt cho bộ lọc là 1.
Hình 2. 11: Ví dụ phép tổng hợp lớn nhất (maxcoolinw cho đầu vào 5x5 và bộ lộc 3x3 với 2 dạng bước trượt 1 và 2
Hàm kích hoạt Rectfied Linear Units (ReLU)
ReLU là hàm kích hoạt phổ biến nhất cho CNN và đựợc ưa chuộng vì tính tốn đơn giản, giúp hạn chế tình trạng vanishing gradient, và cũng cho kết quả tốt hơn. ReLu cũng như các hàm kích hoạt khác, đuợc đặt ngay sau tầng convolution, ReLu sẽ gán những giá trị âm bằng 0 và giữ nguyên giá trị của đầu vào khi lớn hơn 0. ReLU cũng có một số vấn đề tiềm ẩn nhỏ khơng có đạo hàm tại điểm 0, giá trị của hàm ReLU có thể lớn đến vơ cùng và nếu chúng ta không khởi tạo trọng số cẩn thận, hoặc khởi tạo learning rate quá lớn thì những nơ ron ở tầng này sẽ rơi vào trạng thái chết, tức là ln có giá trị < 0.
29
Tầng tổng hợp Pooling
Sau tầng tích chập sẽ thực hiện tầng tổng hợp để giảm số chiều đặc trưng đầu vào và đồng thời cũng giữ lại các thông tin quan trọng từ ngữ liệu đầu vào. Khi giảm số lượng chiều đi thì cho phép giảm số lượng tham số, rút ngắn thời gian huấn luyện và hạn chế overfitting. Cơ chế của tầng tổng hợp tương tự như tầng tích chập, cũng tiến hành sử dụng một bộ lọc trượt qua ngữ liệu đầu vào và trích xuất ra các đặc trưng cần thiết trong vùng bộ lọc đó. Thế nhưng, trái với bộ lọc tại tầng tích chập, bộ lọc ở tầng tổng hợp sẽ khơng chứa các tham số. Hiện nay, phương pháp được sử dụng phổ biến ở tầng tổng hợp là phép tổng hợp lớn nhất (maxpooling: chỉ lấy giá trị cao nhất trong vùng của bộ lọc đi qua). Ngồi ra, cịn có phương pháp phép tổng hợp trung bình (averagepooling: tính tốn giá trị trung bình trong vùng bộ lọc đi qua).
Hình 2. 12: Ví dụ minh họa lớp Pooling.
Lớp đầy đủ Fully connected layer
Kiến trúc của tầng liên kết đầu đủ tương tự như kiến trúc của mạng nơ-ron nhân tạo được trình bày ở phần đầu tiên. Kết quả đầu ra của cả hai tầng tích chập và tầng tổng hợp đều là các ma trận ở dạng hai chiều hoặc 3 chiều. Trong khi đó, đầu ra mong muốn của hệ thống là một vector một chiều. Để giải quyết vấn đề này trong tầng liên kết đầy đủ, đầu tiên chúng ta tiến hành làm phẳng đầu ra ở lớp tổng hợp cuối cùng thành một vector và vector này chính là đầu vào của các lớp liên kết đầy đủ. Lớp cuối cùng trong tầng liên kết đầy đủ chính là đầu ra của bài tốn được quan tâm đến.
Kỹ thuật DropOut
Đây là một kỹ thuật được sử dụng để giảm Overfitting. Overfitting là trường hợp mà mơ hình được xây dựng quá khít so với bộ ngữ luyện huấn luyện. Tuy nhiên, đối với các trường hợp khác ngoài các trường hợp của bộ ngữ luyện huấn luyện thì mơ hình
30
khơng dự đốn được hoặc dự đốn sai. Để giải quyết vấn đề overfitting trong quá trình xây dựng mơ hình, một ý tưởng đơn giản được tiếp cận đó là kỹ thuật dropout. Ý tưởng của kỹ thuật dropout, trong quá trình huấn luyện, ở mỗi lần lặp, một số nơ-ron tạm thời sẽ bị bỏ đi hoặc vơ hiệu hóa với một xác suất p cho trước. Các nơ-ron bị loại bỏ sẽ được liên kết lại ở mỗi bước huấn luyện, do đó, một nơ-ron bị loại bỏ ở bước huấn luyện này thì có thể hoạt động trở lại ở bước huấn luyện tiếp theo. Với cách tiếp cận này, trong quá trình huấn luyện sẽ ngăn chặn được việc mơ hình q phụ thuộc vào một số lượng nhỏ các nơron và buộc mọi nơ-ron có thể hoạt động độc lập với nhau. Hình sau đây là một ví dụ của kỹ thuật dropout trong việc xử lý trường hợp overfitting.
Hình 2. 13: Kỹ thuật DropOut để giảm Overfitting
2.4.4 Mạng nơ-ron kết hợp CNN-LSTM
Như mạng nơ-ron tích chập (CNN), bộ nhớ dài hạn (LSTM) đã được sử dụng thành cơng để phân tích ý kiến. CNN có khả năng trích xuất thơng tin địa phương nhưng có thể khơng nắm bắt được sự phụ thuộc vào khoảng cách dài ngắn của văn bản. LSTM có thể giải quyết hạn chế này bằng cách mơ hình hóa các văn bản theo thứ tự qua các câu. Các phương pháp sử dụng từ nhúng và chỉ dựa vào một phương pháp học sâu đã khơng đạt được kết quả tốt cho phân tích ý kiến. Chính vì vậy, nghiên cứu này đề xuất mơ hình liên kết CNN-LSTM
31
Hình 2. 14: Trình bày sơ đồ tổng thể của mơ hình đề xuất CNN-LSTM 11
Đối với từng văn bản nhất định, mơ hình CNN sử dụng một câu như là một vùng để phân chia văn bản nhất định vào các vùng R, tức là r1..., ..., ...,ri rk rR Trong mỗi khu vực, tính năng hữu ích có thể được trích xuất một khi vectơ từ tuần tự đi qua một lớp tích chập và lớp tổng hợp tối đa. Các tính năng cục bộ sau đó sẽ được tích hợp theo từng khu vực sử dụng LSTM để xây dựng một vector văn bản cho dự đốn.
Lớp tích chập (Convolutional Layer)
Trong mỗi vùng, một lớp tích chập được sử dụng lần đầu để trích xuất các tính năng n- gram cục bộ. Tất cả các từ nhúng được xếp chồng lên nhau trong một ma trận khu vực
dx V
MR trong đó I V| là kích thước từ vựng của một vùng, và d là chiều của các vectơ
từ. Ví dụ, trong hình 3.7, vectơ từ trong các vùng ri ={w1ri,..w2ri,...wiri}, rj ={w1rj,..w2rj,...wrjj}
và rk ={w1rk,..w2rk,...wKrk} đưoc kết nối tao thành các ma trân khu vực xri,xrj và rk
x . Ở mỗi
khu vực, chúng tôi sử dụng các bộ lọc l để tìm hiểu các tính năng địa phương. Trong một cửa sổ các từ xn n: + − 1, một bộ lọc ft (1<1<L) tạo ra các đặc trưng tương ứng theo
công thức:
11 https://www.researchgate.net/figure/System-architecture-of-the-proposed-regional-CNN-LSTM- model_fig1_306093564
32 : 1 ( ) t t t m n n y = f W x + − +b (2.7) trong đó 0 là một tốn tử tích chập, dx V WR và b tưong ứng biểu thị ma trận trọng số và thiên vị, ro là độ dài của bộ lọc, d là kích thước của vector từ, và f là hàm ReLU. Khi một bộ lọc dần dần đi qua x1:w−1 tới xN w+ −1:Nchúng ta có được các đặc trưng đầu ra
1, 2, 3,.... 1
l l l l l N w
y =y y y y − + của bộ lọc fi.
Với các chiều dài văn bản khác nhau ở các vùng, có thể có các kích thước khác nhau cho các văn bản khác nhau. Do đó, chúng ta xác định độ dài tối đa của đầu vào CNN trong trong bộ dữ liệu như kích thước N. Nếu chiều dài đầu vào ngắn hơn N, thì một số vectơ ngẫu nhiên với một sự phân bố đồng nhất U (-0,25, 0,25) sẽ được nối vào.
Lớp Max-pooling (Max-pooling Layer)
Tối đa hóa các mẫu con của đầu ra của lớp tích chập. Cách phổ biến nhất là tổng hợp nó để áp dụng một hoạt động tối đa đến kết quả của mỗi bộ lọc. Có hai lý do để sử dụng một lớp tổng hợp tối đa ở đây. Thứ nhất, bằng cách loại bỏ các giá trị khơng tối đa, nó làm giảm tính tốn cho các lớp trên. Thứ hai, nó có thể trích xuất các phụ thuộc địa phương trong các khu vực khác nhau để giữ cho các thông tin nổi bật nhất. Các vectơ vùng thu được sau đó được đưa vào một lớp tuần tự.
Lớp chuỗi (Sequential Layer)
Để nắm bắt sự phụ thuộc khoảng cách dài ngắn qua các vùng, lớp tuần tự kết hợp mỗi vector vùng thành một vector văn bản. LSTM [1] được sử dụng đưa vào trong lớp tuần tự cho thành phần vector. Sau khi tế bào bộ nhớ LSTM tuần tự di chuyển qua tất cả các vùng, trạng thái ẩn cuối cùng của lớp tuần tự được coi là văn bản đại diện cho dự đốn VA
Giải mã tuyến trình (Linear Decoder)
Vì kích thước và sự tăng trưởng của các giá trị là liên tục, nhiệm vụ dự báo của VA địi hỏi phải có hồi quy. Thay vì sử dụng bộ phân loại softmax, một hàm kích hoạt tuyến tính (cịn được gọi là bộ giải mã tuyến tính) được sử dụng trong lớp đầu ra, được định nghĩa là:
( d t d )
33
trong đó xtlà vector văn bản học được từ lóp tuần tự, y là giá trị hoặc là sự tăng trưởng của văn bản đích, và wd và bã tương ứng biểu thị trọng số và xu hướng kết hợp với bộ giải mã tuyến tính.
Mơ hình CNN-LSTM được huấn luyện bằng cách giảm thiểu sai số bình phương trung bình giữa dự đốn y và y thực tế.
Cho một bộ ma trận văn bản huấn luyện X = {x1, x 1, x 2 ,. ,,, xm }, và xếp hạng VA của
chúng được đặt y = [y1, y2 ,…, ym }, hàm mất mát được xác định theo công thức:
𝐿(𝑋, 𝑦) = 1 2𝑛∑ ( 𝑘 𝑛 ) 𝑛 𝑘=1 ||ℎ(𝑥𝑖− 𝑦𝑖)||2 (2.9)
Trong giai đoạn huấn luyện, một thuật toán truyền lại (BP) với stochastic gradient descent (SGD) được sử dụng để tìm hiểu các tham số mơ hình.
2.5 Phân tích ý kiến người dùng theo khá cạnh 2.5.1 Tổng quan 2.5.1 Tổng quan
Phân tích ý kiến người dùng theo khía cạnh là xác định xem bài đăng hay bình luận liên quan đến khía cạnh nào của sản phẩm hay dịch vụ. Đó có thể là chất lượng, giá thành các món ăn với một nhà hàng, dịch vụ chăm sóc khách hàng với một khách sạn hoặc là tốc độ đường truyền với một nhà cung cấp dịch vụ Internet. .