خب در این قسمت می بینیم که برتری برت بر سایر مدل های زبانی از کجا آمده. این لینک قسمت قبل و این هم ویدئو:
گفتیم Word Embedding های زیاد و متفاوتی وجود دارند اما دلیل اصلی اینکه به شخصه برت را به بقیه ترجیه می دهم، این است که مانند دیگر embedding ها مانند Glove یا Word2vec سختگیر و بدون ملاحظه نیست!
چرا این را می گویم؟
به این خاطر که embedding هایی مانند GloVeهمیشه یک بردار embedding مشخص و ثابت را به یک کلمه اختصاص می دهند بدون اینکه به معنی کلیه متن توجهی داشته باشند. اکنون به این دو کراش توجه کنید.
یکی
" Terrorists will crash the tower "
و دیگری
"Mary has a crush one Charlie"
آنها هر دو یک معنی که ندارند، درسته؟
اما اگر ما این دو را به GloVe یا Word2vec بدهیم، آنها ممکن است فکر کنند که دومین جمله مانند اولی دارد یک فاجعه را گزارش می کند! مثلا Mary قرار است Charlie را له یا خرد کند!
اما می دانیم که اگر ما این دومورد را به برت روشن فکرمان بدهیم، آنقدر عقل دارد که همچین کاری نکند. پس می آید به هر کراش در هر جمله، یک embedding مشخص، با توجه به جمله ای که در آن استفاده شده است می دهد. به همین دلیل است که بعضی مواقع بیش از یک embedding برای یک کلمه مشخص می بینیم.
تقسیم بندی متن
تا اینجا تعریف و فرآیند کلی ای کهWord Embeddings انجام می دهند را دیدیم. اما چون این نوشته، بخشی از یک دوره سه قسمتی تقسیم بندی متن است، من درمورد اینکه برت چطور از Word Embeddings برای تقسیم بندی متون استفاده می کند نیز صحبت می کنم.
خب، بعد از اینکه آموزش مدلمان را تمام کردیم، برای Classification باید بردار یکی از این تکه ها را برداریم و از شر بقیه خلاص شویم.در واقع بر اساس این تکه است که ما درمورد برچسب متن تصمیم میگیریم که مثلا آیا این متن دارد یک فاجعه را گزارش می کند یا خیر.
آیا می توانید حدس بزنید این چه تکه ای است؟
راهنمایی: این تکه در تمام جملات حاضر است اما وابسته به اینکه در چه جمله ای استفاده شده، مقادیر متفاوتی به خود می گیرد. می توانید واییسید و کمی به این سوال فکر کنید. خب آن تکهCLS است! و درواقع به معنای Classification یا همان تقسیم بندی نیز هست!
با اینکه این فقط یک کلمه و تکه است که در همه جملات تکرار شده، مقادیر مختلفی در بردار خود با توجه به جمله ای که درآن استفاده شده دارد. با embedding های این تکه و یک لایه Dense یا همان فشرده با تابع Activation یا فعال سای مانندsigmoid است که می توانیم تقسیم بندی متنمان را انجام دهیم.
خب این هم از این!
در این قسمت شما درمورد Word embedding ها و اینکه برت چطور از آنها برای حفظ معنا و تقسیم بندی متن استفاده می کند یادگرفتید.
اگر می خواهید درمورد شیوه پیاده سازی همه این ها در کد هم بدانید می توانید ادامه همین ویدئو را در یوتیوب تماشا کنید. یا سری به کرنل بنده در کگل بزنید!
به علاوه اگر سوالی هم داشتید در قسمت نظرات یوتیوب یا همینجا بپرسید.من در اسرع وقت پاسخ می دهم.