چگونه دانشمند علم داده شویم؟

مصاحبه Manu Jeevan با Sean McClure

لطفاً خودتان را معرفی بفرمایید.

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

دانشمند علم داده بودن واقعاً به چه معناست؟

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

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

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

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

بنابراین دانشمند علم داده بودن به معنای استفاده از روش‌های فوق برای کار با داده‌هاست. این مسئولیت هر کسی است که به دنبال ورود به این زمینه است. این موضوع صرفاً به معنای پول درآوردن یک شرکت و یا بزرگنمایی این موقعیت به عنوان یک موضوع جدید و داغ در صنعت نیست.

مسیر خود را برای تبدیل شدن به یک دانشمند داده توضیح دهید.

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

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

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

یک فرد علاقه‌مند به علم داده کدام زبان‌های برنامه‌نویسی را باید بیاموزد؟

2 زبان برنامه‌نویسی اصلی در این حوزه R و Python است که در جامعه محاسبات علمی و آمار بسیار مورد توجه و مفید هستند. اکوسیستم‌ پکیج‌های مورد استفاده توسط این زبان‌ها دارای بلوغ بالا و مورد پشتیبانی است. به جز زبان‌های برنامه‌نویسی، پلتفرم‌های Pig و Hive  برای طرح ریزی pipeline داده‌ها و استقرار جریان داده‌ها بسیار مفید هستند. بدیهی است که نیازمند استفاده از ابزارهای RDBMS که بسیاری از سازمان‌ها هنوز از آنها استفاده می کنند نظیر SQL نیز می‌باشید. برخی از زبان‌های دیگر مانند Julia و Scala نیز مورد استفاده قرار می‌گیرند اما اکوسیستم پکیج‌های آنها به اندازه R و پایتون به بلوغ نرسیده است. من همچنین برای بصری‌سازی داده‌ها از جاوا اسکریپت استفاده می‌نمایم و می‌توانید در این راستا از کتابخانه D3.js شروع کنید، تا بتوانید یافته‌های خود را به طور مؤثرتری با دیگران به اشتراک بگذارید.

برنامه نویسی و آمار چقدر برای کار به عنوان یک دانشمند داده لازم است؟ آیا می توانید مهمترین مفاهیم آماری و برنامه نویسی را توضیح دهید؟

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

چگونه یک فرد تازه‌کار می‌تواند علم داده را بیاموزد؟

ما اکنون در دنیایی زندگی می‌کنیم که تمام اطلاعات مورد نظرمان را می‌توانیم به دست بیاوریم. تنها راه یادگیری این است که مسائل واقعی را حل نمایید. به عبارت دیگر یافتن راه‌حل یا یک محصول از داده‌ها. شما می‌توانید یک اپلیکیشن برای پیش‌بینی را توسعه دهید و در خلال آن باید با پایتون یا R کار کنید کمی SQL بدانید و یک نرم‌افزار توسعه دهید و یاد بگیرید که چگونه مدل را با نرم‌افزار تجمیع کنید. همچنین می‌آموزید از چه مدلی استفاده کنید و از کدام مدل‌ها استفاده نکنید. شما باید مجبور شوید به انجمن‌های آنلاین مانند Stack Overflow و Cross Validated بروید و سؤالاتی بپرسید تا بهتر بفهمید که از چه چیزی استفاده کنید یا چرا کاری مؤثر نیست. شما باید مقالات مربوط به مدل‌ها‌، ریاضیات و آمار را جستجو کنید تا برنامه خود را برای انجام کاری ارزشمند بدست آورید. شما باید مدل‌های خود را اعتبارسنجی کنید و بهبود بخشید و باید بارها و بارها تلاش کنید تا به دانش جدید در خصوص کارکرد علم داده در دنیای واقعی دست یابید. اگر می‌خواهید شرکتی را تحت تأثیر قرار دهید و استخدام شوید ... به مسابقات عمومی مانند Kaggle بروید، و در مسابقات داده کاوی و یادگیری ماشین شرکت کنید. این ثابت خواهد کرد که شما می‌دانید چه می‌کنید. و در مورد مقام اول نگران نباشید ... فقط در میان 10٪ برتر قرار بگیرید تا نشان دهید می‌توانید با بهترین‌ها رقابت کنید.

بهترین نوع ورود به موقعیت‌های شغلی در علم داده کدام است؟ آیا می توانید در مورد صنایعی که تقاضای زیادی برای دانشمندان داده وجود دارد، به ما بگویید؟

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

چه تفاوتی بین یک تحلیلگر داده و یک دانشمند داده وجود دارد؟

از یک تحلیلگر داده انتظار نمی رود که مدل‌هایی بسازد یا مستقر کند و این چیزی است که علم داده را به یک علم تبدیل می‌کند. یک تحلیلگر داده از زبان‌هایی مانند SQL برای جمع‌بندی داده‌ها و به اشتراک‌گذاری آن یافته‌ها با مدیریت (یا دانشمندان داده) استفاده خواهد کرد. این ارتباط نزدیکی با هوش تجاری دارد و بیشتر در مورد جمع‌بندی داده‌های موجود است.

علم داده در مورد آوردن ابزارهای علم و ریاضیات پیشرفته به آن داده‌ها است به گونه‌ای که می‌توان مدل‌ها را در کاربردهای دنیای واقعی ساخته و مستقر کرد. این امر مستلزم درک درستی از یادگیری ماشین، معماری عظیم داده (big data)، آمار پیشرفته و توسعه نرم‌افزار و مهم‌تر از همه توانایی تست فرضیه‌ها به عنوان یک دانشمند است.

آیا یک دانشمند داده قطعاً باید SQL بداند؟

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

عظیم داده (big data) و علم داده چگونه با یکدیگر ارتباط پیدا می‌کنند؟ یک دانشمند داده باید چه مفاهیمی از عظیم داده را بداند؟

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

به عنوان توصیه به کسی که می‌خواهد این مسیر را آغاز نماید، چه می‌گویید؟

هیاهو (hype) و جذابیت علم داده را فراموش کنید و اگر به این علت می‌خواهید وارد این حوزه شوید، از کار خود متنفر خواهید شد. آنچه می‌تواند این حرفه را برای شما مطلوب نماید این است که یک کار علمی خوب انجام دهید، انتظارات مشتری را مدیریت کنید، جنبه‌های فنی و تئوریک را عمیقاً درک کنید و بدانید چگونه با حوزه‌های مختلف کار کرده و مؤثر باشید.

اگر به عمیق شدن در مسائل، دارای جنبه‌های فنی بودن و برقراری ارتباط جنبه‌های فنی با افراد کسب و کاری و مسائل دنیای واقعی علاقه‌مند هستند، در این حالت توصیه من این است که با حل مسئله به کمک داده‌ها و ایجاد یک محصول از آن شروع کنید. زندگی کوتاه‌تر از آن است که کاری را که واقعاً دوست ندارید، انجام دهید. آیا اگر در 5 سال آینده علم داده همچنان موضوع داغی نباشد، حاضرید همچنان آن را انجام دهید؟ و آیا اگر در یک جزیره بودید حاضر بودید با ریاضیات و داده‌ها مسائل را حل کنید؟ اگر پاسختان به این سؤال‌ها مثبت است ... به دنبال علم داده بروید!!