معرفی چالش‌های جذاب داده‌ای در دیوار

مقدمه

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

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

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

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

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

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

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

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

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

مسئله‌ی تشخیص پلاک و زدن واترمارک دیوار در تیم خودرو

معرفی تیم

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

شرح مسئله

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

شکل ۱- نمونه‌هایی از عکس‌های با کیفیت پایین به دلیل تلاش برای عدم نمایش پلاک
شکل ۱- نمونه‌هایی از عکس‌های با کیفیت پایین به دلیل تلاش برای عدم نمایش پلاک

راه حل پیشنهادی

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

مشکلی که راهکار دو مرحله‌ای مذکور داشت، مدت زمان اجرای نسبتا بالای آن بود. روزانه هزاران تصویر خودرو در دیوار بارگذاری شده که باید توسط الگوریتم ارائه شده پردازش شوند. ایده ای که برای حل این مشکل داشتیم ترکیب مراحل راهکار قبل در یک مدل Multi-Task یک مرحله‌ای بود. برای این کار به سراغ یکی از جدیدترین مدل‌های object detection به اسم EfficientDet رفتیم و با الهام از روش‌های موجود در مدل‌های Human Pose Estimation، شاخه‌ی جدیدی برای پیش بینی گوشه‌های پلاک اضافه کردیم. در نهایت می‌توانستیم با توجه به ناحیه‌ی مستطیلی یافت شده برای پلاک، نقاط دقیق را از این شاخه‌ی جدید به دست بیاوریم. استفاده از این روش هزینه‌ی محاسباتی مدل ما را به مقدار قابل توجهی کاهش داد و در نتیجه مشکل زمان اجرا نیز برطرف شد. اگر علاقه‌مند هستید جزئیات بیش‌تری درباره این مسئله بدانید، می‌توانید پست بعدی ما را دنبال کنید.

شکل ۲ - نمونه‌هایی از خروجی مدل نهایی
شکل ۲ - نمونه‌هایی از خروجی مدل نهایی

تاثیرگذاری و چالش‌های پیش‌رو

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

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

مسئله پیشنهاد کوئری مشابه در تیم جویندگان

معرفی تیم

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

تعریف مسئله

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

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

ایده و روش کار

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

ما برای یافتن کوئری‌های مشابه، زنجیره‌ای از جستجوهای عبارات مشابه را برای تمام کاربران جمع کردیم. سپس با استفاده از روشی مشابه Word2Vec بر روی این زنجیره‌ها فضای برداری شباهت کوئری‌ها در دیوار را ساختیم. در نهایت هم با توجه به ملاحظات مختلفی، مانند تعداد نتایج و پرتکرار بودن کوئری یا شهر و دسته جستجو، که برای پیشنهاد دادن یک کوئری داریم نمره‌ای ترکیبی به هر پیشنهاد اختصاص دادیم.

چالش‌های عمده کار

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

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

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

نمونه خروجی نهایی

در تصویر زیر می‌توانید نمونه خروجی نهایی این مدل را در یک عبارت جستجوی فرضی ببینید:


مسئله‌ی سیستم‌های پیشنهاد دهنده در تیم املاک

معرفی تیم

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

تعریف مسئله

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

چالش‌های عمده کار

بزرگ‌ترین چالش ما در توسعه‌ی این سرویس مسئله‌ی شروع سرد (cold-start) بود. این یکی از چالش‌های شناخته شده برای هر سرویس پیشنهاد دهنده به شمار می‌آید و به طور خلاصه به چگونگی عملکرد سیستم در مواجهه با کاربر یا آیتم (آگهی کالایی) جدیدی مربوط می‌شود که به تازگی وارد سیستم شده است و ما دیتا و اطلاعات کافی از آن‌ها هنوز در اختیار نداریم. به طور خاص این مسئله برای ما در دیوار بسیار پررنگ‌ بود چرا که بیش از نیمی از آگهی‌هایی که در دسته‌‌ی املاک هر روز مشاهده می‌شوند آگهی‌هایی هستند که از تاریخ انتشار آن‌ها کمتر از یک روز می‌گذرد و برای داشتن coverage معقول این سرویس باید در مدت خیلی کوتاهی پیشنهادهای مناسبی برای هر آگهی به دست بیاوریم. به همین دلیل مدل‌های مبتنی بر محتوا با توجه به‌ این‌که کمتر تحت تاثیر شروع سرد قرار می‌گرفتند از اهمیت بیشتری برخوردار بودند.

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

تاثیرگذاری و دست‌آوردهای فعلی

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

شکل ۱- در بالای تصویر مشخصات یکی از آگهی‌هایی که کاربر از آن بازدید داشته‌است را می‌بینید. در پایین تصویر نمونه‌ لیستی از آگهی‌های مشابه با آگهی اول را می‌بینید (بالای تصویر) که در صفحه‌ی مربوط به آگهی اول نمایش داده ‌می‌شود
شکل ۱- در بالای تصویر مشخصات یکی از آگهی‌هایی که کاربر از آن بازدید داشته‌است را می‌بینید. در پایین تصویر نمونه‌ لیستی از آگهی‌های مشابه با آگهی اول را می‌بینید (بالای تصویر) که در صفحه‌ی مربوط به آگهی اول نمایش داده ‌می‌شود


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

مسئله‌ی بررسی خودکار آگهی در تیم بررسی آگهی

معرفی تیم

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

  • درست بودن دسته بندی آگهی: به عنوان نمونه آگهی‌های خودرو در دسته بندی املاک منتشر نشوند.
  • تکراری نبودن آگهی‌ها: تکراری بودن آگهی‌ها تنوع محتوا بر روی دیوار را کاهش داده و تجربه کاربری نامناسبی برای کاربران به وجود می‌آورد.
  • عکس باکیفیت و مرتبط با آگهی: وجود عکس بی‌کیفیت به دلیل این‌که برای بازدیدکنندگان مطلوب نیست، باعث کاهش اثرگذاری آگهی و احتمال موفقیت آن می‌شود. به همین دلیل، وجود عکس با کیفیت و مرتبط با آگهی (مثلا عکس واضح از زوایای مختلف خانه در آگهی‌های املاک)، یکی دیگر از قوانینی است که برای هر آگهی مورد بررسی قرار می‌گیرد.

فرایند ورود آگهی به سیستم بررسی آگهی تا انتشار آن، دارای جزئیات زیاد و با ابعاد مختلف است که تیم بررسی آگهی دیوار، مسئول توسعه و نگهداری از آن‌هاست.

در این راستا به طور کلی تیم بررسی آگهی دو هدف اصلی را دنبال می کند:

۱. تسهیل فرایند بررسی آگهی برای ناظرهای انسانی

۲. اتوماسیون حداکثری در زمینه بررسی آگهی به منظور افزایش کیفیت و سرعت فرایند بررسی آگهی.

در تیم بررسی آگهی، زیرتیم (پاد) دیتا، به طور خاص به دنبال برآورده کردن هدف افزایش اتوماسیون در زمینه فرایند بررسی آگهی است.

نمونه چالش های دیتایی تیم بررسی آگهی

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

علاوه بر این از نظر کا‌رهای دیتایی هر آگهی حاوی متن، عکس و تعداد زیادی فیلد مرتبط با هر دسته‌بندی است. این موضوع باعث می‌شود بررسی هر آگهی، نیازمند استفاده از تکنیک‌های مختلفی از پردازش زبان طبیعی (NLP) و بینایی کامپیوتر(Computer vision) باشد.

برای رسیدن به عملکرد و دقت قابل قبول، باید از تکنولوژی‌های جدید در یادگیری ماشین کمک گرفت. اما سیستم‌های قدرتمند در زمینه بینایی کامپیوتر (مثل Deep CNNها) و در زمینه پردازش زبان طبیعی (مثل BERT) به توان محاسباتی بالایی در فرایند آموزش مدل‌ها و همچنین در استفاده از آن‌ها در محصول نیاز دارند، که این موضوع نیز از نمونه چالش‌های فنی در تیم بررسی آگهی دیوار است.

معرفی بات بررسی خودکار آگهی - بات تشخیص آگهی تکراری

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

در فرایند بررسی آگهی، هنگامی به یک آگهی آپلود شده تکراری گفته می‌شود که فرد آگهی گذارنده، در حال حاضر حداقل یک آگهی روی دیوار داشته باشد که همان محتوا/کالای آگهی جدید را پوشش داده باشد.

برای تشخیص شباهت دو آگهی، نیاز است تمامی اطلاعات موجود در آگهی بررسی شود.

این اطلاعات عبارتند از: عنوان و متن آگهی، تصاویر، دسته بندی، فیلدهای عمومی نظیر قیمت و شهر آگهی و فیلدهای خصوصی هر دسته بندی مثل متراژ و تعداد اتاق در دسته بندی املاک.

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

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

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

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

شکل ۱- یک نمونه آگهی تکراری که با استفاده از متن به تنهایی ممکن است نتیجه مطلوبی بدست ندهد
شکل ۱- یک نمونه آگهی تکراری که با استفاده از متن به تنهایی ممکن است نتیجه مطلوبی بدست ندهد


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

جمع بندی

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

مسئله‌ی پیشنهاد هوشمند پیام در تیم ارتباطات دیوار

معرفی تیم بررسی چت

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

چرا مسئله‌ی پیشنهاد هوشمند پیام؟

شکل ۱- نمونه‌ای از پیشنهاد هوشمند پیام نمایش داده شده در پایین صفحه‌ی چت یک خریدار
شکل ۱- نمونه‌ای از پیشنهاد هوشمند پیام نمایش داده شده در پایین صفحه‌ی چت یک خریدار


هدف پیشنهاد هوشمند پیام (Smart Suggestion)، ارائه‌ی پیشنهاداتی به کاربران در مکالمه است تا ادامه مکالمه به سادگی شکل گیرد. این چنین سیستم‌هایی در حال حاضر در GMail برای تسریع پاسخگویی به ایمیل‌ها، و همچنین در Uber برای سرعت بخشیدن به ارتباط بین راننده و مسافر استفاده شده و نتایج مناسبی کسب کرده است. هدف از پیگیری مسئله‌ی پیشنهاد هوشمند پیام در دیوار، دو مورد بود: یکی سرعت بخشیدن به انجام معامله در چت دیوار و دیگری راهنمایی خریدار برای پرسیدن سوالات فنی مرتبط با محصول، تا به این صورت حجم و کیفیت مکالماتی که در چت دیوار به منظور معامله انجام می‌شود افزایش پیدا کند. یکی از مواردی که ممکن است در معامله مشکل ایجاد کند عدم تقارن اطلاعات خریدار و فروشنده است، که دیوار از طرق گوناگون مانند اضافه کردن فیلدهای مختلف به آگهی و خدمات تخصصی ارزیابی محصول در برخی دسته‌ها به منظور انتقال اطلاعات راحت‌تر و سریع‌تر بین خریدار و فروشنده اقدام کرده است. در مسئله پیشنهاد هوشمند پیام، برای مثال وقتی سوال «گوشی ریجیستر شده؟» برای خریدار پیشنهاد می‌شود علاوه بر این که به تسهیل فرآیند پرسیدن سوال کمک می‌کند، می‌تواند به عنوان یک راهنمایی برای خریدار عمل کند که به این نکته نیز در حین خرید توجه نماید.

از محدودیت‌های فنی دیگر می‌توان به سریع بودن فرآیند پیشنهاد پیام اشاره کرد تا بتواند بر روی CPU با سرعت بالایی به خروجی دست پیدا کند. این مورد برای چت دیوار که تعداد پیام‌های روزانه آن از چند میلیون بالاتر می‌رود بایستی قابل عملیاتی شدن باشد. خروجی نهایی فعلی کلیه مراحل پیش‌پردازش، بازنمایی، پیدا کردن Intent، و پیشنهاد Intent بعدی را بر روی یک Core CPU در ۱۵ الی ۲۰ میلی ثانیه انجام می‌دهد.

پیدا کردن Intent های مرتبط با هر دسته بندی

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

پیشنهاد سمت خریدار و فروشنده

برای پیشنهاد سمت خریدار مشکلی که وجود داشت مشکل Cold Start بود، به عبارت دیگر دیتای واقعی برای آموزش اینکه کجا و در چه موقعیتی از مکالمه باید این سوالات مطرح می‌شدند وجود نداشت چون تا زمان مذکور این Intent ها به کاربران نمایش داده نمی‌شدند. با توجه به این مشکل، به این نتیجه رسیدیم که همان مسئله Intent Classification را بر روی پیام‌های دسته مورد نظر اجرا کنیم و خروجی را به عنوان ورودی مرحله بعدی در نظر بگیریم. برای پیشنهاد پیام سمت خریدار مدل‌های مختلفی از Transformation های مختلف Context اجرا شد. در نهایت از مدل مارکف استفاده کردیم که کیفیت مناسبی داشت و خروجی آن قابل تفسیر بود.

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



امیدواریم شما با خواندن این مقاله توانسته باشید دید روشن‌تری از مسائل مختلفی که دانشمندان داده در دیوار به آن مشغول هستند به دست بیاورید. به صفحه فرصت‌های شغلی دیوار سر بزنید.