Dich từ blog How I write NLP papers in 8 months: idea to publication
(ND: Nghiên cứu là một quá trình lặp đi lặp lại từ lên ý tưởng, thực nghiệm, phân tích kết quả rồi tiếp tục lên ý tưởng. Tham khảo bài viết Weekly idea: The loop of progress trên blog của Francis Chollet)
Trước đó, trong tháng này tôi đã bảo vệ luận án tiến sĩ. Một phần lớn công việc của một nghiên cứu sinh tiến sĩ bao gồm hoàn thành công bố có bình duyệt, và ở trong lĩnh vực của tôi, ba công trình nghiên cứu với vai trò tác giả thứ nhất, về một chủ đề thống nhất trên các hội nghị hàng đầu (EMNLP, ACL, NAACL, TACL, v.v) là đủ tiêu chuẩn để lấy bằng tiến sĩ.
Nhìn lại quá trình xuất bản ba bài báo của tôi, tôi nhận ra rằng tất cả ba bài báo sẽ cần thời gian 8 đến 10 tháng kể từ thời điểm của ý tưởng ban đầu cho đến khi nộp bản thảo 8 trang tới hội nghị. Hơn nữa, mỗi bài báo tuân theo một con đường tương tự nhau từ cách nó phát triển từ một ý tưởng chưa rõ ràng tới một đóng góp vững chắc về mặt nghiên cứu.
Đây chắc chắn không phải là cách duy nhất để viết các bài báo, nhưng nó hiệu quả với tôi. Tất cả ba bài báo của tôi đã được chấp nhận ở các hội nghị chính (trong ngành NLP) ở lần đầu tiên gửi, với các điểm số nằm giữa 3.5 và 4 (trên thang đánh giá 1-5). Vì thế, tôi nghĩ rằng nó là một phương pháp tốt để áp dụng vào các dự án nghiên cứu và để xuất bản (một cách đáng tin cậy) các bài báo tốt trong ngành NLP.
Tháng 1: Khảo sát (Literature review)
Khi tôi bắt đầu một dự án, tôi thường chỉ có một ý tưởng mơ hồ về phương hướng hoặc một số hiện tượng mà tôi muốn khám phá. Vì tôi chưa hiểu rõ về lĩnh vực này nên ở giai đoạn này việc dành thời gian đọc các tài liệu trước đó thay vì đi sâu vào các thực nghiệm ngay lập tức, hữu ích với tôi. Đây là trọng tâm của tôi trong 3-4 tuần đầu tiên của một dự án.
Xem bài đăng trên blog của tôi ở đây để đọc hướng dẫn về cách tìm và đọc các tài liệu nghiên cứu.
Vào cuối tháng đầu tiên, tôi đã đọc khoảng 50 bài báo và hiểu rõ về:
- Các khung lý thuyết và các giả định liên quan đến vấn đề.
- Các công trình gần đây trong lĩnh vực này và họ sử dụng bộ dữ liệu và phương pháp nào để giải quyết vấn đề.
- Những thách thức lớn và các vấn đề mở trong lĩnh vực này, và tại sao chúng vẫn khó giải quyết.
Tại thời điểm này, sau khi làm quen với công trình gần đây, tôi thường có thể xác định một số “khoảng trống nghiên cứu” chưa được giải quyết trong các nghiên cứu và có một số ý tưởng về cách bắt đầu giải quyết chúng. Đây là lúc tôi bắt đầu chạy thử nghiệm – những thử nghiệm ban đầu này hầu như không bao giờ được đưa vào bài báo cuối cùng, nhưng chúng cho phép tôi bắt đầu xây dựng trực giác cho vấn đề và làm quen với các kỹ thuật và tập dữ liệu thường được sử dụng.
Tháng 2-4: Khám phá
Giai đoạn tiếp theo của dự án là thăm dò và thử nghiệm một cách lặp đi lặp lại. Trong hai hoặc ba tháng tiếp theo, tôi thực hiện các thí nghiệm, xây dựng các thí nghiệm nối tiếp nhau, sử dụng các bài học rút ra từ một thí nghiệm để hướng dẫn thiết kế cho thí nghiệm tiếp theo. Hầu hết các thử nghiệm này sẽ là “thất bại” – không rút ra được kết luận vì nhiều lý do:
- Tôi phát hiện ra rằng một số giả định mang tính lý thuyết không hợp lệ, khiến thí nghiệm trở nên vô nghĩa.
- Sau khi chạy thử nghiệm, tôi thấy rằng kết quả không thú vị lắm: chúng có thể giải thích được bằng một điều gì đó hiển nhiên, hoặc không có mô thức nhất quán.
- Tôi cố gắng chạy thử nghiệm nhưng thấy rằng điều đó là không thể vì bộ dữ liệu thiếu một số đặc trưng quan trọng hoặc công cụ của tôi không đủ mạnh.
Một điều bạn không bao giờ nên làm là quyết định trước bằng chứng nào bạn muốn tìm, sau đó chạy thử nghiệm cho đến khi bạn tìm thấy nó. Đó là một thứ khoa học tồi. Vì vậy, trong bối cảnh này, một thử nghiệm thất bại có nghĩa là nó không tạo ra kết quả đủ thú vị để đưa vào một bài báo. Một thử nghiệm có thể tạo ra kết quả khác với những gì tôi mong đợi, trong khi đó là một thử nghiệm rất thú vị và thành công.
Trong giai đoạn này, tôi đọc các bài báo theo một cách khác so với tháng đầu tiên. Thay vì tạo ra một mạng lưới rộng, việc đọc của tôi tập trung hơn vào việc hiểu các chi tiết để tôi có thể thực hiện một thí nghiệm cụ thể một cách chính xác.
Sau vài tháng lặp đi lặp lại và thực hiện khoảng 15-20 thử nghiệm, tôi có ít nhất 2 hoặc 3 thử nghiệm với kết quả đủ thú vị mà tôi muốn chia sẻ với cộng đồng. Những thử nghiệm này sẽ tạo thành cốt lõi của bài báo mới của tôi, nhưng vẫn chưa đủ, vì tôi vẫn phải kết hợp chúng lại với nhau thành một câu chuyện mạch lạc duy nhất và củng cố tất cả những điểm yếu sẽ bị tấn công không thương tiếc trong quá trình bình duyệt.
Tháng 5: Kể chuyện
Trước khi bạn có thể viết một bài báo, bạn phải quyết định một khung hoặc câu chuyện phù hợp với các thí nghiệm của bạn. Nếu điều này không được thực hiện một cách chính xác, người đọc sẽ bị nhầm lẫn; các thí nghiệm của bạn sẽ cho cảm giác không mạch lạc và không động cơ rõ ràng.
Cùng một dữ liệu và thử nghiệm có thể được đóng khung theo nhiều cách khác nhau. Chúng ta có tập trung vào việc đánh giá một số mô hình NLP về mức độ chúng thể hiện một số thuộc tính ngôn ngữ không? Hay chúng ta đang sử dụng bằng chứng từ các mô hình NLP để tranh luận về một số lý thuyết về khả năng (ND: máy tính) học ngôn ngữ con người? Hoặc có lẽ đóng góp chính của chúng tôi là phát hành một lược đồ gán nhãn dữ liệu mới và tập dữ liệu mới?
Để quyết định khung của bài báo, chúng tôi phải xem xét một số câu chuyện có thể kể và câu chuyện phù hợp nhất về mặt tổng thể với các thử nghiệm cốt lõi của chúng tôi. Chúng tôi sẽ cần đưa ra lời giải thích cho điều đó, đây thường không phải là lý do ban đầu mà chúng tôi thực hiện thử nghiệm (vì giai đoạn khám phá rất ngẫu nhiên).
Sản phẩm của việc suy nghĩ cho câu chuyện sẽ kể trong bài báo này là một bản thảo tóm tắt của bài báo cuối cùng, chứa các kết quả chính và động cơ thực hiện chúng. Bằng cách viết phần tóm tắt trước, mục tiêu khoa học tổng thể và cấu trúc của bài báo được làm rõ. Điều này cũng cung cấp cho mọi người ý tưởng về những khoảng trống trong câu chuyện và những thử nghiệm nào vẫn cần thiết để lấp đầy những khoảng trống này. Khoảng thời gian này là khi tôi quyết định nhắm đến ngày gửi bài báo tới hội nghị, khoảng 3-4 tháng sau.
Tháng 6-7: Củng cố kết quả nghiên cứu
Bây giờ chúng ta đang ở giai đoạn cuối của dự án: chúng ta đã quyết định về những đóng góp cốt lõi, bây giờ chúng ta chỉ cần kiên nhẫn dành thời gian để làm cho kết quả nghiên cứu vững chắc nhất có thể. Tôi lập một danh sách các thử nghiệm cần thực hiện để củng cố kết quả, chẳng hạn như chạy nó với các mô hình khác nhau, các bộ dữ liệu khác nhau bằng các ngôn ngữ khác, nghiên cứu cắt bỏ (ablation), kiểm soát các biến số gây nhiễu tiềm ẩn (confounding variables), v.v.
Về cơ bản, tôi xem xét bài báo của chính mình từ góc độ của một nhà phê bình, tự hỏi bản thân: “tại sao tôi lại từ chối bài báo này?” Các đồng tác giả của tôi sẽ giúp đỡ bằng cách chỉ ra những sai sót trong lập luận và phương pháp luận của tôi, dự đoán các vấn đề trước khi có đánh giá chính thức của đồng nghiệp và cho tôi nhiều thời gian để khắc phục chúng. Bài báo có thể có cơ hội được chấp nhận mà không cần phải làm thêm, nhưng nó đáng giá vì nó làm giảm nguy cơ bài báo bị từ chối và cần phải gửi lại, điều này sẽ lãng phí vài tháng quý giá của mọi người.
Tháng 8: Viết bài báo
Tôi mất khoảng 3 tuần để thực sự viết bài báo. Tôi muốn đóng băng tất cả mã nguồn và kết quả thử nghiệm một tháng trước thời hạn, để trong tháng cuối cùng, tôi có thể tập trung vào việc trình bày và viết. Khi tất cả các bảng và số liệu đã sẵn sàng, việc viết bài báo sẽ dễ dàng hơn rất nhiều mà không phải lo lắng về phần nào sẽ cần được cập nhật khi có kết quả mới.
Phần phương pháp thử nghiệm và kết quả là phần dễ viết nhất vì đó là những gì tôi đã nghĩ trong vài tháng qua. Phần giới thiệu là khó nhất vì tôi phải lùi lại một bước và suy nghĩ về cách trình bày công trình nghiên cứu cho những người lần đầu tiên nhìn thấy nó, nhưng đó là điều đầu tiên người đọc nhìn thấy và có lẽ là phần quan trọng nhất của bài báo.
Một tuần trước thời hạn, tôi có một bản thảo đầu tiên tương đối tốt. Sau khi gửi nó cho các đồng tác giả của tôi lần cuối để cải thiện bản trình bày cuối cùng, tôi đã sẵn sàng nhấn nút gửi. Bây giờ chúng tôi cầu nguyện và háo hức chờ đợi email thông báo kết quả bình duyệt!
Vĩ thanh
Có hai điều đã giúp tôi rất nhiều trong quá trình học Tiến sĩ: đọc nhiều bài báo về NLP và có một hội đồng tốt.
Đọc nhiều bài báo về NLP thực sự hữu ích vì nó giúp bạn xây dựng trực giác về những bài báo tốt và kém trông như thế nào. Khi mới bắt đầu sự nghiệp nghiên cứu của mình, tôi đã tham gia rất nhiều nhóm đọc bài báo, nơi chúng tôi thảo luận về các bài báo gần đây (cả bài báo đã xuất bản và bản in trước trên arXiV) và nói về phần nào mạnh và yếu cũng như lý do tại sao. Tôi nhận thấy các xu hướng lặp đi lặp lại của các vấn đề phổ biến và cách các bài báo xuất sắc giải quyết chúng, để tôi có thể kết hợp các giải pháp tương tự vào các bài báo của mình.
Điều này giống như đào tạo GAN (generative adversarial network). Tôi đã rèn luyện bản thân để trở thành một người phân biệt tốt các bài báo tốt và kém, và điều này cũng hữu ích cho công cụ sinh bài báo (generator) của tôi: khi bài báo của tôi vượt qua bộ phân loại của riêng tôi, nó cũng thường có thể vượt qua các bước bình duyệt của các nhà nghiên cứu khác (peer review).
Một điều nữa đã giúp tôi là có một hội đồng vững chắc bao gồm các chuyên gia từ các ngành khác nhau. Điều này hóa ra lại rất hữu ích vì họ thường chỉ ra những điểm yếu và những giả định sai lầm mà tôi không nhận ra, ngay cả khi họ không có giải pháp khắc phục những vấn đề này. Bằng cách này, tôi không ngạc nhiên khi các bài bình duyệt được gửi tới: tất cả các điểm yếu đã được chỉ ra trước đó (bởi hội đồng của tôi – lời người dịch).
Đối với các nghiên cứu sinh đang đọc bài này, tôi có hai lời khuyên. Đầu tiên, hãy đọc nhiều bài báo để tinh chỉnh bộ phân loại (thuật ngữ discriminator trong mạng GAN – lời người dịch) của bạn. Thứ hai, nhận phản hồi về bài báo của bạn thường xuyên và càng sớm càng tốt. Ở giai đoạn này sẽ đỡ đau đớn hơn rất nhiều khi bạn vẫn đang trong giai đoạn khám phá của dự án, thay vì sau khi bạn đã gửi bài báo để nhận được phản hồi tương tự từ những người bình duyệt (reviewer).
Filed under: Bài dịch, Kỹ năng mềm cho nhà khoa học | Tagged: advice, paper | Leave a comment »