Embedding (NLP) (FA)
Embedding (از انگلیسی embedding — «جاسازی») — یک فناوری بنیادی در حوزه Machine Learning و پردازش زبان طبیعی است که اشیاء گسسته یا پیچیده (مانند کلمات، جملات، تصاویر) را به بازنماییهای برداری عددی با ابعاد ثابت تبدیل میکند. این بردارها، یا همان embeddingها، در فضای چندبُعدی به گونهای قرار میگیرند که اشیاء معنایی مشابه در نزدیکی یکدیگر واقع میشوند.
تعریف و مفهوم
به صورت رسمی، embedding یک تابع نگاشت است، که در آن فضای اصلی اشیاء است (مانند واژگان کلمات)، و فضای برداری چندبُعدی (فضای embedding) با بُعد میباشد. بُعد به طور قابل توجهی کمتر از بُعد فضای اصلی است، که این بازنماییها را متراکم (dense) میسازد.
پایه نظری بازنماییهای برداری کلمات، معناشناسی توزیعی است که بیان میکند معنای یک کلمه توسط بافت استفاده از آن تعریف میشود. یعنی کلماتی که در بافتهای مشابه ظاهر میشوند، معانی مشابه و در نتیجه بازنماییهای برداری نزدیک به هم دارند.
اصول اساسی embeddingها
- بُعد ثابت: همه اشیاء به بردارهایی با طول یکسان نگاشت میشوند، صرف نظر از اندازه دادههای اصلی (مثلاً طول جمله).
- نزدیکی معنایی: فاصله بین بردارها (که اغلب از طریق شباهت کسینوسی اندازهگیری میشود) نزدیکی معنایی اشیاء اصلی را منعکس میکند.
- پشتیبانی از عملیات ریاضی: بردارها روابط معنایی را حفظ میکنند و امکان انجام عملیات جبری بر روی آنها را فراهم میسازند. مثال کلاسیک: .
تاریخچه و توسعه
رویکردهای اولیه (دهههای ۱۹۸۰–۲۰۰۰)
اولین ایدههای بازنمایی برداری در دهه ۱۹۸۰ در چارچوب تحقیقات شبکههای عصبی پدیدار شد. روشهای اولیه بر اساس تحلیل آماری همزیستی کلمات بود.
دوران Word2Vec (2013)
لحظه انقلابی با توسعه Word2Vec توسط تیم Google به سرپرستی Tomas Mikolov در سال ۲۰۱۳ رخ داد. Word2Vec دو معماری کارآمد و از نظر محاسباتی مقرونبهصرفه برای آموزش embeddingهای کلمات پیشنهاد داد:
- CBOW (Continuous Bag of Words): کلمه مرکزی را بر اساس بافت اطراف آن پیشبینی میکند.
- Skip-gram: کلمات بافتی را بر اساس کلمه مرکزی پیشبینی میکند.
Word2Vec اولین پیادهسازی محبوب بازنماییهای برداری شد، که تا حد زیادی به دلیل کد منبع باز و سرعت بالای آن بود.
توسعه رویکردهای جایگزین
پس از Word2Vec، مدلهای مهم دیگری از embeddingهای ایستا ظاهر شدند:
- GloVe (2014): مدلی که در دانشگاه Stanford توسعه یافت و از آمار جهانی همزیستی کلمات برای آموزش بردارها استفاده میکند.
- FastText (2015): مدلی از Facebook که ریختشناسی کلمات را در نظر میگیرد و هر کلمه را به عنوان مجموع بردارهای n-gramهای کاراکتری آن نمایش میدهد. این امر امکان ایجاد embedding حتی برای کلماتی که در واژگان آموزشی نبودند (کلمات خارج از واژگان یا Out-of-Vocabulary) را فراهم میسازد.
دوران transformerها و embeddingهای بافتی (۲۰۱۸ تا کنون)
پیشرفت بزرگ با ظهور معماری transformerها و مدل BERT (2018) رخ داد. این امر به پیدایش embeddingهای بافتی منجر شد، که در آنها بازنمایی برداری یک کلمه به بافت استفاده از آن بستگی دارد. برخلاف بازنماییهای ایستا که در آنها کلمه «کلید» در جملات «کلید در» و «کلید موسیقی» یک بردار یکسان داشت، مدلهای بافتی embeddingهای متفاوتی برای هر مورد تولید میکنند.
انواع embeddingها
بر اساس سطح بازنمایی
- Embedding کلمات: نوع پایه که هر کلمه با یک بردار جداگانه نمایش داده میشود (Word2Vec، GloVe).
- Embedding جملات و اسناد: عبارات، جملات یا اسناد کامل را با یک بردار واحد نمایش میدهند (PV-DM، PV-DBOW).
- Embedding کاربران و اشیاء: در سیستمهای توصیهگر برای بازنمایی علایق کاربران و ویژگیهای کالاها استفاده میشوند.
بر اساس بافتی بودن
- Embeddingهای ایستا: به هر کلمه یک بردار ثابت اختصاص مییابد، صرف نظر از بافت (Word2Vec، GloVe، FastText).
- Embeddingهای بافتی: بازنماییهای متفاوتی برای یک کلمه یکسان بسته به محیط آن تولید میکنند. نمایندگان اصلی:
- BERT: مدل دوطرفه مبتنی بر transformer.
- ELMo: مدل LSTM دوطرفه.
- RoBERTa، DistilBERT، ALBERT: نسخههای بهبودیافته BERT.
بر اساس نوع داده
- Embeddingهای متنی: رایجترین نوع، شامل بازنمایی کلمات، جملات و اسناد.
- Embeddingهای بصری: بازنمایی تصاویر برای وظایف بینایی ماشین.
- Embeddingهای چندوجهی: انواع مختلف داده (متن، تصویر، صدا) را در یک فضای برداری واحد ترکیب میکنند. نمونه آن ImageBind است که قادر است دادههای شش نوع داده مختلف را به هم پیوند دهد.
معماریها و روشهای آموزش
روشهای کلاسیک
- کدگذاری one-hot: سادهترین روش که هر کلمه با یک بردار به اندازه واژگان با یک عدد یک در موقعیت مربوطه کدگذاری میشود. معایب: پراکندگی بالا و فقدان اطلاعات معنایی.
- تجزیه ماتریس: روشهای کاهش بُعد (مانند LSA) که بر روی ماتریسهای همزیستی کلمات اعمال میشوند.
معماریهای شبکه عصبی
- شبکههای عصبی کمعمق: معماریهای CBOW و Skip-gram در Word2Vec از شبکههای عصبی دو لایه برای آموزش کارآمد استفاده میکنند.
- Transformerها: معماری که با مکانیزم توجه (attention) این حوزه را متحول کرد.
رویکردهای مدرن
- یادگیری خودنظارتی با ماسکگذاری: BERT از وظیفه پیشبینی کلمات ماسکشده برای آموزش بازنماییهای بافتی استفاده میکند.
- یادگیری تقابلی: روشهایی که شباهت جفتهای معنایی نزدیک (مثبت) را به حداکثر و شباهت جفتهای دور (منفی) را به حداقل میرسانند.
کاربردهای embeddingها
Embeddingها در حوزههای مختلف کاربرد گستردهای دارند:
پردازش زبان طبیعی
- جستجو و بازیابی اطلاعات: بهبود کیفیت جستجوی معنایی با امکان یافتن اسناد بر اساس معنا، نه کلمات کلیدی.
- دستهبندی متون: بازنماییهای برداری به عنوان داده ورودی برای دستهبندها عمل میکنند و دقت آنها را افزایش میدهند.
- تحلیل احساسات: تعیین بار عاطفی متون با در نظر گرفتن بافت.
- ترجمه ماشینی: بهبود درک معناشناختی زبانهای مبدأ و مقصد.
سیستمهای توصیهگر
Embeddingهای کاربران و کالاها پایه و اساس سیستمهای توصیه شخصیسازیشده را تشکیل میدهند، از جمله:
- فیلترینگ مشارکتی: بر اساس embeddingهای رفتار کاربر.
- فیلترینگ مبتنی بر محتوا: با استفاده از embeddingهای ویژگیهای کالا.
بینایی ماشین
- دستهبندی و جستجوی تصاویر: شبکههای عصبی کانولوشنی و Vision Transformerها embeddingهای تصاویر را برای دستهبندی و جستجوی تصاویر مشابه ایجاد میکنند.
بیوانفورماتیک و پزشکی
- تحلیل دادههای پزشکی: تحلیل پروندههای بالینی و تشخیص بیماریها.
- بازنماییهای مولکولی: ایجاد embedding برای پیشبینی خواص ترکیبات شیمیایی.
جنبههای فنی و بهینهسازی
- روشهای بهینهسازی بُعد: Matryoshka Representation Learning (MRL) — رویکردی نوآورانه که امکان دریافت embeddingهایی با ابعاد مختلف از یک مدل واحد را فراهم میسازد و اطلاعات مهم را در ابتدای بردار متمرکز میکند.
- کوانتیزه کردن embeddingها: کاهش دقت نمایش اعداد (مثلاً به ۸ یا ۴ بیت) برای تسریع محاسبات و صرفهجویی در حافظه.
- ادغام با پایگاههای داده: پایگاههای داده برداری مدرن (مانند Milvus، Pinecone) و افزونههایی برای سیستمهای مدیریت پایگاه داده سنتی (مانند pgvector برای PostgreSQL) امکان ذخیرهسازی و جستجوی کارآمد embeddingها را فراهم میکنند.
پیوندها
- بازنمایی برداری کلمات — ویکیپدیا
- بازنمایی برداری کلمات — NEERC
منابع
- Mikolov, T. et al. (2013). Efficient Estimation of Word Representations in Vector Space. arXiv:1301.3781.
- Mikolov, T. et al. (2013). Distributed Representations of Words and Phrases and their Compositionality. arXiv:1310.4546.
- Pennington, J.; Socher, R.; Manning, C. (2014). GloVe: Global Vectors for Word Representation. PDF.
- Bojanowski, P. et al. (2017). Enriching Word Vectors with Subword Information. arXiv:1607.04606.
- Joulin, A. et al. (2017). Bag of Tricks for Efficient Text Classification. arXiv:1607.01759.
- Peters, M. E. et al. (2018). Deep Contextualized Word Representations. ACL Anthology.
- Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
- Reimers, N.; Gurevych, I. (2019). Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks. arXiv:1908.10084.
- Kusupati, A. et al. (2022). Matryoshka Representation Learning. arXiv:2205.13147.
- Radford, A. et al. (2021). Learning Transferable Visual Models From Natural Language Supervision. PMLR 139.
- Girdhar, R. et al. (2023). ImageBind: One Embedding Space To Bind Them All. CVPR 2023.