Production Ranking Systems: A Review <s> Distributed Architecture <s> When designing distributed web services, there are three properties that are commonly desired: consistency, availability, and partition tolerance. It is impossible to achieve all three. In this note, we prove this conjecture in the asynchronous network model, and then discuss solutions to this dilemma in the partially synchronous model. <s> BIB001 </s> Production Ranking Systems: A Review <s> Distributed Architecture <s> MapReduce and its variants have been highly successful in implementing large-scale data-intensive applications on commodity clusters. However, most of these systems are built around an acyclic data flow model that is not suitable for other popular applications. This paper focuses on one such class of applications: those that reuse a working set of data across multiple parallel operations. This includes many iterative machine learning algorithms, as well as interactive data analysis tools. We propose a new framework called Spark that supports these applications while retaining the scalability and fault tolerance of MapReduce. To achieve these goals, Spark introduces an abstraction called resilient distributed datasets (RDDs). An RDD is a read-only collection of objects partitioned across a set of machines that can be rebuilt if a partition is lost. Spark can outperform Hadoop by 10x in iterative machine learning jobs, and can be used to interactively query a 39 GB dataset with sub-second response time. <s> BIB002 </s> Production Ranking Systems: A Review <s> Distributed Architecture <s> Sponsored search represents a major source of revenue for web search engines. This popular advertising model brings a unique possibility for advertisers to target users' immediate intent communicated through a search query, usually by displaying their ads alongside organic search results for queries deemed relevant to their products or services. However, due to a large number of unique queries it is challenging for advertisers to identify all such relevant queries. For this reason search engines often provide a service of advanced matching, which automatically finds additional relevant queries for advertisers to bid on. We present a novel advanced matching approach based on the idea of semantic embeddings of queries and ads. The embeddings were learned using a large data set of user search sessions, consisting of search queries, clicked ads and search links, while utilizing contextual information such as dwell time and skipped ads. To address the large-scale nature of our problem, both in terms of data and vocabulary size, we propose a novel distributed algorithm for training of the embeddings. Finally, we present an approach for overcoming a cold-start problem associated with new ads and queries. We report results of editorial evaluation and online tests on actual search traffic. The results show that our approach significantly outperforms baselines in terms of relevance, coverage, and incremental revenue. Lastly, we open-source learned query embeddings to be used by researchers in computational advertising and related fields. <s> BIB003 </s> Production Ranking Systems: A Review <s> Distributed Architecture <s> In this paper we present Horizon, Facebook's open source applied reinforcement learning (RL) platform. Horizon is an end-to-end platform designed to solve industry applied RL problems where datasets are large (millions to billions of observations), the feedback loop is slow (vs. a simulator), and experiments must be done with care because they don't run in a simulator. Unlike other RL platforms, which are often designed for fast prototyping and experimentation, Horizon is designed with production use cases as top of mind. The platform contains workflows to train popular deep RL algorithms and includes data preprocessing, feature transformation, distributed training, counterfactual policy evaluation, optimized serving, and a model-based data understanding tool. We also showcase and describe real examples where reinforcement learning models trained with Horizon significantly outperformed and replaced supervised learning systems at Facebook. <s> BIB004 </s> Production Ranking Systems: A Review <s> Distributed Architecture <s> The application of deep learning techniques resulted in remarkable improvement of machine learning models. In this paper provides detailed characterizations of deep learning models used in many Facebook social network services. We present computational characteristics of our models, describe high performance optimizations targeting existing systems, point out their limitations and make suggestions for the future general-purpose/accelerated inference hardware. Also, we highlight the need for better co-design of algorithms, numerics and computing platforms to address the challenges of workloads often run in data centers. <s> BIB005
Distributed databases employ a cluster of machines and coordinate data storage and computations across the cluster. is architecture can be leveraged for data processing layers of ranking systems to aggregate, normalize, and featurize training data BIB004 BIB005 . Recent work has also employed this architecture for representation learning via proprietary distributed computing technologies, such as those used for distributed computation of embeddings BIB004 BIB003 or via open source libraries such as those available in Spark BIB002 . Several forms of candidate selection, those based on hashing, can also be performed on distributed databases. ese architectures are used to serve learned representations and results from candidate selection to online models. Distributed databases further provide the ability to simultaneously write billions of records, a ording the ability to capture user interaction data from millions or billions of users simultaneously. Distributed databases also a ord high scalability, as new machines can be added to a cluster ad hoc to support increases in volume of data. ese systems have their own limitations though. One such limitation is described by the CAP theorem which maintains that a distributed data store can not simultaneously provide consistency, availability and partition tolerance BIB001 . us each distributed framework trades o one of these goals for the others, some prioritizing rapid capturing of user interaction with others prioritizing high availability to support real time response. is may require a single ranking system to employ several di erent distributed datastores, one to capture and process data, another to make data highly available to online models. Distributed data stores also require computations to be wri en within speci c programming paradigms, such as MapReduce, which do not easily represent deep learning computations or graph based computations  . Furthermore, model training and prediction on distributed data stores require transference of model weights across entire clusters, which is infeasible for complex deep learning models with many parameters.