Logo Zephyrnet

Giải thích các mô hình NLP với LIME

Ngày:

By Ayan Kundu, Nhà khoa học dữ liệu

Điều rất quan trọng là phải biết cách LIME đạt được kết quả đầu ra cuối cùng để giải thích dự đoán được thực hiện cho dữ liệu văn bản. Trong bài viết này, tôi đã chia sẻ khái niệm đó bằng cách làm rõ các thành phần của LIME.

Giải thích các mô hình NLP với LIME


Photo by Ethan Medrano on Unsplash


 

Vài tuần trước tôi đã viết một  Blog của chúng tôi. về cách sử dụng các công cụ diễn giải khác nhau để diễn giải các dự đoán nhất định được thực hiện bởi các mô hình hộp đen. Trong bài viết đó, tôi đã chia sẻ toán học đằng sau LIME, SHAP và các công cụ có thể diễn giải khác, nhưng tôi không đi sâu vào chi tiết về việc triển khai các khái niệm đó trên dữ liệu gốc. Trong bài viết này, tôi đã nghĩ đến việc chia sẻ cách LIME hoạt động trên dữ liệu văn bản theo từng bước.

Dữ liệu được sử dụng cho toàn bộ quá trình phân tích được lấy từ Ở đây . Dữ liệu này dùng để dự đoán xem một tweet nhất định có nói về một thảm họa thực sự hay không (1) hay không (0). Nó có các cột sau:


Giải thích các mô hình NLP với LIME
nguồn

 

Vì trọng tâm chính của blog này là giải thích GIỚI HẠN và các thành phần khác nhau của nó, vì vậy chúng tôi sẽ nhanh chóng xây dựng mô hình phân loại văn bản nhị phân bằng Random Forest và sẽ tập trung chủ yếu vào diễn giải LIME.

Đầu tiên, chúng ta bắt đầu với việc nhập các gói cần thiết. Sau đó, chúng tôi đọc dữ liệu và bắt đầu quá trình xử lý trước như loại bỏ các từ dừng, chữ thường, từ vựng, loại bỏ dấu chấm câu, loại bỏ khoảng trắng, v.v. Tất cả văn bản đã được xử lý trước đã được làm sạch sẽ được lưu trữ trong cột 'cleaned_text' mới. Cột này sẽ được sử dụng tiếp để phân tích và dữ liệu được chia nhỏ vào huấn luyện và xác nhận được đặt theo tỷ lệ 80:20.

Sau đó, chúng ta nhanh chóng chuyển sang chuyển đổi dữ liệu văn bản thành vectơ bằng cách sử dụng TF-IDF vectoriser và lắp một Rừng ngẫu nhiên mô hình phân loại trên đó.


Giải thích các mô hình NLP với LIME
Hình ảnh của tác giả

 

Bây giờ chúng ta hãy bắt đầu mối quan tâm chính của blog này đó là cách diễn giải các thành phần khác nhau của LIME.

Trước tiên, hãy xem đầu ra cuối cùng của cách diễn giải LIME cho một phiên bản dữ liệu cụ thể là gì. Sau đó, chúng ta sẽ đi sâu vào các thành phần khác nhau của LIME theo từng bước để cuối cùng sẽ mang lại kết quả như mong muốn.


Giải thích các mô hình NLP với LIME
Hình ảnh của tác giả

 

Ở đây nhãn=(1,) được chuyển dưới dạng đối số có nghĩa là chúng tôi muốn giải thích cho lớp 1. Các tính năng (từ trong trường hợp này) được đánh dấu bằng màu cam là các tính năng hàng đầu gây ra dự đoán về lớp 0 (không phải thảm họa) với xác suất 0.75 và loại 1 (thảm họa) với xác suất 0.25.

LƯU Ý: char_level là một trong các đối số cho LimeTextExplainer, một boolean xác định rằng chúng tôi coi mỗi ký tự là một sự xuất hiện độc lập trong chuỗi. Mặc định là Sai nên chúng tôi không xem xét từng ký tự một cách độc lập và hàm IndexedString được sử dụng để mã hóa và lập chỉ mục các từ trong phiên bản văn bản, nếu không thì hàm IndexedCharacters sẽ được sử dụng.

Vì vậy, bạn phải quan tâm để biết những điều này được tính toán như thế nào. Phải?

Hãy xem điều đó.

LIME bắt đầu bằng việc tạo một số mẫu nhiễu loạn xung quanh vùng lân cận của điểm dữ liệu quan tâm. Đối với dữ liệu văn bản, các mẫu nhiễu loạn được tạo bằng cách loại bỏ ngẫu nhiên một số từ khỏi phiên bản và khoảng cách cosine được sử dụng để tính khoảng cách giữa mẫu gốc và mẫu nhiễu loạn làm thước đo mặc định.

Điều này trả về mảng gồm 5000 mẫu nhiễu loạn (mỗi mẫu nhiễu loạn có độ dài bằng phiên bản gốc và 1 có nghĩa là từ ở vị trí đó của phiên bản gốc xuất hiện trong mẫu nhiễu loạn), xác suất dự đoán tương ứng của chúng và khoảng cách cosin giữa mẫu gốc và các mẫu bị nhiễu loạn. Một đoạn trong số đó như sau:


Giải thích các mô hình NLP với LIME
Hình ảnh của tác giả

 

Bây giờ sau khi tạo các mẫu nhiễu loạn trong vùng lân cận, đã đến lúc đưa ra trọng số cho các mẫu đó. Các mẫu ở gần phiên bản gốc sẽ có trọng số cao hơn các mẫu ở xa phiên bản gốc. hạt nhân mũ với chiều rộng hạt nhân 25 được sử dụng làm mặc định để đưa ra trọng số đó.

Sau đó, các tính năng quan trọng (theo num_features: số lượng tính năng tối đa cần giải thích) được chọn bằng cách tìm hiểu mô hình thưa thớt tuyến tính cục bộ từ dữ liệu bị nhiễu. Có một số phương pháp để chọn các tính năng quan trọng bằng cách sử dụng mô hình thưa thớt tuyến tính cục bộ như 'auto'(mặc định), 'forward_selection', 'lasso_path', 'highest_weights'. Nếu chúng tôi chọn 'tự động' thì 'forward_selection' sẽ được sử dụng nếu num_features<6, nếu không thì sử dụng 'highest_weights'.


Giải thích các mô hình NLP với LIME
Hình ảnh của tác giả

 

Ở đây chúng ta có thể thấy rằng các tính năng được chọn là [1,5,0,2,3] là chỉ mục của các từ (hoặc tính năng) quan trọng trong trường hợp ban đầu. Như ở đây num_features=5 và Method='auto', phương thức 'forward_selection' được sử dụng để chọn các tính năng quan trọng.

Bây giờ hãy xem điều gì sẽ xảy ra nếu chúng ta chọn phương thức là 'lasso_path'.


Giải thích các mô hình NLP với LIME
Hình ảnh của tác giả

 

Như nhau. Phải?

Nhưng bạn có thể muốn tìm hiểu sâu hơn về quá trình lựa chọn này. Đừng lo lắng, tôi sẽ làm điều đó dễ dàng.

Nó sử dụng khái niệm về Hồi quy góc nhỏ nhất để lựa chọn các tính năng hàng đầu.

Hãy xem điều gì sẽ xảy ra nếu chúng ta chọn phương thức là 'highest_weights'.


Giải thích các mô hình NLP với LIME
Hình ảnh của tác giả

 

Treo lên. Chúng tôi đang đi sâu hơn trong quá trình lựa chọn.

Vì vậy, bây giờ các tính năng quan trọng chúng tôi đã chọn bằng cách sử dụng bất kỳ một trong các phương pháp. Nhưng cuối cùng chúng ta sẽ phải điều chỉnh một mô hình tuyến tính cục bộ để giải thích dự đoán được thực hiện bởi mô hình hộp đen. Vì điều đó Hồi quy Ridge được sử dụng làm mặc định.

Hãy kiểm tra xem kết quả đầu ra cuối cùng sẽ như thế nào.

Nếu chúng ta chọn phương thức lần lượt là auto,highest_weights và lasso_path thì đầu ra sẽ như thế này:


Giải thích các mô hình NLP với LIME
Hình ảnh của tác giả

 

Chúng trả về một bộ dữ liệu (chặn mô hình tuyến tính cục bộ, các chỉ số tính năng quan trọng và hệ số của nó, giá trị R² của mô hình tuyến tính cục bộ, dự đoán cục bộ theo mô hình giải thích trên phiên bản gốc).

Nếu chúng ta so sánh hình ảnh trên với


Giải thích các mô hình NLP với LIME
Hình ảnh của tác giả

 

thì chúng ta có thể nói rằng xác suất dự đoán được đưa ra ở phần lớn bên trái là dự đoán cục bộ được thực hiện bởi mô hình giải thích. Các đặc điểm và giá trị được đưa ra ở bảng giữa là các đặc điểm quan trọng và hệ số của chúng.

LƯU Ý: Đối với trường hợp dữ liệu cụ thể này, số lượng từ (hoặc tính năng) chỉ là 6 và chúng tôi đang chọn 5 tính năng quan trọng hàng đầu, tất cả các phương pháp đều đưa ra cùng một bộ 5 tính năng quan trọng hàng đầu. Nhưng nó có thể không xảy ra đối với những câu dài hơn.

Nếu bạn thích bài viết này xin vui lòng nhấn giới thiệu. Điều đó thật tuyệt vời.

Để có được mã đầy đủ, vui lòng truy cập của tôi GitHub kho. Đối với các blog tương lai của tôi, vui lòng theo dõi tôi trên LinkedIn và Trung bình.

Kết luận

Trong bài viết này, tôi đã cố gắng giải thích kết quả cuối cùng của LIME cho dữ liệu văn bản và cách toàn bộ quá trình giải thích diễn ra đối với văn bản theo từng bước. Giải thích tương tự có thể được thực hiện cho dữ liệu dạng bảng và hình ảnh. Vì điều đó tôi thực sự khuyên bạn nên đi qua điều này.

dự án

  1. Kho lưu trữ GitHub cho LIME: https://github.com/marcotcr/lime
  2. Tài liệu về LARS: http://www.cse.iitm.ac.in/~vplab/courses/SLT/PDF/LAR_hastie_2018.pdf
  3. https://towardsdatascience.com/python-libraries-for-interpretable-machine-learning-c476a08ed2c7

 
 
Ayan Kundu là một nhà khoa học dữ liệu có hơn 2 năm kinh nghiệm trong lĩnh vực tài chính ngân hàng và cũng là người ham học hỏi để giúp đỡ cộng đồng nhiều nhất có thể. Theo dõi Ayan trên LinkedInTrung bình.

Nguồn: https://www.kdnuggets.com/2022/01/explain-nlp-models-lime.html

tại chỗ_img

Tin tức mới nhất

tại chỗ_img

Trò chuyện trực tiếp với chúng tôi (chat)

Chào bạn! Làm thế nào để tôi giúp bạn?