این یک صفحه Markdown مستندات است. برای اطلاعات بیشتر، به مرجع Markdown (go/documentation-reference) و راهنمای سبک مستندسازی (go/documentation-style) مراجعه کنید.
پس زمینه
الگوریتمهای یادگیری جنگل تصمیم متفاوت از مدلهای مبتنی بر شیب نزول مانند شبکههای عصبی یا پیشبینیکنندههای خطی کار میکنند. این تفاوتها خود را در انواع تصمیمهای مدلسازی نشان میدهند، اما به ویژه زمانی که یک مجموعه داده حاوی ویژگیهای طبقهبندی با طول متغیر باشد، مانند ویژگیهای متن نشانهگذاری شده، که به مهندسی ویژگی خاص معماری نیاز دارند، مشخص میشوند. این راهنما مبادلات بین استراتژی های مهندسی ویژگی های مختلف برای ویژگی های متن در مدل های جنگل تصمیم را تشریح می کند.
در بخشهای بعدی، به مجموعه دادهای با این ویژگیها اشاره میکنیم و فرض میکنیم که پیشبینی میکنیم آیا یک کاربر قصد خرید محصول خاصی را دارد یا خیر:
ویژگی | شناسه کاربری | خریدهای قبلی | عنوان محصول | توضیحات محصول |
داده های نمونه | 1234 | ["تلویزیون"، "خلاء"] | "روتر وای فای" | “این روتر…” |
در این مثال، "خریدهای قبلی" یک ویژگی متنی پراکنده (یا مجموعه ای از موارد طبقه بندی شده) است. "عنوان محصول" نیز وجود دارد، اما در این مثال نشانه گذاری نشده است. «شرح محصول» یک ویژگی زبان طبیعی است که ویژگیهای متفاوتی نسبت به ویژگیهای دیگر دارد، زیرا انتظار داریم واژگان بزرگ (یا نامحدود) باشد، برای ترتیب کلمات به ماده، و سایر ویژگیهای معنایی و واژگانی ذاتی آن را داشته باشد. زبان استراتژیهایی که در زیر توضیح میدهیم برای همه این ویژگیها مناسب هستند، اما برای هر یک از آنها معاوضههای متفاوتی خواهد داشت.
مرجع سریع
بهترین راه حل، اگر هزینه آموزش و استنتاج نگران کننده نیست، استفاده از مجموعه های دسته بندی و جاسازی های از پیش آموزش داده شده برای هر ویژگی متن است، زیرا دارای نقاط قوت و ضعف مکمل هستند. ما این را توصیه می کنیم مگر اینکه یکی از محدودیت های ذکر شده در زیر وجود داشته باشد.
سرعت استنتاج | سرعت تمرین | قابلیت به خاطر سپردن روابط برچسب <> نشانه | تعمیم | |
دسته بندی های متعدد | سریعترین (++) | سریعترین (++) | محدود | محدود (+) |
چند داغ | سریع (+) | سریع (با فرض اندازه واژگان نسبتاً کوچک) (++) | خوب | محدود (+) |
دسته بندی-مجموعه ها | سریعترین (+++) | آهسته تر (+) | بهترین | محدود (++) |
تعبیه کردن | کندترین (با فرض عملیات رمزگذار غیر پیش پا افتاده، مانند ضرب ماتریس) (+ تا +++) | سریعترین (با فرض اندازه vocab >> بعد جاسازی) (+++) | بد | خوب (++ تا +++) |
N-گرم
N-گرم (مثلاً {"the"، "گربه"، "is"، "آبی"} -> {"<start> the"، "the cat"، "cat is"، "آبی است"، "آبی < end>"}) می تواند در بسیاری از موارد مفید باشد و اطلاعات واژگانی محلی را به دست آورد. آنها در تمام روشهای زیر پشتیبانی میشوند، اما به قیمت حجم گستردهتر واژگانی هستند که میتواند به دلیل هزینه آموزشی، آنها را غیرعملی کند.
استراتژی های دلسرد شده
رمزگذاری یک داغ / چند داغ / کیسه کلمات
رمزگذاری تک داغ یک استراتژی کلاسیک برای متراکم کردن متن پراکنده است. در اینجا ما یک پسوند را فرض می کنیم که در آن یک ویژگی متن پراکنده با یک چند داغ (1s برای همه نشانه های موجود) یا بردار سازی مبتنی بر شمارش (تعداد هر نشانه در واژگان) نشان داده می شود.
برای مثال، اگر واژگان 4 مورد باشد و مانند ["TV"، "Vacuum"، "Wifi"، "Router"] نمایه شود، ویژگی "Prior Purchases" یک بردار متراکم <1، 1، 0، 0 خواهد بود. > اگر شمارش ها در نظر گرفته می شد و ویژگی ["تلویزیون"، "تلویزیون"، "خلاء"] بود، <2، 1، 0، 0> خواهد بود.
جوانب مثبت
- از آنجایی که تقسیمهای جنگل تصمیم بر روی ویژگیهای فردی آموخته میشوند، این در زمان آموزش نسبت به مجموعههای طبقهبندی هزینه کمتری دارد.
- برخلاف اولی، به هیچ گونه برش یا بالشتک نیازی ندارد، و توکنها در بین نمونهها معنایی یکسانی دارند (یعنی «تلویزیون» بدون توجه به موقعیت در بین تقسیمها ثابت خواهد بود).
منفی
- این استراتژی اغلب منجر به تقسیمهای بسیار نامتعادل و پراکنده میشود، که میتواند الگوریتمهای یادگیری DF را کندتر و یا کمتر از همگرا کند. این به این دلیل است که:
- برای یادگیری همان اطلاعات به تقسیمات بیشتری نیاز است
- درختان بسیار پراکنده بدتر از درختان متعادل تعمیم مییابند که معمولاً منجر به مدلی با دقت کمتر میشود.
- اطلاعات موقعیتی را در نظر نمی گیرد. این ممکن است به عملکرد ویژگی های زبان طبیعی آسیب برساند.
- یادگیری تقسیمهای عددی بر روی دادههای مقولهای کمتر از حد بهینه است. بهینهسازیهایی برای یافتن تقسیمبندیهای طبقهبندی وجود دارد که در اینجا از آنها استفاده نمیشود.
- پیچیدگی محاسباتی آموزش به صورت خطی با تعداد آیتم های واژگان (که هر کدام به عنوان یک ویژگی عددی مصرف می شوند) مقیاس می شود. در عمل، مگر اینکه مجموعه داده بسیار کوچک باشد (در این صورت واژگان بزرگ ممکن است باعث افزایش بیش از حد برازش شوند)، این باعث میشود واژگان بیش از 5 هزار مورد بسیار کند آموزش داده شوند.
- مصرف حافظه آموزشی 1 بایت (برای یک گرم) یا 4 بایت (برای تعداد) برای هر مورد واژگان در هر مثال خواهد بود، زیرا در زمان نمایه سازی، داده ها به عنوان یک نسخه متراکم از داده های پراکنده ذخیره می شوند. این میتواند برای واژگان و مجموعه دادههای بزرگتر بهشدت بزرگ شود.
ویژگی های دسته بندی چندگانه با طول ثابت
از آنجایی که ویژگیهای طبقهبندی را میتوان به طور موثر با الگوریتمهای جنگل تصمیم یاد گرفت، یکی از راههای طبیعی برای مصرف نشانههای پراکنده، pad / clip است به طوری که تعداد ثابتی از نشانههای ورودی در هر نمونه وجود داشته باشد، و هر موقعیت نشانه یک ویژگی جداگانه و مستقل است. در مثال بالا، اگر «خریدهای قبلی» حداکثر 5 توکن داشته باشد، میتوانیم ویژگیهای f1...f5 را ایجاد کنیم که نشاندهنده نشانههای 1-5 است، و هر نشانهای > 5 را دور بیندازیم، و مقادیر گمشده را برای مثالهایی که در آنها کمتر از 5 هستند، اضافه کنیم.
جوانب مثبت
- این برای آموزش کارآمد است.
- این ممکن است به کیفیت مدل لطمه ای وارد نکند اگر واریانس کمی در تعداد توکن ها در هر نمونه وجود داشته باشد و توکن ها مستقل باشند.
- این ممکن است معنای اضافی (مانند سفارش خرید در مثال) را به طور طبیعی تر از روش های دیگر دریافت کند.
منفی
- معنایی را به توکنهای خالی اضافه میکند که به عنوان نویز برای مدل عمل میکنند. این امر به ویژه در صورت وجود واریانس زیادی در تعداد نشانهها در هر نمونه مشخص میشود، که ممکن است برای مثال با ویژگی «شرح محصول» اتفاق بیفتد.
- درختان آموخته شده به ترتیب بسیار حساس خواهند بود، یعنی اگر ویژگی ["A"، "B"] باشد، پیش بینی با پیش بینی ["B"، "A"] متفاوت خواهد بود، و اگر مورد دوم هرگز دیده نشد. در داده ها، مدل قادر به تعمیم از اولی نخواهد بود. به طور کلی، این به داده های بسیار بیشتری برای یادگیری تغییر ناپذیری موقعیت نیاز دارد.
- به طور پیش فرض، هر نشانه با یک ویژگی با واژگان متفاوت نشان داده می شود. حتی اگر پیادهسازی را مجبور کنید که مجموعهای از آیتمهای واژگانی را در هر ویژگی در نظر بگیرد، f1=”TV” یک آیتم واژگانی متفاوت از f2=”TV خواهد بود.” این بدان معناست که الگوریتم در یادگیری رابطه بین توکن "TV" و برچسب کارایی کمتری خواهد داشت -- باید آن را به طور جداگانه برای هر موقعیت نشانه یاد بگیرد.
استراتژی های بهتر
مجموعه های دسته بندی
مجموعههای دستهبندی ( https://arxiv.org/pdf/2009.09991.pdf ) نمایش ویژگی پیشفرض TF-DF برای متن پراکنده هستند. یک مجموعه طبقه بندی شده در واقع مجموعه ای از کلمات است که تکراری ها را نادیده می گیرد و سفارش می دهد. به عنوان مثال، ویژگی "تلویزیون بهترین است" با مجموعه دسته بندی {"بهترین"، "است"، "the"، "TV} نمایش داده می شود.
تقسیمکننده مجموعه دستهبندی بومی، با توجه به معیارهای مربوط به انواع کارها (به مقاله مراجعه کنید)، معمولاً از ویژگیهای دستهبندی چند داغ و با طول ثابت بهتر عمل میکند. در تئوری، هر دو تقسیم مجموعه طبقه بندی شده و تقسیم بولی در ویژگی های رمزگذاری شده یک داغ می توانند اطلاعات یکسانی را یاد بگیرند. با این حال، مثال زیر را در نظر بگیرید، جایی که درخت در تلاش است تابع زیر را یاد بگیرد:
if description contains “high” AND “speed” AND “gaming”:
return True
در این حالت، تقسیمکننده مجموعه دستهبندی بومی 1 تقسیم را یاد میگیرد، که در آن {“بالا”، “سرعت”، “بازی”} => True.
یک نمایش داغ به 3 تقسیم، در «بالا»، «تقسیم» و «بازی» نیاز دارد و باید گرههای برگ معقولی را برای همه تفکیکهای احتمالی آن دستهها پیدا کند (یعنی «بالا» و نه «سرعت»). در عمل، رمزگذاری یکباره منجر به درختان بسیار نامتعادل می شود که نمی توانند به طور موثر توسط الگوریتم های یادگیری جنگل تصمیم گیری با بهترین عملکرد بهینه شوند.
جوانب مثبت
- بهترین در یادگیری اطلاعات مجموعه ای از کلمات برای جنگل های تصمیم گیری.
- بسیار کارآمد برای خدمت (می توان با QuickScorer سرو کرد، که می تواند درختان بزرگ را در زمان زیر میکروثانیه در هر مثال خدمت کند). پیچیدگی زمان ارائه در تعداد آیتمهای مجموعه طبقهبندی هر مثال خطی است، که در عمل بسیار کوچکتر از اندازه واژگان است.
- یک واژگان واحد را در هر ویژگی بهینه می کند، بنابراین معناشناسی به اشتراک گذاشته می شود.
منفی
- هزینه آموزش مقیاس های تقسیم مجموعه طبقه بندی شده با num_examples * اندازه vocab، بنابراین مشابه الگوریتم یک گرم، اندازه واژگان قابل آموزش می تواند در تنظیمات عملی نسبتاً کوچک (N هزار) باشد. توجه داشته باشید که این سرعت تمرین را می توان با تنظیم کسر نمونه برداری از الگوریتم حریص بهبود بخشید، اما ممکن است به کیفیت زیر بهینه دست یابد.
جاسازی ها
شبکههای عصبی بهترین عملکرد را در انواع وظایف NLP نشان دادهاند و تعبیههای از پیش آموزشدیدهشده بهعنوان ویژگیهای عددی بهصورت تجربی نیز با الگوریتمهای جنگل تصمیمگیری به خوبی کار میکنند، علیرغم اینکه ویژگیها در داخل بسیار متفاوت استفاده میشوند. توجه داشته باشید که در اینجا ما به "Embedding" به عنوان هر رمزگذاری شبکه عصبی اشاره می کنیم، به عنوان مثال خروجی لایه های ترانسفورماتور / کانولوشن / بازگشتی.
استفاده از تعبیههای از پیش آموزشدیده شده به خوبی با شبکههای عصبی کار میکند، زیرا مقداردهی اولیه یک فضای برداری که در آن نشانهها یا جملات مشابه در فضای اقلیدسی نزدیک هستند، به خوبی در وظایف NLP منتقل میشود، و گرادیانهای حاصل از آن مقداردهی اولیه کوچکتر و سریعتر همگرا میشوند. از یک مقداردهی اولیه کاملا تصادفی. با این حال، درختهای تصمیم از جاسازیها به عنوان ویژگیهای عددی منفرد استفاده میکنند و پارتیشنهای همتراز با محور آن ویژگیهای فردی را یاد میگیرند . این بدان معناست که استفاده از همان اطلاعات معنایی تقریباً غیرممکن است - برای مثال، یک ضرب نقطهای یا یک ضرب ماتریس را نمیتوان با مجموعهای از تقسیمبندیهای همتراز با محور نشان داد. علاوه بر این، برخلاف شبکههای عصبی، که میتوانند جاسازیها را از طریق شیب نزول در طول آموزش بهروزرسانی کنند، الگوریتمهای یادگیری جنگل تصمیم پیشفرض غیرقابل تمایز هستند، به این معنی که جاسازیها باید منجمد بمانند. توجه داشته باشید که (بهعنوان مثال https://arxiv.org/pdf/2007.14761.pdf ) روی جنگلهای تصمیمگیری قابل تمایز وجود دارد. با این حال، شاید تا حدی به این دلیل که در عمل همه بیتهای اطلاعات موجود در یک جاسازی واقعاً مورد استفاده قرار نمیگیرند، حتی توسط شبکههای عصبی، این استراتژی هنوز با جنگلهای تصمیمگیری به خوبی کار میکند.
جوانب مثبت:
- میتواند با اندازههای واژگان بسیار بزرگتری مقابله کند - از آنجایی که تعبیه به طور مؤثری متراکم شدن به تعداد کمی از ابعاد جاسازی است، بعید است که تعداد ویژگیهای ورودی به جنگل تصمیم به طور چشمگیری افزایش یابد.
- از نظر تئوری میتواند بهتر تعمیم دهد، زیرا جاسازیهای مشابه میتوانند مجموعهای از پارتیشنها را به اشتراک بگذارند. توجه داشته باشید که یک اخطار بزرگ در اینجا این است که، همانطور که در بالا ذکر شد، تبدیلهای پایه یا چرخش در فضای برداری میتوانند دو جاسازی مشابه داشته باشند که در فضای پارتیشن بندی شده با محور برای جنگلهای تصمیمگیری کاملاً متفاوت باشند.
- می تواند به طور طبیعی تکرار / ترتیب کلمات را محصور کند، برای مثال اگر رمزگذار حاوی پیچیدگی، توجه یا RNN باشد.
- می تواند اطلاعات را از یک مجموعه داده دیگر (پیش آموزش برای یادگیری انتقال) به کار گیرد.
منفی
- در به خاطر سپردن اطلاعات خوب نیست - تقسیمبندیها میتوانند باعث طبقهبندیهای مبهم یا حساسیت بالا به عبارتنویسی شوند (یعنی «روتر عالی است» در مقابل «یک روتر عالی») جاسازیهای مختلفی ایجاد میکند که ممکن است در فضای اقلیدسی نزدیک باشند اما لزوماً مشابه نیستند. ویژگی های عددی
- کندترین سرویس، زیرا عبور کامل رمزگذار رو به جلو باید در زمان استنتاج انجام شود. تأخیر واقعی به شدت وابسته به معماری است که تعبیهها را ایجاد کرده است. به عنوان مثال، رمزگذار ترانسفورماتور معمولاً بسیار کندتر از جستجوی جدول تعبیهشده خام با جمعآوری میانگین است.
یادداشت ها
فعال کردن تقسیمهای مایل میتواند امکان یادگیری اطلاعات غیرمحور را فراهم کند، اما همچنان بر اساس بعد به بعد خواهد بود. ↩