Hệ thống phân tích shift-reduce sử dụng thuật toán best first search(BFS)

Một phần của tài liệu Phân tích cú pháp trong tổng hợp tiếng nói tiếng việt (Trang 31)

first search(BFS)

BFS (best-first-search) hay “tìm kiếm theo lựa chọn tốt nhất”là một thuật toán tìm kiếmtrong đồ thị theo chiều sâu bằng cách luôn mở rộng trạng thái hứa hẹn nhất được chọn theo một tiêu chuẩn nào đó. Cụ thể là các trạng thái đã đi qua sẽ được lưu trữ lại và sắp xếp thứ tự ưu tiên bằng một hàm ước lượng f(x) bằng tổng trọng số tất cả các cạnh từ trạng thái đầu đến trạng thái đó, gọi tắt là chi phí đường đi

g(x). Thuật toán BFS sẽ là một thuật toán tìm kiếm tối ưu, tức quãng đường đầu tiên tìm thấy luôn có chi phí nhỏ nhất, nếu như trong đồ thị tìm kiếm không có cạnh nào có trọng số âm.

3.2.1. Các nghiên cứu đi trƣớc về BFS cho phân tích cú pháp shift-reduce

Ý tưởng cơ bản của việc áp dụng BFS cho phân tích cú pháp shift-reduce dựa trên giả sử rằng mỗi state là một nút trong đồ thị, còn các action như là các cạnh,bài toán phân tích cú pháp chuyển thành bài toán tìm kiếm quãng đường có chi phí lớn nhất từ state khởi đầu cho đến state kết thúc. Đây cũng là ý tưởng được Sagae và Lavie giới thiệu lần đầu tiên trong hệ thống phân tích cú pháp của họ vào năm 2006. Trước hết, hệ thống sẽ được huấn luyện cục bộ bằng mô hình Maxent để tạo ra phân phối xác suất cho các action. Sau đó, các xác suất này sẽ được sử dụng như trọng số trên đồ thị tìm kiếm. Trong thí nghiệm của họ cho thấy, xác suất cục bộ của các action tối ưu được từ mô hình Maxent là một hàm ưu tiên rất tốt giúp hệ thống tìm

Lê Quang Thắng – CNTT.KH.2012B 28

kiếm được đáp án với tốc độ nhanh, do chỉ có một số rất ít các action chiếm hữu được xác suất cao so với các action còn lại tại mỗi bước. Đến năm 2013, Kai Zhao[22] đã mở rộng ý tưởng này bằng cách sử dụng thêm lý thuyết về quy hoạch động cho phân tích shift-reduce của Liang Huang (2010)[24]. Giống như thuật toán CYK dành cho các mô hình PCFG, lý thuyết quy hoạch động này giúp cho độ phức tạp thuật toán của phân tích shift-reduce giảm từ hàm mũ xuống hàm đa thức, và qua đó tăng tốc độ lên rất nhiều.

3.2.2. Hệ thống phân tích cú pháp shift-reduce sử dụng BFS của luận văn

Hệ thống phân tích cú pháp BFS shift-reduce của luận văn được xây dựng dựa trên ý tưởng về BFS của hệ thống phân tích cú pháp shift-reduce của Kai Zhao (2013)[22]. Tuy nhiên, so với hệ thống của họ, hệ thống của luận văn có một số điểm khác biệt lớn như sau:

Thứ nhất, hệ thống của luận văn được huấn luyện toàn cục bằng thuật toán Perceptron cấu trúc thay vì mô hình cục bộ Maxent. Điều này khó hơn rất nhiều vì cho đến, trong giới hạn hiểu biết của người làm luận văn, chưa có một công trình nghiên cứu nào công bố về việc có thể thực hiện được tìm kiếm đầy đủ đối với phân tích cú pháp shift-reduce sử dụng thuật toán Perceptron cấu trúc.Để cho phù hợp với bài toán tìm đường đi ngắn nhất của BFS, thuật toán Perceptron sẽ được điều chỉnh để tối ưu đầu ra theo giá trị nhỏ nhất (không có khác biệt gì nhiều so với tối ưu theo giá trị lớn nhất): Input: ( ) Initialization: = 0 Algorithm: For t = 1…T, i=1…n ( )∑ ( ) If ( ) then

Lê Quang Thắng – CNTT.KH.2012B 29 ∑ ( ) ∑ ( )

Output: véc tơ trọng số w cuối cùng

Thứ hai, hệ thống của luận văn được áp dụng cho bài toán phân tích thành phần (constituent parsing), còn hệ thống của Kai Zhao (2013) sử dụng cho phân tích phụ thuộc (dependency parsing). Tuy cùng là phân tích cú pháp nhưng phân tích thành phần có độ phức tạp cao hơn phân tích phụ thuộc rất nhiều, qua đó tăng thêm độ khó cho việc áp dụng tìm kiếm đầy đủ.

3.2.3. Vấn đề trọng số âm và cách giải quyết

Thuật toán BFS sẽ chỉ hoạt động trong một đồ thị mà các cạnh có trọng số không âm. Điều này hoàn toàn có thể với trường hợp của Kai Zhao (2013), vì hệ thống của họ có thể sử dụng giá trị f(ai,pi) = -log(P(ai,pi)) có giá trị luôn không âm để làm trọng số cho các cạnh của đồ thị. Tuy nhiên, với Perceptron cấu trúc, ta có công thức tính điểm cho một cạnh của đồ thị là: ( ) ( ) . Giá trị này hoàn toàn có thể mang giá trị âm, qua đó vi phạm điều kiện tiên quyết của thuật toán BFS.Tất nhiên hầu hết chúng ta sẽ nghĩ ngay đến cách thức đơn giản nhất là cộng thêm vào điểm của các action một giá trị offset đủ lớn sao cho: ( )

>= 0. Tuy nhiên, cách giải quyết này lại vấp phải một vấn đề khác: số lượng action với mỗi cây cú pháp đầu ra của cùng một câu văn bản là có thể khác nhau. Điều này dẫn tới kết quả là cộng thêm giá trị offset không đổi như trên có thể làm thay đổi thứ tự ưu tiên ban đầu, và đáp án đưa ra không phải là đáp án tối ưu.Để giải quyết vấn đề trọng số âm này, hệ thống phân tích BFS Shift-Reduce của luận văn sẽ được tinh chỉnh theo hai bước sau: thiết kế ra một hệ thống action mới nhằm đảm bảo số lượng action của tất cả các cây cú pháp đầu ra cho cùng một câu văn bản luôn là như nhau; sau đó, chọn giá trị offset thích hợp để đồ thị ban đầu thực sự trở thành đồ thị có trọng số không âm, phù hợp với yêu cầu của giải thuật BFS.

Các action Shift và Reduce Binary đều là những action số lượng đồng nhất, vì chúng ta luôn chỉ có n action Shift và n action Reduce Binary phải thực hiện để đi

Lê Quang Thắng – CNTT.KH.2012B 30

từ state bắt đầu đến state kết thúc, với n là số từ của câu văn bản đầu vào. Tuy nhiên, nguyên nhân gây ra việc các state kết thúc của cùng một state bắt đầu có số lượng action phải đi qua khác nhau chính là do sự xuất hiện không đồng nhất của các action Reduce Unary. Chính vì vậy, người làm luận văn đã quyết định đề xuất ra việc sử dụng một hệ thống action mới có thể đảm bảo được số lượng các action phải đi qua để đạt đến state kế thúc luôn là 2n. Ý tưởng cơ bản của hệ thống action này là việc hợp nhất các action reduce unary với action shift và reduce binary thành các loại action tổ hợp. Như vậy, hệ thống action mới của hệ thống sẽ bao gồm nămloại action:

 SH: action Shift bình thường.

 SHU(X): là action kết hợp giữa action Shift và action Reduce Unary(X). Action này sẽ thực hiện action Shift trước, rồi thực hiện tiếp action Reduce Unary(X).

 RE(X): action Reduce Binary(X) bình thường.

 REU(Y,X): là action kết hợp giữa action Reduce Binary(X) và Reduce Unary(Y). Action này sẽ thực hiện action Reduce Binary(X) trước, rồi thực hiện ngay action Reduce Unary(Y), tương ứng với luật đơn Y  X.  FIN: action kết thúc phân tích giống như action Finish.

Sau khi áp dụng hệ thống action này, thì việc lựa chọn ra một giá trị offset đủ lớn để điểm của các cạnh action trong đồ thị không âm là khá đơn giản.

3.2.4. Thuật toán quy hoạch động cho phân tích shift-reduce

Với giải thuật BFS bình thường, độ phức tạp thuật toán trong trường hợp tệ nhất sẽ làm hàm mũ. Trong hệ thống phân tích cú pháp shift-reduce của mình, Kai Zhao đã sử dụng lý thuyết quy hoạch động để đạt được độ phức tạp thuật toán là hàm đa thức. Ý tưởng cơ bản của lý thuyết này là việc xác nhập các state được coi là “tương đương” lại với nhau để tránh trường hợp phải xét duyệt lại cùng một state nhiều lần. Nói một cách khác, thì đồ thị tìm kiếm ban đầu của phân tích shift-reduce sẽ được

Lê Quang Thắng – CNTT.KH.2012B 31

chuyển thành dạng siêu đồ thị (hyperpragh) giống như trong thuật toán CYK của phân tích cú pháp PCFG.

Trong lý thuyết quy hoạch động dành cho phân tích cú pháp shift-reduce, mỗi một state sẽ không lưu trữ toàn bộ stack và queue như cũ, mà thay vào đó là các thông tin đủ để xác định tập hợp đặc trưng được trích rút ra từ state đó. Như trong thuật toán CYK, thì mỗi state chỉ bao gồm 3 thông tin: <X,i,j>, với X là nhãn của nút lưu trữ hiện tại, [i,j] là vị trí bắt đầu và kết thúc của nút đó trong câu văn bản đầu vào. Mỗi một state trong CYK sẽ chỉ lưu lại quãng đường có chi phí tốt nhất tạo nên nút <X,i,j>, qua đó giảm thiểu một cách đáng kể số lần phải xét duyệt các state thừa. Như trong phân tích cú pháp shift-reduce, thì thông tin cơ bản dành cho mỗi state sẽ là<i,j,sd…s0>. Trong đó s0,s1…sd là d nút đầu tiên trong stack tham gia vào quá trình trích rút đặc trưng, còn [i,j] là vị trí bắt đầu và kết thúc của nút s0. Các nút si không cần thiết phải chứa toàn bộ thông tin liên quan đến nút đó mà chỉ cần chứa một số các đặc trưng cơ bản như nhãn của nút, từ trung tâm của nút tùy vào bộ đặc trưng được sử dụng. Ví dụ như bộ đặc trưng giản lược của Sagae (2006) được trình bày trong phần 3.1.3 thì các thông tin cơ bản tương ứng với mỗi state sẽ là: <i,j,s3,s2,s1,s0>. Với cách ký hiệu như vậy, thì nếu hai state p và p’ được tạo ra trong quá trình tìm kiếm có các thông tin cơ bản giống nhau thì chúng được coi là các state tương đương và sẽ được xác nhập làm một.

Về mặt lý thuyết, hệ thống phân tích cú pháp của luận văn cũng gần giống như hệ thống phân tích cú pháp PCFG sử dụng cấu trúc agenda. Hệ thống trong quá trình tìm kiếm đáp án tối ưu sẽ duy trì hai cấu trúc dữ liệu: một bảng C dùng để lưu trữ những state đã được duyệt qua và một hàng đợi Q bao gồm các state đang chờ được xét duyệt và được sắp xếp theo một thứ tự ưu tiên nào đó:

 Quá trình tìm kiếm sẽ bắt đầu với Q chỉ chứa duy nhất state bắt đầu và C rỗng.

Lê Quang Thắng – CNTT.KH.2012B 32

o Lấy ra state p có ưu tiên cao nhất trong Q, thực hiện các action được định nghĩa ở trên để tạo ra các state mới ri.

o Các state mới ri sẽ được thêm vào trong Q, trong quá trình thêm sẽ kiểm tra xem ri có state nào tương đương với mình không. Nếu có, xác nhập hai state lại, nếu không thêm vào một cách bình thường.

o Thêm p vào C, tất nhiên cũng sẽ có bước kiểm tra tương đương

giống như với Q.

 Thứ tự ưu tiên cho các state được định nghĩa bởi hai loại điểm số:

o Chi phí đường đi toàn cục (total cost) c: là tổng chi phí của tất cả các action từ state bắt đầu cho đến state hiện tại.

o Chi phí đường đi cục bộ (inside cost) v: là tổng chi phí của tất cả các action tạo nên nút s0 của state hiện tại.

o Khi so sánh thứ tự ưu tiên của hai state p và q, ta có hai trường hợp:

 Nếu p.c > q.c thì p có thứ tự ưu tiên nhỏ hơn q và ngược lại.

 Nếu p.c = q.c thì kiểm tra nếu p.v > q.v thì p có thứ tự ưu tiên nhỏ hơn q và ngược lại.

 Nếu p.c = q.c và p.v = q.v thì cả hai có thứ tự ưu tiên bằng nhau.

 Ngoài ra với lý thuyết quy hoạch động, thì sẽ có một chút khác biệt so với hệ thống phân tích shift-reduce ban đầu đó là: các action RE(X) và REU(Y,X) sẽ không thể thực hiện theo cách bình thường nữa vì giờ một state sẽ chỉ lưu các thông tin cơ bản thay vì toàn bộ stack và queue. Chính vì vậy, hai action này trong lý thuyết quy hoạch động sẽ được thực hiện như sau: action RE(X) sẽ thực hiện việc kết hợp hai state p:<i,j,sd…s0> với state q:<k,i,s’d...s’0>, với s’i si+1. Tương ứng sẽ có hai trường hợp xảy ra:

Lê Quang Thắng – CNTT.KH.2012B 33

o Kết hợp phải: giả sử state được chọn ra khỏi Q có dạng như p, hệ thống sẽ kết hợp p với tất cả các state thuộc C có dạng như q để tạo ra state mới r:<k,j,s’d...s’1X> với X s0s’0.

o Kết hợp trái: tương tự state được chọn ra khỏi Q có dạng như q, hệ thống sẽ kết hợp q với tất cả các state thuộc C dạng như p để tạo ra state mới.

o Mọi thứ hoàn toàn tương tự với action REU(Y,X).

Error! Reference source not found. minh họa biểu thức suy diễn của

ác action trong hệ thống phân tích cú pháp Shift-Reduce của luận văn sau khi áp dụng thêm thuật toán quy hoạch động. ca(p)= ( ) , là chi phí cho action a với các đặc trưng được trích rút từ state p. Mỗi một giá trị ca(p) đều được mặc định là đã được cộng thêm giá trị offset

để đảm bảo trọng số không âm cho các cạnh của đồ thị.

Hình 3-8 Biểu thức suy diễn của các action trong hệ thống phân tích cú pháp Shift-Reduce của luận văn.

3.3. Đánh giá hiệu năng của hệ thống phân tích shift-reduce sử dụng BFS dụng BFS

Trong phần trước luận văn đã trình bày toàn bộ lý thuyết về hệ thống phân tích cú pháp Shift-Reduce sử dụng thuật toán tìm kiếm BFS kết hợp với lý thuyết quy

Lê Quang Thắng – CNTT.KH.2012B 34

hoạch động, ký hiệu là hệ thống phân tích cú pháp BFS-DP Shift-Reduce. Do đó, trong phần này, luận văn sẽ tiến hành đánh giá thực nghiệm hiệu năng của hệ thống đề xuất. Như đã trình bày trong phần 3.2, các nghiên cứu đi trước về thuật toán tìm kiếm BFS áp dụng cho phân tích cú pháp Shift-Reduce đều sử dụng mô hình Maxent thực hiện huấn luyện cục bộ để tạo ra phân phối xác suất cho các action tại mỗi state và lấy đó làm trọng số cho các cạnh trong đồ thị. Điều này khác biệt hẳn với hệ thống của luận văn, khi mà cả quá trình huấn luyện lẫn phân tích của hệ thống đều được thực hiện một cách toàn cục bởi thuật toán Perceptron cấu trúc với độ phức tạp cao hơn rất nhiều. Để đánh giá hệ thống, luận văn sẽ làm một thử nghiệm so sánh giữa hệ thống của luận văn với hệ thống phân tích cú pháp Shift- Reduce của Sagae (2006) để minh họa được độ ưu việt của hệ thống phân tích cú pháp BFS-DP Shift-Reduce của luận văn so với các nghiên cứu đi trước.

Về mặt chuẩn bị thí nghiệm, cả hai hệ thống đều được huấn luyện trên tập dữ liệu

Penn Treebank dành cho tiếng Anh dựa theo tỷ lệ chuẩn: sử dụng section 2-21 để huấn luyện. Việc nhị phân hóa tập luật được thực hiện bằng phương pháp nhị phân hóa hướng từ trung tâm của Zhang và Clark (2009)[13] bằng luật xác định từ trung tâm của Michael Collins (2003)[3] đã được trình bày ở phần 2.2. Độ chính xác của kết quả phân tích cú pháp được đánh giá theo thang điểm F1 bởi phần mềm EVALB. Tập dữ liệu thử nghiệm dành cho hai hệ thống là section 24 của Penn Treebank. Đầu vào chuẩn của hệ thống phân tích cú pháp BFS-DP Shift-Reduce của luận văn được tạo ra bởi bộ gán nhãn từ loại của Stanford. Tất cả các thí nghiệm dưới đây đều được thực hiện trên cấu hình phần cứng như sau: bộ vi xử lý Intel Corei5 2.5GHz và 16GB bộ nhớ RAM.

Về bộ đặc trƣng đƣợc sử dụng, người làm luận văn đã mượn lại bộ đặc trưng giản

lược của Sagae (2006)[21]. Tuy nhiên, do tính chất phức tạp của mô hình Perceptron cấu trúc, người làm luận văn không sử dụng toàn bộ mà chỉ sử dụng một phần của bộ đặc trưng này như đã được minh họa trong Bảng 3-1.

Lê Quang Thắng – CNTT.KH.2012B 35

Bảng 3-3 Kết quả thử nghiệm của hệ thống phân tích cú pháp BFS-DP Shift-Reduce của luận văn trên section 24 của tập dữ liệu Penn Treebank

Mô hình F1 Tốc độ (câu/giây)

Perceptron cấu trúc 88.9 0.8

Maxent 85.1 4.8

Kết quả thí nghiệm: Bảng 3-3 là kết quả của thí nghiệm đánh giá nói trên. Có một

điều có thể thấy rất rõ là cùng một tập đặc trưng như nhau, nhưng hệ thống của luận

Một phần của tài liệu Phân tích cú pháp trong tổng hợp tiếng nói tiếng việt (Trang 31)

Tải bản đầy đủ (PDF)

(69 trang)