Mã hóa các thuộc tính văn bản đa ngôn ngữ trong Amazon Neptune để huấn luyện các mô hình dự đoán PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Mã hóa các thuộc tính văn bản đa ngôn ngữ trong Amazon Neptune để đào tạo các mô hình dự đoán

Amazon Sao Hải Vương ML là khả năng học máy (ML) của Sao Hải vương Amazon giúp bạn đưa ra dự đoán chính xác và nhanh chóng về dữ liệu biểu đồ của mình. Về cơ bản, Neptune ML sử dụng Graph Neural Networks (GNN) để đồng thời tận dụng cấu trúc đồ thị và thuộc tính nút / cạnh để giải quyết công việc trong tầm tay. Các phương pháp truyền thống hoặc chỉ sử dụng thuộc tính và không có cấu trúc đồ thị (ví dụ: XGBoost, Mạng thần kinh) hoặc chỉ có cấu trúc đồ thị và không có thuộc tính (ví dụ: node2vec, Truyền nhãn). Để thao tác tốt hơn các thuộc tính nút / cạnh, các thuật toán ML yêu cầu dữ liệu phải là dữ liệu số hoạt động tốt, nhưng dữ liệu thô trong cơ sở dữ liệu có thể có các kiểu khác, chẳng hạn như văn bản thô. Để sử dụng các loại dữ liệu khác này, chúng ta cần các bước xử lý chuyên biệt để chuyển chúng từ kiểu gốc thành dữ liệu số và chất lượng của kết quả ML phụ thuộc nhiều vào chất lượng của các phép biến đổi dữ liệu này. Văn bản thô, giống như câu, là một trong những loại khó chuyển đổi nhất, nhưng tiến bộ gần đây trong lĩnh vực Xử lý ngôn ngữ tự nhiên (NLP) đã dẫn đến các phương pháp mạnh mẽ có thể xử lý văn bản đến từ nhiều ngôn ngữ và nhiều độ dài khác nhau.

Bắt đầu với phiên bản 1.1.0.0, Neptune ML hỗ trợ nhiều bộ mã hóa văn bản (text_fasttext, text_sbert, text_word2vecvăn bản_tfidf), mang lại lợi ích của những tiến bộ gần đây trong NLP và cho phép hỗ trợ các thuộc tính văn bản đa ngôn ngữ cũng như các yêu cầu suy luận bổ sung xung quanh ngôn ngữ và độ dài văn bản. Ví dụ: trong một trường hợp sử dụng thư giới thiệu việc làm, các bài đăng tuyển dụng ở các quốc gia khác nhau có thể được mô tả bằng các ngôn ngữ khác nhau và độ dài của bản mô tả công việc cũng khác nhau đáng kể. Ngoài ra, Neptune ML hỗ trợ một tự động tùy chọn tự động chọn phương pháp mã hóa tốt nhất dựa trên các đặc điểm của đối tượng văn bản trong dữ liệu.

Trong bài đăng này, chúng tôi minh họa cách sử dụng của từng bộ mã hóa văn bản, so sánh ưu điểm và nhược điểm của chúng và đưa ra ví dụ về cách chọn bộ mã hóa văn bản phù hợp cho nhiệm vụ giới thiệu việc làm.

Bộ mã hóa văn bản là gì?

Mục tiêu của mã hóa văn bản là chuyển đổi các thuộc tính cạnh / nút dựa trên văn bản trong Neptune thành các vectơ có kích thước cố định để sử dụng trong các mô hình học máy hạ nguồn cho các nhiệm vụ phân loại nút hoặc dự đoán liên kết. Độ dài của đối tượng địa lý văn bản có thể thay đổi rất nhiều. Nó có thể là một từ, cụm từ, câu, đoạn văn hoặc thậm chí là một tài liệu có nhiều câu (kích thước tối đa của một thuộc tính là 55 MB trong Neptune). Ngoài ra, các tính năng văn bản có thể ở các ngôn ngữ khác nhau. Cũng có thể có những câu chứa các từ trong một số ngôn ngữ khác nhau, mà chúng tôi định nghĩa là chuyển đổi mã.

Bắt đầu với bản phát hành 1.1.0.0, Neptune ML cho phép bạn chọn từ một số bộ mã hóa văn bản khác nhau. Mỗi bộ mã hóa hoạt động hơi khác nhau, nhưng có cùng mục tiêu là chuyển đổi trường giá trị văn bản từ Sao Hải Vương thành vectơ có kích thước cố định mà chúng tôi sử dụng để xây dựng mô hình GNN của mình bằng Neptune ML. Các bộ mã hóa mới như sau:

  • text_fasttext (mới) - Công dụng văn bản nhanh mã hóa. FastText là một thư viện để học biểu diễn văn bản hiệu quả. text_fasttext được đề xuất cho các tính năng sử dụng một và chỉ một trong năm ngôn ngữ mà fastText hỗ trợ (tiếng Anh, tiếng Trung, tiếng Hindi, tiếng Tây Ban Nha và tiếng Pháp). Các text_fasttext phương pháp có thể tùy chọn lấy max_length , trường này chỉ định số lượng mã thông báo tối đa trong giá trị thuộc tính văn bản sẽ được mã hóa, sau đó chuỗi sẽ bị cắt bớt. Bạn có thể coi một mã thông báo như một từ. Điều này có thể cải thiện hiệu suất khi các giá trị thuộc tính văn bản chứa các chuỗi dài, vì nếu max_length không được chỉ định, fastText mã hóa tất cả các mã thông báo bất kể độ dài chuỗi.
  • text_sbert (mới) - Sử dụng BERT Câu (SBERT) phương pháp mã hóa. SBERT là một loại phương pháp nhúng câu sử dụng mô hình học biểu diễn theo ngữ cảnh, BERT-Networks. text_sbert được khuyến nghị khi ngôn ngữ không được hỗ trợ bởi text_fasttext. Neptune hỗ trợ hai phương thức SBERT: text_sbert128, là mặc định nếu bạn chỉ định text_sberttext_sbert512. Sự khác biệt giữa chúng là số lượng mã thông báo tối đa trong thuộc tính văn bản được mã hóa. Các text_sbert128 mã hóa chỉ mã hóa 128 mã thông báo đầu tiên, trong khi text_sbert512 mã hóa tối đa 512 mã thông báo. Kết quả là, sử dụng text_sbert512 có thể yêu cầu nhiều thời gian xử lý hơn text_sbert128. Cả hai phương pháp đều chậm hơn text_fasttext.
  • text_word2vec - Công dụng Word2Cũ các thuật toán ban đầu do Google xuất bản để mã hóa văn bản. Word2Vec chỉ hỗ trợ tiếng Anh.
  • văn bản_tfidf - Sử dụng thuật ngữ tần số nghịch đảo tần số của tài liệu (TF-IDF) vectorizer để mã hóa văn bản. Mã hóa TF-IDF hỗ trợ các tính năng thống kê mà các mã hóa khác không hỗ trợ. Nó định lượng tầm quan trọng hoặc mức độ liên quan của các từ trong một thuộc tính nút trong số tất cả các nút khác.

Lưu ý rằng text_word2vectext_tfidf đã được hỗ trợ trước đó và các phương pháp mới text_fasttexttext_sbert được đề xuất thay vì các phương pháp cũ.

So sánh các bộ mã hóa văn bản khác nhau

Bảng sau đây cho thấy sự so sánh chi tiết của tất cả các tùy chọn mã hóa văn bản được hỗ trợ (text_fasttext, text_sberttext_word2vec). text_tfidf không phải là một phương pháp mã hóa dựa trên mô hình, mà là một biện pháp dựa trên số lượng để đánh giá mức độ liên quan của mã thông báo (ví dụ: một từ) với các tính năng văn bản trong các nút hoặc cạnh khác, vì vậy chúng tôi không bao gồm text_tfidf để so sánh. Chúng tôi khuyên bạn nên sử dụng text_tfidf khi bạn muốn định lượng tầm quan trọng hoặc mức độ liên quan của một số từ trong một nút hoặc thuộc tính cạnh trong số tất cả các thuộc tính nút hoặc cạnh khác.)

. . text_fasttext text_sbert text_word2vec
Khả năng mô hình Ngôn ngữ được hỗ trợ Tiếng Anh, tiếng Trung, tiếng Hindi, tiếng Tây Ban Nha và tiếng Pháp Hơn 50 ngôn ngữ Tiếng Anh
Có thể mã hóa các thuộc tính văn bản có chứa các từ bằng các ngôn ngữ khác nhau Không Không
Hỗ trợ chiều dài tối đa Không giới hạn độ dài tối đa Mã hóa chuỗi văn bản với độ dài tối đa là 128 và 512 Không giới hạn độ dài tối đa
Chi phí thời gian Tải Khoảng 10 giây Khoảng 2 giây Khoảng 2 giây
Sự suy luận NHANH CHÓNG Chậm Trung bình

Lưu ý các mẹo sử dụng sau:

  • Đối với các giá trị thuộc tính văn bản bằng tiếng Anh, tiếng Trung, tiếng Hindi, tiếng Tây Ban Nha và tiếng Pháp, text_fasttext là mã hóa được khuyến nghị. Tuy nhiên, nó không thể xử lý các trường hợp trong đó cùng một câu chứa các từ trong nhiều ngôn ngữ. Đối với các ngôn ngữ khác ngoài năm ngôn ngữ đó fastText hỗ trợ, sử dụng text_sbert mã hóa.
  • Nếu bạn có nhiều chuỗi văn bản giá trị thuộc tính dài hơn, ví dụ: 120 mã thông báo, hãy sử dụng max_length trường để giới hạn số lượng mã thông báo trong mỗi chuỗi text_fasttext mã hóa.

Tóm lại, tùy thuộc vào trường hợp sử dụng của bạn, chúng tôi khuyên bạn nên sử dụng phương pháp mã hóa sau:

  • Nếu thuộc tính văn bản của bạn ở một trong năm ngôn ngữ được hỗ trợ, chúng tôi khuyên bạn nên sử dụng text_fasttext do khả năng suy luận nhanh. text_fasttext là những lựa chọn được đề xuất và bạn cũng có thể sử dụng text_sbert trong hai trường hợp ngoại lệ sau đây.
  • Nếu thuộc tính văn bản của bạn ở các ngôn ngữ khác nhau, chúng tôi khuyên bạn nên sử dụng text_sbert bởi vì đó là phương pháp được hỗ trợ duy nhất có thể mã hóa các thuộc tính văn bản có chứa các từ trong một số ngôn ngữ khác nhau.
  • Nếu thuộc tính văn bản của bạn bằng một ngôn ngữ không phải là một trong năm ngôn ngữ được hỗ trợ, chúng tôi khuyên bạn nên sử dụng text_sbert vì nó hỗ trợ hơn 50 ngôn ngữ.
  • Nếu độ dài trung bình của các thuộc tính văn bản của bạn dài hơn 128, hãy cân nhắc sử dụng text_sbert512 or text_fasttext. Cả hai phương pháp đều có thể sử dụng mã hóa chuỗi văn bản dài hơn.
  • Nếu thuộc tính văn bản của bạn chỉ bằng tiếng Anh, bạn có thể sử dụng text_word2vec, nhưng chúng tôi khuyên bạn nên sử dụng text_fasttext cho khả năng suy luận nhanh của nó.

Bản demo ca sử dụng: Nhiệm vụ giới thiệu việc làm

Mục tiêu của nhiệm vụ giới thiệu việc làm là dự đoán công việc mà người dùng sẽ nộp đơn dựa trên các ứng dụng trước đó, thông tin nhân khẩu học và lịch sử làm việc của họ. Bài đăng này sử dụng một tập dữ liệu Kaggle đang mở. Chúng tôi xây dựng tập dữ liệu dưới dạng biểu đồ loại ba nút: việc làm, người sử dụngthành phố.

Một công việc được đặc trưng bởi chức danh, mô tả, yêu cầu, thành phố và tiểu bang. Người dùng được mô tả với các thuộc tính về chuyên ngành, loại bằng cấp, số lượng quá trình làm việc, tổng số năm kinh nghiệm làm việc và hơn thế nữa. Đối với trường hợp sử dụng này, chức danh, mô tả công việc, yêu cầu công việc và chuyên ngành đều ở dạng văn bản.

Trong tập dữ liệu, người dùng có các thuộc tính sau:

  • Tiểu bang - Ví dụ: CA hoặc 广东 省 (tiếng Trung)
  • Chính - Ví dụ, Quản lý nguồn nhân lực hoặc Lic Cytura Fisica (tiếng Tây Ban Nha)
  • Loại bằng cấp - Ví dụ: Cử nhân, Thạc sĩ, Tiến sĩ hoặc Không có
  • Công việcLịch sửĐếm - Ví dụ: 0, 1, 16, v.v.
  • Tổng số năm kinh nghiệm - Ví dụ: 0.0, 10.0 hoặc NAN

Việc làm có các thuộc tính sau:

  • Yêu sách - Ví dụ, Trợ lý hành chính hoặc Lic Cultura Física (tiếng Tây Ban Nha).
  • Mô tả - Ví dụ: “Vị trí Trợ lý Hành chính này chịu trách nhiệm thực hiện nhiều chức năng hỗ trợ hành chính và văn thư trong các lĩnh vực truyền thông,…” Số từ trung bình trong mô tả là khoảng 192.2.
  • Yêu cầu - Ví dụ, “YÊU CẦU CÔNG VIỆC: 1. Chú ý đến chi tiết; 2.Có khả năng làm việc trong môi trường nhịp độ nhanh; 3. Lập hóa đơn… ”
  • Tiểu bang: - Ví dụ, CA, NY, v.v.

Loại nút thành phố như Washington DC và Orlando FL chỉ có mã định danh cho mỗi nút. Trong phần sau, chúng tôi phân tích đặc điểm của các tính năng văn bản khác nhau và minh họa cách chọn bộ mã hóa văn bản thích hợp cho các thuộc tính văn bản khác nhau.

Cách chọn các bộ mã hóa văn bản khác nhau

Ví dụ của chúng tôi, ChínhYêu sách thuộc tính bằng nhiều ngôn ngữ và có chuỗi văn bản ngắn, vì vậy text_sbert được khuyến khích. Mã mẫu cho thông số xuất khẩu là như sau. Cho text_sbert loại, không có trường tham số nào khác. Ở đây chúng tôi chọn text_sbert128 khác hơn text_sbert512, vì độ dài văn bản tương đối ngắn hơn 128.

"additionalParams": {
    "neptune_ml": {
        "version": "v2.0",
        "targets": [ ... ],
        "features": [
            {
                "node": "user",
                "property": "Major",
                "type": "text_sbert128"
            },
            {
                "node": "job",
                "property": "Title",
                "type": "text_sbert128",
            }, ...
        ], ...
    }
}

Sản phẩm Mô tảYêu cầu thuộc tính thường nằm trong chuỗi văn bản dài. Độ dài trung bình của một mô tả là khoảng 192 từ, dài hơn độ dài đầu vào tối đa của text_sbert (128). Chúng ta có thể sử dụng text_sbert512, nhưng nó có thể dẫn đến suy luận chậm hơn. Ngoài ra, văn bản bằng một ngôn ngữ duy nhất (tiếng Anh). Do đó, chúng tôi khuyên bạn nên text_fasttext với en giá trị ngôn ngữ vì khả năng suy luận nhanh và độ dài đầu vào không giới hạn. Mã mẫu cho thông số xuất khẩu là như sau. Các text_fasttext mã hóa có thể được tùy chỉnh bằng cách sử dụng Ngôn ngữchiều dài tối đa. Các language giá trị là bắt buộc, nhưng max_length Là tùy chọn.

"additionalParams": {
    "neptune_ml": {
        "version": "v2.0",
        "targets": [ ... ],
        "features": [
            {
                "node": "job",
                "property": "Description",
                "type": "text_fasttext",
                "language": "en",
                "max_length": 256
            },
            {
                "node": "job",
                "property": "Requirements",
                "type": "text_fasttext",
                "language": "en"
            }, ...
        ], ...
    }
}

Bạn có thể tìm thêm thông tin chi tiết về các trường hợp sử dụng thư giới thiệu việc làm trong Hướng dẫn sổ tay Neptune.

Với mục đích trình diễn, chúng tôi chọn một người dùng, tức là người dùng 443931, có bằng Thạc sĩ về 'Quản lý và Nguồn nhân lực. Người dùng đã nộp đơn vào năm công việc khác nhau, có tên là “Giám đốc Nhân sự (HR)”, “Chuyên gia nhân sự”, “Giám đốc nhân sự”, “Quản trị viên nhân sự” và “Chuyên gia tính lương cao cấp”. Để đánh giá hiệu suất của nhiệm vụ đề xuất, chúng tôi xóa 50% công việc ứng tuyển (các cạnh) của người dùng (ở đây chúng tôi xóa "Quản trị viên nhân sự" và "Giám đốc nhân sự (HR)) và cố gắng dự đoán đầu 10 công việc mà người dùng này có nhiều khả năng ứng tuyển nhất.

Sau khi mã hóa các tính năng công việc và tính năng người dùng, chúng tôi thực hiện nhiệm vụ dự đoán liên kết bằng cách đào tạo mô hình mạng tích hợp đồ thị quan hệ (RGCN). Đào tạo một mô hình Neptune ML yêu cầu ba bước: xử lý dữ liệu, đào tạo mô hình và tạo điểm cuối. Sau khi điểm cuối suy luận đã được tạo, chúng tôi có thể đưa ra đề xuất cho người dùng 443931. Từ 10 công việc hàng đầu được dự đoán cho người dùng 443931 (tức là “Nhà tổng hợp nhân sự”, “Giám đốc nhân sự (HR)”, “Chuyên gia tính lương cao cấp”, “Nhân sự Quản trị viên nguồn lực ”,“ Nhà phân tích nhân sự ”, và các cộng sự), chúng tôi quan sát thấy rằng hai công việc bị xóa nằm trong số 10 dự đoán.

Kết luận

Trong bài đăng này, chúng tôi đã giới thiệu cách sử dụng các bộ mã hóa văn bản mới được hỗ trợ trong Neptune ML. Các bộ mã hóa văn bản này rất dễ sử dụng và có thể hỗ trợ nhiều yêu cầu. Tóm tắt,

  • text_fasttext được khuyến nghị cho các tính năng sử dụng một và chỉ một trong năm ngôn ngữ mà text_fasttext hỗ trợ.
  • text_sbert được khuyến nghị cho văn bản mà text_fasttext không hỗ trợ.
  • text_word2vec chỉ hỗ trợ tiếng Anh và có thể được thay thế bằng text_fasttext trong bất kỳ trường hợp nào.

Để biết thêm chi tiết về giải pháp, hãy xem Repo GitHub. Chúng tôi khuyên bạn nên sử dụng bộ mã hóa văn bản trên dữ liệu biểu đồ để đáp ứng các yêu cầu của bạn. Bạn chỉ có thể chọn tên bộ mã hóa và đặt một số thuộc tính bộ mã hóa, đồng thời giữ nguyên mô hình GNN.


Giới thiệu về tác giả

Mã hóa các thuộc tính văn bản đa ngôn ngữ trong Amazon Neptune để huấn luyện các mô hình dự đoán PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Trương Giai Giai là một nhà khoa học ứng dụng của AWS AI Research and Education (AIRE). Cô ấy làm việc để giải quyết các ứng dụng trong thế giới thực bằng các thuật toán học máy, đặc biệt là các vấn đề liên quan đến ngôn ngữ tự nhiên và đồ thị.

Dấu thời gian:

Thêm từ Học máy AWS