% !TEX encoding = UTF-8 Unicode
\chapter{پژوهش‌های پیشین}\label{Chap:Chap2}

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

\section{روش‌های کلاسیک}
همان‌طور که در فصل قبل بیان کردیم،‌ مساله‌ی پیش‌بینی نرخ کلیک را می‌توان یک مساله‌ی \trans{دسته بندی}{Classification} که از مسائل پایه‌ای یادگیری ماشین است، در نظر گرفته و لذا از روش‌های موجود در ادبیات یادگیری ماشین، برای حل این مساله کمک گرفت.

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

در این بخش به بررسی برخی از این پژوهش‌ها که برخی از آن‌ها قدمت زیادی دارند، می‌پردازیم. ابتدا استفاده از ماشین‌های بردار پشتیبان برای پیش‌بینی نرخ کلیک را بررسی می‌کنیم؛ سپس روش‌های دیگر این دسته از قبیل رگرسیون تکه‌ای خطی و یک مدل رگرسیون بیزی را معرفی می‌کنیم.
\subsection{ماشین‌های بردار پشتیبان}
در ادبیات یادگیری ماشین کلاسیک، ماشین‌های بردار پشتیبان\cite{boser1992} سابقه‌ی پژوهشی برجسته و مهمی دارند. ماشین‌های بردار پشتیبان بر اساس در نظر گرفتن ارتباط خطی بین ورودی و خروجی، مساله‌ی رگرسیون را حل می‌کنند. یادگیری پارامتر‌های ماشین بردار پشتیبان به دلیل استفاده از روش‌های \trans{برنامه‌ریزی درجه دوم}{Quadratic Programming} و بهره بردن از \trans{فرم دوگان}{Dual Form} بسیار سریع است. پس از اتمام فرآیند آموزش، مدل ماشین بردار پشتیبان، خروجی مساله را به صورت یک رابطه‌ی خطی ارائه می‌دهد:
\begin{latin}
\begin{align}
\hat{y}(x) = w_{0} + \sum_{i = 1}^{n} w_{i} x_{i},\qquad w_{0}  \in \mathbb{R} ,\quad w \in \mathbb{R}^{n}
\end{align}
\end{latin}

در این رابطه $x$ ورودی، $\hat{y}$ خروجی، $n$ تعداد ابعاد ورودی و $w_{0}$ و $w$ پارامتر‌های مدل هستند که در فرآیند آموزش تخمین زده می‌شوند. همانطور که از این رابطه مشخص است، عدم پشتیبانی ماشین‌های بردار پشتیبان از ارتباط‌های غیر خطی بین ورودی و خروجی باعث سادگی بیش از حد این مدل می‌شود. در ادبیات یادگیری ماشین کلاسیک، برای حل این مشکل، نسخه‌ی کرنل دار این ماشین‌ها استفاده می‌شود. در ماشین‌های بردار پشتیبان با کرنل چند‌جمله‌ای درجه دوم، به عبارت بالا یک جمله‌ی دیگر اضافه می‌شود تا پیچیدگی کافی برای حل مساله را به مدل اضافه کند. رابطه‌ی پیش‌بینی ماشین بردار پشتیبان با کرنل چند‌جمله‌ای درجه دوم به صورت زیر است:
\begin{latin}
\begin{align}
\hat{y}(x) = w_{0} + \sum_{i = 1}^{n} w_{i} x_{i} + \sum_{i = 1}^{n - 1}\sum_{j = i + 1}^{n}w^{'}_{i, j}x_{i}x_{j} ,\qquad w_{0}  \in \mathbb{R} ,\quad w \in \mathbb{R}^{n} ,\quad w' \in \mathbb{R}^{n \times n}
\end{align}
\end{latin}

که $w'$ پارامتر‌هایی هستند که به این مدل اضافه شده‌اند. می‌توان جمله‌ی آخر این عبارت را به تاثیر حضور همزمان دو ویژگی مختلف $x_{i}$ و $x_{j}$ در خروجی مدل تعبیر کرد.

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

به دلیل همه‌ی مشکلات گفته شده، ماشین‌های بردار پشتیبان نقش کمتری در پژوهش‌های امروزی در اکثر مساله‌ها، خصوصا مساله‌ی پیش‌بینی نرخ کلیک ایفا می‌کنند.


\subsubsection{مدل تکه‌ای خطی\cite{Gai_piecewise}}
در ادامه‌ی بررسی روش‌های کلاسیک یادگیری ماشین برای حل مساله‌ی پیش‌بینی نرخ کلیک و رویارویی با چالش ابعاد بالا و غیرخطی بودن روابط بین ویژگی‌ها و خروجی، به بررسی مدل تکه‌ای خطی می‌پردازیم. این مدل قبل از انتشار در مقالات پژوهشی، به مدت قابل توجهی در شرکت \trans{علی‌بابا}{Alibaba} به عنوان روش اصلی حل مساله‌ی پیش‌بینی نرخ کلیک استفاده شده است.

از آن‌جا که جزئیات مساله‌ی مورد بررسی، نیاز به انعطاف غیر خطی را ایجاب می‌کند، لذا محققین شرکت علی‌بابا برای یافتن یک مدل غیرخطی مناسب، تمرکز خود را بر ترکیب مدل‌های خطی به شیوه‌ای که بتوانند در کنار هم عملکرد غیرخطی داشته باشند؛ قرار دادند؛پس یک مدل ساده و عمومی از ترکیب مدل‌های خطی معرفی کردند. در این مدل، نیمی از پارامتر‌ها برای تفکیک فضای داده به بخش‌هایی که در هر کدام یک یا ترکیبی از چند مدل جزئی در آن عملکرد قابل قبولی داشته باشند؛ و نیمه‌ی دیگر پارامتر‌ها را برای آموزش مدل‌های جزئی در آن بخش‌ها اختصاص داده شده است. رابطه‌ی ریاضی این مدل کلی به صورت زیر است:
\begin{latin}
\begin{equation}
y = g(\sum_{j=1}^{m}\sigma(u_{j}^{T}x) \eta(w_{j}^{T}x))
\end{equation}
\end{latin}
که در آن، $\eta$ تابع تصمیم‌گیری مدل‌های جزئی است. $\eta$ می‌تواند یک تابع توزیع احتمال دودویی مثل تابع \trans{سیگموید}{Sigmoid} باشد. همچنین تابع $\sigma$ می‌تواند یک تابع وزن دهی چند کلاسه باشد. در ساده‌ترین حالت، تابع \trans{سافت مکس}{Softmax} می‌تواند این نقش را ایفا کند. بردار‌های $u_{j}$ و $w_{j}$ پارامتر‌های مدل هستند و زیر نویس $j$ نشان‌دهنده‌ی شماره‌ی مدلی است که به آن تعلق دارند. ابرپارامتر $m$ تعداد مدل‌های جزئی را تعیین می‌کند که به دلیل جلوگیری از پیچیدگی بیش از حد مدل، اکثرا مقداری نزدیک به 12 دارد. همچنین تابع $g$ یک تابع نرمال ساز احتمال بوده و تنها نقش آن تبدیل تابع به وجود آمده به یک تابع توزیع احتمال معتبر است.

این مدل می‌تواند به وسیله‌ی تابع خطایی نظیر \trans{قرینه‌ی درستنمایی}{Negative likelihood} و به وسیله‌ی روش‌های گرادیان کاهشی \cite{lecun_sgd} آموزش یابد.

همچنین واضح است که در حالت کلی،‌ و با افزایش تعداد مدل‌های جزئی، این ساختار توانایی مدل کردن هر تابعی را دارد؛ در نتیجه مشکل پیچیدگی بیش از حد مدل، محققین را وادار به افزودن جملات تنظیم به تابع خطای مدل می‌کند. در این تحقیق از دو جمله‌ی خطای زیر استفاده می‌شود:
\begin{latin}
\begin{equation}
||\theta||_{1} = \sum_{i = 1}^{d} \sum_{j = 1}^{2m} |\theta_{ij}|
\end{equation}
\end{latin}
\begin{latin}
\begin{equation}
||\theta||_{2,1} = \sum_{i = 1}^{d} \sqrt{\sum_{j = 1}^{2m} \theta_{ij}^{2}}
\end{equation}
\end{latin}
که در آن $d$ تعداد ابعاد داده‌ها و
$\theta_{-, j}$
شامل $u_{j}$ و $w_{j}$ است.

تنظیم نوع اول برای کاهش کلی تعداد پارامتر‌های غیر صفر و تنظیم نوع دوم باعث فشردگی میزان پارامتر‌ها به منظور کسب واریانس کمتر تعریف شده‌است؛ اما اضافه شدن این دو جمله، باعث می‌شود سطح خطا در فضای پارامتر‌ها، سطحی غیر \trans{محدب}{Convex} و غیر \trans{نرم}{Smooth} باشد؛ در نتیجه استفاده از روش‌های کاهش گرادیان یا \trans{بیشینه‌سازی امید ریاضی}{Expectation Maximization} منطقی نیست. برای رفع این اشکال، محققین به روشی مشابه \trans{کواسی-نیوتون با حافظه‌ی محدود}{LBFGS}\cite{lbfgs_2008} روی آورده و مدل را بدین طریق آموزش می‌دهند. همچنین در این پژوهش تعدادی تکنیک برای کاهش مصرف حافظه و زمان آموزش ارائه شده که این مدل را برای استفاده در صنعت مناسب می‌سازد.

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

\subsubsection{مدل بیزی\cite{Graepel_2010}}
در پژوهشی دیگر، محققین شرکت مایکروسافت، برای سیستم \trans{جستجوی حمایت شده}{Sponsored search}‌ی \trans{بینگ}{Bing}، یک متد پیش‌بینی نرخ کلیک ارائه داده‌اند. خروجی این پژوهش از سال 2009 در مقیاس بالا در جستجوی حمایت شده‌ی بینگ به کار بسته می‌شد.

در این پژوهش، از تابع \trans{پرابیت}{Probit} (تابع تجمعی احتمال توزیع گاوسی)، برای \trans{نگاشت}{Mapping} از محور حقیقی، به توزیع احتمال استفاده می‌شود. به همین دلیل به این دسته روش‌ها، \trans{رگرسیون پرابیت}{Probit Regression} گفته می‌شود. دلیل این نوع نامگذاری، تقابل این دسته از روش‌ها با رگرسیون‌های لجستیک است. همانطور که گفته شد، در رگرسیون لجستیک، از تابع سیگموید برای این نگاشت استفاده می‌شود.

در این روش، با فرض گاوسی و مستقل بودن احتمال پیشین هر یک از پارامتر‌های مدل، مساله را به صورت یک مساله‌ی رگرسیون خطی در نظر می‌گیریم:
\begin{latin}
\begin{equation}
p(w) = \prod_{i} N(w_{i}|\mu_{i}, \sigma_{i}^{2})
\end{equation}
\end{latin}
حال با استفاده از دو متغیر \trans{نهفته}{Latent}‌ی $s$ و $t$ کار را پیش‌می بریم. متغیر تصادفی $s$ به صورت ضرب داخلی بردار ورودی‌ها در بردار وزن‌ها تعریف شده و به صورت قطعی از روی ورودی‌ها و وزن‌ها قابل مقایسه است. متغیر تصادفی $t$ یک متغیر تصادفی گاوسی با میانگینی برابر با مقدار $s$ و واریانسی مشخص تعریف می‌شود. همچنین، خروجی این مدل ($y$) به وسیله‌ی یک تابع آستانه مثل تابع علامت روی متغیر $t$ به دست می‌آید.
\begin{latin}
\begin{equation}
s=w^{T}x
\end{equation}
\end{latin}
\begin{latin}
\begin{equation}
t \sim N(s, \sigma^{2})
\end{equation}
\end{latin}
\begin{latin}
\begin{equation}
y=sign(t)
\end{equation}
\end{latin}
سپس به کمک دو متغیر تصادفی تعریف شده، توزیع احتمال شرطی خروجی نسبت به ورودی را این‌گونه فاکتورگیری می‌کنیم:
\begin{latin}
\begin{equation}
p(y, t, s, w|x) = p(y|t) p(t|s) p(s|x, w) p(w)
\end{equation}
\end{latin}
به دلیل غیر قابل محاسبه بودن توزیع پسین برای وزن‌ها، استفاده از این روابط برای محاسبه‌ی مستقیم مقادیر وزن‌ها ممکن نیست؛ پس با استفاده از الگوریتم‌های \trans{پیام‌رسانی}{Message passing} و تخمین توزیع پسین با توزیع گاوسی، مقادیر وزن‌ها قابل آموزش می‌شوند.

در این پژوهش، اندازه‌ی گام به روز رسانی مقادیر پارامتر‌ها را در طول زمان کاهش داده و بدین طریق، آموزش مدل را تسریع می‌کنند. همچنین فرآیند \trans{اکتشاف}{Expolration} و \trans{بهره برداری}{Exploitation} نیز، بدین وسیله مدل می‌شود که برای نمونه‌هایی با اطمینان بالا (واریانس پایین) عمل بهره برداری و برای نمونه‌هایی با اطمینان پایین (واریانس بالا) عمل اکتشاف انجام داده می‌شود؛ به همین دلیل این روش نیز مانند بقیه‌ی روش‌ها، از مشکل شروع سرد رنج می‌برد.

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

\subsection{ماشین‌های فاکتورگیری}
در این بخش به بررسی پژوهش‌های خانواده‌ی ماشین‌های فاکتورگیری می‌پردازیم. ایده‌ی اصلی استفاده از ماشین‌های فاکتورگیری، استفاده از شیوه‌ی به خصوصی از تنظیم است که باعث می‌شود مدل، قابلیت یادگیری خواص ترکیبی بین ویژگی‌های مختلف و متعدد ورودی را با تعداد محدودی پارامتر داشته باشد. در ادبیات ماشین‌های فاکتورگیری، به این خواص ترکیبی، \trans{تعامل}{Interaction} بین ویژگی‌ها گفته می‌شود. در این بخش چند پژوهش در حوزه‌ی ماشین‌های فاکتورگیری از جمله پژوهشی که اولین بار از این ایده برای پیش‌بینی نرخ کلیک استفاده کرده است را بررسی می‌کنیم.

\subsubsection{ایده‌ی فیلد‌ها و شیوه‌ی نگرش به داده‌ها در ماشین‌های فاکتورگیری}
در همه‌ی پژوهش‌های این دسته، نگرش خاصی به داده‌ها وجود دارد که در این بخش آن را معرفی می‌کنیم. در اغلب مجموعه‌های داده‌ی موجود در ادبیات تخمین نرخ کلیک و همچنین سیستم‌های پیشنهاد دهنده، همه یا اکثر ویژگی‌ها به صورت \trans{دسته‌ای}{Categorical} هستند. مدل‌های یادگیری ماشین برای برخورد مناسب با این نوع ویژگی‌ها، از روش‌های مختلفی از جمله 
\trans{کدگذاری یک از $k$}{One of k coding}
استفاده می‌کنند.

در روش کدگذاری 1 از $k$، ابتدا همه‌ی مقادیر مختلف این ویژگی دسته‌ای لیست شده، سپس به هر کدام یک شماره یا اندیس تخصیص داده می‌شود؛ سپس برای نمایش دادن حالتی که ویژگی دسته‌ای مقدار $n$ام را داشته باشد، برداری به اندازه‌ی $k$ (تعداد حالات ویژگی دسته‌ای) ایجاد شده و همه‌ی مقادیر آن (بجز خانه‌ی اندیس $n$ام) صفر قرار داده می‌شود و در خانه‌ی اندیس $n$ام، مقدار 1 قرار داده می‌شود؛ پس در هر حالت، تنها یکی از درایه‌های این بردار برابر یک بوده و بقیه‌ی درایه‌ها مقدار صفر دارند؛ به همین دلیل به این بردار، \trans{بردار تک داغ}{One hot vector} هم گفته می‌شود.

در روش‌های ماشین فاکتورگیری، به هر یک از ویژگی‌های دسته‌ای و بردار‌های مربوط به آن‌ها، یک \trans{فیلد}{Field} گفته می‌شود. همچنین به هر یک از درایه‌های این بردار‌ها، یک \trans{ویژگی باینری}{Binary feature} گفته می‌شود. در این مدل‌ها پس از کدگذاری همه‌ی فیلد‌های موجود در داده‌ها، بردار‌های تک داغ ساخته شده را به هم چسبانده و یک \trans{بردار چند داغ}{Multi hot vector} ساخته می‌شود. این بردار به صورت مستقیم به عنوان ورودی مدل‌های ماشین فاکتورگیری استفاده می‌شود. در اغلب مجموعه‌های داده‌ی در دسترس، تعداد فیلد‌ها ($f$) بین 10 تا 50 بوده و تعداد ویژگی‌های باینری ($n$) بین چند ده هزار تا چند ده میلیون است؛ لذا ورودی ماشین‌های فاکتورگیری، بردار‌هایی به طول چند میلیون هستند که تنها چند ده درایه‌ی غیر صفر دارند.

\subsubsection{ماشین‌های فاکتورگیری ساده\cite{Rendle:2010ja}}

خانواده‌ی بزرگی از مدل‌هایی که برای محاسبه‌ی نرخ کلیک استفاده می‌شوند، \trans{ماشین‌های فاکتور‌گیری}{Factorization Machines} و نسخه‌های پیشرفته‌ی آن‌ها هستند. تحقیقات بسیاری با پیاده‌سازی و پیشنهاد انواع جدید این خانواده، مساله‌ی پیش‌بینی نرخ کلیک را حل کرده و بهترین نتایج توسط همین تحقیقات ارائه شده‌اند.

ایده‌ی اصلی ماشین‌های فاکتورگیری، همان‌طور که از نام آن‌ها مشخص است، عمل فاکتورگیری ماتریسی است. عمل فاکتورگیری زمانی استفاده می‌شود که نیاز به تخمین زدن یک ماتریس وجود داشته باشد، اما به دلیل ابعاد بالای این ماتریس، قابلیت یادگیری همه‌ی درایه‌های آن برای مدل موجود نباشد. مثلا ماشین بردار پشتیبان با کرنل چند‌جمله‌ای درجه دوم که آن را در بخش‌های قبل معرفی کردیم، ماتریس $w'$ که مشخص کننده‌ی وزن جمله‌های مرتبه دوم است، دقیقا همین شرایط را داراست؛ پس در پژوهشی که اولین بار ماشین‌های فاکتورگیری را معرفی کرد، سراغ همین ماتریس رفته و عمل فاکتورگیری را روی آن انجام دادند. در ماشین فاکتورگیری، به جای این که فرض کنیم همه‌ی درایه‌های این ماتریس پارامتر‌های مستقل و قابل یادگیری هستند، این ماتریس را حاصل ضرب یک ماتریس با ابعاد کمتر در ترانهاده‌ی خودش فرض کرده و لذا رتبه‌ی ماتریس $w'$ را کاهش می‌دهیم:
\begin{latin}
\begin{equation}
w' = v.v^{T} ,\quad v \in \mathbb{R}^{n \times k}
\end{equation}
\end{latin}
که در آن $k$ بعد تعبیه بوده و مقدار کمی (حدود 10) دارد؛ پس ماتریس $w'$ از روی ماتریس $v$ ساخته شده و در نتیجه مشکلات ذکر شده در ماشین بردار پشتیبان با کرنل چند‌جمله‌ای درجه دوم در آن وجود ندارد. عبارت کامل رابطه‌ی ماشین‌های فاکتورگیری به این صورت است:

\begin{latin}
\begin{align}
\hat{y}(x) = w_{0} + \sum_{i = 1}^{n} w_{i} x_{i} + \sum_{i = 1}^{n} \sum_{j = i + 1}^{n} w'_{i,j} x_{i} x_{j} ,\quad w'_{i,j} = \sum_{l = 1}^{k} v_{i,l} v_{j,l} , \: v_{i} \in \mathbb{R}^{k}
\end{align}
\end{latin}

تعبیر دیگری که می‌توانیم از این روابط داشته باشیم، عملکرد مناسب ماشین‌های فاکتورگیری را بهتر نمایان می‌کند. می‌توانیم ماتریس $v$ را به شکل یک \trans{جدول تعبیه}{Embedding Table} در نظر بگیریم؛ در نتیجه به ازای هر فیلد، تنها یکی از سطر‌های این جدول انتخاب می‌شود. (بقیه‌ی سطر‌ها به دلیل این‌که $x_{i}$ مربوطه صفر است، تاثیری در خروجی ندارند.) در نهایت، حاصل ضرب داخلی بردار‌های تعبیه‌ی همه‌ی فیلد‌ها دو به دو محاسبه شده و نتایج آن با نتایج جمله‌ی خطی جمع می‌شود. حاصل هر یک از این ضرب‌های داخلی، به نام تعامل بین دو ویژگی نیز شناخته می‌شود. در نهایت با اعمال تابع سیگموید، عدد حاصل به توزیع احتمال کلیک تبدیل می‌شود.

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

یکی از مهمترین فواید عدم استقلال درایه‌های ماتریس $w'$ از یکدیگر، در زمان مواجهه با داده‌های \trans{تنک}{Sparse} مشخص می‌شود. خصوصا در مساله‌ی پیش‌بینی نرخ کلیک که تعداد ابعاد داده بسیار زیاد بوده ولی اکثر ویژگی‌های داده به ندرت فعال (غیر صفر) هستند. اگر در این‌گونه مسائل همه‌ی ضرایب تعامل بین ویژگی‌ها را مستقل در نظر بگیریم، به تعداد بسیار زیاد و گاها غیر قابل دسترس داده نیاز خواهیم داشت. در مقابل، هنگام استفاده از ماشین‌های فاکتورگیری، به دلیل کاهش تعداد پارامتر‌های قابل یادگیری، با استفاده از تعداد داده‌ی کمتر، نتایج تعمیم‌پذیرتری قابل دستیابی هستند.

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

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

\subsubsection{ماشین‌های فاکتورگیری آگاه از فیلد\cite{Juan_fieldawarefm1, Juan_fieldawarefm2}}

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

این ادعای این پژوهش را می‌توان به صورت دیگر نیز بیان کرد. فرض کنید فضای تعبیه‌ی $A$ برای ویژگی‌های فیلد اول و فضای تعبیه‌ی $B$ و $C$ به ترتیب برای ویژگی‌های فیلد دوم و سوم باشند. در صورتی که پارامتر‌های موجود در $A$ برای محاسبه‌ی تعامل با بردار‌های $B$ یاد گرفته شوند، یعنی فضای $A$ به طریقی ایجاد شده است که تفاوت‌های مربوط به ویژگی‌های فیلد دوم را در نظر گرفته است ولی تفاوت‌های مربوط به ویژگی‌های فیلد سوم از آن حذف شده است؛ پس تعامل محاسبه شده بین $A$ و $C$ نمی‌تواند تمامی اطلاعات ممکن را دارا باشد. در نتیجه لازم است برای هر فیلد، به تعداد
$f - 1$
فضای تعبیه در نظر گرفته و تعامل بین ویژگی‌های هر جفت فیلد را، در فضای مربوط به آن جفت فیلد محاسبه کنیم.

رابطه‌ی پیش‌بینی نهایی ماشین آگاه از فیلد، به صورت زیر است:
\begin{latin}
\begin{equation}
\hat{y}_{FFM}(x) = w_{0} + \sum_{i = 1}^{n} w_{i} x_{i} + \sum_{i = 1}^{n} \sum_{j = i + 1}^{n} x_{i}x_{j}<v_{i, F_{j}}, v_{j, F_{i}}>
\end{equation}
\end{latin}
که در آن،
$v_{i,F_{j}}$
بردار تعبیه‌ی ویژگی $i$ام در مواجهه با ویژگی‌های فیلد مربوط به ویژگی $j$ام بوده و عملگر $<.>$ ضرب داخلی بین دو بردار را محاسبه می‌کند.

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

\subsubsection{ماشین‌های فاکتورگیری با فیلد‌های وزن‌دار\cite{Pan_fieldweightedfm}}

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

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

رابطه‌ی پیش‌بینی نهایی ماشین فاکتورگیری با فیلد وزن‌دار، به صورت زیر است:
\begin{latin}
\begin{equation}
\hat{y}_{FwFM}(x) = w_{0} + \sum_{i = 1}^{n} w_{i} x_{i} + \sum_{i = 1}^{n} \sum_{j = i + 1}^{n} x_{i}x_{j}<v_{i}, v_{j}>r_{F_{i}, F_{j}}
\end{equation}
\end{latin}
در این رابطه، $r_{F_{i}, F_{j}}$ نقش مدل کردن قدرت کلی تعاملات بین فیلد $i$ ام و $j$ ام را ایفا می‌کند. علاوه بر این، یک تفاوت دیگر بین ماشین‌های آگاه از فیلد و ماشین‌های با فیلد‌های وزن‌دار وجود دارد. این تفاوت به تعداد بردار‌های تعبیه شده‌ی مربوط به هر ویژگی باز می‌گردد. در ماشین‌های فاکتورگیری آگاه از فیلد، برای هر ویژگی، به تعداد فیلد‌های دیگر بردار تعبیه شده استفاده می‌شود؛ ولی در ماشین‌های فاکتورگیری با فیلد‌های وزن‌دار، برای هر ویژگی، تنها یک بردار تعبیه‌شده استفاده می‌شود و تفاوت قدرت کلی تعاملات بین فیلد‌ها توسط وزن‌های فیلد‌ها ($r$) مدل می‌شود.

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

پژوهشگران این مدل با محاسبه‌ی همبستگی بین وزن‌های آموخته شده برای فیلد‌ها ($r$) با \trans{اطلاعات مشترک}{Mutual information} بین هر زوج فیلد و احتمال کلیک (خروجی مدل)، موفقیت آن را نسبت به مدل‌های پیشین تایید کردند.

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

\subsubsection{ماشین‌های فاکتورگیری تنک}
%
محققین، پس از بررسی نمونه‌های مختلفی از ماشین‌های فاکتورگیری، متوجه شدند در اکثر نسخه‌های استفاده شده از این خانواده مدل، تعداد پارامتر‌های آموخته شده بسیار زیاد بوده و به همین دلیل، خطای این مدل‌ها همچنان قابل توجه است؛ لذا اقدام به بررسی راه‌هایی کردند که بتوان به کمک آن‌ها، تنک بودن مدل را تضمین کرده و در نتیجه به خطای کمتر و تفسیر پذیری بیشتری دست یابند. یکی از این اقدامات، ماشین‌های فاکتورگیری تنک است. برای درک بهتر این مدل، بهتر است ابتدا ماشین‌های فاکتورگیری بیزی را بررسی کنیم.
\begin{itemize}
\item{ماشین‌های فاکتورگیری بیزی\cite{Freudenthaler2011BayesianFM}}

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

این در حالی است که می‌توان عمل فاکتورگیری را، به جای روش‌های مبتنی بر گرادیان، به وسیله‌ی \trans{نمونه برداری گیبس}{Gibbs Sampling} انجام داد. همچنین در این روش‌ها، می‌توان با فرض توزیع پیشین برای هر یک از پارامتر‌ها، عمل تنظیم را در این مدل‌ها بهبود بخشید؛ پس ماشین‌های فاکتورگیری بیزی، با استفاده از توزیع پیشین برای پارامتر‌های مدل و همچنین استفاده از نمونه برداری گیبس، با کاهش چشمگیر پیچیدگی محاسباتی و همچنین حفظ عملکرد نهایی (بهبود جزئی) ارائه شدند.

در ماشین‌های فاکتورگیری بیزی، برای همه‌ی پارامتر‌های قابل یادگیری مدل، توزیع پیشین گاوسی با پارامتر‌های غیر ثابت در نظر گرفته می‌شود. این پارامتر‌های غیر ثابت را، ابرپارامتر‌های مدل می‌نامیم. همچنین برای این ابرپارامتر‌ها، توزیع پیشین در نظر گرفته و پارامتر‌های این توزیع‌های پیشین را، \trans{ابر پیشین}{Hyperprior} می‌نامیم. ابر پیشین‌ها عملا توزیع پیشین برای پارامتر‌های توزیع پیشینِ پارامتر‌های مدل هستند. به این تکنیک، \trans{ابر پیشین‌های سلسله مراتبی}{Hierarchical hyperpriors} گفته می‌شود. از فواید استفاده از این تکنیک، می‌توان به عدم نیاز به \trans{جستجوی توری}{Grid search} و همچنین تنظیم بیشتر مدل اشاره کرد. به عنوان میانگین توزیع گاوسی پارامتر‌ها، یک متغیر تصادفی با توزیع گاوسی و به عنوان عکس واریانس توزیع پارامتر‌ها، یک متغیر تصادفی با توزیع گاما در نظر گرفته می‌شود.

به دلیل پیچیدگی بیش از حد، محاسبه‌ی درستنمایی برای خروجی این مدل، قابل انجام نیست؛ پس از طریق نمونه برداری گیبس، پارامتر‌ها و هایپر پارامتر‌های مدل آموخته می‌شوند. به دلیل پیاده سازی خاص، آموزش این مدل به محاسبات خطی نسبت به $k$ نیاز داشته و به مراتب سریع‌تر از ماشین‌های فاکتورگیری عادی است. این مدل علاوه بر سرعت، از پیچیدگی بیشتری نسبت به ماشین‌های فاکتورگیری عادی برخوردار بوده و در نتیجه در دنیای واقعی قابلیت استفاده‌ی بیشتری دارند.
\end{itemize}
زمانی که ماشین‌های فاکتورگیری بیزی، در ادبیات پیش‌بینی نرخ کلیک به کار گرفته شدند، محققین دریافتند تعداد زیادی از پارامتر‌های این مدل، مقادیر غیر صفر به خود گرفته و این اتفاق باعث عدم تفسیر پذیری و همچنین عدم تطابق خروجی این مدل با خروجی مورد انتظار از آن می‌شود. همچنین همانطور که گفته شد، در ماشین فاکتورگیری بیزی، ابر پیشین گاوسی برای میانگین‌ها و ابر پیشین گاما برای عکس واریانس‌ها در نظر گرفته می‌شود؛ اما توزیع گاوسی، به دلیل محدودیت و تنک بودن شدید داده‌های پیش‌بینی نرخ کلیک، برای این مسائل چندان مناسب نیست. محققین دریافتند در صورت استفاده از توزیع لاپلاس برای میانگین، به دلیل احتمال بیشتر صفر بودن و همچنین داشتن دنباله‌ی بزرگتر، امکان تطابق بیشتر با داده‌های تنک این مسائل افزایش می‌یابد.

در ماشین‌های فاکتورگیری تنک\cite{Pan_sparsefm}، با در نظر گرفتن این که تنها حدود $0.15$ درصد از مقادیر ویژگی‌های مجموعه‌های داده‌ی مورد استفاده غیر صفر هستند، فرض توزیع پیشین گاوسی را برای پارامتر‌های مدل رد کرده و به جای آن، از توزیع لاپلاس استفاده می‌کنند. توزیع لاپلاس، دارای دنباله‌ی سنگین‌تری نسبت به توزیع گاوسی می‌باشد، ولی احتمال تولید صفر توسط این توزیع، به مراتب بیشتر از توزیع گاوسی است.

به دلیل \trans{ناهموار}{Non-smooth} بودن توزیع لاپلاس، استنباط بیزی در مورد ماشین‌های فاکتورگیری تنک غیر قابل انجام است؛ لذا آن را به وسیله‌ی \trans{مخلوط مقیاس‌شده‌}{Scale mixture}ی چگالی توزیع‌های گاوسی و نمایی در نظر گرفته و سپس، با استفاده از \trans{زنجیره‌ی مارکوف مونت کارلو}{Markov Chain Monte Carlo} نسبت به استنباط روی آن اقدام می‌کنند.

یکی از فواید استفاده از مدل بیزی، این است که به جای پیش‌بینی صرف مقدار نرخ کلیک، برای آن چگالی توزیع محاسبه می‌شود. با استفاده از این چگالی توزیع، می‌توان مواقعی که مدل با اطمینان تصمیم می‌گیرد و مواقعی که مدل اطمینان خاصی ندارد را از هم تمییز داده و از این تمایز، در تصمیم گیری بین \trans{اکتشاف یا استفاده}{Explore / Exploit} بهره جست. به عبارت دیگر، مدل بیزی امکان رویارویی بهتر با چالش شروع سرد را فراهم می‌سازد.

\subsubsection{ماشین فاکتورگیری با توجه\cite{Xiao_afm}}

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

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

ماشین‌های فاکتورگیری با توجه، دو تفاوت عمده با ماشین‌های فاکتورگیری ساده دارند: 1- استفاده از ضرب درایه به درایه به جای ضرب نقطه‌ای برای استخراج ویژگی‌های مرتبه دوم؛ 2- استفاده از ماژول توجه برای ایجاد تمایز بین ویژگی‌های مرتبه دوم. در این بخش این دو تمایز را توضیح می‌دهیم.

در ماشین فاکتورگیری با توجه، ابتدا بردار‌های تعبیه‌شده‌ی ویژگی‌های مرتبه دوم طبق فرمول زیر محاسبه می‌شوند:
\begin{latin}
\begin{equation}
\mathcal{E}_{i, j} = (v_{i} \odot v_{j})x_{i}x_{j}
\end{equation}
\end{latin}
که در آن عملگر $\odot$  نشان‌دهنده‌ی ضرب درایه به درایه است. مقادیر توجه، از طریق اعمال یک شبکه‌ی عصبی تک لایه روی این بردار‌های تعبیه‌شده محاسبه می‌شوند:
\begin{latin}
\begin{equation}
a_{i, j} = Softmax_{i, j}\{\mathbf{h}^{T} ReLU(\mathbf{W}\mathcal{E}_{i, j} + \mathbf{b})\}
\end{equation}
\end{latin}
در که در آن عملگر $Softmax_{i, j}\{.\}$ بین همه‌ی جملات دارای $i$ و $j$ مختلف اعمال می‌شود؛ در نتیجه مجموع $a_{i, j}$ ها همیشه برابر 1 است.

سپس این بردار‌ها با استفاده از مکانیزم توجه با هم ترکیب شده و خروجی نهایی ماشین فاکتورگیری با توجه، با اضافه شدن جملات مربوط به رگرسیون خطی، به این صورت تشکیل می‌شود:
\begin{latin}
\begin{equation}
\hat{y}_{AFM}(x) = w_{0} + \sum_{i=1}^{n} w_{i}x_{i} + \mathbf{P}^{T} \sum_{i=1}^{n-1}\sum_{j=i+1}^{n}a_{i, j}\mathcal{E}_{i, j}
\end{equation}
\end{latin}
همان طور که از روابط اخیر مشخص است، شیوه‌ی محاسبه‌ی تعامل در این مدل با روش‌های ماشین فاکتورگیری متفاوت بوده و به جای محاسبه‌ی تعامل‌های تک بعدی، ابتدا برای هر جفت فیلد، یک بردار تعامل محاسبه شده و سپس از طریق یک ماتریس،‌ بردار‌ها به فضای تک بعدی خروجی نگاشت می‌شوند. این تفاوت باعث افزایش پیچیدگی این روش و در نتیجه پیشرفت عملکرد در زمان رویارویی با داده‌های حجیم می‌شود؛ اما در مقابل در مواجهه با داده‌های تنک یا شرایط شروع سرد، ممکن است این روش دچار مشکل شده و از بیش‌برازش رنج ببرد.

در نهایت، این مدل بر اساس میانگین مربعات خطا و از طریق روش گرادیان کاهشی تصادفی، بهینه‌سازی شده و از تکنیک \trans{حذف تصادفی}{dropout}\cite{srivastava2014dropout} برای تنظیم پارامتر‌های پیش‌بینی و \trans{تنظیم مرتبه دوم}{L2-Regularization}\cite{tikhonov1943stability} برای پارامتر‌های مکانیزم توجه استفاده می‌شود.

\subsection{روش‌های ژرف}
با پیشرفت یادگیری ژرف، امروزه بهترین نتایج در بسیاری از مسائل در زمینه‌ی یادگیری ماشین، توسط مدل‌های ژرف کسب می‌شود. به دلیل قابلیت به کار گیری این مدل‌ها در بسیاری از مسائل و همچنین کسب نتایج قابل قبول این دسته از مدل‌ها، استفاده از آن‌ها در زمینه‌ی تبلیغات نمایشی نیز در حال افزایش است.\cite{journals/corr/ZhangYS17aa} در این بخش به بررسی چند نمونه از پژوهش‌هایی که از روش‌های یادگیری ژرف در ادبیات پیش‌بینی نرخ کلیک استفاده کرده‌اند می‌پردازیم.

\subsubsection{‌مدل ژرف پیش‌بینی نرخ کلیک\cite{Chen_deepctr}}
مدل ژرف پیش‌بینی نرخ کلیک یکی از مدل‌هایی است که از تکنیک‌های یادگیری ژرف بر روی مساله‌ی پیش‌بینی نرخ کلیک استفاده کرده است. در این مدل، ویژگی‌های ورودی به دو دسته‌ی ویژگی‌های بصری تصویر بنر و و ویژگی‌های پایه تقسیم می‌شوند.

ویژگی‌های بصری تصویر حاوی مقادیر روشنایی پیکسل‌ها و ویژگی‌های پایه حاوی اطلاعاتی مثل: محل نمایش تبلیغ، کمپین تبلیغ، گروه مخاطب تبلیغ، گروه تبلیغ و مشخصات پایه‌ی کاربر (مانند سن و جنسیت) است. در این پژوهش، ویژگی‌های بصری توسط یک شبکه‌ی عصبی کانوولوشنی و ویژگی‌های پایه توسط یک \trans{شبکه عصبی تماما متصل}{Fully Connected Neural Network} کد می‌شود؛ سپس ویژگی‌های کد شده به وسیله‌ی یک شبکه عصبی تماما متصل دیگر پردازش شده و از آن نرخ کلیک یا احتمال کلیک کاربر بر روی این بنر، به دست می‌آید.

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

همانطور که اشاره شد،‌ مدل ژرف پیش‌بینی نرخ کلیک شامل سه بخش است:
\begin{itemize}
\item شبکه‌ی کانوولوشنی

همانطور که از نام آن مشخص است، شبکه‌ی کانوولوشنی یک شبکه عصبی کانوولوشنی ژرف است. معماری این شبکه از شبکه‌ی معروف \trans{رز نت}{ResNet}\cite{he2015residual} الهام گرفته شده و شامل 17 لایه‌ی کانوولوشنی می‌باشد.

لایه‌ی اول این شبکه‌ی کانوولوشنی دارای کرنل‌های 5 در 5 و بقیه لایه‌های این شبکه از کرنل‌های 3 در 3 تشکیل شده‌اند. این بخش از شبکه قبل از آموزش کلی شبکه، توسط تصاویر بنر‌ها و دسته‌ی بنر‌ها (به عنوان برچسب) \trans{پیش‌آموزش}{Pretrain} می‌شود. برای این منظور از دو لایه‌ی تماما متصل اضافی در انتهای این شبکه استفاده می‌شود که ویژگی‌های استخراج شده توسط لایه‌های کانوولوشنی را به برچسب (دسته‌ی بنر) تبدیل کند. این دو لایه پس از اتمام پیش‌آموزش حذف می‌شوند.

\item شبکه‌ی پایه

این بخش از شبکه، شامل تنها یک لایه‌ی تماما متصل بوده و برای کاهش ابعاد بردار ویژگی‌های ساده به کار می‌رود. این لایه دارای 128 نورون با تابع فعالساز \trans{واحد خطی یکسو کننده (رلو)}{ReLU}\cite{Nair_relu} بوده و فضای تنک بردار ویژگی‌های ساده را به یک بردار \trans{چگال}{Dense} تبدیل می‌کند. می‌توان گفت عملکرد این لایه همانند استفاده از بردار‌های \trans{تعبیه}{Embedding}\cite{Guo_embedding_2016} برای تبدیل ویژگی‌های دسته‌ای به بردار‌های چگال در روش‌هایی که پیش‌تر معرفی کردیم است.
\item شبکه‌ی ترکیبی

خروجی شبکه‌های پایه و کانوولوشنی پس از چسبانده شدن به هم و عبور آن از یک لایه‌ی \trans{نرمال‌سازی دسته‌ای}{Batch Normalization}\cite{ioffe2015batch}، به عنوان ورودی شبکه‌ی ترکیبی استفاده می‌شوند. این شبکه دارای دو لایه با 256 نورون و یک لایه با تنها یک نورون می‌باشد. خروجی لایه‌های اول به وسیله‌ی تابع فعال‌ساز رلو و لایه‌ی سوم با استفاده از تابع فعال‌ساز سیگموید به فضای غیر خطی منتقل می‌شوند.
\end{itemize}
برای کاهش زمان آموزش این مدل، دو تکنیک استفاده می‌شوند. اول استفاده از یک پیاده‌سازی سریع برای لایه‌ی تماما متصل تنک است. به دلیل استفاده از کدگذاری 1 از $k$ و همچنین \trans{درهمسازی ویژگی‌ها}{Feature Hashing}، دارای تعداد زیادی ویژگی است که در هر نمونه، غالب آن‌ها برابر صفر هستند. استفاده از این دانش در پیاده‌سازی لایه‌ی تماما متصل اول در شبکه‌ی پایه باعث بهبود چشمگیر در سرعت آموزش مدل می‌شود.

تکنیک دیگر استفاده شده در این پژوهش، نمونه برداری مناسب برای بهره‌گیری بیشتر از حافظه می‌باشد. در مجموعه‌داده‌‌های استفاده شده در این پژوهش، تعداد زیادی تصویر یکسان وجود دارد؛ پس می‌توان با استفاده از این دانش، نمونه برداری قبل از انجام هر گام از الگوریتم گرادیان کاهشی را به نحوی تغییر داد که تعداد محدودی تصویر یکسان در داخل \trans{دسته آموزش}{Batch} قرار گیرند؛ در نتیجه محاسبه‌ی مشتقات آن‌ها به سادگی و با صرف حداقل حافظه‌ی گرافیکی قابل انجام خواهد بود.

\subsubsection{ماشین فاکتورگیری ژرف\cite{Guo_deepfm1, Guo_deepfm2}}
در ماشین‌های فاکتورگیری ساده یا با توجه، اهمیت خاصی به تعامل‌های مرتبه پایین داده می‌شود؛ در نتیجه مدل به سمت استفاده از تعامل‌های مرتبه پایین تشویق می‌شود و در نتیجه نوعی بایاس در طراحی این خانواده از مدل‌ها وجود دارد؛ اما ممکن است با در نظر نگرفتن این بایاس، تعاملات سطح بالای مناسب و مفیدی از داده‌ها کشف کنیم.

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

در این مدل، دو بخش اصلی وجود دارد:
\begin{itemize}
\item \textbf{بخش ماشین فاکتورگیری}
	
این بخش تفاوتی با ماشین فاکتورگیری ساده ندارد. ابتدا ورودی‌هایش که همان ویژگی‌های تنک مساله هستند را به بردار‌های تعبیه شده تبدیل کرده و سپس با اعمال ضرب داخلی بین این بردار‌ها، تعامل‌های را محاسبه کرده و همچنین جمله‌ی خطی را به آن اضافه کرده و خروجی مورد نظر را از روی این مجموع ایجاد می‌کند.
\item \textbf{بخش ژرف}
	
در این بخش از یک شبکه عصبی عادی استفاده می‌شود. ورودی‌های بخش ژرف، همان بردار‌های تعبیه شده‌ی بخش ماشین فاکتورگیری هستند. توابع فعالیت در این بخش اکثرا رلو یا $tanh$ (تانژانت هایپربولیک) بوده و همه‌ی لایه‌های آن از نوع تماما متصل تشکیل شده‌اند.
\end{itemize}

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

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

این مدل با استفاده از \trans{خطای لگاریتمی}{Log Loss} و روش \trans{گرادیان کاهشی تصادفی}{Stochastic Gradient Descent} آموزش داده می‌شود.

\subsubsection{مدل وسیع و ژرف\cite{Cheng_wideanddeep}}
محققین شرکت \trans{گوگل}{Google}، شبکه‌ی وسیع و ژرف را برای توصیه‌ی اپلیکیشن‌ها در \trans{بازار اپلیکیشن گوگل پلی}{Google Play Application Store} توسعه داده و پژوهش خود را در سال 2016 منتشر کردند. به دلیل شباهت بالای کاربرد پیش‌بینی نرخ کلیک روی اپلیکیشن‌ها و پیش‌بینی نرخ کلیک روی تبلیغ‌ها، این مدل را مختصرا در این بخش معرفی می‌کنیم.

در مدل وسیع و ژرف، سه بخش اصلی وجود دارد:
\begin{itemize}
\item مهندسی ویژگی‌ها

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

در بخش وسیع، همه‌ی ویژگی‌های استخراج شده در بخش قبل کنار هم چسبانده شده و توسط یک تبدیل خطی، به فضای تک بعدی خروجی نگاشت می‌شوند.
\item بخش ژرف

در بخش ژرف، بردار‌های تعبیه شده به هم چسبانده شده و توسط یک شبکه‌ی عصبی چند لایه به فضای تک بعدی خروجی منتقل می‌شوند.
\end{itemize}

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

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

\subsubsection{خودکدگذار پشته شده‌ی دارای توجه\cite{Wang_asae}}
شبکه‌ی عصبی \trans{خودکدگذار}{Auto Encoder}\cite{Ballard_autoencoder}، یک روش یادگیری ماشین بدون نظارت است که از دو لایه‌ی شبکه‌ی عصبی تشکیل شده است. لایه‌ی اول، داده‌های ورودی را به \trans{فضای نهان}{Latent Space} نگاشت کرده و لایه‌ی دوم، آن‌ها را به فضای ورودی باز می‌گرداند. شبکه‌ی خودکدگذار به این طریق آموزش داده می‌شود که فاصله‌ی اقلیدسی داده‌های ورودی و خروجی حداقل باشد. در نتیجه یک شبکه‌ی خودکدگذار ایده‌آل می‌تواند ورودی‌های خود را بازسازی کند. در صورتی که لایه‌های این شبکه را به صورت مجزا در نظر بگیریم، لایه‌ی اول عمل \trans{کدگذاری}{Encoding} را انجام داده و لایه‌ی دوم عمل \trans{کدگشایی}{Decoding} را بر عهده می‌گیرد.

در ادبیات یادگیری ماشین، کاربرد‌های متنوعی برای شبکه‌های خودکدگذار ارائه شده که یکی از آن‌ها برای استخراج ویژگی بدون نیاز به داده‌های برچسب گذاری شده است. اگر پس از آموزش دادن یک خودکدگذار، صرفا از بخش کدگذار آن استفاده کرده و داده‌های کد شده را، به ورودی یک خودکدگذار دیگر بدهیم و این فرآیند را چندین بار انجام دهیم، یک \trans{خودکدگذار پشته شده}{Stacked Auto Encoder} به وجود می‌آید. خودکدگذار پشته شده را می‌توان به صورت مرحله به مرحله یا به صورت یکجا آموزش داد. در صورتی که خطای بازسازی خودکدگذار پشته شده کم باشد، می‌توان نتیجه گرفت که ویژگی‌های استخراج شده در لایه‌ی میانی (پس از کدگذاری) حاوی اکثر اطلاعات مهم داده‌های ورودی بوده و به همین دلیل بخش کدگشا قادر به بازسازی داده‌های ورودی شده است؛ پس می‌توان به جای اطلاعات اصلی، از ویژگی‌های استخراج شده در لایه‌ی میانی (که از تعداد ابعاد کمتری برخوردار است) استفاده کرده و در نتیجه از ویژگی‌های سطح بالا و چگال مناسب بهره جست.

خودکدگذار پشته شده‌ی دارای توجه، مدلی است که برای پیش‌بینی نرخ کلیک ارائه شده و به نوعی ترکیبی از ماشین فاکتورگیری با توجه و خودکدگذار پشته شده است. این مدل از دو بخش تشکیل شده است:
\begin{itemize}
\item بخش ماشین فاکتورگیری با توجه

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

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

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

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

در این بخش، تعدادی از روش‌هایی که در ادبیات پیش‌بینی نرخ کلیک استفاده شده‌اند را معرفی و بررسی کردیم. خلاصه‌ای از مدل‌های ذکر شده و همچنین مقایسه‌ی کلی مزایا و معایب آن‌ها در جدول \ref{tbl:notation} نمایش داده شده است.
\begin{table}[]
	% set vertical spacing between rows
	%\renewcommand{\arraystretch}{1.2} 
	%\linespread{1.2}\selectfont\centering
	\caption{خلاصه‌ی روش‌های اصلی مطالعه شده}
	\label{tbl:notation}
	%\begin{latin}
	\scriptsize
	\begin{center}
	\begin{tabular}{|c|c|c|c|c|}
		\hline
		نام مدل & نقاط قوت & نقاط ضعف & سال و مرجع \\ \hline
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		ماشین بردار پشتیبان (کرنل چند جمله‌ای)
		&
		سرعت انجام بالا
		&
		تعداد پارامتر‌های بسیار بالا
		&
		1992\cite{boser1992}
		\\ \hline
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		مدل تکه‌ای خطی
		&
		\begin{tabular}[c]{@{}c@{}}
			انعطاف‌پذیری \\
			پارامتر‌های تنک \\
			تفسیر‌پذیری مناسب
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			تعداد پارامتر زیاد \\
			آموزش کند \\
			تنظیم سخت ابرپارامتر‌ها
		\end{tabular}
		&
		2017\cite{Gai_piecewise}
		\\ \hline
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		مدل رگرسیون بیزی
		&
		\begin{tabular}[c]{@{}c@{}}
			امکان برقراری تعادل بین \\
			اکتشاف و بهره‌برداری
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			انعطاف پذیری کم \\
			نیاز به داده‌های زیاد
		\end{tabular}
		&
		2009\cite{Graepel_2010}
		\\ \hline
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		ماشین فاکتورگیری
		&
		\begin{tabular}[c]{@{}c@{}}
			مدل‌سازی تعامل‌های مرتبه دوم \\
			تعداد کم پارامتر‌های مستقل
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			بی‌توجهی به روابط کلی بین فیلد‌ها \\
			خطر بیش‌برازش
		\end{tabular}
		&
		2010\cite{Rendle:2010ja}
		\\ \hline
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		ماشین فاکتورگیری آگاه از فیلد
		&
		\begin{tabular}[c]{@{}c@{}}
			مدلسازی تفاوت بین فیلد‌ها
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			تعداد بالای پارامتر‌ها \\
			احتمال بالای بیش‌برازش
		\end{tabular}
		&
		2016\cite{Juan_fieldawarefm1, Juan_fieldawarefm2}
		\\ \hline
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		\begin{tabular}[c]{@{}c@{}}
			ماشین فاکتورگیری با فیلد‌های وزن‌دار
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			کنترل تعداد پارامتر‌ها \\
			مدل‌سازی تفاوت کلی فیلد‌ها
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			توان مدل‌سازی محدود \\
			عدم مدل‌سازی تعامل‌های مرتبه بالا
		\end{tabular}
		&
		2018\cite{Pan_fieldweightedfm}
		\\ \hline
				%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		\begin{tabular}[c]{@{}c@{}}
			ماشین فاکتورگیری بیزی
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			امکان برقراری تعادل بین \\
			اکتشاف و بهره‌برداری
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			استنباط غیر قابل محاسبه \\
			پیش‌فرض نامناسب گاوسی
		\end{tabular}
		&
		2011\cite{Freudenthaler2011BayesianFM}
		\\ \hline
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		\begin{tabular}[c]{@{}c@{}}
			ماشین فاکتورگیری تنک
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			تفسیر پذیری بالا \\
			تنک بودن مدل
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			استنباط غیر قابل محاسبه \\
			استفاده از تخمین برای محاسبه‌ی توزیع
		\end{tabular}
		&
		2016\cite{Pan_sparsefm}
		\\ \hline
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		ماشین فاکتورگیری با توجه
		&
		\begin{tabular}[c]{@{}c@{}}
			افزایش پیچیدگی مدل \\
			افزایش تفسیر‌پذیری مدل
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			احتمال بیش‌برازش \\
			نیاز به داده‌های زیاد
		\end{tabular}
		&
		2017\cite{Xiao_afm}
		\\ \hline
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		
		مدل ژرف پیش‌بینی نرخ کلیک
		&
		\begin{tabular}[c]{@{}c@{}}
			توانایی مدل تعاملات مرتبه بالا \\
			تعمیم پذیری مناسب
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			نیاز به تصویر بنر تبلیغ \\
			امکان بیش‌برازش به دلیل کمبود داده \\
			عدم مواجهه با چالش شروع سرد
		\end{tabular}
		&
		2016\cite{Chen_deepctr}
		\\ \hline
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
		
		ماشین فاکتورگیری ژرف
		&
		\begin{tabular}[c]{@{}c@{}}
			مدل‌سازی تعاملات مرتبه بالا \\
			عدم وجود بایاس در مرتبه تعاملات
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			تعداد زیاد ابرپارامتر \\
			تفسیرپذیری پایین
		\end{tabular}
		&
		2017\cite{Guo_deepfm1, Guo_deepfm2}
		\\ \hline
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
				
		مدل وسیع و ژرف
		&
		\begin{tabular}[c]{@{}c@{}}
			پیاده‌سازی سریع \\
			توان مدل‌سازی مناسب
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			نیاز به مهندسی ویژگی‌ها \\
			تعداد بالای پارامتر‌ها
		\end{tabular}
		&
		2016\cite{Cheng_wideanddeep}
		\\ \hline
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
				
		خودکدگذار پشته شده‌ی با توجه
		&
		\begin{tabular}[c]{@{}c@{}}
			توانایی مدل‌سازی مناسب\\
			اشتراک بالای پارامتر‌ها
		\end{tabular}
		&
		\begin{tabular}[c]{@{}c@{}}
			تعداد زیاد پارامتر‌ها \\
			احتمال بیش‌برازش
		\end{tabular}
		&
		2018\cite{Wang_asae}
		\\ \hline
		%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	\end{tabular}
	%\end{latin}
	\end{center}
\end{table}













