مقدمهای بر مفاهیم کیفیت داده
یکی از موضوعاتی که در بسیاری از پروژههای داده که تاکنون درگیر آن بودم، برجسته بوده اهمیت کیفیت داده (Data Quality) است. کیفیت داده موضوعی است که شاید در ادبیات حوزه علم داده (Data Science) کمتر به آن پرداخته شده ولی در هنگام اجرای پروژههای واقعی داده با آن زیاد مواجه خواهید شد.
بهخصوص اگر شما در سازمانی وارد شوید، که از گذشته دادههای زیادی جمعآوری کردند و اکنون میخواهند روی آن پروژهای در حوزه داده تعریف کنند، چالش کیفیت داده جدی است (به این پروژهها در اصطلاح Brown Field گفته میشود). بر اساس تجربیاتم چالشهای زیر در شرکتهای ایرانی متداول است:
- پایگاههای داده مستندات درستی ندارند،
- بهطور دقیق مشخص نیست ما به ازای واقعی هر متغیر در پایگاه داده در فرآیند عملیاتی سازمان چیست،
- تغییرات در روشهای ثبت و ضبط دادهها در طول زمان نامشخص و غیر مکتوب است،
- منطق اندازهگیری متغیرها روشن نیست،
- بین دادههایی که از منابع مختلف استخراج میشوند، ناسازگاری زیاد است،
- بین آنچه در عمل اجرا میگردد و آنچه در دادهها منعکس میشود، همیشه تناظر نیست،
- در طراحی فرآیند جمعآوری داده، منظر تحلیل داده در نظر گرفته نشده است.
این چالشها بهطور مستقیم اثرات عمیقی بر روی فعالیتهای بالادستی در حوزه تحلیل داده میگذارد. در زبان انگلیسی جمله معروفی وجود دارد:
garbage in, garbage out
چنین مسئلهای در پروژههای داده و یادگیری ماشین کاملاً قابلمشاهده است. بسیاری از مدلهای یادگیری ماشین دادهها را دریافت میکنند و معمولاً اگر خطای بارزی در کدنویسی یا ساخت مدل نداشته باشید، حتماً به شما خروجی میدهند. ولی اینکه این خروجی چقدر بهدردبخور است، مسئله دیگری است. دادههای بیکیفیت وقتی وارد یک مدل یادگیری ماشین میشوند، خروجی بیکیفیت هم تولید میکنند.
بهعنوان یک مثال، خاطرم هست که یکی از اعضای تازهوارد تیم تحلیل داده که من سرپرستی آن را به عهده داشتم تحلیلی از رویدادههای یک اپلیکیشن تلفن همراه ارائه کرد که یکی متغیرهای توضیحدهنده آن سن کاربران بود. نتیجهگیری او برایم جالب بود و بیشتر از او درباره نحوه تحلیل دادهها پرسیدم. متوجه شدم که او سن را بر اساس ورودی کاربر از سال تولدش هنگام ثبتنام در اپلیکیشن محاسبه کرده است. از او پرسیدم آیا به این توجه کرده است که کاربران چگونه تاریخ تولدشان را وارد اپلیکیشن میکنند. پاسخ او منفی بود. واقعیت آن بود که در آن اپلیکیشن، کاربر به هنگام ورود میتوانست تاریخ تولد خود را بر اساس تاریخ میلادی انتخاب کند. این به اختیار کاربر بود که چنین کاری کند یا خیر. اما نکته مهم آن بود که بهصورت پیشفرض تاریخ تولد کاربران، روی تاریخ اول ژانویه ۱۹۷۰ تنظیم شده بود. اگر کاربری تاریخ تولدش را انتخاب نمیکرد، در پایگاه داده همان تاریخ پیشفرض یعنی اول ژانویه ۱۹۷۰ برایش ثبت میشد. این روش مناسبی برای جمعآوری داده نیست، ولی متأسفانه چنین رویکردی از قبل اتخاذ شده بود. بنابراین دادههای تاریخ تولد عملاً آنچنان قابلاتکا نبودند و بسیاری تاریخ تولدشان مقدار پیشفرض ثبت شده بود.
معمولاً یکی از اشتباهات افراد تازهکار در حوزه تحلیل داده این است که هر دادهای در مقابلشان گذاشته میشود، آن را درست میپندارند. درحالیکه بر اساس تجربه من در بیشتر موارد دادهها همراه با خطا هستند. وظیفه اصلی و اولیه محقق داده این است که در مراحل اولیه پروژههای داده، از کیفیت دادهها مطمئن شود. متأسفانه این کار زمان بری میتواند باشد و نیازمند درک کردن فرآیندهای کسبوکار نیز هست.
برای نمونه، در یکی از پروژههایم، تیم داده نزدیک به سه ماه از زمان خود را صرف بررسی کیفیت داده در آن شرکت کرد. البته ما ناچار بودیم بهطور کامل ازآنچه در واقعیت رخ میدهد مطلع شویم تا این اطمینان حاصل گردد که آنچه در پایگاه داده ثبت میشود، همانی است که در عمل اجرا میشود. برای مثال، ما متوجه شدیم در انبار شرکت، انبارداران از روشهایی استفاده میکنند تا کار خود را راه بیندازند. درحالیکه درسیستم اتوماسیون انبارداری شرکت این روشها تعریف نشده بود. پس در سیستم انبارداری فعلی، طوری دادهها را وارد میکردند که کار خودشان راه بیفتند، درحالیکه در سمت تیم تحلیل داده موجب بروز نتایج غلط میشد. این موارد وقتی مشخص شد که تیم داده در بازدید از فرآیند اجرائی انبار و صحبت با انبارداران، متوجه روشهای آنان در استفاده از سیستم اتوماسیون انبار شدند. با همکاری با تیم انبار و IT شرکت بهتدریج این ایرادات را در ثبت داده برطرف کردیم.
ابعاد کیفیت داده
وقتی بحث از کیفیت داده میآید، ممکن است اولین چیزی که به ذهن برسد این است که داده ثبتشده بیانگر واقعیت است یا خیر. برای مثال اگر نام یک مشتری در پایگاه داده “آرش” ثبت شده، نام واقعی او نیز آرش باشد. این بعد مربوط به دقت داده (Accuracy) است.
اما علاوه بر دقت، در ادبیات کیفیت داده ابعاد دیگری نیز مطرح شده است. در جدول زیر، من ابعاد مختلف کیفیت داده را بر اساس مرور ادبیات خلاصه کردم. این جدول به شما کمک میکند تا یک دید کلی درباره کیفیت داده به دست آورید. من توصیه میکنم قبل از شروع کار برروی هر دادهای، آن را از منظر موارد زیر بررسی و تحلیل کنید. خیلی مهم است که بدانید ورودی داده شما از منظر ابعاد زیر، چقدر قابلاتکا است. ضمناً به این نکته توجه شود که پایش کیفیت دادهها، یک کار مقطعی نیست. معمولاً در اثر تغییر و تحولات در فرآیندهای کسبوکار، ممکن است خطاهای جدیدی در دادهها بروز کند.
ابعاد کیفیت داده |
چه معنی دارد؟ |
مصداق اجرای درست |
مصداق اجرای نادرست |
چگونه اندازهگیری کنید؟ |
دقت (Accuracy) |
دادههای ثبتشده، منعکسکننده مقادیر واقعی آن است. |
نام واقعی مشتری شرکت “آرش حسینی” است و دقیقاً به همین شکل در پایگاه داده ثبت شده است. |
نام واقعی مشتری شرکت “آرش حسینی” است ولی در پایگاه داده “آرش حسنی” ثبت شده است. |
نسبت خطاها بهکل داده |
تمامیت (Completeness) |
همه اجزاء در دسترس داده که باید ثبت شوند، ثبت شدهاند. |
میدانیم آرش حسینی در ۲ تیرماه ۱۳۶۳ متولد شده و در پایگاه داده این مقدار ثبت شده است. |
ستون تاریخ تولد برای آرش حسینی خالی است. |
تعداد دادههای گمشده (Missing Values) |
سازگاری (Consistency) |
بخشهای مختلف پایگاه داده با هم تناقض و مغایرتی ندارند. |
دادههای درگاه پرداخت نشان میدهد آرش حسینی در ماه گذشته ۵ خرید داشته است. دادههای سفارش مشتریان هم همین عدد را تائید میکند. |
بر اساس دادههای درگاه پرداخت، آرش حسینی در ماه گذشته ۵ خرید داشته است. تعداد سفارشهای تحویل دادهشده به او در ماه گذشته ۸ عدد بوده است. |
تعداد مغایرتها |
امکان ممیزی (Auditability) |
تغییرات در پایگاه داده ثبت میشود. |
آرش حسینی در تاریخ ۷ مهرماه ۱۳۹۷، اطلاعات تماس خود را بهروز کرده است. |
هیچ اطلاعی از تاریخچه تغییرات اطلاعات تماس آرش حسینی موجود نیست. |
درصدی از متغیرها که اطلاعاتی از تغییرات آنان در متادیتا ثبت نمیشود. |
نظم و ترتیب (Orderliness) |
دادهها با یک ساختار مشخص ذخیره میشوند. |
نحوه ذخیره تاریخ ۲ تیرماه ۱۳۶۳ به شکل ۱۳۶۳/۰۴/۰۲ است. |
تاریخ ۲ تیرماه ۱۳۶۳ در برخی موارد ۱۳۶۳/۰۴/۰۲ و در برخی موارد ۰۲/تیر/۱۳۶۳ و در برخی موارد ۶۳/۰۴/۰۲ ذخیره شده است. |
نسبت مقادیری که با ساختار نامناسب ذخیره شدهاند. |
یکتایی (Uniqueness) |
یک رکورد با جزئیات مشخص، تنها یکبار در پایگاه داده ثبت شده است. |
در پایگاه داده مشتریان، اطلاعات آرش حسینی، متولد ۲ تیرماه ۱۳۶۳، ساکن اصفهان و با شماره شناسنامه ۹۹۱۲۵۴ یکبار ثبت شده است. |
در پایگاه داده مشتریان، اطلاعات آرش حسینی، متولد ۲ تیرماه ۱۳۶۳، ساکن اصفهان و با شماره شناسنامه ۹۹۱۲۵۴ چند بار ثبت شده است. |
تعداد دادههای تکراری |
بهموقع (Timeliness) |
دادهها در یک بازه زمانی قابلقبول یا طبق استاندارد شرکت، بهروز میشوند. |
سفارش آرش حسینی، ساعت ۶ عصر ۲ خرداد ۹۸ تحویل داده شد و ۸ صبح فردا در پایگاه داده موقعیت این سفارش از “در حال ارسال” به “تحویل داده شد” تغییر پیدا کرد. |
سفارش آرش حسینی، ساعت ۶ عصر ۲ خرداد ۹۸ تحویل داده شد و بعد از گذشت دو هفته در پایگاه داده موقعیت این سفارش هنوز “در حال ارسال” است. |
تعداد رکوردهای با تأخیر زیاد در تغییر |
تحلیل هزینه-فایده بر کیفیت دادهها
تصمیم برای بهبود کیفیت دادهها نیازمند یک تحلیل هزینه-فایده است. ممکن است در مواردی کیفیت پایین در برخی از دادهها قابلتحمل و در برخی موارد بسیار آسیبزننده باشد. برای نمونه، در یکی از پروژههایم، کیفیت پایین دادهها، منجر به آن شده بود شرکت نتواند بهموقع فاکتورهایش را برای مشتریان صادر کند. این امر موجب تأخیر بعضاً چندماهه وصول درآمدهایش میگردید. در این مورد، دادههای دپارتمانهای مختلف شرکت باهم تناقضات آشکار داشت. ضمن اینکه فاکتورهای صادرشده در برخی موارد مورد پذیرش مشتری نبود. این امر سبب طولانی شدن صدور فاکتور و درنهایت وصول مطالبات شرکت بود. در چنین شرایطی تیم داده برای بهبود کیفیت دادهها باید فوراً وارد عمل گردد.
اما برای آنکه این تحلیل هزینه-فایده راحتتر صورت گیرد، من سرفصلهای هزینههای ناشی از کیفیت پایین داده را در اینجا مشخص کردم:
هزینههای ناشی از خطا در عملیات: اینها مواردی هستند که کیفیت پایین دادهها موجب بروز خطا در فرآیندهای روزانه عملیاتی شرکت میشود. برای مثال، برای نمونه آدرس مشتری در پایگاه داده اشتباه است و کالا بهجای دیگری ارسال میگردد.
دوبارهکاری در مدیریت دادهها: اینها مواردی هستند که کیفیت پایین دادهها موجب دوبارهکاری در فرآیند مدیریت دادهها مانند بازبینی دادهها، ورود مجدد دادهها، تمیز کردن و اعتبارسنجی مجدد دادهها میشود. برای مثال، انبارگردانی مجدد به منظور اصلاح خطاهای موجودی انبار در سیستم اتوماسیون شرکت.
هزینه فرصت: این به مواردی اشاره دارد که عدم تحقق ابعاد کیفیت داده، منجر به محقق نشدن سودهای بالقوه و یا کاهش هزینههای بالقوه میگردد. برای مثال عدم دسترسی به ایمیل به روز و درست مشتریان شرکت، باعث شده است تا تبلیغات بازاریابی و تخفیفات فروش به آنان ارسال نگردد و درآمدی که می توانست محقق شود، از دست برود.
با بررسی منافعی که افزایش کیفیت داده می تواند ایجاد کند در مقابل هزینه های انجام آن، می توان به تصویر بهتری از اقدامات لازم رسید.
منابع:
Carey, M. J., & Ceri, S. (2008). “Data-Centric Systems and Applications”, Springer
Samitsch, C. (2014). “Data Quality and its Impacts on Decision-Making: How Managers Can Benefit from Good Data”, Springer