{"id":329276,"date":"2023-09-25T13:00:00","date_gmt":"2023-09-25T13:00:00","guid":{"rendered":"https:\/\/pyimagesearch.com\/?p=40833"},"modified":"2023-09-25T13:00:00","modified_gmt":"2023-09-25T13:00:00","slug":"youtube-video-recommendation-systems","status":"publish","type":"post","link":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/2023\/09\/25\/youtube-video-recommendation-systems\/","title":{"rendered":"YouTube Video Recommendation Systems"},"content":{"rendered":"<p class=\"syndicated-attribution\"><meta name= \\\"keywords \\\" content= \\\"\u96fb\u5b50\u8a08\u7b97\u6a5f, \u6559\u80b2, IT \u96fb\u8166\u73ed,\u96fb\u8166\u88dc\u7fd2\uff0c \u96fb\u8166\u73ed\uff0c \u5bb6\u6559\uff0c \u79c1\u4eba\u8001\u5e2b\uff0c \u8cc7\u8a0a\u6280\u8853\uff0c \u7a0b\u5e8f\u8a2d\u8a08\uff0c \u96fb\u5b50\u8a08\u7b97\u6a5f\uff0c \u904a\u6232\uff0c \u860b\u679c\uff0c \u96fb\u5f71\uff0c \u8a08\u7b97\u6a5f\uff0c\u7de8\u78bc\uff0c Java\uff0c C\/C++\uff0c JavaScript\uff0c PHP\uff0c HTML\uff0c CSS\uff0c MySQL\uff0c mobile\uff0c Android\uff0c \u52d5\u6f2b\uff0c Python\uff0c teacher\uff0c \u88dc\u7fd2\uff0c \u96fb\u8166\u88dc\u7fd2 \u8cc7\u8a0a, \u7535\u5b50\u8ba1\u7b97\u673a, IT ,Game, apple, movie, Computer,student,Java,\u6559\u80b2, ,\u5b66\u751f, \u5b66\u4e60, learn, \u6559\u5b66,  Android, apple,anime, animation, \u4fe1\u606f\u6280\u672f, \u7a0b\u5e8f\u8bbe\u8ba1, \u79fb\u52a8\u7535\u8bdd, \u8cc7\u8a0a\u79d1\u6280,Game, Jeu, Juego,Call Of Duty ,\u4f7f\u547d\u53ec\u559a , \u6e38\u620f, \u7535\u5b50\u6e38\u620f,, \u591a\u4eba\u7535\u5b50\u6e38\u620f, \u7f51\u7edc\u6e38\u620f\uff0conline\uff0conline game, \u624b\u673a\u6e38\u620f, mobile \\\"><\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<div class=\"yoast-breadcrumbs\"><span><span><a href=\"https:\/\/pyimagesearch.com\/\">Home<\/a><\/span><\/div>\n<h2><strong>Table of Contents<\/strong><\/h2>\n<div class=\"toc\">\n<ul>\n<li id=\"TOC-h2BPTitle\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h2BPTitle\">YouTube Video Recommendation Systems<\/a><\/li>\n<ul>\n<li id=\"TOC-h3Overview\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h3Overview\">Overview<\/a><\/li>\n<li id=\"TOC-h3Candidate\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h3Candidate\">Candidate Generation Network<\/a><\/li>\n<ul>\n<li id=\"TOC-h4Feature\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h4Feature\">Architecture and Feature Representation<\/a><\/li>\n<li id=\"TOC-h4Training\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h4Training\">Training<\/a><\/li>\n<\/ul>\n<li id=\"TOC-h3Network\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h3Network\">Ranking Network<\/a><\/li>\n<ul>\n<li id=\"TOC-h4Selection\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h4Selection\">Feature Selection<\/a><\/li>\n<li id=\"TOC-h4Architecture\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h4Architecture\">Architecture<\/a><\/li>\n<\/ul>\n<li id=\"TOC-h3Toward\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h3Toward\">Toward Multi-Task Ranking System<\/a><\/li>\n<ul>\n<li id=\"TOC-h4Learning\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h4Learning\">Multi-Task Learning<\/a><\/li>\n<li id=\"TOC-h4Experts\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h4Experts\">Multi-Gate Mixture of Experts<\/a><\/li>\n<li id=\"TOC-h4Bias\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h4Bias\">Learning Selection Bias<\/a><\/li>\n<\/ul>\n<\/ul>\n<li id=\"TOC-h2Summary\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h2Summary\">Summary<\/a><\/li>\n<ul>\n<li id=\"TOC-h3Citation\"><a rel=\"noopener\"  href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#h3Citation\">Citation Information<\/a><\/li>\n<\/ul>\n<\/ul>\n<\/div>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h2BPTitle\"\/>\n<h2><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h2BPTitle\"><strong>YouTube Video Recommendation Systems<\/strong><\/a><\/h2>\n<p>In this tutorial, you will learn about YouTube video recommendation systems.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/pyimagesearch.com\/wp-content\/uploads\/2023\/09\/youtube-featured.png\"  rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2023\/09\/youtube-featured.png?lossy=2&#038;strip=1&#038;webp=1\" alt=\"\" class=\"wp-image-41373\" width=\"603\" height=\"500\" srcset=\"https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2023\/09\/youtube-featured.png?size=126x104&amp;lossy=2&amp;strip=1&amp;webp=1 126w, https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2023\/09\/youtube-featured-300x249.png?lossy=2&amp;strip=1&amp;webp=1 300w, https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2023\/09\/youtube-featured.png?size=378x313&amp;lossy=2&amp;strip=1&amp;webp=1 378w, https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2023\/09\/youtube-featured.png?size=504x418&amp;lossy=2&amp;strip=1&amp;webp=1 504w, https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2023\/09\/youtube-featured-768x637.png?lossy=2&amp;strip=1&amp;webp=1 768w, https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2023\/09\/youtube-featured.png?lossy=2&amp;strip=1&amp;webp=1 940w\" sizes=\"(max-width: 603px) 100vw, 603px\" \/><\/a><\/figure>\n<\/div>\n<p>YouTube is the world\u2019s largest platform to create, consume, and share video content. Their recommendations (<strong>Figure 1<\/strong>) help billions of users discover personalized content from an ever-growing corpus of videos. According to Cristos Goodrow (VP of Engineering at YouTube), recommendations drive a significant amount of the overall viewership on YouTube, even more than channel subscriptions or searches. <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/lh5.googleusercontent.com\/EO-MunfIo7bByhD35RQVhCkzms8DLpc_-U8tYhTLCKKwI4bSXQH34p17m90zb4jkRCdpM3ujVyaionki0GW_Jvd7iniDZBN8sy7ckbOxNiG3N-kHCPzOFTy3UUFxvjUoe8mIMmBRfZwBUUFGH07Z-K0\"  rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/EO-MunfIo7bByhD35RQVhCkzms8DLpc_-U8tYhTLCKKwI4bSXQH34p17m90zb4jkRCdpM3ujVyaionki0GW_Jvd7iniDZBN8sy7ckbOxNiG3N-kHCPzOFTy3UUFxvjUoe8mIMmBRfZwBUUFGH07Z-K0\" alt=\"\" width=\"289\" height=\"500\"\/><\/a><figcaption><strong> Figure 1:<\/strong> YouTube video recommendations on mobile app (source: <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/2959100.2959190\"  rel=\"noreferrer noopener\">Covington et al., RecSys\u201916<\/a>).<\/figcaption><\/figure>\n<\/div>\n<p>So, how do their recommendations actually work? In this lesson, we will answer this question by explaining the machine learning behind YouTube video recommendations.<\/p>\n<p>This lesson is the 2nd in a 3-part series on <strong>Deep Dive into Popular Recommendation Engines 102<\/strong>:<\/p>\n<ol>\n<li><a href=\"https:\/\/pyimg.co\/m8ps5\"  rel=\"noreferrer noopener\"><em>Amazon Product Recommendation Systems<\/em><\/a><\/li>\n<li><a href=\"https:\/\/pyimg.co\/rvdym\"  rel=\"noreferrer noopener\"><strong><em>YouTube Video Recommendation Systems<\/em><\/strong><\/a><em> <\/em><strong>(this tutorial)<\/strong><\/li>\n<li><em>Spotify Music Recommendation Systems<\/em><\/li>\n<\/ol>\n<p><strong>To learn how YouTube recommender systems work, <\/strong><strong><em>just keep reading.<\/em><\/strong><\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h2BPTitle\"\/>\n<h2><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h2BPTitle\"><strong>YouTube Video Recommendation Systems<\/strong><\/a><\/h2>\n<p>We will start with a system overview of the YouTube recommendation algorithm and then dive into individual components later.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h3Overview\"\/>\n<h3><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h3Overview\"><strong>Overview<\/strong><\/a><\/h3>\n<p>The YouTube recommendation algorithm is extremely challenging because of three main reasons:<\/p>\n<ul>\n<li><strong>Scale:<\/strong> The platform serves billions of users with billions of videos. Highly specialized distributed learning algorithms and efficient serving mechanisms are required to process and serve such massive information in the user base and video corpus.<\/li>\n<\/ul>\n<ul>\n<li><strong>Freshness:<\/strong> Videos are uploaded every second on the YouTube platform, and user behavior can also change frequently. Hence, the recommendation algorithm should be responsive enough to provide new updates based on the latest videos and user actions. The algorithm should also maintain a balance between new content and well-established videos.<\/li>\n<\/ul>\n<ul>\n<li><strong>Noise:<\/strong> The metadata associated with the content doesn\u2019t have a well-defined ontology. Further, the user satisfaction signals are implicit most of the time (e.g., watch time), which can also be affected due to external factors. For example, during a cricket season (external factor), users might feel more engaged with match-related videos. <\/li>\n<\/ul>\n<p>To address all these challenges, YouTube employs a two-stage deep learning-based recommendation strategy that trains large-scale models (with approximately one billion parameters) on hundreds of billions of examples. The overall system (<strong>Figure 2<\/strong>) consists of two neural networks for candidate generation and ranking.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/lh4.googleusercontent.com\/ynNiJVoWEo9IqZG2RMhgpPzgGLXyMjMX2cAXYWHjC4J5_pIOtXKw77PE_KqxQzfP1HYSCFi0uUoim1_E5WEtK8ds38UhHN01wAJCjJ_aKxRwblTI5Jby5laXd4rixKnynV47Ygeib5T_-hPZsz-AhZU\"  rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/ynNiJVoWEo9IqZG2RMhgpPzgGLXyMjMX2cAXYWHjC4J5_pIOtXKw77PE_KqxQzfP1HYSCFi0uUoim1_E5WEtK8ds38UhHN01wAJCjJ_aKxRwblTI5Jby5laXd4rixKnynV47Ygeib5T_-hPZsz-AhZU\" alt=\"\" width=\"700\" height=\"448\"\/><\/a><figcaption><strong> Figure 2:<\/strong> Overview of YouTube recommendation algorithm (source: <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/2959100.2959190\"  rel=\"noreferrer noopener\">Covington et al., RecSys\u201916<\/a>).<\/figcaption><\/figure>\n<\/div>\n<p>The candidate generation network aims to filter out a few thousand video candidates from the vast corpus based on user watch history and context. These candidates are generally relevant to the user with high precision. This network uses coarse features like IDs of video watches, demographics, and search query tokens to generate relevant candidates.<\/p>\n<p>On the other hand, the ranking network distinguishes between candidates and assigns them a rank according to their relevance to the user with a high recall. This model uses a rich set of features to assign the relevance score between a candidate video and the user.<\/p>\n<p>We will now describe candidate generation and ranking in further detail.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h3Candidate\"\/>\n<h3><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h3Candidate\"><strong>Candidate Generation Network<\/strong><\/a><\/h3>\n<p>Given a user <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/4c6\/4c614360da93c0a041b22e537de151eb-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='U' title='U' class='latex' \/> and context <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/0d6\/0d61f8370cad1d412f80b84d143e1257-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='C' title='C' class='latex' \/>, the candidate generation network solves a multi-classification problem where the prediction problem accurately classifies a video watch <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/7e9\/7e990213067fee3e3312f0fcca325204-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='w_t' title='w_t' class='latex' \/> (at time <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/e35\/e358efa489f58062f10dd7316b65649e-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='t' title='t' class='latex' \/>) from millions of videos in corpus <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/520\/5206560a306a2e085a437fd258eb57ce-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='V' title='V' class='latex' \/>. In other words,<\/p>\n<p class=\"has-text-align-center\"><img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/31c\/31c917b84ea71a769eb55992c31de153-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='P(w_t = i | U, C) = \\displaystyle\\frac{\\exp({v_i \\cdot u})}{\\sum_{j \\in V} \\exp({v_j \\cdot u})},' title='P(w_t = i | U, C) = \\displaystyle\\frac{\\exp({v_i \\cdot u})}{\\sum_{j \\in V} \\exp({v_j \\cdot u})},' class='latex' srcset='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/31c\/31c917b84ea71a769eb55992c31de153-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1 251w,https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/31c\/31c917b84ea71a769eb55992c31de153-ffffff-000000-0.png?size=126x22&#038;lossy=2&#038;strip=1&#038;webp=1 126w' sizes='(max-width: 251px) 100vw, 251px' \/><\/p>\n<p>where <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/5f2\/5f216715be371e8b9225ce22803b5ebd-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='u \\in \\Re^N' title='u \\in \\Re^N' class='latex' \/> is a high-dimensional embedding representing user history and context. <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/8ec\/8ec290a067aa623096d7fe0d11fd77c9-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='v_i \\in \\Re^N' title='v_i \\in \\Re^N' class='latex' \/> represents the embedding of video <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/1df\/1df181eaa1bb40a0067c06ead197170d-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='v_i' title='v_i' class='latex' \/>. The candidate generation network aims to learn the dense user embeddings <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/7b7\/7b774effe4a349c6dd82ad4f4f21d34c-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='u' title='u' class='latex' \/> as a function of user history and context so that it helps discriminate videos via a softmax classifier. Note that the video embeddings <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/1df\/1df181eaa1bb40a0067c06ead197170d-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='v_i' title='v_i' class='latex' \/> are pre-learned in a fixed vocabulary via continuous bag-of-words language models.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h4Feature\"\/>\n<h4><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h4Feature\"><strong>Architecture and Feature Representation<\/strong><\/a><\/h4>\n<p>As shown in <strong>Figure 3<\/strong>, the candidate generation network comprises several features (e.g., user watch history, search query, demographics, user gender, example age, etc.). All these features are concatenated and fed to a feed-forward network comprising fully connected layers and ReLU activation.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/lh6.googleusercontent.com\/Zz0-JEsQGGzbrzs8JkLQRugmubfh-HZZVSWbE-HI7KSgd9GXauNv9h_VtRjeZCDSFFz5-R8xYIOLkHyYVKgwin5w8Sq_MgwWPi-n1d4wGTTlcG7wb0FTa0Lxy6wIxAdHlSV6ZAI5owtDsE_YpMiw4ok\"  rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/Zz0-JEsQGGzbrzs8JkLQRugmubfh-HZZVSWbE-HI7KSgd9GXauNv9h_VtRjeZCDSFFz5-R8xYIOLkHyYVKgwin5w8Sq_MgwWPi-n1d4wGTTlcG7wb0FTa0Lxy6wIxAdHlSV6ZAI5owtDsE_YpMiw4ok\" alt=\"\" width=\"591\" height=\"500\"\/><\/a><figcaption><strong> Figure 3:<\/strong> Architecture of candidate generation network (source: <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/2959100.2959190\"  rel=\"noreferrer noopener\">Covington et al., RecSys\u201916<\/a>).<\/figcaption><\/figure>\n<\/div>\n<p>The user watch history is represented as a variable-length sequence of sparse video IDs (watched by the user recently) mapped to their dense embeddings <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/1df\/1df181eaa1bb40a0067c06ead197170d-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='v_i' title='v_i' class='latex' \/>. These dense embeddings (of videos watched by the user) are then averaged to represent the user watch vector fed into a feed-forward network. Note that the video embeddings <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/1df\/1df181eaa1bb40a0067c06ead197170d-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='v_i' title='v_i' class='latex' \/> are learned jointly with other model parameters.<\/p>\n<p>Like the user watch vector, the search query is also tokenized into unigrams and bigrams, and each token is mapped to its respective token embedding. The embeddings of all tokens are then averaged to obtain a user search vector.<\/p>\n<p>The user\u2019s geographic location and device ID are embedded and concatenated to represent demographics. Further, the binary and continuous features (e.g., user gender, logged-in state, and age) are fed directly after being normalized to <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/264\/264884439b70ab09a86bc848421c6de6-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='[0, 1]' title='[0, 1]' class='latex' \/>.<\/p>\n<p>The distribution of video popularity is highly non-stationary (i.e., it lasts for a few days, slows down, and then converges). Still, the above candidate recommendation network will only recommend based on the average watch likelihood of a video (but not its popularity). To address this, a unique \u201cExample Age\u201d feature is also given as input during training.<\/p>\n<p>\u201cExample Age\u201d represents the age of the training example used. During inference, it is set to zero or negative to ensure that the model predictions don\u2019t get biased toward the past, and it assigns more likelihood to a new video. <strong>Figure 4<\/strong> shows that adding \u201cExample Age\u201d as a feature increases the probability of a recently uploaded video (as opposed to a baseline model) and is close to its empirical value.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/lh6.googleusercontent.com\/8wH9Hz1tE4qTXtTphktvkQjC-aHNkdQVp-8W-DKaYMNBxN1V4lS1UldyCMcy9WyXVlMhaFHVB4to6YkxutsMnMLpuQx1utmYEvp0_k1cNCzKYFb3HMF0kcHlV8xRk_Ukg9EmSrq1J_Hl2u99AtCwi1I\"  rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/8wH9Hz1tE4qTXtTphktvkQjC-aHNkdQVp-8W-DKaYMNBxN1V4lS1UldyCMcy9WyXVlMhaFHVB4to6YkxutsMnMLpuQx1utmYEvp0_k1cNCzKYFb3HMF0kcHlV8xRk_Ukg9EmSrq1J_Hl2u99AtCwi1I\" alt=\"\"\/><\/a><figcaption><strong> Figure 4:<\/strong> Effect on class probabilities with \u201cExample Age\u201d as input feature (source: <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/2959100.2959190\"  rel=\"noreferrer noopener\">Covington et al., RecSys\u201916<\/a>).<\/figcaption><\/figure>\n<\/div>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h4Training\"\/>\n<h4><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h4Training\"><strong>Training<\/strong><\/a><\/h4>\n<p>To train the network, YouTube leverages implicit feedback signals where a user completing a video is considered a positive example. This is because explicit feedback signals like thumbs up and down in-product surveys are quite rare. <\/p>\n<p>Further, training examples are generated from all YouTube watches (even those embedded on other sites) rather than watches from the recommendations. This ensures that feedback signals contain information about users discovering videos through means other than recommendations. This way, the recommender would not be biased toward exploitation. <\/p>\n<p>Now, given a watch history of a user <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/73c\/73c4ff93e926d9b1af531dc45ef6cee2-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='\\{w_{t_1}, w_{t_2}, \\dots, w_{t_N}, w_{t_{N+1}} \\}' title='\\{w_{t_1}, w_{t_2}, \\dots, w_{t_N}, w_{t_{N+1}} \\}' class='latex' srcset='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/73c\/73c4ff93e926d9b1af531dc45ef6cee2-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1 176w,https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/73c\/73c4ff93e926d9b1af531dc45ef6cee2-ffffff-000000-0.png?size=126x14&#038;lossy=2&#038;strip=1&#038;webp=1 126w' sizes='(max-width: 176px) 100vw, 176px' \/> and corresponding search history <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/375\/3759b5322e1db241202f6c090fd47691-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='\\{s_{t_1}, s_{t_2}, \\dots, s_{t_N}, s_{t_{N+1}} \\}' title='\\{s_{t_1}, s_{t_2}, \\dots, s_{t_N}, s_{t_{N+1}} \\}' class='latex' \/>, there are two ways of training the candidate generation network:<\/p>\n<ul>\n<li><strong>Predicting Held-Out Watch<\/strong> (<strong>Figure 5<\/strong>): In this setting, you predict a randomly held-out look, e.g., <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/99d\/99d8b82980e66e52426e4aca8907fd39-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='w_N' title='w_N' class='latex' \/> given past and future search queries <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/561\/56146dfb89cb1398bc275f0cb270c42f-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='\\{s_{t_1}, s_{t_2}, \\dots, s_{t_{N-1}}, s_{t_{N+1}} \\}' title='\\{s_{t_1}, s_{t_2}, \\dots, s_{t_{N-1}}, s_{t_{N+1}} \\}' class='latex' \/> and watch history <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/244\/2444e16d5964df79b4342c2111736f8e-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='\\{w_{t_1}, w_{t_2}, \\dots, w_{t_{N-1}}, w_{t_{N+1}} \\}' title='\\{w_{t_1}, w_{t_2}, \\dots, w_{t_{N-1}}, w_{t_{N+1}} \\}' class='latex' srcset='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/244\/2444e16d5964df79b4342c2111736f8e-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1 189w,https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/244\/2444e16d5964df79b4342c2111736f8e-ffffff-000000-0.png?size=126x13&#038;lossy=2&#038;strip=1&#038;webp=1 126w' sizes='(max-width: 189px) 100vw, 189px' \/> as inputs to network. However, this leaks future information and ignores asymmetric consumption patterns (e.g., you will likely watch episode 2 of the series only after episode 1 but not vice versa). <\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/3waH4oCu6TSNH0ksB0izag5LbY2Sm5s5Ro9lAFlm-80IpXg5n4uRf9bLHKayR4bG2_ce44evr7RxY5I987mR7IEvQ54943ocpT8gxwaoG3yDzF0EAPnvKj0735OpEGMHg7we9XfxaPALAnQsRecr3Gw\" alt=\"\" width=\"700\" height=\"427\"\/><figcaption><strong> Figure 5:<\/strong> Predicting held-out watch setting (source: <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/2959100.2959190\"  rel=\"noreferrer noopener\">Covington et al., RecSys\u201916<\/a>).<\/figcaption><\/figure>\n<\/div>\n<ul>\n<li><strong>Predicting Future Watch<\/strong> (<strong>Figure 6<\/strong>): This setting involves predicting future watches given past search queries and watch history. Since the YouTube recommendation problem is posed as predicting the next watched video, this setting is more appropriate for training neural networks. <\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/lh3.googleusercontent.com\/4MKlmWQusvL1BG3IVMGiV9yNWo3S-9t0l7Lp4PrXQ99DRfUj613etzTW4XIiR4e5O4cllYh5UioOclPx2pXc4K3wcWQSs0PAIMTouG6eFOBfaQuOWr07IeBBXYdAE27AbmzhJ4v670LxIuhIBtRanFA\"  rel=\"noreferrer noopener\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/4MKlmWQusvL1BG3IVMGiV9yNWo3S-9t0l7Lp4PrXQ99DRfUj613etzTW4XIiR4e5O4cllYh5UioOclPx2pXc4K3wcWQSs0PAIMTouG6eFOBfaQuOWr07IeBBXYdAE27AbmzhJ4v670LxIuhIBtRanFA\" alt=\"\"\/><\/a><figcaption><strong> Figure 6:<\/strong> Predicting future watch setting (source: <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/2959100.2959190\"  rel=\"noreferrer noopener\">Covington et al., RecSys\u201916<\/a>).<\/figcaption><\/figure>\n<\/div>\n<p><strong>Figure 7<\/strong> shows the performance of the candidate generation network when different sets of features are given input to the network and network depth is varied. The performance is measured via holdout mean average precision (MAP), which measures how accurately the models predict held-out watches. The network achieves the best performance using all features (watch history, search history, example age, demographics). Further, the performance improves monotonically with an increase in the network depth.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/lh4.googleusercontent.com\/gpHfgu5Kju45yMKvlc2oWoZwhSj-9ICgdQsr26az099ruq4DSORinb8sSJTEEJKOC_O9uUI70SFxrs-6pP_8PrXYOhra0Grsuvcj7xerlxlXMnEG6OWa5Z-9dlgrMXziAN2Q7NnLNxlV1VCZgfNu-gg\"  rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/gpHfgu5Kju45yMKvlc2oWoZwhSj-9ICgdQsr26az099ruq4DSORinb8sSJTEEJKOC_O9uUI70SFxrs-6pP_8PrXYOhra0Grsuvcj7xerlxlXMnEG6OWa5Z-9dlgrMXziAN2Q7NnLNxlV1VCZgfNu-gg\" alt=\"\" width=\"663\" height=\"500\"\/><\/a><figcaption><strong> Figure 7:<\/strong> Performance of candidate generation network with different sets of features as input  (source: <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/2959100.2959190\"  rel=\"noreferrer noopener\">Covington et al., RecSys\u201916<\/a>).<\/figcaption><\/figure>\n<\/div>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h3Network\"\/>\n<h3><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h3Network\"><strong>Ranking Network<\/strong><\/a><\/h3>\n<p>The goal of the ranking network is to take the video candidates from the candidate generation network and rank them in decreasing order of their relevance to the user. A user might watch a particular video with a high probability, but because the thumbnail image is not appealing, the user never clicks it. <\/p>\n<p>Hence, the ranking network takes in many more features describing the video (e.g., video thumbnail, video content, etc.) and the user&#8217;s relationship to the video to assign a relevance score. The network uses both categorical and continuous features. Categorial features can be binary (e.g., whether the user is logged in?) or have millions of values (e.g., the user&#8217;s last search query).<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h4Selection\"\/>\n<h4><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h4Selection\"><strong>Feature Selection<\/strong><\/a><\/h4>\n<p>Continuous features describe a user\u2019s past interaction with similar videos. For example, while scoring a video uploaded by channel X, it is important to consider how many videos a user has watched from channel X? Or when was the last time the user watched a similar video. <\/p>\n<p>Other continuous features include signals from the candidate generation network. For example, what score was assigned by the candidate generation network? Or which sources are nominating the video candidate? <\/p>\n<p>Further, features describing the frequency of past video impressions are also critical so that successive requests return different recommendations. If a user recently recommended a video but did not watch it, the model should reduce its relevance score.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h4Architecture\"\/>\n<h4><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h4Architecture\"><strong>Architecture <\/strong><\/a><\/h4>\n<p><strong>Figure 8 <\/strong>describes the overall architecture of the ranking network.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/lh4.googleusercontent.com\/bMX6KOf_wOcrkLS40H6ly6uZzUTY0UYZ7MQ6t9eLiyKUMboFvFEK1bFsD8LTvwHAw_I6A0Up041jfBW6HOpfQV_O1gDLomGn2Bly3gHI6_cPVgDemvfSl3ue5uYo5lKKL_7p83L9giIML3gGEN7u9CA\"  rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/bMX6KOf_wOcrkLS40H6ly6uZzUTY0UYZ7MQ6t9eLiyKUMboFvFEK1bFsD8LTvwHAw_I6A0Up041jfBW6HOpfQV_O1gDLomGn2Bly3gHI6_cPVgDemvfSl3ue5uYo5lKKL_7p83L9giIML3gGEN7u9CA\" alt=\"\" width=\"700\" height=\"441\"\/><\/a><figcaption><strong> Figure 8:<\/strong> Architecture of ranking network (source: <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/2959100.2959190\"  rel=\"noreferrer noopener\">Covington et al., RecSys\u201916<\/a>).<\/figcaption><\/figure>\n<\/div>\n<p>Like the candidate generation network, the video IDs are mapped to their respective fixed-sized embeddings, which are learned along with the network parameters. The network takes the embedding of candidate videos, the average embedding of watched videos, and user and video language embeddings as inputs. <\/p>\n<p>For continuous features like \u201ctime since last watch\u201d and \u201c# previous impressions,\u201d we first normalize the values such that the feature is equally distributed in the range <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/840\/84037ac2ca001c0ec4ddbca41884f8a1-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='[0,1)' title='[0,1)' class='latex' \/>. In <strong>Figure 9<\/strong>, <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/2a9\/2a95aaaf954c2187999c6357b04a58dd-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='\\hat{x}' title='\\hat{x}' class='latex' \/> represents the normalized feature. We also provide powers of normalized features such as <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/ba1\/ba13bda1204d1b05094fabf2d0a69ba0-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='\\hat{x}^2' title='\\hat{x}^2' class='latex' \/>, <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/d5f\/d5ff38faea82871c7b30d22a28588967-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='\\sqrt{\\hat{x}}' title='\\sqrt{\\hat{x}}' class='latex' \/> as inputs to give the network more expressive power by allowing it to form super- and sub-linear functions of the feature easily.<\/p>\n<p>The networks take all these features (in reality, more than we described) and pass them through a fully connected network to predict the expected watch time via weighted logistic regression. In weighted logistic regression, the positive (clicked) impressions are weighted by the observed watch time on the video. Negative (unclicked) impressions all receive unit weight.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h3Toward\"\/>\n<h3><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h3Toward\"><strong>Toward Multi-Task Ranking System<\/strong><\/a><\/h3>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h4Learning\"\/>\n<h4><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h4Learning\"><strong>Multi-Task Learning<\/strong><\/a><\/h4>\n<p>In the approach described above, the main objective of the ranking system was to improve the likelihood of a video being watched or clicked. However, in reality, the task of recommending videos is multi-objective. For example, we may want to recommend videos that users rate highly and share with their friends in addition to watching.<\/p>\n<p>Further, the system often has implicit bias where the user might have clicked or watched a video simply because it was ranked high and not because the user liked it. This will further get amplified via feedback loops as such videos will be considered positive examples while updating the network.<\/p>\n<p>Objectives can be categorized into two categories: <\/p>\n<ol>\n<li>Engagement level objectives include clicks, watches, intensity of watch, etc.<\/li>\n<li>Satisfaction objectives include liking a  video, leaving a rating, sharing, etc.<\/li>\n<\/ol>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h4Experts\"\/>\n<h4><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h4Experts\"><strong>Multi-Gate Mixture of Experts<\/strong><\/a><\/h4>\n<p>To model these multiple objectives, YouTube leverages a Multi-Gate Mixture of Experts (MMoE) to learn parameters to share across potentially conflicting objectives. The mixture of experts is a popular machine-learning technique that uses multiple expert networks. <\/p>\n<p>It modularizes the input layer into several experts, each focusing on different input aspects. This improves the representation of learning. Then, by utilizing multiple gating networks, each objective can choose experts to share or not share with others. <\/p>\n<p>YouTube models engagement level objectives via two types of tasks:<\/p>\n<ul>\n<li>binary classification task for predicting the user click probability<\/li>\n<li>regression task to predict time spent on a video<\/li>\n<\/ul>\n<p>Similarly, satisfaction level objectives can be modeled via binary classification tasks (e.g., predicting user likes and shares) and regression tasks (predicting ratings).<\/p>\n<p>As shown in <strong>Figure 9<\/strong>, for each video candidate and query (can be a video or search query), the model takes their embeddings as inputs along with user and context features. Then, scores from these multiple objective tasks (engagement and satisfaction) are obtained using MMoE. These scores are then combined into a single score using weighted multiplication (weights are manually tuned to achieve the best performance) during serving. <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/lh3.googleusercontent.com\/srMvHUT3vxROj1BvZGFdmxKdAb4dsNcZxicVjXN_YC79rROVlvESc6BZNFhahKaAJt07SQHTbr-QxTpbsLhUe7O9gk_bvz2CeC1H5xCPWgkkbat_x91YvKZd4sT1UfNibS4mIjP0ytCpNqvO-5lW9zw\"  rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/srMvHUT3vxROj1BvZGFdmxKdAb4dsNcZxicVjXN_YC79rROVlvESc6BZNFhahKaAJt07SQHTbr-QxTpbsLhUe7O9gk_bvz2CeC1H5xCPWgkkbat_x91YvKZd4sT1UfNibS4mIjP0ytCpNqvO-5lW9zw\" alt=\"\" width=\"684\" height=\"500\"\/><\/a><figcaption><strong> Figure 9:<\/strong> Overview of the multi-task objective ranking system using a multi-gate mixture of experts (source: <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/3298689.3346997\"  rel=\"noreferrer noopener\">Zhao et al., RecSys\u201919<\/a>).<\/figcaption><\/figure>\n<\/div>\n<p>MMoE is a soft parameter-sharing model structure with expert networks shared across all tasks but gating networks trained for each task. As shown in <strong>Figure 10<\/strong>, multiple experts are added on top of a shared bottom layer. This way, MoE can learn modularized information from the input. The implementation of expert networks is similar to multi-layer perceptrons with ReLU activations.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/lh6.googleusercontent.com\/QOBdBeniGsacdTaMm1EHsUgvKaiMnitogrNH8va4hFmTQyxAsigaokOmSPq3GkL8clbGB9tKUdj8UQ3BF7PDonfH6r3mbOH2e7lycwTnVxiXIg1ojSxgbDhCOIwAsyLWFTSVp8ewgXvmJykT4ecoJpo\"  rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/QOBdBeniGsacdTaMm1EHsUgvKaiMnitogrNH8va4hFmTQyxAsigaokOmSPq3GkL8clbGB9tKUdj8UQ3BF7PDonfH6r3mbOH2e7lycwTnVxiXIg1ojSxgbDhCOIwAsyLWFTSVp8ewgXvmJykT4ecoJpo\" alt=\"\" width=\"700\" height=\"206\"\/><\/a><figcaption><strong> Figure 10:<\/strong> Comparison of a conventional shared-bottom architecture with a multi-gate mixture of experts (MMoE) (source: <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/3298689.3346997\"  rel=\"noreferrer noopener\">Zhao et al., RecSys\u201919<\/a>).<\/figcaption><\/figure>\n<\/div>\n<p>Given a task <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/8ce\/8ce4b16b22b58894aa86c421e8759df3-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='k' title='k' class='latex' \/>, the prediction <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/250\/250de32696532bcb35869b1d0f7813c9-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='y_k' title='y_k' class='latex' \/> of the MMoE (with <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/6f8\/6f8f57715090da2632453988d9a1501b-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='m' title='m' class='latex' \/> expert networks) is given as follows:<\/p>\n<p class=\"has-text-align-center\"><img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/1b0\/1b07a31b74c834fae10979655347afb5-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='f^k(x) = \\sum_{i=1}^m g^k_i(x) \\cdot f_i(x)' title='f^k(x) = \\sum_{i=1}^m g^k_i(x) \\cdot f_i(x)' class='latex' srcset='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/1b0\/1b07a31b74c834fae10979655347afb5-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1 183w,https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/1b0\/1b07a31b74c834fae10979655347afb5-ffffff-000000-0.png?size=126x14&#038;lossy=2&#038;strip=1&#038;webp=1 126w' sizes='(max-width: 183px) 100vw, 183px' \/><\/p>\n<p class=\"has-text-align-center\"><img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/e42\/e426c81d6706f45215d9cf447351d40a-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='y_k  = h^k(f^k(x)),' title='y_k  = h^k(f^k(x)),' class='latex' \/><\/p>\n<p>where <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/a23\/a230e1b872d6720d1cc617862626ffde-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='f_i(x)' title='f_i(x)' class='latex' \/> is the <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/865\/865c0c0b4ab0e063e5caa3387c1a8741-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='i' title='i' class='latex' \/>th expert network, <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/6dc\/6dc8af635aa7f27cf9d1dcd807b1712a-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='g^k(x) \\in \\Re^m' title='g^k(x) \\in \\Re^m' class='latex' \/> is the gating network for task <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/8ce\/8ce4b16b22b58894aa86c421e8759df3-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='k' title='k' class='latex' \/>, and <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/a17\/a17a14d157e6c7cc499f1af22704f5a3-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='h^k(x)' title='h^k(x)' class='latex' \/> is the final prediction layer for task <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/8ce\/8ce4b16b22b58894aa86c421e8759df3-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='k' title='k' class='latex' \/>.<\/p>\n<p>The gating networks are simple linear transformations of the input with the softmax layer<\/p>\n<p class=\"has-text-align-center\"><img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/a8b\/a8b7a240988ce7a0c2ced7561790c5f3-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='g^k(x) = \\text{softmax}(W^k \\cdot x),' title='g^k(x) = \\text{softmax}(W^k \\cdot x),' class='latex' srcset='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/a8b\/a8b7a240988ce7a0c2ced7561790c5f3-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1 177w,https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/a8b\/a8b7a240988ce7a0c2ced7561790c5f3-ffffff-000000-0.png?size=126x13&#038;lossy=2&#038;strip=1&#038;webp=1 126w' sizes='(max-width: 177px) 100vw, 177px' \/><\/p>\n<p>where <img src='https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/latex\/8cf\/8cf9ad073f2f60726b2860bf383009b5-ffffff-000000-0.png?lossy=2&#038;strip=1&#038;webp=1' alt='W^k \\in \\Re^{n \\times d}' title='W^k \\in \\Re^{n \\times d}' class='latex' \/> are the parameters of the gating network.<\/p>\n<p><strong>Table 1<\/strong> reports the improvement in engagement and satisfaction level metrics when the number of experts in MMoE architecture varies.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/lh3.googleusercontent.com\/eq3a-EORw4sOWr4KozSt_J3b9wKiC2-C9X0IOovD9qHeZ6CzsXUvZSscmhYbnQyzP3qyQS-vdO9zlNXoC1T92x2hOZVouDHJTh8eKNdGk-nYZ-Q8VU_S8ucVv6ku0lFzuRuFDz_MyNoPzQYIUSvl_Wg\"  rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/eq3a-EORw4sOWr4KozSt_J3b9wKiC2-C9X0IOovD9qHeZ6CzsXUvZSscmhYbnQyzP3qyQS-vdO9zlNXoC1T92x2hOZVouDHJTh8eKNdGk-nYZ-Q8VU_S8ucVv6ku0lFzuRuFDz_MyNoPzQYIUSvl_Wg\" alt=\"\" width=\"700\" height=\"129\"\/><\/a><figcaption><strong> Table 1:<\/strong> Performance of MMoE compared to shared-bottom architecture (source: <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/3298689.3346997\"  rel=\"noreferrer noopener\">Zhao et al., RecSys\u201919<\/a>).<\/figcaption><\/figure>\n<\/div>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h4Bias\"\/>\n<h4><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h4Bias\"><strong>Learning Selection Bias<\/strong><\/a><\/h4>\n<p>In case you have not noticed, <strong>Figure 9<\/strong> shows another component called a \u201cshallow tower.\u201d The role of this shallow tower is to mitigate positional bias in the ranked items. In a ranking system, it is common for the users to click the videos that are on the top, even if they are irrelevant to the user and the given context (search query or video being watched currently). This is referred to as position bias.<\/p>\n<p><strong>Figure 11<\/strong> illustrates the distribution of CTR (click-through rate) for positions 1 to 9. The CTR represents the probability of an item being clicked by the user (i.e., an engagement level metric). As can be seen, the CTR is significantly higher for top positions because of position bias.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/lh4.googleusercontent.com\/inhth2iQLpFqYGnsUdpCXSCqXpm9N1-LcVFVerTSocPwjfOStEFRABUo_E-hcWldqpZaXm-X1MNsixPO52iA2_jfKd9c-fhx6CXTjDyOzOcCpOyFoApQr3NlubZRZtUzGJ1uLDkDdrsXFaNjuLBqujE\"  rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/inhth2iQLpFqYGnsUdpCXSCqXpm9N1-LcVFVerTSocPwjfOStEFRABUo_E-hcWldqpZaXm-X1MNsixPO52iA2_jfKd9c-fhx6CXTjDyOzOcCpOyFoApQr3NlubZRZtUzGJ1uLDkDdrsXFaNjuLBqujE\" alt=\"\" width=\"700\" height=\"401\"\/><\/a><figcaption><strong> Figure 11:<\/strong> Distribution of CTR (click-through rate) for positions 1 to 9 (source: <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/3298689.3346997\"  rel=\"noreferrer noopener\">Zhao et al., RecSys\u201919<\/a>).<\/figcaption><\/figure>\n<\/div>\n<p>To remove this position bias, YouTube factorizes the model prediction into two components: the user utility component from the main ranking network (that uses MMoE) and the position bias components. This is illustrated in <strong>Figure 12<\/strong>.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/lh5.googleusercontent.com\/wa7lA3MzrWoaLokY6raR1Pw36VZUv-SQpFod0aKojji2con3oQmH1b09ON4N-TFeSFqNtL9Zzz3tZK-tH1aDz_5HOu35iepYCovs1mXfqER4WvRBI1OtLrgdnpqNO6yIk6ok1NN6wUXmkCi7EZtEpn8\"  rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/wa7lA3MzrWoaLokY6raR1Pw36VZUv-SQpFod0aKojji2con3oQmH1b09ON4N-TFeSFqNtL9Zzz3tZK-tH1aDz_5HOu35iepYCovs1mXfqER4WvRBI1OtLrgdnpqNO6yIk6ok1NN6wUXmkCi7EZtEpn8\" alt=\"\" width=\"700\" height=\"412\"\/><\/a><figcaption><strong> Figure 12:<\/strong> Shallow tower network for incorporating position bias (source: <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/3298689.3346997\"  rel=\"noreferrer noopener\">Zhao et al., RecSys\u201919<\/a>).<\/figcaption><\/figure>\n<\/div>\n<p>More specifically, a shallow tower or network is trained with features contributing to position bias to output a position bias logit. This position bias logit is then added with the logit from the main ranking network. During training, the positions of all candidate videos are used with a 10% feature drop to prevent the model from over-relying on the position bias of the video.<\/p>\n<p>This feature is treated as missing during serving time, and the ranking is done based on the scores from the main ranking network.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<div id=\"pitch\" style=\"padding: 40px; width: 100%; background-color: #F4F6FA;\">\n<h3>What&#8217;s next? I recommend <a  href=\"https:\/\/pyimagesearch.com\/pyimagesearch-university\/?utm_source=blogPost&#038;utm_medium=bottomBanner&#038;utm_campaign=What%27s%20next%3F%20I%20recommend\">PyImageSearch University<\/a>.<\/h3>\n<p>\t<script src=\"https:\/\/fast.wistia.com\/embed\/medias\/kno0cmko2z.jsonp\" async><\/script><script src=\"https:\/\/fast.wistia.com\/assets\/external\/E-v1.js\" async><\/script><\/p>\n<div class=\"wistia_responsive_padding\" style=\"padding:56.25% 0 0 0;position:relative;\">\n<div class=\"wistia_responsive_wrapper\" style=\"height:100%;left:0;position:absolute;top:0;width:100%;\">\n<div class=\"wistia_embed wistia_async_kno0cmko2z videoFoam=true\" style=\"height:100%;position:relative;width:100%\">\n<div class=\"wistia_swatch\" style=\"height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;transition:opacity 200ms;width:100%;\"><img decoding=\"async\" src=\"https:\/\/fast.wistia.com\/embed\/medias\/kno0cmko2z\/swatch\" style=\"filter:blur(5px);height:100%;object-fit:contain;width:100%;\" alt=\"\" aria-hidden=\"true\" onload=\"this.parentNode.style.opacity=1;\" \/><\/div>\n<\/div>\n<\/div>\n<\/div>\n<div style=\"margin-top: 32px; margin-bottom: 32px; \">\n\t\t<strong>Course information:<\/strong><br \/>\n\t\t80 total classes \u2022 105+ hours of on-demand code walkthrough videos \u2022 Last updated: September 2023<br \/>\n\t\t<span style=\"color: #169FE6;\">\u2605\u2605\u2605\u2605\u2605<\/span> 4.84 (128 Ratings) \u2022 16,000+ Students Enrolled\n\t<\/div>\n<p><strong>I strongly believe that if you had the right teacher you could <em>master<\/em> computer vision and deep learning.<\/strong><\/p>\n<p>Do you think learning computer vision and deep learning has to be time-consuming, overwhelming, and complicated? Or has to involve complex mathematics and equations? Or requires a degree in computer science?<\/p>\n<p>That\u2019s <em>not<\/em> the case.<\/p>\n<p>All you need to master computer vision and deep learning is for someone to explain things to you in <em>simple, intuitive<\/em> terms. <em>And that\u2019s exactly what I do<\/em>. My mission is to change education and how complex Artificial Intelligence topics are taught.<\/p>\n<p>If you&#8217;re serious about learning computer vision, your next stop should be PyImageSearch University, the most comprehensive computer vision, deep learning, and OpenCV course online today. Here you\u2019ll learn how to <em>successfully<\/em> and <em>confidently<\/em> apply computer vision to your work, research, and projects. Join me in computer vision mastery.<\/p>\n<p><strong>Inside PyImageSearch University you&#8217;ll find:<\/strong><\/p>\n<ul style=\"margin-left: 0px;\">\n<li style=\"list-style: none;\">&check; <strong>80 courses<\/strong> on essential computer vision, deep learning, and OpenCV topics<\/li>\n<li style=\"list-style: none;\">&check; <strong>80 Certificates<\/strong> of Completion<\/li>\n<li style=\"list-style: none;\">&check; <strong>105+ hours<\/strong> of on-demand video<\/li>\n<li style=\"list-style: none;\">&check; <strong>Brand new courses released <em>regularly<\/em><\/strong>, ensuring you can keep up with state-of-the-art techniques<\/li>\n<li style=\"list-style: none;\">&check; <strong>Pre-configured Jupyter Notebooks in Google Colab<\/strong><\/li>\n<li style=\"list-style: none;\">&check; Run all code examples in your web browser \u2014 works on Windows, macOS, and Linux (no dev environment configuration required!)<\/li>\n<li style=\"list-style: none;\">&check; Access to <strong>centralized code repos for <em>all<\/em> 520+ tutorials<\/strong> on PyImageSearch<\/li>\n<li style=\"list-style: none;\">&check; <strong> Easy one-click downloads<\/strong> for code, datasets, pre-trained models, etc.<\/li>\n<li style=\"list-style: none;\">&check; <strong>Access<\/strong> on mobile, laptop, desktop, etc.<\/li>\n<\/ul>\n<p style=\"text-align: center;\">\n\t\t<a  class=\"button link\" href=\"https:\/\/pyimagesearch.com\/pyimagesearch-university\/?utm_source=blogPost&#038;utm_medium=bottomBanner&#038;utm_campaign=What%27s%20next%3F%20I%20recommend\" style=\"background-color: #6DC713; border-bottom: none;\">Click here to join PyImageSearch University<\/a>\n\t<\/p>\n<\/div>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h2Summary\"\/>\n<h2><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h2Summary\"><strong>Summary<\/strong><\/a><\/h2>\n<p>This lesson discussed how YouTube video recommendations work behind the scenes. YouTube video recommendation is challenging because of a vast corpus of users and videos dynamically updated every few seconds. Hence, YouTube leverages a two-tier recommendation system consisting of a candidate generation network and a ranking network.<\/p>\n<p>The candidate generation network aims to select a few thousand video candidates from the vast corpus of videos relevant to the user and the current context. These candidates are generally relevant to the user with high precision. The candidate generation network comprises several features like user watch history, search query, demographics, user gender, example age, etc. All these features are concatenated and fed to a feed-forward network comprising fully connected layers and ReLU activation.<\/p>\n<p>To train the network, YouTube leverages implicit feedback signals where a user completing a video is considered a positive example. The training involves predicting future viewings given past search queries and watch history.<\/p>\n<p>On the other hand, the ranking network distinguishes candidates and assigns them a rank according to their relevance to the user with a high recall. This model uses a rich set of features describing the video (e.g., video thumbnail, video content, etc.) and the user&#8217;s relationship to the video to assign the relevance score between a candidate video and the user.  <\/p>\n<p>The main objective of the ranking system here is to improve the likelihood of a video being watched or clicked. However, in reality, the task of recommending videos is multi-objective. For example, engagement level objectives include clicks, watches, the intensity of watching, etc., and satisfaction objectives include liking a video, leaving a rating, sharing, etc.<\/p>\n<p>To model these multiple objectives, YouTube leverages a Multi-Gate Mixture of Experts (MMoE) to learn parameters to share across potentially conflicting objectives. The mixture of experts is a popular machine-learning technique that uses multiple expert networks. <\/p>\n<p>This is just the tip of the iceberg, as there is much more to YouTube recommendation systems. Stay tuned for the last lesson of this series, where we will discuss Spotify music recommendation systems.<\/p>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" id=\"h3Citation\"\/>\n<h3><a href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/#TOC-h3Citation\"><strong>Citation Information<\/strong><\/a><\/h3>\n<p><strong>Mangla, P. <\/strong>\u201cYouTube Video Recommendation Systems,\u201d <em>PyImageSearch<\/em>, P. Chugh, A. R. Gosthipaty, S. Huot, K. Kidriavsteva, and R. Raha, eds., 2023, <a href=\"https:\/\/pyimg.co\/rvdym\"  rel=\"noreferrer noopener\">https:\/\/pyimg.co\/rvdym<\/a> <\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"classic\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">@incollection{Mangla_2023_YouTube,\n  author = {Puneet Mangla},\n  title = {{YouTube} Video Recommendation Systems},\n  booktitle = {PyImageSearch},\n  editor = {Puneet Chugh and Aritra Roy Gosthipaty and Susan Huot and Kseniia Kidriavsteva and Ritwik Raha},\n  year = {2023},\n  note = {https:\/\/pyimg.co\/rvdym},\n}<\/pre>\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<div style=\"padding: 40px; width: 100%; background-color: #F4F6FA;\">\n<img decoding=\"async\" src=\"https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2023\/05\/maskcv.png?lossy=2&#038;strip=1&#038;webp=1\" alt=\"Featured Image\" style=\"width: 100%; height: auto; margin-bottom: 20px;\" srcset=\"https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2023\/05\/maskcv.png?size=126x70&#038;lossy=2&#038;strip=1&#038;webp=1 126w, https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2023\/05\/maskcv-300x166.png?lossy=2&#038;strip=1&#038;webp=1 300w, https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2023\/05\/maskcv.png?size=378x209&#038;lossy=2&#038;strip=1&#038;webp=1 378w, https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2023\/05\/maskcv.png?lossy=2&#038;strip=1&#038;webp=1 500w\" sizes=\"(max-width: 500px) 100vw, 500px\"><\/p>\n<h3>Unleash the potential of computer vision with Roboflow &#8211; Free!<\/h3>\n<ul style=\"margin-left: 0px;\">\n<li style=\"list-style: none;\">Step into the realm of the future by <a  href=\"https:\/\/roboflow.com\/?ref=pyimagesearch\">signing up or logging into your Roboflow account<\/a>. Unlock a wealth of innovative dataset libraries and revolutionize your computer vision operations.<\/li>\n<li style=\"list-style: none;\">Jumpstart your journey by choosing from our broad array of datasets, or benefit from PyimageSearch\u2019s comprehensive library, crafted to cater to a wide range of requirements.<\/li>\n<li style=\"list-style: none;\">Transfer your data to Roboflow in any of the 40+ compatible formats. Leverage cutting-edge model architectures for training, and deploy seamlessly across diverse platforms, including API, NVIDIA, browser, iOS, and beyond. Integrate our platform effortlessly with your applications or your favorite third-party tools.<\/li>\n<li style=\"list-style: none;\">Equip yourself with the ability to train a potent computer vision model in a mere afternoon. With a few images, you can import data from any source via API, annotate images using our superior cloud-hosted tool, kickstart model training with a single click, and deploy the model via a hosted API endpoint. Tailor your process by opting for a code-centric approach, leveraging our intuitive, cloud-based UI, or combining both to fit your unique needs.<\/li>\n<li style=\"list-style: none;\">Embark on your journey today with absolutely no credit card required. Step into the future with Roboflow.<\/li>\n<\/ul>\n<p style=\"text-align: center;\">\n        <a  class=\"button link\" href=\"https:\/\/roboflow.com\/?ref=pyimagesearch\" style=\"background-color: #6DC713; border-bottom: none;\">Join Roboflow Now<\/a>\n    <\/p>\n<\/div>\n<div id=\"download-the-code\" class=\"post-cta-wrap\">\n<div class=\"gpd-post-cta\">\n<div class=\"gpd-post-cta-content\">\n<div class=\"gpd-post-cta-top\">\n<div class=\"gpd-post-cta-top-image\"><img decoding=\"async\" src=\"https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2020\/01\/cta-source-guide-1.png?lossy=2&#038;strip=1&#038;webp=1\" alt=\"\" srcset=\"https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2020\/01\/cta-source-guide-1.png?lossy=2&#038;strip=1&#038;webp=1 410w,https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2020\/01\/cta-source-guide-1.png?size=126x174&#038;lossy=2&#038;strip=1&#038;webp=1 126w,https:\/\/b2633864.smushcdn.com\/2633864\/wp-content\/uploads\/2020\/01\/cta-source-guide-1.png?size=252x348&#038;lossy=2&#038;strip=1&#038;webp=1 252w\" sizes=\"(max-width: 410px) 100vw, 410px\" \/><\/div>\n<div class=\"gpd-post-cta-top-title\">\n<h4>Join the PyImageSearch Newsletter and Grab My FREE 17-page Resource Guide PDF<\/h4>\n<\/div>\n<div class=\"gpd-post-cta-top-desc\">\n<p>Enter your email address below to <strong>join the PyImageSearch Newsletter<\/strong> and <strong>download my FREE 17-page Resource Guide PDF<\/strong> on Computer Vision, OpenCV, and Deep Learning.<\/p>\n<\/div><\/div>\n<div class=\"gpd-post-cta-bottom\">\n<form class=\"footer-cta\" action=\"https:\/\/www.getdrip.com\/forms\/657075648\/submissions\" method=\"post\"  data-drip-embedded-form=\"657075648\">\n\t\t\t\t\t<input name=\"fields[email]\" type=\"email\" value=\"\" placeholder=\"Your email address\" class=\"form-control\" \/><\/p>\n<p>\t\t\t\t\t<button type=\"submit\">Join the Newsletter!<\/button><\/p>\n<div style=\"display: none;\" aria-hidden=\"true\"><label for=\"website\">Website<\/label><br \/><input type=\"text\" id=\"website\" name=\"website\" tabindex=\"-1\" autocomplete=\"false\" value=\"\" \/><\/div>\n<\/p><\/form>\n<\/p><\/div>\n<\/p><\/div>\n<\/div>\n<\/div>\n<p>The post <a rel=\"nofollow\" href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/\">YouTube Video Recommendation Systems<\/a> appeared first on <a rel=\"nofollow\" href=\"https:\/\/pyimagesearch.com\/\">PyImageSearch<\/a>.<\/p>\n\n<p class=\"syndicated-attribution\"><figure class= \\\"wp-block-image alignnone \\\"><img src= \\\"http:\/\/itteacheritfreelance.hk\/test\/wordpress\/wp-content\/uploads\/2016\/05\/logo2-2.png\\\" alt=\\\"IT\u96fb\u8166\u88dc\u7fd2 java\u88dc\u7fd2 \u70ba\u5927\u5bb6\u914d\u5c0d\u96fb\u8166\u88dc\u7fd2,IT freelance, \u79c1\u4eba\u8001\u5e2b, PHP\u88dc\u7fd2,CSS\u88dc\u7fd2,XML,Java\u88dc\u7fd2,MySQL\u88dc\u7fd2,graphic design\u88dc\u7fd2,\u4e2d\u5c0f\u5b78ICT\u88dc\u7fd2,\u4e00\u5c0d\u4e00\u79c1\u4eba\u88dc\u7fd2\u548cFreelance\u81ea\u7531\u5de5\u4f5c\u914d\u5c0d\u3002\\\"\/><figcaption>\u7acb\u523b\u8a3b\u518a\u53ca\u5831\u540d\u96fb\u8166\u88dc\u7fd2\u8ab2\u7a0b\u5427!<\/figcaption><\/figure>\r\n<\/br>Find A Teacher Form:\r\n<\/br>https:\/\/docs.google.com\/forms\/d\/1vREBnX5n262umf4wU5U2pyTwvk9O-JrAgblA-wH9GFQ\/viewform?edit_requested=true#responses\r\n<\/br><\/br>Email:\r\n<\/br>public1989two@gmail.com<br><br><br><br><br><br><br>\r\n<a href=www.itsec.hk style=color:#FFFFFF;>www.itsec.hk<\/a><br>\r\n<a href=\\\"www.itsec.vip\\\" style=color:#FFFFFF;>www.itsec.vip<\/a><br>\r\n<a href=\\\"www.itseceu.uk\\\" style=color:#FFFFFF;>www.itseceu.uk<\/a><br><\/p>","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Table of Contents YouTube Video Recommendation Systems Overview Candidate Generation Network Architecture and Feature Representation Training Ranking Network Feature Selection Architecture Toward Multi-Task Ranking System Multi-Task Learning Multi-Gate Mixture of Experts Learning Selection Bias Summary Citation Information YouTube Video Recommendation\u2026<\/p>\n<p>The post <a rel=\"nofollow\" href=\"https:\/\/pyimagesearch.com\/2023\/09\/25\/youtube-video-recommendation-systems\/\">YouTube Video Recommendation Systems<\/a> appeared first on <a rel=\"nofollow\" href=\"https:\/\/pyimagesearch.com\/\">PyImageSearch<\/a>.<\/p>\n<\/div>","protected":false},"author":2020,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"slim_seo":{"title":"YouTube Video Recommendation Systems - ITTeacherITFreelance.hk","description":"Table of Contents YouTube Video Recommendation Systems Overview Candidate Generation Network Architecture and Feature Representation Training Ranking Network Fe"},"footnotes":""},"categories":[10700],"tags":[10722,10723,10724,10725,10726],"_links":{"self":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/329276"}],"collection":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/2020"}],"replies":[{"embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=329276"}],"version-history":[{"count":1,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/329276\/revisions"}],"predecessor-version":[{"id":329277,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/329276\/revisions\/329277"}],"wp:attachment":[{"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=329276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=329276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=329276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}