# Wide & deep learning for recommender systems

## Meta Info

Presented in [arxiv:1606.07792](http://arxiv.org/abs/1606.07792). (Accepted in [DLRS 2016](https://dl.acm.org/doi/10.1145/2988450.2988454))

Authors: Heng-Tze Cheng, Levent Koc, Jeremiah Harmsen, Tal Shaked, Tushar Chandra, Hrishi Aradhye, Glen Anderson, Greg Corrado, Wei Chai, Mustafa Ispir, Rohan Anil, Zakaria Haque, Lichan Hong, Vihan Jain, Xiaobing Liu, Hemal Shah (*Google*).

## Understanding the paper

### Background

* A recommender system
  * A search ranking system
  * Input: a set of user and contextual information
  * Output: a ranked list of items
  * Workflow
    * Retrieval
      * The retrieval system returns *a short list of items* that best match the query using various signals, usually *a combination of machine-learned models and human-defined rules*.
    * Rank (this work focuses on the ranking model)
      * Rank all items by their scores.

### Wide & Deep model structure

* Wide component
  * Generalized linear model
  * Cross-product transformation
* Deep component
  * Feed-forward NN
  * High-dimensional categorical features are converted into *a low-dimensional and dense real-valued vector*, often referred to as *an embedding vector*.
  * The dimensionality of the embeddings is usually on the order of O(10) to O(100).

### Recommendation pipeline overview

* Model Training
  * *Warm-start*: initialize a new model with the embeddings and the linear model weights from the previous model
  * *Dry-run* the model before loading the models into the servers
* Model Serving
  * Each request includes a set of item candidates and user features
  * Use *multithreading parallelism* to *run smaller batches in parallel*, instead of *scoring all candidate items in a single-batch inference*

<figure><img src="/files/PqseuUaTcWFSSmCfv1Rx" alt=""><figcaption><p>Apps recommendation pipeline overview.</p></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://paper.lingyunyang.com/reading-notes/miscellaneous/arxiv/2016/wide-and-deep-learning-for-recommender-systems.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
