تعبیه: به دست آوردن تعبیه

این بخش بر روی دو تکنیک رایج برای به دست آوردن یک جاسازی تمرکز دارد:

  • کاهش ابعاد
  • استخراج یک جاسازی از یک مدل شبکه عصبی بزرگتر

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

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

به عنوان مثال، تجزیه و تحلیل مؤلفه اصلی (PCA) برای ایجاد جاسازی کلمات استفاده شده است. با توجه به مجموعه‌ای از نمونه‌ها مانند بردارهای کیسه‌ای کلمات ، PCA سعی می‌کند ابعاد بسیار همبسته‌ای را پیدا کند که می‌توانند در یک بعد منفرد جمع شوند.

آموزش تعبیه به عنوان بخشی از یک شبکه عصبی

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

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

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

در طول آموزش، مدل شبکه عصبی وزن های بهینه گره ها را در اولین لایه پنهان که به عنوان لایه جاسازی عمل می کند، یاد می گیرد. به عنوان مثال، اگر مدل دارای سه گره در اولین لایه پنهان باشد، ممکن است تعیین کند که سه بعد مرتبط با مواد غذایی عبارتند از ساندویچ بودن، دسر بودن و مایع بودن. شکل 12 مقدار ورودی کدگذاری شده یک داغ را برای "هات داگ" نشان می دهد که به یک بردار سه بعدی تبدیل شده است.

شکل 12. شبکه عصبی برای رمزگذاری یک داغ هات داگ. لایه اول یک لایه ورودی با 5 گره است که هر کدام با نمادی از غذایی که نشان دهنده آن است (بورشت، هات داگ، سالاد، ... و شاورما) حاشیه نویسی شده است. این گره ها به ترتیب دارای مقادیر [0، 1، 0، ...، 0] هستند که نشان دهنده رمزگذاری یک داغ «هات داگ» است. لایه ورودی به یک لایه تعبیه شده 3 گره متصل است که گره های آن به ترتیب دارای مقادیر 2.98، 0.75- و 0 هستند. لایه embedding به یک لایه پنهان 5 گره متصل می شود که سپس به یک لایه خروجی 5 گره متصل می شود.
شکل 12. رمزگذاری یک hot dog به عنوان ورودی به یک شبکه عصبی عمیق ارائه شده است. یک لایه جاسازی، رمزگذاری یک داغ را به بردار تعبیه سه بعدی [2.98, -0.75, 0] ترجمه می کند.

در طول آموزش، وزن های لایه تعبیه به گونه ای بهینه می شود که بردارهای تعبیه برای نمونه های مشابه به یکدیگر نزدیکتر باشند. ابعاد جداگانه لایه جاسازی (آنچه هر گره در لایه جاسازی نشان می دهد) به ندرت به اندازه "دسر بودن" یا "مایع بودن" قابل درک است. گاهی اوقات می توان معنای آنها را استنباط کرد، اما همیشه اینطور نیست.

تعبیه‌ها معمولاً مختص کار هستند و زمانی که کار متفاوت باشد با یکدیگر متفاوت خواهند بود. برای مثال، تعبیه‌های ایجاد شده توسط مدل طبقه‌بندی گیاه‌خواری در مقابل غیر گیاه‌خواری ممکن است دو بعد داشته باشد: محتوای گوشت و محتوای لبنی. در همین حال، تعبیه‌های ایجاد شده توسط طبقه‌بندی صبحانه در مقابل شام برای غذاهای آمریکایی ممکن است ابعاد کمی متفاوت داشته باشند: محتوای کالری، محتوای دانه و محتوای گوشت. «غلات» و «ساندویچ تخم‌مرغ و بیکن» ممکن است در فضای تعبیه‌کننده طبقه‌بندی‌کننده صبحانه در مقابل شام نزدیک به هم باشند، اما در فضای تعبیه‌کننده طبقه‌بندی‌کننده گیاه‌خواری در مقابل غیرگیاه‌خواری از یکدیگر فاصله زیادی دارند.

آموزش جاسازی کلمه

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

Word2vec یکی از بسیاری از الگوریتم هایی است که برای آموزش جاسازی کلمات استفاده می شود. این بر فرضیه توزیعی برای نگاشت کلمات مشابه از نظر معنایی به بردارهای تعبیه شده نزدیک هندسی تکیه دارد. فرضیه توزیعی بیان می کند که کلماتی که اغلب کلمات همسایه یکسانی دارند، از نظر معنایی مشابه هستند. هر دو "سگ" و "گربه" اغلب نزدیک به کلمه "دامپزشک" ظاهر می شوند و این واقعیت شباهت معنایی آنها را نشان می دهد. همانطور که جان فرث زبان شناس در سال 1957 بیان کرد، "شما باید یک کلمه را توسط شرکتی که نگه می دارد بدانید."

ویدئوی زیر روش دیگری را برای ایجاد یک کلمه جاسازی به عنوان بخشی از فرآیند آموزش شبکه عصبی با استفاده از یک مدل ساده تر توضیح می دهد:

تعبیه‌های استاتیک در مقابل متن

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

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