جاسازی‌ها: به‌دست آوردن جاسازی‌ها

این بخش چندین روش برای به‌دست‌آوردن جاسازی‌ها را پوشش می‌دهد، همچنین نحوه تبدیل جاسازی‌های ایستا را به جاسازی‌های بافتاری توضیح می‌دهد.

تکنیک‌های کاهش ابعاد

تکنیک‌های ریاضی متعددی وجود دارند که ساختارهای مهم فضای بُعدبالا را در فضای بُعدپایین حفظ می‌کنند. از نظر تئوری، هریک از این تکنیک‌ها می‌توانند برای ایجاد جاسازی در سیستم یادگیری ماشین استفاده شوند.

برای مثال، تحلیل عنصر اصلی (PCA) برای ایجاد جاسازی‌های واژه استفاده شده است. با داشتن مجموعه‌ای از نمونه‌ها مانند بردارهای بسته کلمات (bag of words)، PCA تلاش می‌کند ابعاد با همبستگی بالا را شناسایی کند تا در یک بُعد واحد فشرده‌سازی شوند.

آموزش جاسازی به‌عنوان بخشی از یک شبکه عصبی

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

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

در مثال توصیه غذا که قبلاً بیان کردیم، هدف این است که غذاهای جدیدی را که کاربر دوست خواهد داشت براساس غذاهای مورد علاقه فعلی او پیش‌بینی کنیم. ابتدا می‌توانیم داده‌های بیشتری درباره پنج غذای موردعلاقه کاربران جمع‌آوری کنیم. سپس، می‌توانیم این تکلیف را به‌عنوان مسئله یادگیری نظارت‌شده مدل‌سازی کنیم. چهار مورد از این پنج غذای برتر را به‌عنوان داده‌های ویژگی تعیین می‌کنیم و سپس مورد پنجم را به‌صورت تصادفی به‌عنوان برچسب مثبت که مدل ما قصد دارد آن را پیش‌بینی کند کنار می‌گذاریم. پیش‌بینی‌های مدل بااستفاده از تابع هزینه بیشینه هموار بهینه‌سازی می‌شود.

در طول آموزش، مدل شبکه عصبی وزن‌های بهینه را برای گره‌های لایه پنهان اول، که به‌عنوان لایه جاسازی عمل می‌کند، یاد خواهد گرفت. برای مثال، اگر مدل دارای سه گره در اولین لایه پنهان باشد، ممکن است تعیین کند که سه بُعد مرتبط اقلام غذایی شامل ساندویچ بودن، دسر بودن، و مایع بودن است. شکل ۱۲ ارزش ورودی «هات‌داگ» را که به‌صورت وان-هات کدبندی شده است نشان می‌دهد که به بردار سه‌بعدی تبدیل شده است.

.شکل ۱۲ . شبکه عصبی برای کدبندی وان-هات هات‌داگ لایه اول لایه ورودی با ۵ گره است که هریک با نمادی از غذایی که نمایندگی می‌کند، (برشچ، هات‌داگ، سالاد، ...، و شاورما) حاشیه‌نویسی شده است.‏ این گره‌ها دارای مقادیر [0 ,... ,0 ,1 ,0] هستند که به ترتیب نمایش‌دهنده‌ی کدبندی وان-هات برای هات‌داگ هستند.‏ لایه ورودی به یک لایه جاسازی با ۳ گره متصل شده است که مقادیر گره‌های آن به ترتیب ۲٫۹۸، ۰٫۷۵-، و ۰ است.‏ لایه جاسازی به یک لایه پنهان با ۵ گره متصل شده است که سپس به لایه برونداد با ۵ گره متصل می‌شود.‏
شکل ۱۲. کدبندی وان-هات از hot dog به‌عنوان ورودی به شبکه عصبی عمیق ارائه شده است. لایه جاسازی کدبندی وان-هات را به بردار جاسازی‌شده سه‌بعدی [2.98, -0.75, 0] تبدیل می‌کند.

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

جاسازی‌های بافتاری

یکی از محدودیت‌های بردارهای جاسازی ایستای word2vec این است که واژه‌ها می‌توانند در بافتارهای مختلف معانی متفاوتی داشته باشند. «بله» به‌تنهایی یک معنا دارد، اما در عبارت «بله، حتماً» معنای کاملاً متضادی پیدا می‌کند. کلمه Post می‌تواند در انگلیسی به معنای «نامه»، «گذاشتن در صندوق پست»، «پشت گوشواره»، «نشانگر در انتهای مسیر مسابقه اسب‌دوانی»، «پس‌تولید»، «ستون»، «نصب اعلان»، «مستقر کردن نگهبان یا سرباز»، «پس‌از»، و بسیاری موارد دیگر باشد.

اما در جاسازی‌های ایستا، هر کلمه تنها با یک نقطه در فضای برداری نمایش داده می‌شود، حتی اگر دارای معانی متعدد باشد. در تمرین اخیر، محدودیت‌های جاسازی ایستا را برای کلمه orange کاوش کردید که می‌تواند هم به یک رنگ و هم به نوعی میوه اشاره داشته باشد. orange با داشتن تنها یک جاسازی ایستا، وقتی در مجموعه داده word2vecآموزش داده شود همیشه بیشتر به رنگ‌های دیگر نزدیک‌تر خواهد بود تا به آب‌میوه.

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

برخی‌از روش‌های ایجاد جاسازی‌های بافتاری، مانند ELMo، جاسازی ایستای نمونه، مانند بردار word2vec برای واژه‌ای در جمله، را بااستفاده از تابعی که اطلاعات مربوط به واژه‌های اطراف را در نظر می‌گیرد تغییر می‌دهند. این کار باعث تولید جاسازی بافتاری می‌شود.

برای جزئیات بیشتر درباره جاسازی بافتاری، اینجا کلیک کنید

  • در مدل‌های ELMo به‌طور خاص، جاسازی ایستا با جاسازی‌هایی که از لایه‌های دیگر گرفته شده تجمیع می‌شود. این لایه‌ها خوانش جمله را از جلو به عقب و از عقب به جلو کدبندی می‌کنند.
  • مدل‌های BERT بخشی از توالی‌ای را که به‌عنوان ورودی دریافت می‌کنند می‌پوشانند.
  • مدل‌های مبدل از یک لایه توجه‌به‌خود استفاده می‌کنند تا میزان ارتباط سایر واژه‌های موجود در یک توالی را نسبت‌به هر واژه منفرد تعیین کنند. همچنین ستون مربوطه از ماتریس جاسازی موقعیتی (رجوع کنید به کدبندی موقعیتی) را به‌صورت عنصر به عنصر به هر جاسازی کد که قبلاً یاد گرفته شده است اضافه می‌کنند تا جاسازی ورودی‌ای ایجاد شود که برای استنتاج به بقیه مدل ارسال می‌شود. این جاسازی ورودی، که برای هر توالی نوشتاری متمایز منحصربه‌فرد است، یک جاسازی بافتاری محسوب می‌شود.

اگرچه مدل‌هایی که در بالا توصیف شد مدل‌های زبانی است، جاسازی‌های بافتاری در تکالیف زایای دیگر، مانند تصاویر، نیز مفید هستند. جاسازی مقادیر RGB پیکسل در عکس یک اسب، زمانی که با یک ماتریس موقعیتی که هر پیکسل را نمایش می‌دهد و نوعی کدبندی از پیکسل‌های مجاور ترکیب شود، نسبت‌به جاسازی‌های ایستای اولیه مقادیر RGB به‌تنهایی، اطلاعات بیشتری را به مدل ارائه می‌دهد.