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

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

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

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

به عنوان مثال، تجزیه و تحلیل مؤلفه اصلی (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 آموزش داده شود، نارنجی همیشه به رنگ های دیگر نزدیک تر از رنگ های دیگر خواهد بود.

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

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

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

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