ویژگی‌های متن چندزبانه را در آمازون نپتون کدگذاری کنید تا مدل‌های پیش‌گویانه هوش داده PlatoBlockchain را آموزش دهید. جستجوی عمودی Ai.

ویژگی های متن چند زبانه را در آمازون نپتون برای آموزش مدل های پیش بینی کدگذاری کنید

آمازون نپتون ام ال یک قابلیت یادگیری ماشینی (ML) است نپتون آمازون که به شما کمک می کند تا پیش بینی های دقیق و سریعی را روی داده های نمودار خود انجام دهید. زیر پوشش، Neptune ML از شبکه‌های عصبی گراف (GNN) استفاده می‌کند تا به طور همزمان از ساختار گراف و ویژگی‌های گره/لبه برای حل کار در دست استفاده کند. روش‌های سنتی یا فقط از ویژگی‌ها و بدون ساختار گراف استفاده می‌کنند (مثلاً XGBoost، شبکه‌های عصبی)، یا فقط از ساختار گراف و بدون خاصیت (مثلاً node2vec، Label Propagation) استفاده می‌کنند. برای دستکاری بهتر ویژگی‌های گره/لبه، الگوریتم‌های ML به داده‌ها نیاز دارند که داده‌های عددی به خوبی رفتار کنند، اما داده‌های خام در یک پایگاه داده می‌توانند انواع دیگری مانند متن خام داشته باشند. برای استفاده از این انواع دیگر داده ها، ما به مراحل پردازش تخصصی نیاز داریم که آنها را از نوع بومی خود به داده های عددی تبدیل می کند، و کیفیت نتایج ML به شدت به کیفیت این تبدیل داده ها بستگی دارد. متن خام، مانند جملات، از سخت‌ترین انواع برای تبدیل هستند، اما پیشرفت‌های اخیر در زمینه پردازش زبان طبیعی (NLP) منجر به روش‌های قوی‌ای شده است که می‌توانند متن‌هایی را که از چندین زبان و طول‌های مختلف می‌آیند مدیریت کنند.

با شروع نسخه 1.1.0.0، Neptune ML پشتیبانی می کند چند رمزگذار متن (text_fasttext, text_sbert, text_word2vecو text_tfidf) که مزایای پیشرفت های اخیر در NLP را به ارمغان می آورد و پشتیبانی از ویژگی های متن چند زبانه و همچنین نیازهای استنتاج اضافی در مورد زبان ها و طول متن را امکان پذیر می کند. به عنوان مثال، در یک مورد استفاده از توصیه شغلی، پست های شغلی در کشورهای مختلف را می توان به زبان های مختلف توصیف کرد و طول شرح شغل به طور قابل توجهی متفاوت است. علاوه بر این، Neptune ML از یک خودکار گزینه ای که به طور خودکار بهترین روش رمزگذاری را بر اساس ویژگی های ویژگی متن در داده ها انتخاب می کند.

در این پست، استفاده از هر کدگذار متن را نشان می‌دهیم، مزایا و معایب آن‌ها را با هم مقایسه می‌کنیم و نمونه‌ای از نحوه انتخاب رمزگذارهای متن مناسب برای یک کار پیشنهادی را نشان می‌دهیم.

رمزگذار متن چیست؟

هدف از رمزگذاری متن، تبدیل ویژگی‌های لبه/گره مبتنی بر متن در نپتون به بردارهایی با اندازه ثابت برای استفاده در مدل‌های یادگیری ماشین پایین‌دستی برای طبقه‌بندی گره یا وظایف پیش‌بینی پیوند است. طول ویژگی متن می تواند بسیار متفاوت باشد. این می تواند یک کلمه، عبارت، جمله، پاراگراف یا حتی یک سند با چند جمله باشد (حداکثر اندازه یک ویژگی واحد در نپتون 55 مگابایت است). علاوه بر این، ویژگی های متن می تواند به زبان های مختلف باشد. همچنین ممکن است جملاتی وجود داشته باشد که حاوی کلماتی در چندین زبان مختلف باشد که ما آنها را به این صورت تعریف می کنیم تعویض کد.

با شروع نسخه 1.1.0.0، Neptune ML به شما امکان می دهد از بین چندین رمزگذار متن مختلف انتخاب کنید. هر کدگذار کمی متفاوت عمل می کند، اما هدف یکسانی از تبدیل یک فیلد مقدار متنی از نپتون به یک بردار با اندازه ثابت است که ما از آن برای ساخت مدل GNN خود با استفاده از Neptune ML استفاده می کنیم. رمزگذارهای جدید به شرح زیر است:

  • text_fasttext (جدید) - موارد استفاده fastText رمزگذاری FastText کتابخانه ای برای یادگیری کارآمد نمایش متن است. text_fasttext برای ویژگی هایی که از یک و تنها یکی از پنج زبانی که fastText پشتیبانی می کند (انگلیسی، چینی، هندی، اسپانیایی و فرانسوی) توصیه می شود. را text_fasttext روش به صورت اختیاری می تواند max_length فیلد، که حداکثر تعداد نشانه‌ها را در مقدار خاصیت متنی که کدگذاری می‌شوند، مشخص می‌کند و پس از آن رشته کوتاه می‌شود. شما می توانید یک نشانه را به عنوان یک کلمه در نظر بگیرید. هنگامی که مقادیر ویژگی متن حاوی رشته های طولانی باشد، این می تواند عملکرد را بهبود بخشد، زیرا if max_length مشخص نشده است، fastText تمام نشانه ها را بدون در نظر گرفتن طول رشته رمزگذاری می کند.
  • text_sbert (جدید) - از جمله BERT استفاده می کند (SBERT) روش رمزگذاری SBERT نوعی روش جاسازی جمله با استفاده از مدل های یادگیری بازنمایی متنی، BERT-Networks است. text_sbert توصیه می شود زمانی که زبان توسط پشتیبانی نمی شود text_fasttext. نپتون از دو روش SBERT پشتیبانی می کند: text_sbert128، که اگر فقط مشخص کنید پیش فرض است text_sbertو text_sbert512. تفاوت بین آنها حداکثر تعداد نشانه هایی در یک ویژگی متن است که کدگذاری می شوند. را text_sbert128 رمزگذاری فقط 128 توکن اول را رمزگذاری می کند، در حالی که text_sbert512 حداکثر 512 توکن را رمزگذاری می کند. در نتیجه با استفاده از text_sbert512 می تواند به زمان پردازش بیشتری نیاز داشته باشد text_sbert128. هر دو روش کندتر از text_fasttext.
  • text_word2vec - استفاده می کند Word2Vec الگوریتم هایی که ابتدا توسط گوگل برای رمزگذاری متن منتشر شده است. Word2Vec فقط انگلیسی را پشتیبانی می کند.
  • text_tfidf - از عبارت فرکانس معکوس سند استفاده می کند (TF-IDF) بردار برای رمزگذاری متن. رمزگذاری TF-IDF از ویژگی های آماری پشتیبانی می کند که سایر کدگذاری ها از آن پشتیبانی نمی کنند. اهمیت یا ارتباط کلمات را در یک ویژگی گره در میان تمام گره های دیگر کمیت می کند.

توجه داشته باشید که text_word2vec و text_tfidf قبلاً از روش های جدید پشتیبانی می شد text_fasttext و text_sbert نسبت به روش های قدیمی توصیه می شود.

مقایسه کدگذارهای متنی مختلف

جدول زیر مقایسه دقیق همه گزینه های رمزگذاری متن پشتیبانی شده را نشان می دهد (text_fasttext, text_sbertو text_word2vec). text_tfidf یک روش رمزگذاری مبتنی بر مدل نیست، بلکه یک معیار مبتنی بر شمارش است که میزان مرتبط بودن یک نشانه (مثلاً یک کلمه) را با ویژگی‌های متن در سایر گره‌ها یا لبه‌ها ارزیابی می‌کند، بنابراین ما آن را درج نمی‌کنیم. text_tfidf برای مقایسه. توصیه می کنیم استفاده کنید text_tfidf هنگامی که می خواهید اهمیت یا ارتباط برخی از کلمات را در یک گره یا ویژگی لبه در میان تمام گره های دیگر یا ویژگی های لبه کمی کنید.)

. . text_fasttext text_sbert text_word2vec
قابلیت مدل زبان پشتیبانی شده انگلیسی، چینی، هندی، اسپانیایی و فرانسوی بیش از 50 زبان انگلیسی
می تواند ویژگی های متنی را که حاوی کلماتی در زبان های مختلف است رمزگذاری کند نه بله نه
پشتیبانی حداکثر طول بدون محدودیت طول حداکثر دنباله متن را با حداکثر طول 128 و 512 رمزگذاری می کند بدون محدودیت طول حداکثر
هزینه زمان بار تقریبا 10 ثانیه تقریبا 2 ثانیه تقریبا 2 ثانیه
استنباط سریع آرام متوسط

به نکات استفاده زیر توجه کنید:

  • برای مقادیر ویژگی متن در انگلیسی، چینی، هندی، اسپانیایی و فرانسوی، text_fasttext رمزگذاری توصیه شده است. با این حال، نمی‌تواند مواردی را که یک جمله حاوی کلماتی در بیش از یک زبان باشد رسیدگی کند. برای زبان های دیگر به جز پنج زبان که fastText پشتیبانی می کند، استفاده می کند text_sbert رمزگذاری
  • اگر تعداد زیادی رشته متنی با ارزش ویژگی طولانی تر از مثلاً 120 توکن دارید، از آن استفاده کنید max_length فیلد برای محدود کردن تعداد نشانه ها در هر رشته که text_fasttext رمزگذاری می کند.

به طور خلاصه، بسته به مورد استفاده شما، روش رمزگذاری زیر را توصیه می کنیم:

  • اگر ویژگی های متن شما به یکی از پنج زبان پشتیبانی شده است، توصیه می کنیم از آن استفاده کنید text_fasttext به دلیل استنتاج سریع آن text_fasttext انتخاب های پیشنهادی است و همچنین می توانید استفاده کنید text_sbert در دو استثنای زیر
  • اگر ویژگی های متن شما به زبان های مختلف است، توصیه می کنیم از آن استفاده کنید text_sbert زیرا این تنها روش پشتیبانی شده است که می تواند ویژگی های متن حاوی کلمات را در چندین زبان مختلف رمزگذاری کند.
  • اگر ویژگی‌های متن شما به یک زبان است که یکی از پنج زبان پشتیبانی‌شده نیست، توصیه می‌کنیم از آن استفاده کنید text_sbert زیرا بیش از 50 زبان را پشتیبانی می کند.
  • اگر میانگین طول ویژگی های متن شما بیشتر از 128 است، استفاده از آن را در نظر بگیرید text_sbert512 or text_fasttext. هر دو روش می توانند از دنباله های متن طولانی تر رمزگذاری کنند.
  • اگر ویژگی های متن شما فقط به زبان انگلیسی است، می توانید استفاده کنید text_word2vec، اما ما استفاده از آن را توصیه می کنیم text_fasttext برای استنتاج سریع آن

نسخه ی نمایشی مورد استفاده: وظیفه توصیه شغلی

هدف از وظیفه توصیه شغلی این است که پیش بینی کنید کاربران بر اساس برنامه های قبلی، اطلاعات جمعیت شناختی و سابقه کاری خود برای چه مشاغلی درخواست خواهند داد. این پست استفاده می کند یک مجموعه داده باز Kaggle. ما مجموعه داده را به عنوان یک گراف نوع سه گره می سازیم: کار, کاربرو شهرستان.

یک شغل با عنوان، شرح، الزامات، شهر و ایالت آن مشخص می شود. یک کاربر با ویژگی‌های رشته، نوع مدرک، تعداد سابقه کار، تعداد کل سال‌های تجربه کاری و موارد دیگر توصیف می‌شود. برای این مورد، عنوان شغل، شرح شغل، الزامات شغلی و رشته ها همگی به صورت متن هستند.

در مجموعه داده، کاربران دارای ویژگی های زیر هستند:

  • دولت - به عنوان مثال، CA یا 广东省 (چینی)
  • عمده – به عنوان مثال، مدیریت منابع انسانی یا Lic Cytura Fisica (اسپانیایی)
  • نوع مدرک – مثلاً لیسانس، فوق لیسانس، دکترا یا هیچ
  • Work HistoryCount – به عنوان مثال، 0، 1، 16، و غیره
  • TotalYearsExperience – به عنوان مثال، 0.0، 10.0 یا NAN

مشاغل دارای ویژگی های زیر هستند:

  • عنوان – به عنوان مثال، معاون اداری یا Lic Cultura Física (اسپانیایی).
  • توضیحات: - به عنوان مثال، "این سمت معاون اداری مسئول انجام انواع وظایف اداری و پشتیبانی اداری در زمینه های ارتباطات است، ..." میانگین تعداد کلمات در یک توضیحات حدود 192.2 است.
  • مورد نیاز - به عنوان مثال، "شرایط شغلی: 1. توجه به جزئیات. 2.توانایی کار در محیطی سریع؛ 3.صورتحساب…”
  • دولت: – به عنوان مثال، CA، NY، و غیره.

نوع گره شهرستان مانند واشنگتن دی سی و اورلاندو FL فقط شناسه هر گره را دارد. در بخش بعدی، ویژگی های ویژگی های متن مختلف را تجزیه و تحلیل می کنیم و نحوه انتخاب رمزگذارهای متن مناسب برای ویژگی های متن مختلف را نشان می دهیم.

نحوه انتخاب رمزگذارهای متن مختلف

برای مثال ما، عمده و عنوان ویژگی ها در چندین زبان هستند و دارای توالی متن کوتاه هستند، بنابراین text_sbert توصیه می شود. کد نمونه برای پارامترهای صادرات به شرح زیر است. برای text_sbert نوع، هیچ فیلد پارامتر دیگری وجود ندارد. در اینجا ما انتخاب می کنیم text_sbert128 به غیر از text_sbert512، زیرا طول متن نسبتاً کوتاهتر از 128 است.

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

La توضیحات: و مورد نیاز خواص معمولاً در توالی متن طولانی هستند. میانگین طول توصیف حدود 192 کلمه است که از حداکثر طول ورودی بیشتر است text_sbert (128). ما میتوانیم استفاده کنیم text_sbert512، اما ممکن است منجر به استنتاج کندتر شود. علاوه بر این، متن به یک زبان (انگلیسی) می باشد. بنابراین، توصیه می کنیم text_fasttext با en ارزش زبان به دلیل استنتاج سریع و طول ورودی محدود نیست. کد نمونه برای پارامترهای صادرات به شرح زیر است. را text_fasttext رمزگذاری را می توان با استفاده از آن سفارشی کرد زبان و بیشترین طول. language ارزش مورد نیاز است، اما max_length اختیاری است

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

جزئیات بیشتر در مورد موارد استفاده از توصیه شغلی را می توان در این قسمت یافت آموزش نوت بوک نپتون.

برای اهداف نمایشی، ما یک کاربر، یعنی کاربر 443931 را انتخاب می کنیم که دارای مدرک کارشناسی ارشد در مدیریت و منابع انسانی است. کاربر برای پنج شغل مختلف با عناوین «مدیر منابع انسانی»، «کارشناس منابع انسانی»، «مدیر منابع انسانی»، «مدیر منابع انسانی» و «کارشناس ارشد حقوق و دستمزد» درخواست داده است. به منظور ارزیابی عملکرد وظیفه توصیه، 50 درصد از مشاغل کاربردی (لبه‌های) کاربر را حذف می‌کنیم (در اینجا «مدیر منابع انسانی» و «مدیر منابع انسانی (HR)) را حذف می‌کنیم و سعی می‌کنیم تا بالاترین حد را پیش‌بینی کنیم. 10 شغلی که این کاربر به احتمال زیاد برای آنها درخواست می کند.

پس از رمزگذاری ویژگی‌های شغل و ویژگی‌های کاربر، یک کار پیش‌بینی پیوند را با آموزش یک مدل شبکه کانولوشنی گراف رابطه‌ای (RGCN) انجام می‌دهیم. آموزش مدل ML نپتون به سه مرحله نیاز دارد: پردازش داده، آموزش مدل و ایجاد نقطه پایانی. پس از ایجاد نقطه پایانی استنتاج، می‌توانیم توصیه‌هایی برای کاربر 443931 ارائه کنیم. از 10 شغل پیش‌بینی‌شده برای کاربر 443931 (به عنوان مثال، "عمومی منابع انسانی"، "مدیر منابع انسانی (HR)"، "متخصص ارشد حقوق و دستمزد"، "انسان" مدیر منابع، «تحلیلگر منابع انسانی»، و همکاران)، مشاهده می‌کنیم که دو شغل حذف‌شده جزو 10 پیش‌بینی هستند.

نتیجه

در این پست، استفاده از رمزگذارهای متنی جدید پشتیبانی شده در Neptune ML را نشان دادیم. استفاده از این رمزگذارهای متنی ساده است و می تواند چندین نیاز را پشتیبانی کند. به طور خلاصه،

  • text_fasttext برای ویژگی هایی توصیه می شود که از یک و تنها یکی از پنج زبانی که text_fasttext پشتیبانی می کند استفاده می کنند.
  • text_sbert برای متنی که text_fasttext پشتیبانی نمی کند توصیه می شود.
  • text_word2vec فقط از زبان انگلیسی پشتیبانی می کند و در هر سناریویی می توان آن را با text_fasttext جایگزین کرد.

برای جزئیات بیشتر در مورد راه حل، نگاه کنید به GitHub repo. توصیه می‌کنیم از رمزگذارهای متنی روی داده‌های نمودار خود برای برآورده کردن نیازهای خود استفاده کنید. شما فقط می توانید یک نام رمزگذار انتخاب کنید و برخی از ویژگی های رمزگذار را تنظیم کنید، در حالی که مدل GNN را بدون تغییر نگه دارید.


درباره نویسندگان

ویژگی‌های متن چندزبانه را در آمازون نپتون کدگذاری کنید تا مدل‌های پیش‌گویانه هوش داده PlatoBlockchain را آموزش دهید. جستجوی عمودی Ai.جیانی ژانگ دانشمند کاربردی پژوهش و آموزش هوش مصنوعی AWS (AIRE) است. او روی حل برنامه های کاربردی دنیای واقعی با استفاده از الگوریتم های یادگیری ماشین، به ویژه مشکلات مربوط به زبان طبیعی و نمودار کار می کند.

تمبر زمان:

بیشتر از آموزش ماشین AWS