Quy trình gán nhãn dữ liệu phục vụ cho các bài toán xử lý ngôn ngữ tự nhiên

Data Science, Machine Learning, Natural Language Processing

Nếu ví von sự phát triển như vũ bão của trí tuệ nhân tạo với hệ thống tên lửa thì dữ liệu được xem như là nhiên liệu đầu vào. Các chuyên gia trong lĩnh vực trí tuệ nhân tạo đều nhận định “Dữ liệu được xem như một loại vàng mới – Data is the new gold”. Qua đó mới thấy tầm quan trọng của dữ liệu trong sự thành công của các dự án trí tuệ nhân tạo. Bài viết này sẽ trình bày sơ lược về quy trình gán nhãn dữ liệu phục vụ cho các bài toán xử lý ngôn ngữ tự nhiên – một nhánh nghiên cứu quan trọng trong lĩnh vực trí tuệ nhân tạo.

Với sự phát triển của truyền thông internet như mạng xã hội, website, diễn đàn, blog, v.v. dữ liệu ngôn ngữ ngày càng phong phú và đa dạng. Tuy nhiên máy tính gặp khó khăn để “hiểu” những dữ liệu ngôn ngữ thô sẵn có đó, để để máy tính có thể dễ dàng nhận diện ra các đặc tính của dữ liệu và “suy luận” hơn, công đoạn gán nhãn dữ liệu trở nên cần thiết hơn bao giờ hết. Tùy theo bài toán cụ thể mà người gán nhãn sẽ chú thích một phần văn bản với một hay nhiều nhãn (Metadata) cụ thể. Việc gán nhãn dữ liệu này là bước đầu tiên để giúp máy tính “hiểu” ngôn ngữ tự nhiên. Có nhiều cách chia quy trình gán nhãn dữ liệu, một trong những cách chia đó là dựa theo tiến trình dự án gán nhãn: chuẩn bị – triển khai – đóng gói và bàn giao.

Hình 1: Quy trình gán nhãn dữ liệu.

Chuẩn bị mọi mặt cho một dự án gán nhãn

Để thực hiện một dự án gán nhãn, đầu tiên cần định nghĩa đặc tả chi tiết bài toán gán nhãn dữ liệu ngôn ngữ, đó có thể là tách từ, gán nhãn từ loại, gán nhãn tên thực thể, gán nhãn cú pháp, phân loại email là spam hay không spam, v.v. Có thể cân nhắc về việc sẽ tiến hành từng bài toán gán nhãn riêng biệt hay cùng một lúc triển khai nhiều bài toán gán nhãn.

Sau khi định nghĩa rõ ràng bài toán gán nhãn, bước tiếp theo là cần lên kế hoạch và thu thập nguồn ngữ liệu (corpus), hai yếu tố quan trọng bậc nhất khi thu thập ngữ liệu đó là tính “đại diện” và tính “cân bằng” . Tính “đại diện” được hiểu là cần thu thập đầy đủ các đặc tính khác nhau của phân bố dữ liệu trong thực tế. Ví dụ khi thu thập ngữ liệu về đánh giá phim chiếu rạp, ta cần thu thập nhiều cách đánh giá khác nhau của người dùng. Tính “cân bằng” được hiểu là cần thu thập dữ liệu từ nhiều nguồn của phân bố dữ liệu trong thực tế. Ví dụ khi thu thập ngữ liệu để xây dựng bộ tách từ cho tiếng Việt, ta cần thu thập dữ liệu từ văn bản báo điện tử, diễn đàn, blog, mạng xã hội, v.v. Một khía cạnh vô cùng quan trọng khi thu thập dữ liệu là cần kiểm tra bản quyền để tránh các rắc rối về mặt pháp luật sau này.

Khi đã có được nguồn dữ liệu, các bước tiền xử lý như bỏ đi dữ liệu “rác”, chuẩn hoá lỗi chính tả, v.v. cũng cần được thực hiện một cách cẩn thận cùng với việc chuẩn bị cơ sở hạ tầng – nền tảng để triển khai dự án gán nhãn. Đó có thể là phần mềm lưu trữ kết quả gán nhãn, đường truyền internet tốc độ cao v.v.

Viết tài liệu hướng dẫn gán nhãn, tuỳ vào độ phức tạp của bài toán gán nhãn mà có thể tìm và thuê đội ngũ gán nhãn (Annotator) với kỹ năng và kiến thức phù hợp với bài toán; đội ngũ gán nhãn tham gia vào việc xây dựng tài liệu cần hiểu rõ yêu cầu bài toán gán nhãn và tài liệu hướng dẫn gán nhãn. Ngoài ra, tương tự như xây dựng tài liệu gán nhãn, tuỳ độ phức tạp và quy mô của dự án gán nhãn, người quản lý dự án cần cân nhắc triển khai gán nhãn dữ liệu trong phạm vi nội bộ công ty (in-house) hay thuê ngoài trọn gói (Crowd Workers). Khi triển khai gán nhãn thuê ngoài cần chú ý ký thoả thuận bảo mật dữ liệu với đơn vị nhận triển khai gán nhãn.

Gán nhãn dữ liệu thực tế

Bước đầu tiên là lấy ra một phần nhỏ từ bộ corpus để làm thử. Vì sao làm thử quan trọng? bởi vì khi làm thử sẽ phát hiện ra những vấn để cần cải thiện hay thay đổi của dự án trước khi triển khai gán nhãn hàng loạt, ngoài ra làm thử cũng giúp người quản lý dự án ước lượng khá chính xác về tiến độ và chất lượng gán nhãn. Sau khi hoàn thành giai đoạn làm thử trên tập dữ liệu mẫu ban đầu, những kỹ thuật thống kê phổ biến như Cohen’s Kappa hay Fleiss’s Kappa cần được áp dụng để đo chỉ số đồng thuận của các kết quả gán nhãn. Từ đó có người quản lý dự án gán nhãn có được những nhận định sơ bộ về kết quả gán nhãn, quyết định những phần nào của kết qủa gán nhãn cần kiểm tra lại, tiến hành những thay đổi như cập nhật hướng dẫn, thay đổi qui trình, v.v. nếu cần thiết nhằm nâng cao chất lượng, sự đồng thuận trong kết quả gán nhãn.

Sau khi tổng kết giai đoạn làm thử, bước tiếp theo là triển khai dự án gán nhãn dữ liệu trên diện rộng. Tuỳ vào tính chất bài toán gán nhãn mà có thể tiến hành triển khai dự án trong nội bộ công ty hay thuê ngoài. Dữ liệu gán nhãn xong cần được kiểm tra lại bởi những người gán nhãn hiểu tường tận nhất về bài toán gán nhãn đang triển khai (Adjudicator). Tốt nhất nên cắt cử những thành viên đã tham gia ngay từ những bước đầu tiên của dự án gán nhãn, tham gia vào quá trình định nghĩa bài toán gán nhãn hay viết hướng dẫn gán nhãn. Kiểm soát chất lượng gán nhãn là bước không thể thiếu ở giai đoạn này, cần tiến hành kiểm tra chất lượng hàng tuần và có những cuộc họp về đảm bảo chất lượng với đội ngũ gán nhãn. Ngoài ra, nếu cần thiết có thể thuê một đơn vị độc lập để kiểm định chất lượng gán nhãn; truy tìm tận gốc các nguyên nhân gây ra lỗi gán nhãn và đưa ra các biện pháp điều chỉnh.

Đóng gói và chuyển giao dữ liệu

Đây là giai đoạn đóng gói và chuyển giao dữ liệu đã được gán nhãn tới các bên cần sử dụng. Trong trường hợp cần sẽ tiến hành cập nhật lại một số kết quả gán nhãn sau khi nhận kết quả phản hồi từ các bên sử dụng dữ liệu; viết báo cáo về dữ liệu, đội ngũ gán nhãn, qui trình, cơ sở hạ tầng, v.v. để tổng kết rút ra những bài học với mục đích triển khai các dự án gán nhãn dữ liệu hiệu quả hơn trong tương lai.

Tài liệu tham khảo

  • Natural Language Annotation for Machine Learning – James Pustejovsky and Amber Stubbs, O’Reilly Publishers 2012
  • WebAnno: A Flexible, Web-based and Visually Supported System for Distributed Annotations – Seid Muhie Yimam, Iryna Gurevych, Richard Eckart de Castilho, and Chris Biemann. 2013. In Proceedings of the 51st Annual Meeting of the Association for Computational Linguistics (System Demonstrations) (ACL 2013), pages 1-6, Sofia, Bulgaria.

Nguyễn Thế Tuyên- Viện Nghiên cứu Dữ liệu lớn
Công ty Cổ phần Phát triển Công nghệ VinTech

(Nguồn techinsight)

Hits: 458