نمونهای از زنجیره مارکوف چیست ؟
یکی از کاربردهای رایج زنجیرههای مارکوف در علم داده، پیشبینی متن است. این حوزه از پردازش زبان طبیعی (NLP) بهطور گسترده در صنعت فناوری توسط شرکتهایی مانند گوگل، لینکدین و اینستاگرام استفاده میشود. وقتی ایمیل مینویسید، گوگل کلمات یا عبارات را پیشبینی میکند و پیشنهاد میدهد تا ایمیلتان بهصورت خودکار تکمیل شود. همچنین، هنگامی که پیامهایی را در اینستاگرام یا لینکدین دریافت میکنید، این اپلیکیشنها پاسخهای احتمالی را پیشنهاد میدهند. اینها نمونههایی از کاربرد زنجیره مارکوف هستند که بررسی خواهیم کرد. با این حال، مدلهایی که این شرکتهای بزرگ برای این ویژگیها در مقیاس بزرگ استفاده میکنند، پیچیدهتر هستند.
فرض کنید مقدار زیادی متن مرتبط با یک موضوع دارید. میتوانید هر جمله را بهعنوان دنبالهای از کلمات در آن مجموعه متن تصور کنید. هر کلمه بهعنوان یک حالت (State) در نظر گرفته میشود و بر اساس کلمات موجود که به آنها متصل هستید، احتمال انتقال از یک حالت به حالت دیگر را محاسبه میکنید. این کار به شما اجازه میدهد که بر اساس احتمالات موجود در ماتریس انتقال، از یک حالت به حالت دیگری بروید. این مفهوم را میتوان به شکل زیر تجسم کرد.
برای اهداف تجسم، شبکهی بالا تنها تعداد محدودی کلمه در مجموعه خود دارد. اما هنگامی که با حجم بالایی از متن مانند مجموعه “هری پاتر” مواجه میشوید، این شبکه بسیار بزرگ و پیچیدهتر خواهد شد. به عنوان مثال، اگر به کلمه ابتدایی “سلام” (Hello) نگاه کنیم، سه کلمه یا نماد دیگر وجود دارند که میتوانند پس از آن بیایند: “همه” (Everyone) و “در آنجا” (There) با احتمالات مربوطه. سادهترین راه برای محاسبه این احتمالات، استفاده از فراوانی وقوع کلمات در مجموعه متن است.
Hello = [ “Everyone” , “” , “Everyone” , “There” , “There” , “There” , “There” , “There” ,…]
اگر در لیست بالا ۲۰ کلمه وجود داشته باشد که هر کدام پس از کلمه “سلام” (Hello) آمده باشد، آنگاه احتمال وقوع هر کلمه طبق فرمول زیر محاسبه میشود:
P(word) = Frequency of word / total Number of Words in List
P(Everyone) = 9/20
P(,) = 1/20
P(There) = 10/20
بردار حالت اولیه نشاندهنده احتمال شروع جمله با هر یک از کلمات ممکن است. در مثال بالا، از آنجا که “سلام” (Hello) تنها کلمهای است که میتوانید با آن شروع کنید، بردار حالت اولیه یک بردار Nx1 خواهد بود که ۱۰۰ درصد احتمال به کلمه “سلام” اختصاص داده شده است. با استفاده از این بردار، میتوانید حالتهای آینده را از طریق این مدل مارکوف پیشبینی کنید.
کاربردهای زنجیره مارکوف و نحوه کارکرد
زنجیره مارکوف کاربردهای زیادی در صنایع مختلف و الگوریتمهای گوناگون دارد. دلیلش هم این هست که این مدل خیلی ساده و کارآمد است و قادر است اتفاقات آینده رو فقط بر اساس وضعیت فعلی پیشبینی کند. برخی از کاربردهای زنجیره مارکوف در صنایع مختلف به شرح زیر است :
1.هواشناسی:
یکی از معروفترین کاربردهای زنجیره مارکوف در پیشبینی آب و هوا است. با استفاده از وضعیت آب و هوای امروز (مثلاً آفتابی یا ابری)، میتوانیم حدس بزنیم که فردا هوا چطور خواهد بود.
چطور کاربرد دارد؟ فرض کن هواشناسی میخواهد پیشبینی کند فردا هوا چطور خواهد بود. با استفاده از زنجیره مارکوف، یک سری حالت داریم (مثلاً: آفتابی، ابری، بارونی). با بررسی وضعیت امروز، هواشناسی با استفاده از یک جدول احتمال تصمیم میگیرد که فردا احتمال آفتابی بودن یا بارونی بودن چقدر است.
مثال: اگر امروز هوا آفتابی است ، زنجیره مارکوف میگوید ۸۰٪ احتمال است که فردا هم آفتابی باشد، و ۲۰٪ احتمال دارد بارانی باشد.
2.تشخیص صدا و گفتار:
در گوشیهای موبایل، وقتی از سیری یا google assistant سؤال میپرسید، این سیستمها از زنجیره مارکوف استفاده میکنند تا بفهمند هر کلمهای که میگویید به چه کلمهی بعدی ممکن است مربوط باشد. به عبارت دیگر، صدای شما را با استفاده از مدل مارکوف تجزیه و تحلیل میکنند.
چطور کاربرد دارد؟ وقتی با موبایل خود صحبت میکنید و آن میخواهد بفهمد چه کلمهای گفتهاید، زنجیره مارکوف به آن کمک میکند که از بین کلمات مختلف حدس بزند. به عنوان مثال، وقتی میگویید “سلام”، موبایل باید تصمیم بگیرد که چه کلمهای بعد از “سلام” بیاید. با کمک زنجیره مارکوف، گوشی بررسی میکند که چه کلمات دیگری بیشتر با “سلام” همراه میشوند.
- مثال: اگر گفتید “سلام”، احتمال زیادی دارد که کلمه بعدی “خوبی” باشه، نه “موبایل”.
3.بازاریابی و تحلیل رفتار مشتری:
- شرکتها با استفاده از زنجیره مارکوف، رفتار مشتریها رو پیشبینی میکنند. مثلاً وقتی شما محصولی را خریداری میکنید، زنجیره مارکوف میگوید بعد از آن ممکن است که چه محصول دیگری را خریداری کنید.
- چطور کاربرد دارد؟ شرکتها از زنجیره مارکوف استفاده میکنند تا بفهمند بعد از خرید یک محصول، مشتری چه چیزی را ممکن است بعد از آن خریداری کند . این کار با ساختن مدل مارکوف برای رفتار مشتریها انجام میشود. برای هر محصول، احتمال خرید محصول بعدی بر اساس محصول قبلی مشخص میشود.
- مثال: اگر مشتری کتابی درباره “آموزش پایتون” خرید، زنجیره مارکوف میتواند پیشبینی کند احتمال اینکه بعدش کتاب “پروژههای پایتون” رو خریداری کند بیشتر است.
4.مالی و بورس:
- در بازار بورس، از زنجیره مارکوف استفاده میشود تا قیمت سهام یا ارزها رو پیشبینی کنند. یعنی مثلاً اگر قیمت سهام امروز بالا رفته باشد، میتوانند احتمال دهند که فردا قیمت بالا میماند یا خیر.
- چطور کاربرد دارد؟ در بازار بورس، قیمت سهام به وضعیت فعلی بازار بستگی دارد. زنجیره مارکوف کمک میکند که پیشبینی کنیم فردا قیمت سهام چطوری تغییر میکند. مثلاً اگر امروز سهام بالا رفته است، زنجیره مارکوف با استفاده از احتمالات میتواند پیشبینی کند که فردا چقدر احتمال دارد قیمت بیشتر بره بالا یا پایین بیاید.
- مثال: اگر امروز قیمت سهام زیاد شده است، زنجیره مارکوف میگوید ۶۰٪ احتمال دارد فردا هم بالا برود، ولی ۴۰٪ احتمال داره پایین بیاد.
5.مدیریت صفها:
- در بانکها یا بیمارستانها، زنجیره مارکوف میتواند پیشبینی کند که در چه ساعاتی صف طولانیتر میشود. مثلاً اگر الان صف کوتاه است، یک ساعت بعد صف احتمال دارد چقدر طولانی شود؟
- چطور کاربرد دارد؟ در بانک یا بیمارستان، با استفاده از زنجیره مارکوف میتوانند پیشبینی کنند که در چه زمانی صف طولانیتر میشود. مثلاً اگر الان تعداد مراجعین کم است، زنجیره مارکوف میتواند پیبینی کند در یک ساعت آینده صف شلوغتر میشود یا خیر.
- مثال: اگر الان در بانک فقط ۵ نفر در صف قرار دارند، زنجیره مارکوف میگوید ۷۰٪ احتمال دارد که در ۳۰ دقیقه آینده تعداد افراد بیشتر شود.
6.مهندسی ژنتیک و بیولوژی:
- زنجیره مارکوف در تحلیل ژنها هم کاربرد دارد. با استفاده از این مدل میتوانند الگوهای تکراری در DNA را پیدا کنند و حدس بزنند که بعد از یک رشته ژنتیکی خاص، چه چیزی قرار دارد.
- مثال کاربردی: بررسی ترتیب ژنها در رشته DNA برای کشف بیماریها.
7.تشخیص چهره و تصویر
- چطور کاربرد دارد؟ وقتی میخوایم عکسی بگیریم و موبایل میخواهد صورت شما را تشخیص دهد، زنجیره مارکوف کمک میکند که اول از روی وضعیت فعلی تصویر (مثلاً روشنایی یا زاویه) حدس بزند چهره شما کجا است و بعد به دنبال الگوهای صورت بگردد.
- مثال: زنجیره مارکوف مشگوید که اگر بخشی از چهره دیده شد (مثلاً چشم)، احتمال زیادی وجود دارد که بینی در موقعیت مشخصی باشد.
8.الگوریتم PageRank گوگل
- چطور کاربرد دارد؟ گوگل از زنجیره مارکوف استفاده میکند تا صفحات وب را بر اساس لینکهایی که بین آنها است، رتبهبندی کند. وقتی یک صفحه به صفحه دیگر لینک میدهد، زنجیره مارکوف احتمال میدهد که چه صفحاتی بیشتر کلیک میشند.
- مثال: اگر صفحهای به یک سایت دیگری لینک داده است، زنجیره مارکوف کمک میکند بفهمیم که چقدر احتمال دارد کاربر روی این لینک کلیک کند و وارد سایت جدید بشود.
9.فیلتر کالمن (Kalman Filter)
- چطور کاربرد دارد؟ در سیستمهای کنترلی مثل هواپیماها یا ماهوارهها، زنجیره مارکوف کمک میکند که وضعیت آینده سیستم (مثل سرعت یا مسیر حرکت) پیشبینی شود. برای هر لحظه، زنجیره مارکوف بر اساس وضعیت فعلی حدس میزند که سیستم در لحظه بعدی کجا خواهد بود.
- مثال: وقتی ماهوارهای در حال حرکت توی فضا است، زنجیره مارکوف میگوید که در ثانیه بعد احتمال دارد ماهواره کجا باشد و با چه سرعتی حرکت کند.
10.پردازش زبان طبیعی (NLP) :
- در تحلیل و پردازش متن و زبان هم از زنجیره مارکوف استفاده میکنند. مثلاً وقتی جملهای را مینویسید، این مدل کمک میکند حدس بزنند چه کلمهای بعدی باید باشد.
- مثال کاربردی: تصحیح خودکار جملههایی که تایپ میکنید یا ترجمه ماشینی.
ترتیبی که هوشینو برای خواندن مطالب یادگیری تقویتی به شما پیشنهاد میکند:
6.زنجیره مارکوف بخش سوم