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

راه‌های مختلفی برای دریافت جاسازی وجود دارد، از جمله الگوریتم پیشرفته‌ای که در گوگل ایجاد شده است.

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

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

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

Word2vec

Word2vec الگوریتمی است که در گوگل برای آموزش جاسازی کلمات اختراع شده است. Word2vec بر فرضیه توزیعی برای نگاشت کلمات مشابه از نظر معنایی به بردارهای تعبیه شده نزدیک هندسی تکیه دارد.

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

Word2Vec از اطلاعات زمینه ای مانند این با آموزش یک شبکه عصبی برای تشخیص گروه های واقعی کلمات از کلمات گروه بندی شده تصادفی استفاده می کند. لایه ورودی یک نمایش پراکنده از یک کلمه هدف همراه با یک یا چند کلمه زمینه را می گیرد. این ورودی به یک لایه پنهان کوچکتر متصل می شود.

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

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

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

برای اطلاعات بیشتر در مورد word2vec، به آموزش در tensorflow.org مراجعه کنید

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

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

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

شکل 5. یک نمونه معماری DNN برای یادگیری جاسازی فیلم از داده های فیلتر مشترک.

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

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

شکلی که رابطه بین وزن لایه های تعبیه شده و نمای هندسی جاسازی را نشان می دهد.

شکل 6. نمای هندسی وزنه های لایه تعبیه شده.