“Artificial Intelligence For Business Analytics: Algorithms, Platforms, and Applications Scenarios”
کتاب: هوش مصنوعی برای تحلیل کسب و کار: الگوریتمها، پلتفرمها و سناریوهای کاربردی
فصل سوم: هوش مصنوعی و پلتفرمهای تحلیلگری کسب و کار
بخش اول از فصل سوم کتاب هوش مصنوعی برای تحلیلگری کسب و کار: الگوریتمها، پلتفرمها و سناریوهای کاربردی، ابتدا به مفاهیم و چارچوبهای نرم افزاری پایه همچون مدیریت دادهها، انبارداده، و دریاچه داده پرداخته شده است و سپس به معرفی ابزارها و پلتفرمهای مختلف مرتبط با پردازش و تحلیل دادههای عظیم میپردازد.
پلتفرمهایی که میتوانند برای پیادهسازی دریاچه داده استفاده شوند عبارتند از:
- فایل سیستم توزیع شده هدوپ (HDFS)
- سرویس ذخیرهسازی ساده آمازون (S3)، ذخیرهسازی ابری گوگل، ذخیرهسازی دریاچه داده Azure
- دریاچههای داده همچنین میتوانند با انبارداده کلاسیک، HBase یا پایگاه داده NoSQL (مانند MongoDB) ترکیب شوند.
پردازش جریان داده و صف پیام
پردازش جریانی اصطلاحاً پردازش دادههای در حرکت است. به بیان دیگر، تحلیل دادهها به صورت مستقیم در لحظه تولید یا دریافت آنها. این الگو این واقعیت را در نظر میگیرد که اکثر دادهها به صورت جریانهای پیوسته تولید میشوند: رویدادهای سنسورها، فعالیت کاربر در یک وبسایت یا دادههای معاملات مالی. همه این دادهها به صورت مجموعهای از رویدادها در طول زمان تولید میشوند. دادههای عظیم، ارزش بینشهایی را از پردازش دادهها تعیین کرده است. چنین بینشهایی همه یکسان نیستند. برخی از بینشها اندکی پس از وقوع ارزشمندتر هستند، زیرا ارزش آنها با گذشت زمان بسیار سریع کاهش مییابد. پردازش جریان، چنین سناریوهایی را امکانپذیر میسازد و بینشها را سریعتر، اغلب در عرض میلیثانیه تا ثانیه پس از ایجاد ارائه میدهد. محاسبات جریان همچنین میتوانند چندین جریان را با هم پردازش کنند و هر محاسبه روی جریان رویداد میتواند جریانهای رویداد دیگری تولید کند. در مقابل پردازش جریانی پردازش دستهای قرار دارد. پردازش دسته ای برای محاسبه پرسوجوهای دلخواه روی مجموعه دادههای مختلف قابل استفاده است. معمولاً نتایج حاصل از تمام دادههای تحت پوشش را محاسبه میکند و امکان تحلیل عمیق مجموعه دادههای عظیم را فراهم میکند. سیستمهای مبتنی بر MapReduce مانند Amazon EMR نمونههایی از پلتفرمهایی هستند که از چنین پردازشهایی پشتیبانی میکنند.
در مقابل، پردازش جریان نیازمند گرفتن یک دنباله از دادهها و بهروزرسانی تدریجی سنجهها، گزارشها و آمار خلاصه در پاسخ به هر مجموعه داده ورودی است. بنابراین، پردازش جریان برای نظارت و پاسخگویی بلادرنگ مناسبتر است.
امروزه بسیاری از شرکتها با ترکیب دو رویکرد و ایجاد یک لایه بلادرنگ (جریان) و یک لایه دسته ای به طور همزمان یا سری، بر روی مدلهای ترکیبی کار میکنند. دادهها ابتدا توسط یک پلتفرم داده جریانی برای ارائه بینشهای بلادرنگ پردازش میشوند و سپس به یک مخزن داده بارگذاری میشوند که در آنجا میتوان آن را تبدیل و برای انواع مختلف موارد استفاده پردازش دستهای استفاده کرد.
سیستم مدیریت پایگاه داده
یک سیستم مدیریت داده in-memory (IMDBMS) یک سیستم مدیریت پایگاه داده است که عمدتاً برای ذخیرهسازی، مدیریت و دستکاری دادهها به حافظه اصلی متکی است. این کار تأخیر و سربار ذخیرهسازی دیسک را حذف میکند و مجموعه دستورالعملهای مورد نیاز برای دسترسی به دادهها را کاهش میدهد. برای ذخیرهسازی و دسترسی کارآمدتر، دادهها میتوانند در یک قالب فشرده ذخیره شوند.
آپاچی هدوپ
محیطهای عظیم داده معمولاً نه تنها شامل دادههای عظیم بلکه انواع مختلفی از دادههای تراکنش ساختاریافته تا انواع نیمهساختاریافته و بدون ساختار اطلاعات مانند سوابق کلیک، وب سرور و لاگهای برنامههای موبایل، پستهای رسانههای اجتماعی، ایمیلهای مشتری و دادههای سنسور از اینترنت اشیا میشوند. فناوری که در ابتدا فقط با نام آپاچی هدوپ شناخته میشد، به عنوان بخشی از یک پروژه متنباز در بنیاد نرمافزار آپاچی (ASF) در حال توسعه است. توزیع تجاری هدوپ در حال حاضر توسط چهار ارائه دهنده اصلی پلتفرم دادههای عظیم ارائه میشود: فناوریهای آمازون وب سرویس (AWS)، کلودرا، Hortonworks و MapR. علاوه بر این، گوگل، مایکروسافت و سایر فروشندگان خدمات مدیریت مبتنی بر ابر را بر اساس هدوپ و فناوریهای مرتبط ارائه میدهند.
تحلیل داده و زبانهای برنامهنویسی
علاوه بر الگوریتمها، تحلیل داده همچنین نیازمند پیادهسازی و یکپارچهسازی با اپلیکیشنهای موجود است. زبانهای برنامهنویسی مانند پایتون و R در این راستا مورد استفاده قرار میگیرند. R نه تنها توسط کاربران دانشگاهی استفاده میشود، بلکه بسیاری از شرکتهای بزرگ از جمله اوبر، گوگل، ایربیانبی، فیسبوک و غیره نیز از R استفاده میکنند.
همچنین اسکالا (Scala) یک زبان برنامهنویسی سطح بالا، چند پارادایمی و همه منظوره است. این زبان یک زبان برنامهنویسی شیءگرا است که از رویکرد برنامهنویسی تابعی نیز پشتیبانی میکند. هیچ داده اولیهای وجود ندارد، زیرا همه چیز در اسکالا یک شیء است. اسکالا برای بیان الگوهای رایج برنامهنویسی به شیوهای دقیق، مختصر و type-safe طراحی شده است. برنامههای اسکالا میتوانند به بایت کد تبدیل شوند و روی ماشین مجازی جاوا (JVM) اجرا شوند.
جولیا (Julia) در سال 2009 ایجاد شد و در سال 2012 به عموم معرفی شد. جولیا با هدف رفع کمبودهای پایتون و سایر زبانها و برنامههای محاسبات علمی و پردازش داده طراحی شده است. جولیا از metaprogramming پشتیبانی میکند. برنامههای جولیا میتوانند برنامههای جولیای دیگر را تولید کرده و حتی کد خود را به روشی شبیه به زبانهایی مانند Lisp تغییر دهند.