Tahmine dayalı modelleri eğitmek için Amazon Neptune'de çok dilli metin özelliklerini kodlayın PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

Tahmine dayalı modelleri eğitmek için Amazon Neptune'de çok dilli metin özelliklerini kodlayın

Amazon Neptün ML bir makine öğrenimi (ML) yeteneğidir. Amazon Neptün Bu, grafik verileriniz üzerinde doğru ve hızlı tahminler yapmanıza yardımcı olur. Başlık altında, Neptune ML, eldeki görevi çözmek için grafik yapısından ve düğüm/kenar özelliklerinden aynı anda yararlanmak için Grafik Sinir Ağlarını (GNN'ler) kullanır. Geleneksel yöntemler ya yalnızca özellikleri kullanır ve grafik yapısı kullanmaz (örneğin, XGBoost, Sinir Ağları) veya yalnızca grafik yapısı kullanır ve özellik içermez (örneğin, node2vec, Etiket Yayılımı). Düğüm/kenar özelliklerini daha iyi işlemek için, ML algoritmaları verilerin iyi davranışlı sayısal veriler olmasını gerektirir, ancak bir veritabanındaki ham veriler, ham metin gibi başka türlere sahip olabilir. Bu diğer veri türlerini kullanmak için, onları yerel türlerinden sayısal verilere dönüştüren özel işlem adımlarına ihtiyacımız var ve ML sonuçlarının kalitesi, bu veri dönüşümlerinin kalitesine büyük ölçüde bağlıdır. Ham metin, cümleler gibi, dönüştürülmesi en zor türler arasındadır, ancak Doğal Dil İşleme (NLP) alanındaki son gelişmeler, birden çok dilden ve çok çeşitli uzunluklardan gelen metinleri işleyebilen güçlü yöntemlere yol açmıştır.

1.1.0.0 sürümünden başlayarak, Neptune ML şunları destekler: çoklu metin kodlayıcılar (metin_fasttext, metin_sbert, text_word2vec, ve text_tfidf), NLP'deki son gelişmelerin faydalarını getiren ve diller ve metin uzunluğu hakkında ek çıkarım gereksinimlerinin yanı sıra çok dilli metin özellikleri için destek sağlayan. Örneğin, bir iş tavsiyesi kullanım durumunda, farklı ülkelerdeki iş ilanları farklı dillerde tanımlanabilir ve iş tanımlarının uzunluğu önemli ölçüde değişebilir. Ek olarak, Neptune ML, bir Oto verilerdeki metin özelliğinin özelliklerine göre en iyi kodlama yöntemini otomatik olarak seçen seçenek.

Bu gönderide, her metin kodlayıcının kullanımını gösteriyoruz, avantajlarını ve dezavantajlarını karşılaştırıyoruz ve bir iş önerisi görevi için doğru metin kodlayıcıların nasıl seçileceğine dair bir örnek gösteriyoruz.

Metin kodlayıcı nedir?

Metin kodlamanın amacı, Neptün'deki metin tabanlı kenar/düğüm özelliklerini, düğüm sınıflandırması veya bağlantı tahmini görevleri için aşağı akış makine öğrenimi modellerinde kullanılmak üzere sabit boyutlu vektörlere dönüştürmektir. Metin özelliğinin uzunluğu çok değişebilir. Bir kelime, tümcecik, cümle, paragraf ve hatta birden fazla cümle içeren bir belge olabilir (Neptün'de tek bir özelliğin maksimum boyutu 55 MB'dir). Ek olarak, metin özellikleri farklı dillerde olabilir. olarak tanımladığımız birkaç farklı dilde kelime içeren cümleler de olabilir. kod değişimi.

1.1.0.0 sürümünden itibaren Neptune ML, birkaç farklı metin kodlayıcı arasından seçim yapmanıza olanak tanır. Her kodlayıcı biraz farklı çalışır, ancak Neptune'den bir metin değeri alanını Neptune ML kullanarak GNN modelimizi oluşturmak için kullandığımız sabit boyutlu bir vektöre dönüştürmekle aynı hedefe sahiptir. Yeni kodlayıcılar aşağıdaki gibidir:

  • metin_fasttext (yeni) – Kullanımlar hızlıMetin kodlama. FastText, verimli metin gösterimi öğrenimi için bir kütüphanedir. text_fasttext fastText'in desteklediği beş dilden (İngilizce, Çince, Hintçe, İspanyolca ve Fransızca) birini ve yalnızca birini kullanan özellikler için önerilir. text_fasttext yöntem isteğe bağlı olarak alabilir max_length Bir metin özelliği değerinde kodlanacak ve ardından dize kesilecek maksimum simge sayısını belirten alan. Bir jetonu bir kelime olarak kabul edebilirsiniz. Bu, metin özelliği değerleri uzun dizeler içerdiğinde performansı artırabilir, çünkü eğer max_length belirtilmezse fastText, dize uzunluğundan bağımsız olarak tüm belirteçleri kodlar.
  • metin_sbert (yeni) – BERT Cümlesini kullanır (SBERT) kodlama yöntemi. SBERT, bağlamsal temsil öğrenme modelleri olan BERT-Networks'ü kullanan bir tür cümle yerleştirme yöntemidir. text_sbert dil tarafından desteklenmediğinde önerilir. text_fasttext. Neptün iki SBERT yöntemini destekler: text_sbert128, yalnızca belirtirseniz varsayılan olan text_sbert, ve text_sbert512. Aralarındaki fark, bir metin özelliğinde kodlanan maksimum simge sayısıdır. bu text_sbert128 kodlama yalnızca ilk 128 belirteci kodlar, oysa text_sbert512 512 jetona kadar kodlar. Sonuç olarak, kullanarak text_sbert512 göre daha fazla işlem süresi gerektirebilir text_sbert128. Her iki yöntem de daha yavaştır. text_fasttext.
  • text_word2vec - Kullanımlar Word2Vec Google tarafından orijinal olarak metni kodlamak için yayınlanan algoritmalar. Word2Vec yalnızca İngilizce'yi destekler.
  • text_tfidf – Frekans-ters belge frekansı terimini kullanır (TF-IDF) metni kodlamak için vektörleştirici. TF-IDF kodlaması, diğer kodlamaların desteklemediği istatistiksel özellikleri destekler. Bir düğüm özelliğindeki kelimelerin diğer tüm düğümler arasındaki önemini veya alaka düzeyini ölçer.

Bunu not et text_word2vec ve text_tfidf daha önce desteklenmiş ve yeni yöntemler text_fasttext ve text_sbert eski yöntemlere göre tavsiye edilir.

Farklı metin kodlayıcıların karşılaştırılması

Aşağıdaki tablo, desteklenen tüm metin kodlama seçeneklerinin ayrıntılı karşılaştırmasını gösterir (text_fasttext, text_sbert, ve text_word2vec). text_tfidf model tabanlı bir kodlama yöntemi değil, daha ziyade bir belirtecin (örneğin bir kelimenin) diğer düğümlerdeki veya kenarlardaki metin özellikleriyle ne kadar alakalı olduğunu değerlendiren sayıma dayalı bir ölçüdür, bu nedenle dahil etmiyoruz text_tfidf Karşılaştırma için. kullanmanızı öneririz text_tfidf diğer tüm düğüm veya kenar özellikleri arasında bir düğüm veya kenar özelliğindeki bazı kelimelerin önemini veya alaka düzeyini ölçmek istediğinizde.)

. . metin_fasttext metin_sbert text_word2vec
Model Yeteneği Desteklenen dil İngilizce, Çince, Hintçe, İspanyolca ve Fransızca 50'den fazla dil İngilizce
Farklı dillerde kelimeler içeren metin özelliklerini kodlayabilir Yok hayır Evet Yok hayır
Maksimum uzunluk desteği Maksimum uzunluk sınırı yok Metin dizisini maksimum uzunluk 128 ve 512 ile kodlar Maksimum uzunluk sınırı yok
Zaman Maliyeti yükleme Yaklaşık 10 saniye Yaklaşık 2 saniye Yaklaşık 2 saniye
sonuç Hızlı Yavaş Orta

Aşağıdaki kullanım ipuçlarını not edin:

  • İngilizce, Çince, Hintçe, İspanyolca ve Fransızca metin özelliği değerleri için, text_fasttext önerilen kodlamadır. Ancak, aynı cümlenin birden fazla dilde kelime içerdiği durumları işleyemez. Bu beş dil dışındaki diğer diller için fastText destekler, kullanın text_sbert kodlayan.
  • Örneğin 120 jetondan daha uzun birçok özellik değeri metin dizeniz varsa, max_length her dizedeki belirteç sayısını sınırlamak için alan text_fasttext kodlar.

Özetlemek gerekirse, kullanım durumunuza bağlı olarak aşağıdaki kodlama yöntemini öneririz:

  • Metin özellikleriniz desteklenen beş dilden birindeyse, kullanmanızı öneririz. text_fasttext hızlı çıkarımı nedeniyle. text_fasttext önerilen seçeneklerdir ve ayrıca kullanabilirsiniz text_sbert aşağıdaki iki istisnada.
  • Metin özellikleriniz farklı dillerdeyse, kullanmanızı öneririz. text_sbert çünkü birkaç farklı dilde sözcükler içeren metin özelliklerini kodlayabilen desteklenen tek yöntem budur.
  • Metin özellikleriniz, desteklenen beş dilden biri olmayan bir dildeyse, şunu kullanmanızı öneririz: text_sbert çünkü 50'den fazla dili destekliyor.
  • Metin özelliklerinizin ortalama uzunluğu 128'den uzunsa, kullanmayı düşünün text_sbert512 or text_fasttext. Her iki yöntem de daha uzun metin dizilerini kodlayabilir.
  • Metin özellikleriniz yalnızca İngilizce ise, text_word2vec, ancak kullanmanızı öneririz text_fasttext hızlı çıkarımı için.

Kullanım örneği demosu: İş önerisi görevi

İş önerisi görevinin amacı, kullanıcıların önceki başvurularına, demografik bilgilerine ve iş geçmişine dayanarak hangi işlere başvuracaklarını tahmin etmektir. Bu yazı şunu kullanır: açık bir Kaggle veri kümesi. Veri kümesini üç düğümlü bir grafik olarak oluşturuyoruz: , kullanıcı, ve Şehir.

Bir iş, unvanı, tanımı, gereksinimleri, bulunduğu şehir ve eyalet ile karakterize edilir. Bir kullanıcı, ana dal, derece türü, çalışma geçmişi sayısı, çalışma deneyimi için toplam yıl sayısı ve daha fazlası gibi özelliklerle tanımlanır. Bu kullanım durumu için iş unvanı, iş tanımı, iş gereksinimleri ve ana dalların tümü metin biçimindedir.

Veri kümesinde, kullanıcılar aşağıdaki özelliklere sahiptir:

  • Eyalet – Örneğin, CA veya 广东省 (Çince)
  • Büyük – Örneğin, İnsan Kaynakları Yönetimi veya Lic Cytura Fisica (İspanyolca)
  • DereceTürü – Örneğin, Lisans, Yüksek Lisans, Doktora veya Yok
  • Çalışma GeçmişiSayısı – Örneğin, 0, 1, 16 vb.
  • ToplamYıllarDeneyim – Örneğin, 0.0, 10.0 veya NAN

İşler aşağıdaki özelliklere sahiptir:

  • Başlık – Örneğin, İdari Asistan veya Lic Cultura Física (İspanyolca).
  • Açıklama – Örneğin, “Bu İdari Asistan pozisyonu, iletişim alanlarında çeşitli büro ve idari destek işlevlerini yerine getirmekten sorumludur…” Bir tanımdaki ortalama kelime sayısı 192.2 civarındadır.
  • Yer Alan Kurallar – Örneğin, “İŞ GEREKSİNİMLERİ: 1. Detaylara dikkat; 2.Hızlı bir ortamda çalışabilme;3.Faturalama…”
  • Eyalet: – Örneğin, CA, NY vb.

düğüm türü Şehir Washington DC ve Orlando FL gibi yalnızca her düğüm için tanımlayıcıya sahiptir. Aşağıdaki bölümde, farklı metin özelliklerinin özelliklerini analiz ediyoruz ve farklı metin özellikleri için uygun metin kodlayıcıların nasıl seçileceğini gösteriyoruz.

Farklı metin kodlayıcıları nasıl seçilir

Örneğimiz için, Büyük ve Başlık özellikler birden çok dildedir ve kısa metin dizilerine sahiptir, bu nedenle text_sbert tavsiye edilir. için örnek kod dışa aktarma parametreleri Şöyleki. İçin text_sbert yazın, başka parametre alanı yok. İşte seçiyoruz text_sbert128 başka text_sbert512, çünkü metin uzunluğu 128'den nispeten daha kısadır.

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

The Açıklama ve Yer Alan Kurallar özellikler genellikle uzun metin dizileri halindedir. Bir açıklamanın ortalama uzunluğu yaklaşık 192 kelimedir; bu, maksimum giriş uzunluğundan daha uzundur. text_sbert (128). Kullanabiliriz text_sbert512, ancak daha yavaş çıkarımla sonuçlanabilir. Ayrıca, metin tek bir dildedir (İngilizce). Bu nedenle, tavsiye ederiz text_fasttext ile en hızlı çıkarımı ve sınırlı giriş uzunluğu nedeniyle dil değeri. için örnek kod dışa aktarma parametreleri Şöyleki. bu text_fasttext kodlama kullanılarak özelleştirilebilir dil ve maksimum uzunluk. language değer gereklidir, ancak max_length İsteğe bağlı.

"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"
            }, ...
        ], ...
    }
}

İş tavsiyesi kullanım örnekleriyle ilgili daha fazla ayrıntı şurada bulunabilir: Neptün not defteri öğreticisi.

Gösteri amacıyla, bir kullanıcı seçiyoruz, yani 'Yönetim ve İnsan Kaynakları' alanında yüksek lisans derecesine sahip 443931 kullanıcı. Kullanıcı, “İnsan Kaynakları (İK) Müdürü”, “İK Genel Müdürü”, “İnsan Kaynakları Müdürü”, “İnsan Kaynakları Yöneticisi” ve “Kıdemli Bordro Uzmanı” olmak üzere beş farklı işe başvurmuştur. Tavsiye görevinin performansını değerlendirmek için kullanıcının başvuru işlerinin (kenarların) %50'sini sileriz (burada “İnsan Kaynakları Yöneticisi” ve “İnsan Kaynakları (İK) Yöneticisini sileriz) ve üst noktayı tahmin etmeye çalışırız. Bu kullanıcının başvurması muhtemel 10 iş.

İş özelliklerini ve kullanıcı özelliklerini kodladıktan sonra, bir ilişkisel grafik evrişim ağı (RGCN) modeli eğiterek bir bağlantı tahmini görevi gerçekleştiriyoruz. Bir Neptune ML modelinin eğitimi üç adım gerektirir: veri işleme, model eğitimi ve uç nokta oluşturma. Çıkarım uç noktası oluşturulduktan sonra, 443931 kullanıcısı için önerilerde bulunabiliriz. Kullanıcı 10 için öngörülen ilk 443931 işten (yani, "İK Genel Uzmanı", "İnsan Kaynakları (İK) Yöneticisi", "Kıdemli Bordro Uzmanı", "İnsan Kaynaklar Yöneticisi”, “İK Analisti” ve diğerleri), silinen iki işin 10 tahmin arasında olduğunu gözlemliyoruz.

Sonuç

Bu yazıda Neptune ML'de yeni desteklenen metin kodlayıcıların kullanımını gösterdik. Bu metin kodlayıcıların kullanımı basittir ve birden fazla gereksinimi destekleyebilir. Özetle,

  • text_fasttext, text_fasttext'in desteklediği beş dilden yalnızca birini kullanan özellikler için önerilir.
  • text_fasttext'in desteklemediği metinler için text_sbert önerilir.
  • text_word2vec yalnızca İngilizce'yi destekler ve herhangi bir senaryoda text_fasttext ile değiştirilebilir.

Çözüm hakkında daha fazla ayrıntı için bkz. GitHub repo. Gereksinimlerinizi karşılamak için grafik verilerinizde metin kodlayıcıları kullanmanızı öneririz. GNN modelini değiştirmeden sadece bir kodlayıcı adı seçebilir ve bazı kodlayıcı niteliklerini ayarlayabilirsiniz.


yazarlar hakkında

Tahmine dayalı modelleri eğitmek için Amazon Neptune'de çok dilli metin özelliklerini kodlayın PlatoBlockchain Veri Zekası. Dikey Arama. Ai.Jiani Zhang AWS AI Research and Education'ın (AIRE) uygulamalı bilim adamıdır. Özellikle doğal dil ve grafiklerle ilgili problemler olmak üzere makine öğrenme algoritmalarını kullanarak gerçek dünyadaki uygulamaları çözmeye çalışıyor.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi