<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="review-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Big Data</journal-id>
<journal-title>Frontiers in Big Data</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Big Data</abbrev-journal-title>
<issn pub-type="epub">2624-909X</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fdata.2019.00049</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Big Data</subject>
<subj-group>
<subject>Review</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Attribute-Aware Recommender System Based on Collaborative Filtering: Survey and Classification</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Chen</surname> <given-names>Wen-Hao</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/787196/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Hsu</surname> <given-names>Chin-Chi</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/875172/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Lai</surname> <given-names>Yi-An</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Liu</surname> <given-names>Vincent</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Yeh</surname> <given-names>Mi-Yen</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/570868/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Lin</surname> <given-names>Shou-De</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/547806/overview"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Department of Computer Science and Information Engineering, National Taiwan University</institution>, <addr-line>Taipei</addr-line>, <country>Taiwan</country></aff>
<aff id="aff2"><sup>2</sup><institution>Institute of Information Science, Academia Sinica</institution>, <addr-line>Taipei</addr-line>, <country>Taiwan</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Xing Xie, Microsoft Research Asia, China</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Atsuyoshi Nakamura, Hokkaido University, Japan; Suhang Wang, Pennsylvania State University (PSU), United States</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Wen-Hao Chen <email>b02902023&#x00040;ntu.edu.tw</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Data Mining and Management, a section of the journal Frontiers in Big Data</p></fn></author-notes>
<pub-date pub-type="epub">
<day>15</day>
<month>01</month>
<year>2020</year>
</pub-date>
<pub-date pub-type="collection">
<year>2019</year>
</pub-date>
<volume>2</volume>
<elocation-id>49</elocation-id>
<history>
<date date-type="received">
<day>09</day>
<month>08</month>
<year>2019</year>
</date>
<date date-type="accepted">
<day>29</day>
<month>11</month>
<year>2019</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2020 Chen, Hsu, Lai, Liu, Yeh and Lin.</copyright-statement>
<copyright-year>2020</copyright-year>
<copyright-holder>Chen, Hsu, Lai, Liu, Yeh and Lin</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license>
</permissions>
<abstract><p>Attribute-aware CF models aim at rating prediction given not only the historical rating given by users to items but also the information associated with users (e.g., age), items (e.g., price), and ratings (e.g., rating time). This paper surveys work in the past decade to develop attribute-aware CF systems and finds that they can be classified into four different categories mathematically. We provide readers not only with a high-level mathematical interpretation of the existing work in this area but also with mathematical insight into each category of models. Finally, we provide in-depth experiment results comparing the effectiveness of the major models in each category.</p></abstract>
<kwd-group>
<kwd>recommender system</kwd>
<kwd>matrix factorization</kwd>
<kwd>collaborative filtering</kwd>
<kwd>attribute</kwd>
<kwd>survey</kwd>
</kwd-group>
<counts>
<fig-count count="17"/>
<table-count count="12"/>
<equation-count count="51"/>
<ref-count count="125"/>
<page-count count="30"/>
<word-count count="22017"/>
</counts>
</article-meta> 
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>Collaborative filtering is arguably the most effective method for building a recommender system. It assumes that a user&#x00027;s preferences regarding items can be inferred collaboratively from other users&#x00027; preferences. In practice, users&#x00027; past records regarding items, such as explicit ratings or implicit feedback (e.g., binary access records), are typically used to infer similarity of taste among users for the purposes of recommendation. In the past decade, <italic>matrix factorization</italic> (MF) has become a widely adopted method of collaborative filtering. Specifically, MF learns a latent representation vector for a user and an item and computes their inner products as the predicted rating. The learned latent user/item factors are supposed to embed specific information about the user/item. That is, two users with similar latent representations will have similar tastes regarding items with similar latent vectors.</p>
<p>In the big data era, classical MF using only ratings suffers a serious drawback, as such a method is unable to exploit other accessible information such as the attributes of users/items/ratings. For instance, data could contain the location and time that a user rated an item. These rating-relevant attributes, or <italic>contexts</italic>, could be useful in determining the scale of user liking for an item. The <italic>side information</italic> or attributes relevant to users or items (e.g., the demographic information of users or the item genre) can also reveal useful information. Such side information is particularly useful for situations where the ratings of a user or an item are sparse, which is known as the <italic>cold-start</italic> problem for recommender systems. Therefore, researchers have formulated <italic>attribute-aware recommender systems</italic> (see <xref ref-type="fig" rid="F1">Figure 1</xref>) aiming at leveraging not only the rating information but also the attributes associated with ratings/users/items to improve the quality of recommendation.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Interpretation of inputs, including ratings and attributes, in attribute-aware collaborative filtering-based recommender systems.</p></caption>
<graphic xlink:href="fdata-02-00049-g0001.tif"/>
</fig>
<p>Researchers have proposed different methods to extend existing collaborative filtering models in recent years, such as factorization machines, probabilistic graphical models, kernel tricks, and models based on deep neural networks. We notice that those papers can also be categorized based on the type of attributes incorporated into the models. A class of recommender systems considers relevant side information, such as age, gender, the occupation of users, or the expiration and price of items when predicting ratings (e.g., Adams et al., <xref ref-type="bibr" rid="B1">2010</xref>; Porteous et al., <xref ref-type="bibr" rid="B82">2010</xref>; Fang and Si, <xref ref-type="bibr" rid="B25">2011</xref>; Ning and Karypis, <xref ref-type="bibr" rid="B77">2012</xref>; Zhou et al., <xref ref-type="bibr" rid="B125">2012</xref>; Park et al., <xref ref-type="bibr" rid="B79">2013</xref>; Xu et al., <xref ref-type="bibr" rid="B108">2013</xref>; Kim and Choi, <xref ref-type="bibr" rid="B53">2014</xref>; Lu et al., <xref ref-type="bibr" rid="B68">2016</xref>; Zhao et al., <xref ref-type="bibr" rid="B120">2016</xref>; Feipeng Zhao, <xref ref-type="bibr" rid="B26">2017</xref>; Guo, <xref ref-type="bibr" rid="B35">2017</xref>; Yu et al., <xref ref-type="bibr" rid="B114">2017</xref>; Zhou T. et al., <xref ref-type="bibr" rid="B124">2017</xref>). On the other hand, <italic>context-aware recommender systems</italic> (e.g., Shin et al., <xref ref-type="bibr" rid="B97">2009</xref>; Karatzoglou et al., <xref ref-type="bibr" rid="B51">2010</xref>; Li et al., <xref ref-type="bibr" rid="B64">2010b</xref>; Baltrunas et al., <xref ref-type="bibr" rid="B5">2011</xref>; Rendle et al., <xref ref-type="bibr" rid="B84">2011</xref>; Hidasi and Tikk, <xref ref-type="bibr" rid="B42">2012</xref>, <xref ref-type="bibr" rid="B43">2016</xref>; Shi et al., <xref ref-type="bibr" rid="B93">2012a</xref>, <xref ref-type="bibr" rid="B92">2014a</xref>; Liu and Aberer, <xref ref-type="bibr" rid="B65">2013</xref>; Chen et al., <xref ref-type="bibr" rid="B15">2014</xref>; Nguyen et al., <xref ref-type="bibr" rid="B76">2014</xref>; Hidasi, <xref ref-type="bibr" rid="B41">2015</xref>; Liu and Wu, <xref ref-type="bibr" rid="B66">2015</xref>) enhance themselves by considering the attributes appended to each rating (e.g., rating time, rating location). Other terms may be used to indicate attributes interchangeably such as <italic>metadata</italic> (Kula, <xref ref-type="bibr" rid="B58">2015</xref>), <italic>features</italic> (Chen et al., <xref ref-type="bibr" rid="B18">2012</xref>), <italic>taxonomy</italic> (Koenigstein et al., <xref ref-type="bibr" rid="B54">2011</xref>), <italic>entities</italic> (Yu et al., <xref ref-type="bibr" rid="B115">2014</xref>), <italic>demographic data</italic> (Safoury and Salah, <xref ref-type="bibr" rid="B85">2013</xref>), <italic>categories</italic> (Chen et al., <xref ref-type="bibr" rid="B19">2016</xref>), <italic>contexture information</italic> (Weng et al., <xref ref-type="bibr" rid="B106">2009</xref>), etc. The above setups all share the same mathematical representation; thus, technically, we do not distinguish them in this paper. That is, we regard whichever information is associated with a user/item/rating as user/item/rating attributes, regardless of its nature. Therefore, a CF model that takes advantage of ratings as well as associated attributes is called an <italic>attribute-aware recommender</italic> in this paper.</p>
<p>Note that the attribute-aware recommender systems discussed in this paper are not equivalent to hybrid recommender systems. The former treat additional information as attributes, while the latter emphasize the combination of collaborative filtering-based methods and content-based methods. To be more precise, this review covers only works that assume unstructured and independent attributes, either in binary or numerical format, for each user, item, or rating. The reviewed models do not have prior knowledge of the dependency between attributes, such as the adjacent terms in a document or user relationships in a social network.</p>
<p>This review covers more than one hundred papers in this area in the past decade. We find that the majority of the works propose an extension of matrix factorization to incorporate attribute information in collaborative filtering. The main contribution of this paper is to not only provide a comprehensive review, but also provide a means to classify these works into four categories: (I) <italic>discriminative matrix factorization</italic>, (II) <italic>generative matrix factorization</italic>, (III) <italic>generalized factorization</italic>, and (IV) <italic>heterogeneous graphs</italic>. For each category, we provide the probabilistic interpretation of the models. The major distinction of these four categories lies in their representation of the interactions between users, items, and attributes. Discriminative matrix factorization models extend the traditional MF by treating the attributes as prior knowledge to learn the latent representation of users or items. Generative matrix factorization further considers the distributions of attributes and learns such, together with the rating distributions. Generalized factorization models view the user/item identity simply as a kind of attribute, and various models have been designed for determining the low-dimensional representation vectors for rating prediction. The last category of models proposes to represent the users, items, and attributes using a heterogeneous graph, where a recommendation task can be cast into a link-prediction task on the heterogeneous graph. In the following sections, we will elaborate on general mathematical explanations of the four types of model designs and discuss the similarities/differences among the models.</p>
<p>There have been four prior reviews (Adomavicius and Tuzhilin, <xref ref-type="bibr" rid="B3">2011</xref>; Verbert et al., <xref ref-type="bibr" rid="B102">2012</xref>; Bobadilla et al., <xref ref-type="bibr" rid="B11">2013</xref>; Shi et al., <xref ref-type="bibr" rid="B95">2014b</xref>) introducing attribute-aware recommender systems. We claim three major differences between our work and the existing papers. First, previous review papers mainly focused on grouping different types of attributes and discussing the distinctions of memory-based collaborative filtering and model-based collaborative filtering. In contrast, we are the first that have aimed at classifying the existing works based on the methodology proposed instead of the type of data used. We further provide mathematical connections for different types of models so that the readers can better understand the spirit of the design of different models as well as their technical differences. Second, we are the first to provide thorough experiment results (seven different models on eight benchmark datasets) to compare different types of attribute-award recommendation systems. Note that Bobadilla et al. (<xref ref-type="bibr" rid="B11">2013</xref>) is the only previous review work with experimental results. However, for that study, experiments were performed to compare different similarity measures in collaborative filtering algorithms instead of directly verifying the effectiveness of different attribute-aware recommender systems. Finally, we cover the latest work on attribute-aware recommender systems. We note that the existing review papers do not include <italic>forty</italic> papers after 2015. In recent years, several deep neural network-based solutions (Zhang et al., <xref ref-type="bibr" rid="B118">2017</xref>) have achieved state-of-the-art performance for this task.</p>
<p><xref ref-type="table" rid="T1">Table 1</xref> shows comparisons between our work and previous reviews.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Differences between previous works and our work.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Difference</bold></th>
<th valign="top" align="left"><bold>Previous works (Adomavicius and Tuzhilin, <xref ref-type="bibr" rid="B3">2011</xref>; Verbert et al., <xref ref-type="bibr" rid="B102">2012</xref>; Bobadilla et al., <xref ref-type="bibr" rid="B11">2013</xref>; Shi et al., <xref ref-type="bibr" rid="B95">2014b</xref>)</bold></th>
<th valign="top" align="left"><bold>Our work</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Attribute discussions</td>
<td valign="top" align="left">Categories and definitions of diversified attributes</td>
<td valign="top" align="left">Mathematical formulations of the most general attribute vectors</td>
</tr>
<tr>
<td valign="top" align="left">Model introduction</td>
<td valign="top" align="left">High-level summary of text descriptions</td>
<td valign="top" align="left">Mathematical interpretation of model design criteria</td>
</tr>
<tr>
<td valign="top" align="left">Comparative experiments</td>
<td valign="top" align="left">For memory-based models in Bobadilla et al. (<xref ref-type="bibr" rid="B11">2013</xref>); no experiments in others</td>
<td valign="top" align="left">For seven model-based models on seven benchmark datasets</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>We will introduce the basic concepts behind recommender systems in section 2, followed by formal analyses of attribute-aware recommender systems in sections 3 and 4. A series of experiments detailed in section 5 were conducted to compare the accuracy and parameter sensitivity of six widely adopted models. Finally, section 6 concludes this review and identifies work to be done in the future.</p>
</sec>
<sec id="s2">
<title>2. Preliminaries</title>
<sec>
<title>2.1. Problem Definition of Recommender Systems</title>
<p><italic>Recommender systems</italic> act as skilled agents to assist <italic>users</italic> to conquer information overload while making selection decisions over <italic>items</italic> by providing customized recommendations. <italic>Users</italic> and <italic>items</italic> are general phrases denoting, respectively, entities actively browsing and making choices and entities being selected, such as goods and services.</p>
<p>Formally, recommender systems leverage one or more of the following three information sources to discover user preferences and generate recommendations: <italic>user-item interactions, side information</italic>, and <italic>contexts</italic>. <italic>User-item interactions</italic>, or <italic>ratings</italic>, are collected explicitly by prompting users to provide numerical feedback on items and are acquired implicitly by tracking user behaviors such as clicks, browsing time, or purchase history. The data are commonly represented as a matrix that encodes the preferences of users and is naturally sparse, since users normally interact with a limited fraction of items. <italic>Side information</italic> is rich information attached to an individual user or item that depicts user characteristics such as education and job or item properties such as description and product categories. Side information can take diverse structures with rich meaning, ranging over numerical status, texts, and images to videos, locations, and networks. On the other hand, <italic>context</italic> refers to all the information collected when a user interacts with an item, such as timestamps, locations, or textual reviews. This contextual information usually serves as an additional information source appended to the user-item interaction matrix.</p>
<p>The goal of recommender systems is to disclose unknown user preferences over items that users never interact with and recommend the most preferred items to them. In practice, recommender systems learn to generate recommendations based on three types of approaches: <italic>pointwise, pairwise</italic>, and <italic>listwise</italic>. The <italic>pointwise</italic> approach is the most common approach and demands recommendation systems to provide accurate numerical predictions on observed ratings. Items that a user never interacts with are then sorted by their rating predictions, and a number of items with the highest ratings are recommended to the user. On the other hand, a <italic>pairwise</italic> approach seeks to preserve the ordering of any pair of items based on ratings, while in the <italic>listwise</italic> approach, recommender systems aim to preserve the relative order of all rated items as a list for each user. The pairwise approach and listwise approach are together considered <italic>item rankings</italic> that only require recommender systems to output the ordering of items but not ratings for individual items.</p>
<p>In most of the works covered in this paper, the task of attribute-aware recommendation is defined as <italic>predicting unknown ratings</italic>, that is: given <italic>N</italic><sub><italic>u</italic></sub> users, <italic>N</italic><sub><italic>i</italic></sub> items, a <italic>user-item rating</italic> matrix <inline-formula><mml:math id="M1"><mml:mstyle mathvariant="bold-italic"><mml:mtext>R</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> with only a small portion <italic>N</italic><sub><italic>r</italic></sub> ratings observed (i.e., there are a total of <italic>N</italic><sub><italic>u</italic></sub> &#x000D7; <italic>N</italic><sub><italic>i</italic></sub> &#x02212; <italic>N</italic><sub><italic>r</italic></sub> missing ratings), <italic>side information of users</italic> <inline-formula><mml:math id="M2"><mml:mstyle mathvariant="bold-italic"><mml:mtext>X</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>X</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> (assuming each user has <italic>K</italic><sub><italic>X</italic></sub> attributes), <italic>side information of items</italic> <inline-formula><mml:math id="M3"><mml:mstyle mathvariant="bold-italic"><mml:mtext>Y</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>, and <italic>contexts</italic> <inline-formula><mml:math id="M4"><mml:mstyle mathvariant="bold-italic"><mml:mtext>Z</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>Z</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>, the goal is to build a model that is capable of predicting each of the unknown ratings in <italic><bold>R</bold></italic>.</p>
<p>Then, given any specific user, a recommender system can make recommendations based on the predicted ratings. Normally, items with higher ratings are recommended first. Note that the dimension <italic>K</italic><sub><italic>X</italic></sub>, <italic>K</italic><sub><italic>Y</italic></sub> of side information attribute matrix <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic> might be zero, denoting that there is no side information about users or items. Likewise, if there is no contextual information about user-item interactions, <italic>K</italic><sub><italic>Z</italic></sub> will be zero.</p>
<p>The core techniques or algorithms for realizing recommender systems are generally classified into three categories: <italic>content-based filtering, collaborative filtering</italic>, and <italic>hybrid filtering</italic> (Bobadilla et al., <xref ref-type="bibr" rid="B11">2013</xref>; Shi et al., <xref ref-type="bibr" rid="B95">2014b</xref>; Isinkaye et al., <xref ref-type="bibr" rid="B46">2015</xref>). <italic>Content-based filtering</italic> generates recommendations based on properties of items and user-item interactions. Content-based techniques exploit domain knowledge and seek to transform item properties in raw attribute structures such as texts, images, or locations into numerical item profiles. Each item is represented as a vector, and the matrix of side information of items <italic><bold>Y</bold></italic> is constructed. A representation of each user is then created by aggregating profiles of items that this user interacted with, and a similarity measure is leveraged to retrieve a number of the most similar items as recommendations. Note that content-based filtering does not require information from any other user to make recommendations. <italic>Collaborative filtering</italic> strives to identify a group of users with similar preferences based on past user-item interactions and recommends items preferred by these users. Since discovering users with common preferences is generally based on user-item ratings <italic><bold>R</bold></italic>, collaborative filtering becomes the first choice when item properties are inadequate in describing their content, such as movies or songs. <italic>Hybrid filtering</italic> is the extension or combination of content-based and collaborative filtering. Examples of this are building an ensemble of the two techniques, using the item rating history of collaborative filtering as part of the item profiles for content-based filtering or extending collaborative filtering to incorporate user characteristics <italic><bold>X</bold></italic> or item properties <italic><bold>Y</bold></italic>. This review focuses on <italic>attribute-aware recommender systems</italic> that shed light not only on user-item interactions <italic><bold>R</bold></italic> but also on the side information of users or items <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic> and contexts <italic><bold>Z</bold></italic>, which is a subset of hybrid filtering.</p>
</sec>
<sec>
<title>2.2. Collaborative Filtering and Matrix Factorization</title>
<p>Collaborative filtering (CF) has become the prevailing technique for realizing recommender systems in recent years (Adomavicius and Tuzhilin, <xref ref-type="bibr" rid="B2">2005</xref>, <xref ref-type="bibr" rid="B3">2011</xref>; Shi et al., <xref ref-type="bibr" rid="B95">2014b</xref>; Isinkaye et al., <xref ref-type="bibr" rid="B46">2015</xref>). It assumes that the preferences users exhibit for items they have interacted with can be generalized and used to infer their preferences regarding items they have never interacted with by leveraging the records of other users with similar preferences. This section briefly introduces conventional CF techniques, which assume the availability of only user-item interactions or the rating matrix <italic><bold>R</bold></italic>. In practice, they are commonly categorized into <italic>memory-based</italic> CF and <italic>model-based</italic> CF (Adomavicius and Tuzhilin, <xref ref-type="bibr" rid="B2">2005</xref>; Shi et al., <xref ref-type="bibr" rid="B95">2014b</xref>; Isinkaye et al., <xref ref-type="bibr" rid="B46">2015</xref>).</p>
<p><italic>Memory-based</italic> CF directly exploits rows or columns in the rating matrix <italic><bold>R</bold></italic> as representations of users or items and identifies a group of similar users or items using a pre-defined similarity measure. Commonly used similarity metrics include the Pearson correlation, the Jaccard similarity coefficient, the cosine similarity, or their variants. Memory-based CF techniques can be divided into <italic>user-based</italic> and <italic>item-based</italic> approaches, which identify either a group of similar users or similar items, respectively. For user-based approaches, <italic>K</italic> nearest neighbors&#x02014;or the <italic>K</italic> most similar users&#x02014;are extracted, and their preferences or ratings regarding a target item are aggregated into a rating prediction using similarities between users as weights. The rating prediction for user <italic>u</italic> on item <italic>i</italic>, <inline-formula><mml:math id="M5"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, can be formulated as:</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M6"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>Z</mml:mi></mml:mrow></mml:mfrac><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>v</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mi>U</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munder></mml:mstyle><mml:mtext>sim</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>v</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where function sim(&#x000B7;) is a similarity measure, <italic>Z</italic> is the normalization constant, and <italic>U</italic><sub><italic>u</italic></sub> is the set of similar users to user <italic>u</italic> (Shi et al., <xref ref-type="bibr" rid="B95">2014b</xref>). Rating predictions of item-based approaches can be formulated in a similar way. The calculated pairwise similarities between users or items act as the <italic>memory</italic> of the recommender system since they can be saved for generating later recommendations.</p>
<p><italic>Model-based</italic> CF, on the other hand, takes the rating matrix <italic><bold>R</bold></italic> to train a predictive model with a set of parameters <italic><bold>&#x003B8;</bold></italic> to make recommendations (Adomavicius and Tuzhilin, <xref ref-type="bibr" rid="B2">2005</xref>; Shi et al., <xref ref-type="bibr" rid="B95">2014b</xref>). Predictive models can be formulated as a function that outputs ratings for <italic>rating predictions</italic> or numerical preference scores for <italic>item ranking</italic> given a user-item pair (<italic>u, i</italic>):</p>
<disp-formula id="E2"><label>(2)</label><mml:math id="M7"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Model-based CF then ranks and selects the <italic>K</italic> items with the highest ratings or scores <italic>r</italic><sub><italic>ui</italic></sub> as recommendations. Common core algorithms for model-based CF involve Bayesian classifiers, clustering techniques, graph-based approaches, genetic algorithms, and dimension-reduction methods such as Singular Value Decomposition (SVD) (Adomavicius and Tuzhilin, <xref ref-type="bibr" rid="B2">2005</xref>, <xref ref-type="bibr" rid="B3">2011</xref>; Bobadilla et al., <xref ref-type="bibr" rid="B11">2013</xref>; Shi et al., <xref ref-type="bibr" rid="B95">2014b</xref>; Isinkaye et al., <xref ref-type="bibr" rid="B46">2015</xref>). Over the last decade, a class of <italic>latent factor models</italic>, called <italic>matrix factorization</italic>, has been popularized and is commonly adopted as the basis of advanced techniques because of its success in the development of algorithms for the Netflix competition (Koren et al., <xref ref-type="bibr" rid="B57">2009</xref>; Koren and Bell, <xref ref-type="bibr" rid="B56">2011</xref>). In general, latent factor models aim to learn a low-dimensional representation, or latent factor, for each entity and combine the latent factors of different entities using specific methods such as inner product, bilinear map, or neural networks to make predictions. As one of these latent factor models, matrix factorization for recommender systems characterizes each user and item by a low-dimensional vector and predicts ratings based on inner product.</p>
<p><italic>Matrix factorization</italic> (MF) (Paterek, <xref ref-type="bibr" rid="B80">2007</xref>; Koren et al., <xref ref-type="bibr" rid="B57">2009</xref>; Koren and Bell, <xref ref-type="bibr" rid="B56">2011</xref>; Shi et al., <xref ref-type="bibr" rid="B95">2014b</xref>), in the basic form, represents each user <italic>u</italic> as a parameter vector <inline-formula><mml:math id="M8"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>w</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> and each item <italic>i</italic> as <inline-formula><mml:math id="M9"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>h</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, where <italic>K</italic> is the dimension of latent factors. The prediction of user <italic>u</italic>&#x00027;s rating or preference regarding item <italic>i</italic>, denoted as <inline-formula><mml:math id="M10"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>, can be computed using the inner product:</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M11"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>which captures the interaction between them. MF seeks to generate rating predictions that are as close as possible to those recorded ratings. In matrix form, it can be written as finding <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic> such that <italic><bold>R</bold></italic> &#x02248; <italic><bold>W</bold></italic><sup>&#x022A4;</sup><italic><bold>H</bold></italic> where <inline-formula><mml:math id="M12"><mml:mstyle mathvariant="bold-italic"><mml:mtext>R</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>. MF is essentially learning a low-rank approximation of the rating matrix, since the dimension of representations <italic>K</italic> is usually much smaller than the number of users <italic>N</italic><sub><italic>u</italic></sub> and items <italic>N</italic><sub><italic>i</italic></sub>. To learn the latent factors of users and items, the system tries to find <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic> that minimizes the regularized square error on the set of entries of known ratings in <italic><bold>R</bold></italic> [denoted as &#x003B4;(<italic><bold>R</bold></italic>)]:</p>
<disp-formula id="E4"><label>(4)</label><mml:math id="M13"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo class="qopname">argmin</mml:mo></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>W</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover></mml:mstyle><mml:mo>||</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mo>||</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x0002B;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>H</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover></mml:mstyle><mml:mo>||</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mo>||</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003BB;<sub><italic>W</italic></sub> and &#x003BB;<sub><italic>H</italic></sub> are regularization parameters. MF tends to cluster users or items with similar rating configurations into groups in the latent factor space, which implies that similar users or items will be close to each other. Furthermore, MF assumes that the rank of rating matrix <italic><bold>R</bold></italic> or the dimension of the vector space generated by the rating configuration of users is far smaller than the number of users <italic>N</italic><sub><italic>u</italic></sub>. This implies that each user&#x00027;s rating configuration can be obtained by a linear combination of ratings from a group of other users since they are all generated by <italic>K</italic> principal vectors. Thus, MF is in the spirit of collaborative filtering, which is to infer a user&#x00027;s unknown ratings by the ratings of several other users.</p>
<p><italic>Biased matrix factorization</italic> (Paterek, <xref ref-type="bibr" rid="B80">2007</xref>; Koren et al., <xref ref-type="bibr" rid="B57">2009</xref>; Koren and Bell, <xref ref-type="bibr" rid="B56">2011</xref>), an improvement of MF, models the characteristics of each user and each item and the global tendency that are independent of user-item interactions. The obvious drawback of MF is that only user-item interactions <inline-formula><mml:math id="M14"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>w</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>h</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are considered in rating predictions. However, ratings usually contain universal shifts or exhibit systematic tendencies with respect to users and items. For instance, there might be a group of users inclined to give significantly higher ratings than others or a group of items widely considered to be of high-quality and that receive higher ratings. Besides, it is common that all ratings are non-negative, which implies that the overall average might not be close to zero and causes a difficulty for training small-value-initialized representations. Due to the issues mentioned above, biased MF augments MF rating predictions with linear biases that account for user-related, item-related, and global effects. The rating prediction is extended as follows:</p>
<disp-formula id="E5"><label>(5)</label><mml:math id="M15"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x003BC;</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003BC;, <italic>c</italic><sub><italic>i</italic></sub>, <italic>d</italic><sub><italic>j</italic></sub> are global bias, bias of user <italic>i</italic>, and bias of item <italic>j</italic>, respectively. Biased MF then finds the optimal <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic>, <italic><bold>c</bold></italic>, <italic><bold>d</bold></italic>, &#x003BC; that minimizes the regularized square error as follows:</p>
<disp-formula id="E6"><label>(6)</label><mml:math id="M16"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mi>c</mml:mi></mml:mstyle><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mi>d</mml:mi></mml:mstyle><mml:mo>*</mml:mo></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mi>&#x003BC;</mml:mi><mml:mo>*</mml:mo></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>=</mml:mo><mml:munder><mml:mrow><mml:mtext>argmin</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>c</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>d</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mi>&#x003BC;</mml:mi></mml:mrow></mml:munder><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:munder><mml:mrow><mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>&#x003BC;</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>c</mml:mi><mml:mi>u</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle><mml:mi>u</mml:mi><mml:mo>&#x022A4;</mml:mo></mml:msubsup><mml:msub><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mtext>&#x003BB;</mml:mtext><mml:mrow><mml:mo stretchy='false'>(</mml:mo> <mml:mrow><mml:mo>||</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:msubsup><mml:mo>||</mml:mo><mml:mi>F</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:mrow></mml:mrow></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mrow><mml:mo>+</mml:mo><mml:mo>||</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:msubsup><mml:mo>||</mml:mo><mml:mi>F</mml:mi><mml:mn>2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:mo>||</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>c</mml:mi></mml:mstyle><mml:msubsup><mml:mo>||</mml:mo><mml:mn>2</mml:mn><mml:mn>2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:mo>||</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>d</mml:mi></mml:mstyle><mml:msubsup><mml:mo>||</mml:mo><mml:mn>2</mml:mn><mml:mn>2</mml:mn></mml:msubsup></mml:mrow> <mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M17"><mml:mo>||</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mtext>W</mml:mtext></mml:mstyle><mml:msubsup><mml:mrow><mml:mo>||</mml:mo></mml:mrow><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:mo>||</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>w</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mo>||</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> denotes the squared Frobenius norm. The regularization parameter &#x003BB; is tuned by cross-validation.</p>
<p><italic>Probabilistic matrix factorization</italic> (PMF, <xref ref-type="fig" rid="F2">Figure 2</xref> and Biased PMF, <xref ref-type="fig" rid="F3">Figure 3</xref>) (Salakhutdinov and Mnih, <xref ref-type="bibr" rid="B86">2007</xref>, <xref ref-type="bibr" rid="B87">2008</xref>) is a probabilistic linear model with observed Gaussian noise and can be viewed as a probabilistic extension of MF. PMF adopts the assumption that users and items are independent and represents each user or each item with a zero-mean spherical multivariate Gaussian distribution as follows:</p>
<disp-formula id="E7"><label>(7)</label><mml:math id="M18"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>W</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x0220F;</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mrow><mml:mi mathvariant='-tex-caligraphic'>N</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle><mml:mi>u</mml:mi></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold"><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>W</mml:mi><mml:mn>2</mml:mn></mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mi>I</mml:mi></mml:mstyle></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mstyle><mml:mo>,</mml:mo><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold"><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>H</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mi>I</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M19"><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M20"><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>H</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> are observed user-specific and item-specific noise. PMF then formulates the conditional probability over the observed ratings as</p>
<disp-formula id="E8"><label>(8)</label><mml:math id="M21"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B4;(<italic><bold>R</bold></italic>) is the set of known ratings and <inline-formula><mml:math id="M22"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003BC;</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> denotes the Gaussian distribution with mean &#x003BC; and variance &#x003C3;<sup>2</sup>. Learning in PMF is conducted by maximum a posteriori (MAP) estimation, which is equivalent to maximizing the log of the posterior distribution of <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic>:</p>
<disp-formula id="E9"><label>(9)</label><mml:math id="M23"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mi>log</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>R</mml:mi><mml:mn>2</mml:mn></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>W</mml:mi><mml:mn>2</mml:mn></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>log</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>R</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>+</mml:mo><mml:mi>log</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>W</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mi>log</mml:mi><mml:mi>p</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mi>C</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mn>2</mml:mn><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>R</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:mfrac><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:munder><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy='true'>(</mml:mo><mml:mrow><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle><mml:mi>u</mml:mi><mml:mo>&#x022A4;</mml:mo></mml:msubsup><mml:msub><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo stretchy='true'>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mstyle><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mn>2</mml:mn><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>W</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:mfrac><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mrow><mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle><mml:mi>u</mml:mi><mml:mo>&#x022A4;</mml:mo></mml:msubsup><mml:msub><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle><mml:mi>u</mml:mi></mml:msub></mml:mrow></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mn>2</mml:mn><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:mfrac><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mrow><mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle><mml:mi>i</mml:mi><mml:mo>&#x022A4;</mml:mo></mml:msubsup><mml:msub><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mstyle><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac><mml:mrow><mml:mo>(</mml:mo> <mml:mrow><mml:mo>&#x0007C;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x0007C;</mml:mo><mml:mi>log</mml:mi><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>R</mml:mi><mml:mn>2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi>u</mml:mi></mml:msub><mml:mi>K</mml:mi><mml:mi>log</mml:mi><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>W</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mrow> <mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>N</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mi>K</mml:mi><mml:mi>log</mml:mi><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>H</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow> <mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mi>C</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>C</italic> is a constant independent of all parameters and <italic>K</italic> is the dimension of user or item representations. With Gaussian noise <inline-formula><mml:math id="M24"><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>H</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> observed, maximizing the log-posterior is identical to minimizing the objective function with the form:</p>
<disp-formula id="E10"><label>(10)</label><mml:math id="M25"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>W</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover></mml:mstyle><mml:mo>||</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mo>||</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>H</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover></mml:mstyle><mml:mo>||</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mrow><mml:mo>||</mml:mo></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M26"><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>W</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>/</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>W</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>H</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>/</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>H</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>. Note that (10) has exactly the same form as the regularized square error of MF, and gradient descent or its extensions can then be applied in training PMF.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>PMF.</p></caption>
<graphic xlink:href="fdata-02-00049-g0002.tif"/>
</fig>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Biased PMF.</p></caption>
<graphic xlink:href="fdata-02-00049-g0003.tif"/>
</fig>
<p>Since collaborative filtering techniques only consider rating matrix <italic><bold>R</bold></italic> in making recommendations, they cannot discover the preferences of users or for items with scant user-item interactions. This problem is referred as the <italic>cold-start issue</italic>. In section 3, we will review recommendation systems that extend CF to incorporate contexts or rich side information regarding users and items to alleviate the cold-start problem.</p>
</sec>
</sec>
<sec id="s3">
<title>3. Attribute-Aware Recommender Systems</title>
<sec>
<title>3.1. Overview</title>
<p>Attribute-aware recommendation models are proposed to tackle the challenges of integrating additional information from user/item/rating. There are two strategies for designing attribute-aware collaborative filtering-based systems. One direction is to combine content-based recommendation models with CF models, which can directly accept attributes as content to perform recommendation. On the other hand, researchers also try to extend an existing collaborative filtering algorithm such that it leverages attribute information.</p>
<p>Rather, we will focus on four important factors in the design of an attribute-aware recommender system in current research, as shown in <xref ref-type="fig" rid="F4">Figure 4</xref>. They are specifically discussed from sections 3.2 to 3.5. With respect to input data, <italic>attribute sources</italic> determine whether an attribute vector is relevant to users, items, or ratings. For example, <italic>age</italic> describes a user instead of an item; <italic>rating time</italic> must be appended to ratings, representing when the rating event occurred. Different models impose distinct strategies to integrate attributes of specific sources. Additionally, a model may constrain <italic>attribute types</italic> that can be used. For instance, graph-based collaborative filtering realizations define attributes as node types, which is not appropriate for numerical attributes. <italic>Rating type</italic> is the factor that is emphasized by most model designers. Besides usual numerical ratings, many recommendation models concentrate on binary rating data, where the ratings represent whether users interact with items. Finally, different recommender systems emphasize different <italic>recommendation goals</italic>. One is to predict the ratings from users to items through minimizing the error between the predicted and real ratings. Another is to produce the ranking among items given a user instead of caring about the real rating value of a single item. We then summarize the design categories of all the surveyed papers in a table in section 3.6.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>Model design flow of an attribute-aware collaborative filtering-based recommender system. When reading ratings and attributes for a proposed approach, we have to consider the sources and the types of attributes or ratings, which could affect the recommendation goals and model designs. The evaluation of a proposed recommender system depends heavily on the chosen recommendation goals.</p></caption>
<graphic xlink:href="fdata-02-00049-g0004.tif"/>
</fig>
<p>Throughout this paper, we will use <inline-formula><mml:math id="M27"><mml:mstyle mathvariant="bold-italic"><mml:mtext>X</mml:mtext></mml:mstyle><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" columnlines="none none none none none none none none none" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula> to denote the attribute matrix, where each column <italic><bold>x</bold></italic><sub><italic>i</italic></sub> represents a <italic>K</italic>-dimensional attribute vector of entity <italic>i</italic>. Here, an entity can refer to a user, an item, or a rating, determined by attribute sources (discussed in section 3.2). If attributes are limited categorically, then <italic><bold>X</bold></italic> &#x02208; {0, 1}<sup><italic>K</italic>&#x000D7;<italic>N</italic></sup> can be represented by one-hot encoding (discussed in section 3.3). Note that our survey does not include models designed specifically for a certain type of attribute but rather covers models that are general enough to accept different types of attributes. For example, Collaborative Topic Regression (CTR) (Wang and Blei, <xref ref-type="bibr" rid="B103">2011</xref>) extends matrix factorization with Latent Dirichlet Allocation (LDA) to import text attributes. Social Regularization (Ma et al., <xref ref-type="bibr" rid="B70">2011a</xref>) specifically utilizes user social networks to regularize the learning of matrix factorization. Neither model is included since they are not general enough to deal with general attributes.</p>
</sec>
<sec>
<title>3.2. Sources of Attributes</title>
<p>Attributes usually come from a variety of sources. Typically, <italic>side information</italic> refers to the attributes appended to users or items. In contrast, keyword <italic>contexts</italic> indicate the attributes relevant to ratings. Ratings from the same user can be attached to different contexts, such as &#x0201C;locations where users rate items.&#x0201D; Recommendation models considering rating-relevant attributes are usually called <italic>context-aware recommender systems</italic>. Although contexts in some papers could include user-relevant or item-relevant ones, in this paper, we tend to be precise and use the term <italic>contexts</italic> only for rating-relevant attributes.</p>
<p>Sections 3.2.1 and 3.2.2, respectively introduce different attribute sources. It is worth mentioning our observation as follows. Even though some of the models we surveyed demand side information while others require context information, we discover that the two sets of attributes can be represented in a unified manner and thus that both types of models can be applied. We will discuss such unified representation in sections 3.2.3 and 3.2.4.</p>
<sec>
<title>3.2.1. Side Information: User-Relevant or Item-Relevant Attributes</title>
<p>In the surveyed papers, <italic>side information</italic> could refer to user-relevant attributes, item-relevant attributes, or both. User-relevant attributes determine the characteristics of a user, such as &#x0201C;age,&#x0201D; &#x0201C;gender,&#x0201D; &#x0201C;education,&#x0201D; etc. In contrast, item-relevant attributes describe the properties of an item, like &#x0201C;movie running time,&#x0201D; &#x0201C;product expiration data,&#x0201D; etc. Below, we discuss user-relevant attributes, but all the statements can be applied to item-relevant attributes. Given user-relevant attributes, we can express them with matrix <inline-formula><mml:math id="M28"><mml:mstyle mathvariant="bold-italic"><mml:mtext>X</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>, where <italic>N</italic><sub><italic>u</italic></sub> is the number of users. Each column of <italic><bold>X</bold></italic> corresponds to <italic>K</italic> attribute values of a specific user. The most important characteristic of user-relevant attributes is that they are <italic>assumed unchanged</italic> with the rating process of a user. For example, every rating from the same user shares the identical user-relevant attribute &#x0201C;age.&#x0201D; In other words, even without any ratings from a user in collaborative filtering, the user&#x00027;s rating behaviors on items could be still extracted from other users that have similar user-relevant attribute values. Attribute-aware recommender systems that address the cold-start user problems (i.e., there are few ratings of a user) typically adopt user-relevant attributes as their auxiliary information under collaborative filtering. The attribute leverage methods are presented in section 4.</p>
<p>Readers may ask why user-relevant attributes and item-relevant attributes are not distinguished. Our observations during this survey indicate that most of the recommendation approaches have symmetric model designs for users and items. In matrix factorization-based methods, rating matrix <italic><bold>R</bold></italic> is factorized into two matrices <italic><bold>W</bold></italic> and <italic><bold>H</bold></italic>, referring to user and item latent factors, respectively. However, matrix factorization does not change its learning results if we exchange the rows and columns of <italic><bold>R</bold></italic>. Despite the exchange of rows and columns, <italic><bold>W</bold></italic> and <italic><bold>H</bold></italic> just exchange what they learn from ratings: <italic><bold>W</bold></italic> for items but <italic><bold>H</bold></italic> for users.</p>
<p>On the basis of the above conclusions, some of the related work could be further extended, in our opinion. If one attribute-aware recommender system claims to be designed only for user-relevant attributes, then readers could use a symmetric model design for item-relevant attributes to obtain a more general model.</p>
</sec>
<sec>
<title>3.2.2. Contexts: Rating-Relevant Attributes</title>
<p>Collaborative filtering-based recommender systems usually define ratings as <italic>the</italic> interaction between users and items, though it is likely to have more than one interaction. Since ratings are still the focus of recommender systems, other types of interactions, or rating-relevant attributes, are called <italic>contexts</italic> in related work. For example, the &#x0201C;time&#x0201D; and the &#x0201C;location&#x0201D; that a user rates an item are recorded with the occurrence of the rating behavior. Rating-relevant attributes change with rating behaviors, and thus they could offer auxiliary data on why a user decides to give a rating to an item. Moreover, rating-relevant attributes could capture the rating preference change of a user. If we have time information appended to ratings, then attribute-aware recommender systems could discover users&#x00027; preferences at different times.</p>
<p>The format of rating-relevant attributes is potentially more flexible than that of user-relevant or item-relevant ones. In section 4.3, we will introduce a factorization-based generalization of matrix factorization. In this class of attribute-aware recommender systems, even the user and item latent factors are not required to predict ratings; mere rating-relevant attributes can do it, using their corresponding latent factor vectors.</p>
</sec>
<sec>
<title>3.2.3. Converting Side Information to Contexts</title>
<p>Most attribute-aware recommender systems choose to leverage one of the attribute sources. Some proposed approaches specifically incorporate user- or item-relevant attributes, while others are designed for rating-relevant attributes only. It seems that existing approaches should be applied according to which attribute sources they use. However, we argue that the usage of attribute-aware recommender systems could be independent of attribute sources if we convert them to each other using a simple method.</p>
<p>Let <inline-formula><mml:math id="M29"><mml:mstyle mathvariant="bold-italic"><mml:mtext>X</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>X</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> be the user-relevant attribute matrix, where each column <inline-formula><mml:math id="M30"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>X</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> is the attribute set of user <italic>u</italic>. Similarly, let <inline-formula><mml:math id="M31"><mml:mi>Y</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mi>Z</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>Z</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>r</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> be the matrices of item-relevant attributes and rating-relevant attributes, respectively. Note that a column index of matrix <italic><bold>Z</bold></italic> is denoted by &#x003C0;(<italic>u, i</italic>), which is associated with user <italic>u</italic> and item <italic>i</italic>. A simple concatenation with respect to users and items can achieve the goal of expressing <italic><bold>X</bold></italic> or <italic><bold>Y</bold></italic> as <italic><bold>Z</bold></italic>, as shown below:</p>
<disp-formula id="E11"><label>(11)</label><mml:math id="M32"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>z</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>z</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>Z</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>X</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Equation (11) implies that we just extend the current rating-relevant attributes <italic><bold>z</bold></italic><sub>&#x003C0;(<italic>u,i</italic>)</sub> to <inline-formula><mml:math id="M33"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>z</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> using the attributes <italic><bold>x</bold></italic><sub><italic>u</italic></sub>, <italic><bold>y</bold></italic><sub><italic>i</italic></sub> from corresponding users or items. If training data do not consist of <italic><bold>z</bold></italic><sub>&#x003C0;(<italic>u,i</italic>)</sub>, <italic><bold>x</bold></italic><sub><italic>u</italic></sub> or <italic><bold>y</bold></italic><sub><italic>i</italic></sub>, we can eliminate the notations on the right-hand side of (11). Advanced attribute selection or dimensionality reduction methods could extract effective dimensions in <inline-formula><mml:math id="M34"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>z</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, but further improvement is beyond our scope. If missing attribute values exist in <inline-formula><mml:math id="M35"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>z</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>, then we suggest directly filling these attributes with 0. Please refer to section 3.2.4 for our reasoning.</p>
</sec>
<sec>
<title>3.2.4. Converting Contexts to Side Information</title>
<p>Following the topic in section 3.2.3, the reader may be curious about how to reversely convert rating-relevant attributes to user- or item-relevant ones. In the following paragraphs, we adopt the same notations as in section 3.2.3. Due to symmetric designs for <italic><bold>X</bold></italic> and <italic><bold>Y</bold></italic>, we demonstrate only the conversion from <italic><bold>Z</bold></italic> to <italic><bold>X</bold></italic>. Concatenation is still the simplest way to express <italic><bold>Z</bold></italic> as a part of <italic><bold>X</bold></italic>:</p>
<disp-formula id="E12"><label>(12)</label><mml:math id="M36"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mtable style="text-align:axis;" equalrows="false" equalcolumns="false" class="array"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msubsup><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold-italic"><mml:mi>z</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msubsup><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold-italic"><mml:mi>z</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x02026;</mml:mo><mml:msubsup><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold-italic"><mml:mi>z</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:mo>&#x02026;</mml:mo><mml:msubsup><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold-italic"><mml:mi>z</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msup><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>X</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>Z</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>All the rating-relevant attributes <italic><bold>z</bold></italic><sub>(<italic>u</italic>,1)</sub>, <italic><bold>z</bold></italic><sub>(<italic>u</italic>,2)</sub>, &#x02026;, <italic><bold>z</bold></italic><sub>(<italic>u</italic>,<italic>N</italic><sub><italic>i</italic></sub>)</sub> from <italic>N</italic><sub><italic>i</italic></sub> items must be associated with user <italic>u</italic>. <italic><bold>x</bold></italic><sub><italic>u</italic></sub> is thus extended to <inline-formula><mml:math id="M37"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> by appending these attributes. Note that there are a large number of missing attributes on the right-hand side of (12), since most items are never rated by user <italic>u</italic> in real-world data. Eliminating missing <italic><bold>z</bold></italic><sub>&#x003C0;(<italic>u,i</italic>)</sub>, as what we do in section 3.2.3, reveals different dimensions between two user-relevant attributes <inline-formula><mml:math id="M38"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>. To our knowledge, there is no user-relevant attribute-aware recommender system allowing individual dimensions of user-relevant attributes.</p>
<p>Readers can use attribute imputation approaches to remove missing values in <inline-formula><mml:math id="M39"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula>. However, we argue that simply filling missing elements with 0 is sufficient for attribute-aware recommender systems. We explain our reasons through the observations in section 3.3. For numerical attributes, (13)&#x02013;(15) show the various attribute modeling methods. If attributes <italic><bold>X</bold></italic> are mapped through function <italic>f</italic> like (13) or (15), then zero attributes in <italic>f</italic> will cause no mapping effect (except constant intercept of <italic>f</italic>). If attributes <italic><bold>X</bold></italic> are fitted by latent factors onto function <italic>f</italic> such as (14), then typically in the objective design, we can skip the objective computation of missing attributes. As for categorical attributes, we exploit one-hot encoding to represent them with numerical values. Categorical attributes can then be handled as numerical attributes.</p>
</sec>
</sec>
<sec>
<title>3.3. Attribute Types</title>
<p>In most cases, attribute-aware recommender systems accept a real-value attribute matrix <italic><bold>X</bold></italic>. However, we notice that some attribute-aware recommender systems require attributes to be categorical, which is typically represented by binary encoding. Specifically, this approach demands a binary attribute matrix where attributes of value 1 are modeled as discrete latent information in some way. A summary of the two types of attributes is given in sections 3.3.1 and 3.3.2.</p>
<p>It is trivial to put one-hot categorical attributes into numerical attribute-aware recommender systems, since binary values {0, 1} &#x02282; &#x0211D;. Nonetheless, putting numerical attributes into categorical attribute-aware recommendation systems runs the risk of losing attribute information (e.g., quantization processing).</p>
<sec>
<title>3.3.1. Numerical Attributes</title>
<p>In our paper, numerical attributes refer to the set of real-valued attributes, i.e., attribute matrix <italic><bold>X</bold></italic> &#x02208; &#x0211D;<sup><italic>K</italic>&#x000D7;<italic>N</italic></sup>. We also classify integer attributes (like movie ratings {1, 2, 3, 4, 5}) to numerical attributes. Most of the relevant papers model numerical attributes as their default inputs in recommender systems, as is common in machine learning approaches.</p>
<p>There are three common model designs through which numerical attributes <italic><bold>X</bold></italic> affect recommender systems. First, we can map <italic><bold>X</bold></italic> to latent factor space by function <italic>f</italic><sub><italic><bold>&#x003B8;</bold></italic></sub> with parameters <italic><bold>&#x003B8;</bold></italic>, and then fit the corresponding user or item latent factor vectors:</p>
<disp-formula id="E13"><label>(13)</label><mml:math id="M40"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo class="qopname">argmin</mml:mo></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mo>||</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>||</mml:mo><mml:mtext>or&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;for&#x000A0;user-relevant&#x000A0;attributes</mml:mtext><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo class="qopname">argmin</mml:mo></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mo>||</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>||</mml:mo><mml:mtext>or&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;for&#x000A0;item-relevant&#x000A0;attributes</mml:mtext><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Second, like the reverse of (13), we define a mapping function <italic>f</italic><sub><italic><bold>&#x003B8;</bold></italic></sub> such that mapped values from user or item latent factors can be close to observed attributes:</p>
<disp-formula id="E14"><label>(14)</label><mml:math id="M41"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo class="qopname">argmin</mml:mo></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mo>||</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>||</mml:mo><mml:mtext>or&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;for&#x000A0;user-relevant&#x000A0;attributes</mml:mtext><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo class="qopname">argmin</mml:mo></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mo>||</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>||</mml:mo><mml:mtext>or&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;for&#x000A0;item-relevant&#x000A0;attributes</mml:mtext><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Finally, numerical attributes can be put into function <italic>f</italic><sub><italic><bold>&#x003B8;</bold></italic></sub>, which is independent of existing user or item latent factors in matrix factorization:</p>
<disp-formula id="E15"><label>(15)</label><mml:math id="M42"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo class="qopname">argmin</mml:mo></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mo stretchy="true">||</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo stretchy="true">||</mml:mo><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Equations (13) and (14) are typically seen in user-relevant or item-relevant attributes, while rating-relevant attributes are often put into (15)-like formats. However, we emphasize that attribute-aware recommender systems are not limited to these three model designs.</p>
</sec>
<sec>
<title>3.3.2. Categorical Attributes</title>
<p>The values of a numerical attribute are ordered, while, on the other hand, the values of a categorical attribute show no ordered relations with each other. Given a categorical attribute Food &#x02208; {Rice, Noodles, Other}, the meanings of the values do not imply which one is larger than the other. Thus, it is improper to give categorical attributes ordered dummy variables, like Rice &#x0003D; 0, Noodles &#x0003D; 1, Other &#x0003D; 2, which could incorrectly imply Rice &#x0003C; Noodles &#x0003C; Other, misleading machine learning models. The most common solution to categorical attribute transformation is <italic>one-hot encoding</italic>. We generate <italic>d</italic>-dimensional binary attributes that correspond to the <italic>d</italic> values of a categorical attribute. Each of the <italic>d</italic> binary attributes indicates the current value of a categorical attribute. For example, we express attribute Food &#x02208; {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}. These correspond to the original values {Rice, Noodles, Other}. Since the values of the categorical attribute are unique, the mapped binary attributes contain only a 1, and others, 0. Once all the categorical attributes are converted to one-hot encoding expressions, we can apply them to existing numerical attribute-aware recommender systems.</p>
<p>Certain relevant papers are suitable for, or even adversely limited to, categorical attributes. Heterogeneous graph-based methods (section 4.4) add new nodes (e.g., Rice, Noodles, Other) to represent the values of categorical attributes. Following the concept of latent factor in matrix factorization, some methods propose to assign each categorical attribute value a low-dimensional latent factor vector (e.g., each of Rice, Noodles, Other has a latent factor vector <italic><bold>w</bold></italic> &#x02208; &#x0211D;<sup><italic>K</italic></sup>). These vectors are then jointly learned with classical user or item latent factors in attribute-aware recommender systems.</p>
</sec>
</sec>
<sec>
<title>3.4. Rating Types</title>
<p>Although we always define the term <italic>ratings</italic> as the interactions between users and items in this paper, some previous works claim a difference between explicit opinions and implicit feedback. Taking the dataset MovieLens, for example, a user gives a rating value in {1, 2, 3, 4, 5} toward an item. The value denotes the <italic>explicit opinion</italic>, which quantifies the preference of the user for that item. How recommendation methods handle such type of ratings will be introduced in section 3.4.1.</p>
<p>Even though modeling explicit opinions is more beneficial for future recommendation, such data is more difficult to gather from users. Users may hesitate to show their preferences due to privacy considerations, or they may not be willing to spend time labeling explicit ratings. Instead, recommender systems are more likely to collect <italic>implicit feedback</italic>, such as user browsing logs. Such datasets record a series of binary values, each of which implies whether a user ever saw an item. User preferences behind implicit feedback assume that the items seen by a user must be more preferred by the user than those items that have never been seen. We discuss this type of rating in detail in section 3.4.2.</p>
<p>Some numerical rating data are controversial, like &#x0201C;the number of times a user clicks on the hyperlink to visit the page of an item.&#x0201D; Some of the related work may define such data as implicit feedback because the number of clicks is not equivalent to explicit user preferences. However, in this paper, we still identify them as explicit opinions. With respect to model designs, related recommendation approaches do not differentiate such data.</p>
<sec>
<title>3.4.1. Explicit Opinions: Numerical Ratings</title>
<p>A numerical rating matrix <italic>r</italic> &#x02208; &#x0211D; expresses users&#x00027; opinions on items. Actually, numerical ratings in real-world scenarios are often represented by positive integers, such as MovieLens ratings <italic>r</italic> &#x02208; {1, 2, 3, 4, 5}. Though there are no explicit statements in related work, we suppose that a higher rating implies a more positive opinion.</p>
<p>Since, in most datasets, the gathered rating values are positive, there could be an unbiased learning problem. Matrix factorization could not learn the rating bias due to the non-zero mean of ratings <inline-formula><mml:math id="M43"><mml:mstyle mathvariant="double-struck"><mml:mtext>E</mml:mtext></mml:mstyle></mml:math></inline-formula>(<italic>r</italic>) &#x02260; 0. Specifically, in vanilla matrix factorization, we have regularization terms <inline-formula><mml:math id="M44"><mml:mo>||</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mtext>W</mml:mtext></mml:mstyle><mml:msubsup><mml:mrow><mml:mo>||</mml:mo></mml:mrow><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> and <inline-formula><mml:math id="M45"><mml:mo>||</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mtext>H</mml:mtext></mml:mstyle><mml:msubsup><mml:mrow><mml:mo>||</mml:mo></mml:mrow><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> for user and item latent factor matrix <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic>. That is, we require the expected value <inline-formula><mml:math id="M46"><mml:mstyle mathvariant="double-struck"><mml:mtext>E</mml:mtext></mml:mstyle></mml:math></inline-formula>(<italic><bold>W</bold></italic>) &#x0003D; <inline-formula><mml:math id="M47"><mml:mstyle mathvariant="double-struck"><mml:mtext>E</mml:mtext></mml:mstyle></mml:math></inline-formula>(<italic><bold>H</bold></italic>) &#x0003D; <bold>0</bold> from the viewpoint of corresponding normal distributions. Given rating <italic>r</italic><sub><italic>ui</italic></sub> of user <italic>u</italic> to item <italic>i</italic>, and assuming the independence of <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic> as probabilistic matrix factorization does, we obtain the expected value of rating estimate <inline-formula><mml:math id="M48"><mml:mstyle mathvariant="double-struck"><mml:mtext>E</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle mathvariant="double-struck"><mml:mtext>E</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>w</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>h</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x02200;</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>, which cannot closely fit true ratings if <inline-formula><mml:math id="M49"><mml:mstyle mathvariant="double-struck"><mml:mtext>E</mml:mtext></mml:mstyle></mml:math></inline-formula>(<italic>r</italic><sub><italic>ui</italic></sub>) &#x02260; 0. Biased matrix factorization can alleviate the problem by absorbing the non-zero mean with additional bias terms. Besides, we are able to normalize all the ratings (subtract the rating mean from every rating) to make matrix factorization prediction unbiased. Real-world numerical ratings also have finite maximum and minimum values. Some recommendation models choose to normalize the ratings to range <italic>r</italic> &#x02208; [0, 1] and then constrain the range of rating estimate <inline-formula><mml:math id="M50"><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">sig</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> using the sigmoid function <inline-formula><mml:math id="M51"><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">sig</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x0002B;</mml:mo><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:math></inline-formula>.</p>
</sec>
<sec>
<title>3.4.2. Implicit Feedback: Binary Ratings</title>
<p>Today, more and more researchers are interested in the scenario of binary ratings <italic>r</italic> &#x02208; {0, 1} (i.e., implicit feedback), since such rating data are more accessible, for instance, &#x0201C;whether a user browsed the information about an item.&#x0201D; Online services do not require users to give explicit numerical ratings, which are often harder to gather than binary ones.</p>
<p>We observe only positive ratings <italic>r</italic> &#x0003D; 1; negative ratings <italic>r</italic> &#x0003D; 0 do not exist in training data. Taking browsing logs as an example, the data include the items that are browsed by a user (i.e., positive examples). Items not being in the browsing data could imply that they are either absolutely unattractive (<italic>r</italic> &#x0003D; 0) or just unknown (<italic>r</italic> &#x02208; {0, 1}) to the user. <italic>One-class collaborative filtering</italic> methods are proposed to address the problem. Such methods often claim two assumptions:</p>
<list list-type="bullet">
<list-item><p>An item must be attractive to a user (<italic>r</italic> &#x0003D; 1) as long as the user has seen the item.</p></list-item>
<list-item><p>Since we cannot distinguish between the two reasons (absolutely unattractive or just unknown) why an item is unseen, such methods suppose that all the unseen items are less attractive (<italic>r</italic> &#x0003D; 0). However, the number of unseen items is practically much larger than that of seen items. To alleviate the problem of learning bias toward <italic>r</italic> &#x0003D; 0 together with learning speed, we exploit <italic>negative sampling</italic>, which sub-samples partial unseen ratings for training.</p></list-item>
</list>
<p>To build an objective function satisfying the above assumptions, we can choose either pointwise learning (section 3.5.1) or pairwise learning (section 3.5.2). The Area Under the ROC Curve (AUC), Normalized Discounted Cumulative Gain (NDCG), Mean Average Precision (MAP), precision, and recall are often used to justify the quality of recommender systems for binary ratings.</p>
</sec>
</sec>
<sec>
<title>3.5. Recommendation Goals</title>
<p>Any recommender system needs human intervention to set up a training goal. Since collaborative filtering-based recommender systems rely on ratings, the most straightforward goal is to infer what rating will be given by a user for an unseen item, called <italic>rating prediction</italic>. If the ratings of every item can be accurately predicted, then for any user, a recommender system can just sort and recommend items based on highest predicted rating. In machine learning, such a goal for model-based recommender systems can be described as <italic>pointwise learning</italic>. That is, given a user-item pair, a pointwise learning recommendation model directly minimizes the error of predicted ratings and true ones. The related mathematical details are presented in section 3.5.1.</p>
<p>However, in general, our ultimate goal is to recommend unseen items to users without being concerned about how these items are rated. All unseen items in pointwise learning are finally ranked in descending order of their ratings. In other words, what we truly care about is the order of ratings, but not the true rating values. Also, some research papers figure out that a low error of rating prediction is not always equivalent to a high quality of recommended item lists. Recent model-based collaborative filtering models have begun to set optimization goals of <italic>item ranking</italic>. That is, for the same user, such models maximize the differences between high-rated items and low-rated ones in training data. The implementation of item ranking includes <italic>pairwise learning and listwise learning</italic> in machine-learning domains. Both learning ideas try to compare the potentially related ranks between at least two items for the same user. section 3.5.2 will present how to define optimization criteria for item ranking.</p>
<sec>
<title>3.5.1. Rating Prediction: Pointwise Learning</title>
<p>In the training stage, given a ground-truth rating <italic>r</italic>, a recommender system needs to make a rating estimate <inline-formula><mml:math id="M52"><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> that is expected to predict <italic>r</italic>. Model-based collaborative filtering methods (e.g., matrix factorization) build an objective function to be optimized (either maximization or minimization) for recommendation goals. For numerical ratings <italic>r</italic> &#x02208; &#x0211D; (section 3.4.1) of users <italic>u</italic> to items <italic>i</italic>, we can minimize the error between the ground truth and the estimate as follows:</p>
<disp-formula id="E16"><label>(16)</label><mml:math id="M53"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo class="qopname">argmin</mml:mo></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo class="qopname">^</mml:mo></mml:mover></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo class="qopname">argmin</mml:mo></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo class="qopname">^</mml:mo></mml:mover></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mtext>sig</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo class="qopname">^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>&#x003B4;(<italic><bold>R</bold></italic>) is the set of training ratings, which are the non-missing entries in rating matrix <italic><bold>R</bold></italic>. As mentioned in section 3.4.1, if ground-truth ratings <italic>r</italic> are normalized to [0, 1] in data pre-processing, then in (16) we can put sigmoid function <inline-formula><mml:math id="M54"><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">sig</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x0002B;</mml:mo><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> onto rating estimate <inline-formula><mml:math id="M55"><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> that fits <italic>r</italic> more closely. With respect to probability, (16) is equivalent to maximizing normal likelihood:</p>
<disp-formula id="E17"><label>(17)</label><mml:math id="M56"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003BC;</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003BC;</mml:mi><mml:mo>=</mml:mo><mml:mtext>sig</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M57"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow></mml:math></inline-formula> is the probability density function of a normal distribution with mean <inline-formula><mml:math id="M58"><mml:mi>&#x003BC;</mml:mi><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> and variance &#x003C3;<sup>2</sup> is a predefined uncertainty between <italic>r</italic> and <inline-formula><mml:math id="M59"><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula>. Taking (&#x02212;log) on (17) will give (16). Evidently the rating prediction problem can be addressed by regression models over ratings <italic><bold>R</bold></italic> with both (16) and (17).</p>
<p>For binary ratings <italic>r</italic> &#x02208; {0, 1} (section 3.4.2), other than (16) with the sigmoid function, such data can also be modeled as a binary classification problem. Specifically, we model <italic>r</italic> &#x0003D; 1 as the positive set and <italic>r</italic> &#x0003D; 0 as the negative set. A logistic regression (or Bernoulli likelihood) is then built for rating prediction:</p>
<disp-formula id="E18"><label>(18)</label><mml:math id="M60"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mo class="qopname">Pr</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:mn>0</mml:mn><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mo class="qopname">Pr</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mtext>sig</mml:mtext><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Positive&#x000A0;set</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:mn>0</mml:mn><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:mtext>sig</mml:mtext><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Negative&#x000A0;set</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The optimizations of (16) and (17) are based on an evaluation metric: Root Mean Squared Error (RMSE), whose formal definition is as follows:</p>
<disp-formula id="E19"><label>(19)</label><mml:math id="M61"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mtext>RMSE</mml:mtext><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mo>|</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:mfrac><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:msqrt><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>For convenience of optimization, the regression models eliminate the root function from RMSE, essentially optimizing the MSE. Since the root function is monotonically increasing, minimizing MSE is equivalent to minimizing RMSE (19).</p>
<p>Even though a recommender system elects to optimize (18), the binary classification also attempts to minimize RMSE, except that rating estimate <inline-formula><mml:math id="M62"><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> is replaced with sigmoid-applied version <inline-formula><mml:math id="M63"><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">sig</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula>. Observing the maximization of (18), we obtain a conclusion: <inline-formula><mml:math id="M64"><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">sig</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> as <italic>r</italic> &#x0003D; 1, or <inline-formula><mml:math id="M65"><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">sig</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x02192;</mml:mo><mml:mn>0</mml:mn></mml:math></inline-formula> as <italic>r</italic> &#x0003D; 0. In other words, (18) tries to minimize the error between <inline-formula><mml:math id="M66"><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">sig</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> and <italic>r</italic> &#x02208; {0, 1}, which has the same optimization goal as RMSE (19).</p>
</sec>
<sec>
<title>3.5.2. Item Ranking: Pairwise Learning and Listwise Learning</title>
<p>This class of recommendation goal requires a model to correctly rank two items in the training data, even though the model could inaccurately predict the value of a single rating. Since recommender systems are more concerned about item ranking for the same user <italic>u</italic> than ranking for different users, existing approaches sample item pairs (<italic>i, j</italic>) where <italic>r</italic><sub><italic>ui</italic></sub> &#x0003E; <italic>r</italic><sub><italic>uj</italic></sub>, given fixed user <italic>u</italic> (i.e., item <italic>i</italic> is ranked higher than item <italic>j</italic> for user <italic>u</italic>), and then let rating estimate pair <inline-formula><mml:math id="M67"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> learn to rank the two items with <inline-formula><mml:math id="M68"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. In particular, we can use the sigmoid function <inline-formula><mml:math id="M69"><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">sig</mml:mtext></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x0002B;</mml:mo><mml:mo class="qopname">exp</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:math></inline-formula> to model the probabilities in the pairwise comparison likelihood:</p>
<disp-formula id="E20"><label>(20)</label><mml:math id="M70"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:munder><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:munder><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x0220F;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msubsup><mml:mo>&#x0007C;</mml:mo><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">&#x0007B;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">&#x0007D;</mml:mo><mml:mo>&#x02286;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:munder><mml:mrow><mml:mi>Pr</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:munder><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:munder><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x0220F;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msubsup><mml:mo>&#x0007C;</mml:mo><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">&#x0007B;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">&#x0007D;</mml:mo><mml:mo>&#x02286;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:munder><mml:mrow><mml:mtext>sig</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Taking (&#x02212;log) on objective function (20) will give the log-loss function. Bayesian Personalized Ranking (BPR) (Rendle et al., <xref ref-type="bibr" rid="B83">2009</xref>) first investigated the usage and the optimization of (20) for recommender systems. BPR shows that (20) maximizes a differentiable smoothness of the evaluation metric Area Under the ROC Curve (AUC):</p>
<disp-formula id="E21"><label>(21)</label><mml:math id="M71"><mml:mrow><mml:mtext>AUC</mml:mtext><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mi>T</mml:mi></mml:mfrac><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msubsup><mml:mo>&#x0007C;</mml:mo><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">&#x0007B;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">&#x0007D;</mml:mo><mml:mo>&#x02286;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:munder><mml:mrow><mml:mstyle mathvariant="double-struck"><mml:mtext>I</mml:mtext></mml:mstyle><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where <italic>T</italic> is the number of training instances {(<italic>u, i, j</italic>) &#x02223; {<italic>r</italic><sub><italic>ui</italic></sub>, <italic>r</italic><sub><italic>uj</italic></sub>} &#x02286; &#x003B4;(<italic><bold>R</bold></italic>), <italic>r</italic><sub><italic>ui</italic></sub> &#x0003E; <italic>r</italic><sub><italic>uj</italic></sub>}. <inline-formula><mml:math id="M72"><mml:mstyle mathvariant="double-struck"><mml:mtext>I</mml:mtext></mml:mstyle></mml:math></inline-formula>(<italic>x</italic>) &#x02208; {0, 1} denotes an indicator function whose output is 1 if and only if condition <italic>x</italic> is judged true. We show the connection between (20) and (21) below:</p>
<disp-formula id="E22"><label>(22)</label><mml:math id="M73"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:munder><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:munder><mml:mtext>&#x000A0;</mml:mtext><mml:mo stretchy='false'>(</mml:mo><mml:mn>21</mml:mn><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:munder><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:munder><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msubsup><mml:mo>&#x0007C;</mml:mo><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">&#x0007B;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">&#x0007D;</mml:mo><mml:mo>&#x02286;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:munder><mml:mrow><mml:mstyle mathvariant="double-struck"><mml:mtext>I</mml:mtext></mml:mstyle><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02248;</mml:mo><mml:munder><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:munder><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msubsup><mml:mo>&#x0007C;</mml:mo><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mo stretchy="false">&#x0007B;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">&#x0007D;</mml:mo><mml:mo>&#x02286;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:munder><mml:mrow><mml:mtext>sig</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02248;</mml:mo><mml:munder><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:munder><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msubsup><mml:mo>&#x0007C;</mml:mo><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mo stretchy="false">&#x0007B;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">&#x0007D;</mml:mo><mml:mo>&#x02286;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:munder><mml:mrow><mml:mtext>log&#x000A0;sig</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:munder><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext><mml:mi>log</mml:mi></mml:mrow><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:munder><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x0220F;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msubsup><mml:mo>&#x0007C;</mml:mo><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mo stretchy="false">&#x0007B;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">&#x0007D;</mml:mo><mml:mo>&#x02286;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:munder><mml:mrow><mml:mtext>sig</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mstyle><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Under the condition of argmax, we approximate non-differentiable indicator function <inline-formula><mml:math id="M74"><mml:mstyle mathvariant="double-struck"><mml:mtext>I</mml:mtext></mml:mstyle></mml:math></inline-formula>(<italic>x</italic>) by differentiable sigmoid function sig(<italic>x</italic>). The maximization of (22) is equivalent to optimizing (20) due to the monotonically increasing logarithmic function. AUC evaluates whether all the predicted item pairs follow the ground-truth rating comparisons in the whole item list. Our observations indicate that most of the reviewed approaches based on item ranking build their objective functions with AUC optimization. There are other choices of optimization functions to approximately maximize AUC, such as hinge loss:</p>
<disp-formula id="E23"><label>(23)</label><mml:math id="M75"><mml:mrow><mml:munder><mml:mrow><mml:mtext>argmin</mml:mtext></mml:mrow><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:munder><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:msubsup><mml:mo>&#x0007C;</mml:mo><mml:mrow><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0003E;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo stretchy="false">&#x0007B;</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>r</mml:mi><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">&#x0007D;</mml:mo><mml:mo>&#x02286;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:munder><mml:mrow><mml:mtext>max</mml:mtext><mml:mrow><mml:mo>{</mml:mo> <mml:mrow><mml:mn>0</mml:mn><mml:mo>,</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>r</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow> <mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>
<p>In the domain of top-<italic>N</italic> recommendation, the item order outside top-<italic>N</italic> ranks is unimportant for recommender systems. Maximizing AUC could fail to recommend items, since AUC gives the same penalty to all items. That is, a recommender system could gain high AUC when it accurately ranks the bottom-<italic>N</italic> items, but it is not beneficial for real-world recommendation, since a user only pays attention to the top-<italic>N</italic> items. Listwise evaluation metrics like Mean Reciprocal Rank (MRR), Normalized Discounted Cumulative Gain (NDCG), and Mean Average Precision (MAP) are proposed to give different penalty values to item ranking positions. There have been attempts to optimize differential versions of the above metrics, such as CliMF (Shi et al., <xref ref-type="bibr" rid="B94">2012b</xref>), SoftRank (Taylor et al., <xref ref-type="bibr" rid="B101">2008</xref>), and TFMAP (Shi et al., <xref ref-type="bibr" rid="B93">2012a</xref>).</p>
<p>Our observations of the surveyed papers indicate that recommender systems reading binary ratings (section 3.4.2) prefer to optimize an item-ranking objective function. Compared with numerical ratings (section 3.4.1), a single binary rating reveals less information on a user&#x00027;s absolute preference. Pairwise learning methods can capture more information by modeling a user&#x00027;s relative preferences, because the number of rating pairs <italic>r</italic><sub><italic>ui</italic></sub> &#x0003D; 1 &#x0003E; 0 &#x0003D; <italic>r</italic><sub><italic>uj</italic></sub> is more than the number of ratings for each user.</p>
</sec>
</sec>
<sec>
<title>3.6. Summary of Related Work</title>
<p>Having introduced the above categories for attribute-aware recommender systems, we list which category each publication we have surveyed belongs to in <xref ref-type="table" rid="T2">Tables 2</xref>&#x02013;<xref ref-type="table" rid="T4">4</xref>. We trace back 10 years to summarize the recent trends in attribute-aware recommender systems.</p>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>List of model categories.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Model</bold></th>
<th valign="top" align="center"><bold>Year</bold></th>
<th valign="top" align="center" colspan="3" style="border-bottom: thin solid #000000;"><bold>Attri. Source (3.2)</bold></th>
<th valign="top" align="center" colspan="2" style="border-bottom: thin solid #000000;"><bold>Attri. Type (3.3)</bold></th>
<th valign="top" align="center" colspan="2" style="border-bottom: thin solid #000000;"><bold>Rating type (3.4)</bold></th>
<th valign="top" align="center" colspan="2" style="border-bottom: thin solid #000000;"><bold>Recom. Goal (3.5)</bold></th>
</tr>
<tr>
<th/>
<th/>
<th valign="top" align="center"><bold>User</bold></th>
<th valign="top" align="center"><bold>Item</bold></th>
<th valign="top" align="center"><bold>Rating</bold></th>
<th valign="top" align="center"><bold>Num</bold>.</th>
<th valign="top" align="center"><bold>Cat</bold>.</th>
<th valign="top" align="center"><bold>Num</bold>.</th>
<th valign="top" align="center"><bold>Bin</bold>.</th>
<th valign="top" align="center"><bold>Pred</bold>.</th>
<th valign="top" align="center"><bold>Rank</bold>.</th>
</tr>
<tr>
<th/>
<th/>
<th valign="top" align="center"><bold>(3.2.1)</bold></th>
<th valign="top" align="center"><bold>(3.2.1)</bold></th>
<th valign="top" align="center"><bold>(3.2.2)</bold></th>
<th valign="top" align="center"><bold>(3.3.1)</bold></th>
<th valign="top" align="center"><bold>(3.3.2)</bold></th>
<th valign="top" align="center"><bold>(3.4.1)</bold></th>
<th valign="top" align="center"><bold>(3.4.2)</bold></th>
<th valign="top" align="center"><bold>(3.5.1)</bold></th>
<th valign="top" align="center"><bold>(3.5.2)</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">CMF (Singh and Gordon, <xref ref-type="bibr" rid="B98">2008</xref>)</td>
<td valign="top" align="center">2008</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">TBM (Gunawardana and Meek, <xref ref-type="bibr" rid="B32">2008</xref>)</td>
<td valign="top" align="center">2008</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">WNMCTF (Yoo and Choi, <xref ref-type="bibr" rid="B111">2009</xref>)</td>
<td valign="top" align="center">2009</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">CAR-AUC (Shin et al., <xref ref-type="bibr" rid="B97">2009</xref>)</td>
<td valign="top" align="center">2009</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">Multi. Recom.<xref ref-type="table-fn" rid="TN1"><sup>a</sup></xref> (Weng et al., <xref ref-type="bibr" rid="B106">2009</xref>)</td>
<td valign="top" align="center">2009</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">RLFM (Agarwal and Chen, <xref ref-type="bibr" rid="B4">2009</xref>)</td>
<td valign="top" align="center">2009</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">Unified Boltz (Gunawardana and Meek, <xref ref-type="bibr" rid="B33">2009</xref>)</td>
<td valign="top" align="center">2009</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">Matchbox (Stern et al., <xref ref-type="bibr" rid="B99">2009</xref>)</td>
<td valign="top" align="center">2009</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">BMFSI (Porteous et al., <xref ref-type="bibr" rid="B82">2010</xref>)</td>
<td valign="top" align="center">2010</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">wAMAN.<xref ref-type="table-fn" rid="TN2"><sup>b</sup></xref> (Li et al., <xref ref-type="bibr" rid="B63">2010a</xref>)</td>
<td valign="top" align="center">2010</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">CACF (Lee et al., <xref ref-type="bibr" rid="B59">2010</xref>)</td>
<td valign="top" align="center">2010</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">PLRM (Li et al., <xref ref-type="bibr" rid="B64">2010b</xref>)</td>
<td valign="top" align="center">2010</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">LAFM (Gantner et al., <xref ref-type="bibr" rid="B27">2010</xref>)</td>
<td valign="top" align="center">2010</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">GPMF (Shan and Banerjee, <xref ref-type="bibr" rid="B91">2010</xref>)</td>
<td valign="top" align="center">2010</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">LFL (Menon and Elkan, <xref ref-type="bibr" rid="B73">2010</xref>)</td>
<td valign="top" align="center">2010</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">TF (Karatzoglou et al., <xref ref-type="bibr" rid="B51">2010</xref>)</td>
<td valign="top" align="center">2010</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">GWNMTF (Gu et al., <xref ref-type="bibr" rid="B31">2010</xref>)</td>
<td valign="top" align="center">2010</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">DPMF (Adams et al., <xref ref-type="bibr" rid="B1">2010</xref>)</td>
<td valign="top" align="center">2010</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">SoRec (Ma et al., <xref ref-type="bibr" rid="B71">2011b</xref>)</td>
<td valign="top" align="center">2011</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">UGPMF (Du et al., <xref ref-type="bibr" rid="B24">2011</xref>)</td>
<td valign="top" align="center">2011</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">BMCF (Yoo and Choi, <xref ref-type="bibr" rid="B112">2011</xref>)</td>
<td valign="top" align="center">2011</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">MCRI (Fang and Si, <xref ref-type="bibr" rid="B25">2011</xref>)</td>
<td valign="top" align="center">2011</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">Hybrid.<xref ref-type="table-fn" rid="TN3"><sup>c</sup></xref> (Menon et al., <xref ref-type="bibr" rid="B72">2011</xref>)</td>
<td valign="top" align="center">2011</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">YMR (Koenigstein et al., <xref ref-type="bibr" rid="B54">2011</xref>)</td>
<td valign="top" align="center">2011</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">CAMF (Baltrunas et al., <xref ref-type="bibr" rid="B5">2011</xref>)</td>
<td valign="top" align="center">2011</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">GFREC (Lee et al., <xref ref-type="bibr" rid="B60">2011</xref>)</td>
<td valign="top" align="center">2011</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">FM (Rendle et al., <xref ref-type="bibr" rid="B84">2011</xref>)</td>
<td valign="top" align="center">2011</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">FIP (Yang et al., <xref ref-type="bibr" rid="B110">2011</xref>)</td>
<td valign="top" align="center">2011</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">iTALS (Hidasi and Tikk, <xref ref-type="bibr" rid="B42">2012</xref>)</td>
<td valign="top" align="center">2012</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">HVBMCF (Yoo and Choi, <xref ref-type="bibr" rid="B113">2012</xref>)</td>
<td valign="top" align="center">2012</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">LCR (Weston et al., <xref ref-type="bibr" rid="B107">2012</xref>)</td>
<td valign="top" align="center">2012</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">HierIntegModel (Lu et al., <xref ref-type="bibr" rid="B69">2012</xref>)</td>
<td valign="top" align="center">2012</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">SVDFeature (Chen et al., <xref ref-type="bibr" rid="B18">2012</xref>)</td>
<td valign="top" align="center">2012</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">SSLIM (Ning and Karypis, <xref ref-type="bibr" rid="B77">2012</xref>)</td>
<td valign="top" align="center">2012</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">KPMF (Zhou et al., <xref ref-type="bibr" rid="B125">2012</xref>)</td>
<td valign="top" align="center">2012</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">TFMAP (Shi et al., <xref ref-type="bibr" rid="B93">2012a</xref>)</td>
<td valign="top" align="center">2012</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">CCMF (Bouchard et al., <xref ref-type="bibr" rid="B12">2013</xref>)</td>
<td valign="top" align="center">2013</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">GFMF (Chen et al., <xref ref-type="bibr" rid="B16">2013</xref>)</td>
<td valign="top" align="center">2013</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">KBMF (G&#x000F6;nen et al., <xref ref-type="bibr" rid="B30">2013</xref>)</td>
<td valign="top" align="center">2013</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">HBMFSI (Park et al., <xref ref-type="bibr" rid="B79">2013</xref>)</td>
<td valign="top" align="center">2013</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">DACR (Safoury and Salah, <xref ref-type="bibr" rid="B85">2013</xref>)</td>
<td valign="top" align="center">2013</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">Maxide (Xu et al., <xref ref-type="bibr" rid="B108">2013</xref>)</td>
<td valign="top" align="center">2013</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">MF-EFS (Koenigstein and Paquet, <xref ref-type="bibr" rid="B55">2013</xref>)</td>
<td valign="top" align="center">2013</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">HeteroMF (Jamali and Lakshmanan, <xref ref-type="bibr" rid="B47">2013</xref>)</td>
<td valign="top" align="center">2013</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">SoCo (Liu and Aberer, <xref ref-type="bibr" rid="B65">2013</xref>)</td>
<td valign="top" align="center">2013</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>Numbers in parentheses refer to the sections of the current paper giving category elaborations. All the model names come from the proposing publications, except that we use title abbreviations if the authors do not name their approaches. Long model names are given in the footnotes</italic>.</p>
<fn id="TN1"><label>a</label><p><italic>Multidimensional Recommendation</italic>.</p></fn>
<fn id="TN2"><label>b</label><p><italic>wAMANWithSchKW</italic>.</p></fn>
<fn id="TN3"><label>c</label><p><italic>Hybrid&#x0002B;LogReg&#x0002B;&#x0002B;</italic>.</p></fn>
</table-wrap-foot>
</table-wrap>
<table-wrap position="float" id="T3">
<label>Table 3</label>
<caption><p>List of model categories.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Model</bold></th>
<th valign="top" align="center"><bold>Year</bold></th>
<th valign="top" align="center" colspan="3" style="border-bottom: thin solid #000000;"><bold>Attri. Source (3.2)</bold></th>
<th valign="top" align="center" colspan="2" style="border-bottom: thin solid #000000;"><bold>Attri. Type (3.3)</bold></th>
<th valign="top" align="center" colspan="2" style="border-bottom: thin solid #000000;"><bold>Rating type (3.4)</bold></th>
<th valign="top" align="center" colspan="2" style="border-bottom: thin solid #000000;"><bold>Recom. Goal (3.5)</bold></th>
</tr>
<tr>
<th/>
<th/>
<th valign="top" align="center"><bold>User</bold></th>
<th valign="top" align="center"><bold>Item</bold></th>
<th valign="top" align="center"><bold>Rating</bold></th>
<th valign="top" align="center"><bold>Num</bold>.</th>
<th valign="top" align="center"><bold>Cat</bold>.</th>
<th valign="top" align="center"><bold>Num</bold>.</th>
<th valign="top" align="center"><bold>Bin</bold>.</th>
<th valign="top" align="center"><bold>Pred</bold>.</th>
<th valign="top" align="center"><bold>Rank</bold>.</th>
</tr>
<tr>
<th/>
<th/>
<th valign="top" align="center"><bold>(3.2.1)</bold></th>
<th valign="top" align="center"><bold>(3.2.1)</bold></th>
<th valign="top" align="center"><bold>(3.2.2)</bold></th>
<th valign="top" align="center"><bold>(3.3.1)</bold></th>
<th valign="top" align="center"><bold>(3.3.2)</bold></th>
<th valign="top" align="center"><bold>(3.4.1)</bold></th>
<th valign="top" align="center"><bold>(3.4.2)</bold></th>
<th valign="top" align="center"><bold>(3.5.1)</bold></th>
<th valign="top" align="center"><bold>(3.5.2)</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">C-CTR-SMF2 (Chen et al., <xref ref-type="bibr" rid="B15">2014</xref>)</td>
<td valign="top" align="center">2014</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">VBMFSI-CA (Kim and Choi, <xref ref-type="bibr" rid="B53">2014</xref>)</td>
<td valign="top" align="center">2014</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">IMC (Natarajan and Dhillon, <xref ref-type="bibr" rid="B75">2014</xref>)</td>
<td valign="top" align="center">2014</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">CARS<sup>2</sup> (Shi et al., <xref ref-type="bibr" rid="B92">2014a</xref>)</td>
<td valign="top" align="center">2014</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">LLR (Ji et al., <xref ref-type="bibr" rid="B48">2014</xref>)</td>
<td valign="top" align="center">2014</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">GBFM (Cheng et al., <xref ref-type="bibr" rid="B20">2014</xref>)</td>
<td valign="top" align="center">2014</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">SCF (Sedhain et al., <xref ref-type="bibr" rid="B90">2014</xref>)</td>
<td valign="top" align="center">2014</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">LCE (Saveski and Mantrach, <xref ref-type="bibr" rid="B88">2014</xref>)</td>
<td valign="top" align="center">2014</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">CSEL (Zhang et al., <xref ref-type="bibr" rid="B117">2014</xref>)</td>
<td valign="top" align="center">2014</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">GPFM (Nguyen et al., <xref ref-type="bibr" rid="B76">2014</xref>)</td>
<td valign="top" align="center">2014</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">NCRPD-MF (Hu et al., <xref ref-type="bibr" rid="B45">2014</xref>)</td>
<td valign="top" align="center">2014</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">HeteRec (Yu et al., <xref ref-type="bibr" rid="B115">2014</xref>)</td>
<td valign="top" align="center">2014</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">CAPRF (Gao et al., <xref ref-type="bibr" rid="B28">2015</xref>)</td>
<td valign="top" align="center">2015</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">mSDA-CF (Li et al., <xref ref-type="bibr" rid="B61">2015</xref>)</td>
<td valign="top" align="center">2015</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">BIMC (Shin et al., <xref ref-type="bibr" rid="B96">2015</xref>)</td>
<td valign="top" align="center">2015</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">Convex FM (Blondel et al., <xref ref-type="bibr" rid="B9">2015</xref>)</td>
<td valign="top" align="center">2015</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">CDL (Wang et al., <xref ref-type="bibr" rid="B105">2015</xref>)</td>
<td valign="top" align="center">2015</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">LightFM (Kula, <xref ref-type="bibr" rid="B58">2015</xref>)</td>
<td valign="top" align="center">2015</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">DCT (Barjasteh et al., <xref ref-type="bibr" rid="B6">2015</xref>)</td>
<td valign="top" align="center">2015</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">GFF (Hidasi, <xref ref-type="bibr" rid="B41">2015</xref>)</td>
<td valign="top" align="center">2015</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">CALR (Liu and Wu, <xref ref-type="bibr" rid="B66">2015</xref>)</td>
<td valign="top" align="center">2015</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">VBPR (He and McAuley, <xref ref-type="bibr" rid="B37">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">GFF (Hidasi and Tikk, <xref ref-type="bibr" rid="B43">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">PNFM (Blondel et al., <xref ref-type="bibr" rid="B10">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">TCRM (Kasai and Mishra, <xref ref-type="bibr" rid="B52">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">PCFSI (Zhao et al., <xref ref-type="bibr" rid="B120">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">CKE (Zhang et al., <xref ref-type="bibr" rid="B116">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">CRAE (Wang et al., <xref ref-type="bibr" rid="B104">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">SIMMCSI (Lu et al., <xref ref-type="bibr" rid="B68">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">DSR (Zheng et al., <xref ref-type="bibr" rid="B122">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">ALMM (Chou et al., <xref ref-type="bibr" rid="B22">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">FFM (Juan et al., <xref ref-type="bibr" rid="B50">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">ReMF (Yang et al., <xref ref-type="bibr" rid="B109">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">TAPER (Ge et al., <xref ref-type="bibr" rid="B29">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">LPRRM-CF (Chen et al., <xref ref-type="bibr" rid="B19">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">HeteRS (Pham et al., <xref ref-type="bibr" rid="B81">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">MVM (Cao et al., <xref ref-type="bibr" rid="B14">2016</xref>)</td>
<td valign="top" align="center">2016</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">SQ (Yu et al., <xref ref-type="bibr" rid="B114">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">LoCo (Sedhain et al., <xref ref-type="bibr" rid="B89">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">aSDAE (Dong et al., <xref ref-type="bibr" rid="B23">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">CoEmbed (Guo, <xref ref-type="bibr" rid="B35">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">HMF (Brouwer and Li&#x000F2;, <xref ref-type="bibr" rid="B13">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">DeepFM (Guo et al., <xref ref-type="bibr" rid="B34">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">LDRSSI (Feipeng Zhao, <xref ref-type="bibr" rid="B26">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">CGSI (Zhou T. et al., <xref ref-type="bibr" rid="B124">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>The numbers in parentheses refer to the sections of the current paper giving category elaborations. All the model names come from the proposing publications, except that we use title abbreviations if the authors do not name their approaches. Long model names are given in the footnotes</italic>.</p>
</table-wrap-foot>
</table-wrap>
<table-wrap position="float" id="T4">
<label>Table 4</label>
<caption><p>List of model categories.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Model</bold></th>
<th valign="top" align="center"><bold>Year</bold></th>
<th valign="top" align="center" colspan="3" style="border-bottom: thin solid #000000;"><bold>Attri. Source (3.2)</bold></th>
<th valign="top" align="center" colspan="2" style="border-bottom: thin solid #000000;"><bold>Attri. Type (3.3)</bold></th>
<th valign="top" align="center" colspan="2" style="border-bottom: thin solid #000000;"><bold>Rating Type (3.4)</bold></th>
<th valign="top" align="center" colspan="2" style="border-bottom: thin solid #000000;"><bold>Recom. Goal (3.5)</bold></th>
</tr>
<tr>
<th/>
<th/>
<th valign="top" align="center"><bold>User</bold></th>
<th valign="top" align="center"><bold>Item</bold></th>
<th valign="top" align="center"><bold>Rating</bold></th>
<th valign="top" align="center"><bold>Num</bold>.</th>
<th valign="top" align="center"><bold>Cat</bold>.</th>
<th valign="top" align="center"><bold>Num</bold>.</th>
<th valign="top" align="center"><bold>Bin</bold>.</th>
<th valign="top" align="center"><bold>Pred</bold>.</th>
<th valign="top" align="center"><bold>Rank</bold>.</th>
</tr>
<tr>
<th/>
<th/>
<th valign="top" align="center"><bold>(3.2.1)</bold></th>
<th valign="top" align="center"><bold>(3.2.1)</bold></th>
<th valign="top" align="center"><bold>(3.2.2)</bold></th>
<th valign="top" align="center"><bold>(3.3.1)</bold></th>
<th valign="top" align="center"><bold>(3.3.2)</bold></th>
<th valign="top" align="center"><bold>(3.4.1)</bold></th>
<th valign="top" align="center"><bold>(3.4.2)</bold></th>
<th valign="top" align="center"><bold>(3.5.1)</bold></th>
<th valign="top" align="center"><bold>(3.5.2)</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Func. Embed.<xref ref-type="table-fn" rid="TN4"><sup>a</sup></xref> (Chen et al., <xref ref-type="bibr" rid="B17">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">CVAE (Li and She, <xref ref-type="bibr" rid="B62">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">entity2rec (Palumbo et al., <xref ref-type="bibr" rid="B78">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">NFM (He and Chua, <xref ref-type="bibr" rid="B38">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">MFM (Lu et al., <xref ref-type="bibr" rid="B67">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">Focused FM (Beutel et al., <xref ref-type="bibr" rid="B7">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">GB-CENT (Zhao et al., <xref ref-type="bibr" rid="B121">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">CML (Hsieh et al., <xref ref-type="bibr" rid="B44">2017</xref>)</td>
<td valign="top" align="center">2017</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">ATRank (Zhou C.et al., <xref ref-type="bibr" rid="B123">2017</xref>)</td>
<td valign="top" align="center">2018</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td valign="top" align="left">Div-HeteRec (Nandanwar et al., <xref ref-type="bibr" rid="B74">2018</xref>)</td>
<td valign="top" align="center">2018</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">HeteLearn (Jiang et al., <xref ref-type="bibr" rid="B49">2018</xref>)</td>
<td valign="top" align="center">2018</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">RNNLatentCross (Beutel et al., <xref ref-type="bibr" rid="B8">2018</xref>)</td>
<td valign="top" align="center">2018</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">DDL (Zhang et al., <xref ref-type="bibr" rid="B119">2018</xref>)</td>
<td valign="top" align="center">2018</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>The numbers in parentheses refer to the sections of the current paper giving category elaborations. All the model names come from the proposing publications, except that we use title abbreviations if the authors do not name their approaches. Long model names are given in the footnotes</italic>.</p>
<fn id="TN4"><label>a</label><p><italic>Functional Embedding</italic>.</p></fn>
</table-wrap-foot>
</table-wrap>
</sec>
</sec>
<sec id="s4">
<title>4. Common Model Designs of Attribute-Aware Recommender Systems</title>
<p>In this section, we formally introduce the common attribute integration methods of existing attribute-aware recommender systems. If collaborative filtering approaches are modeled by user or item latent factor structures like matrix factorization, then attribute matrices become either the prior knowledge of the latent factors (section 4.1) or the generation outputs from the latent factors (section 4.2). On the other hand, some approaches used are actually generalizations of matrix factorization (section 4.3). Besides, the interactions between users and items can be recorded by a heterogeneous network, which can incorporate attributes by simply adding attribute-representing nodes (section 4.4). The major distinction of these four categories lies in the representation of the interactions of users, items, and attributes. The discriminative matrix factorization models extend the traditional MF by learning the latent representation of users or items from the input attribute prior knowledge. Generative matrix factorization further considers the distributions of attributes and learns such together with the rating distributions. Generalized factorization models view the user/item identity simply as a kind of attribute, and various models have been designed for learning the low-dimensional representation vectors for rating prediction. The last category of models propose to represent the users, items, and attributes using a heterogeneous graph, where a recommendation task can be cast into a link prediction task on the heterogeneous graph. We classify each model into these categories in <xref ref-type="table" rid="T5">Table 5</xref>.</p>
<table-wrap position="float" id="T5">
<label>Table 5</label>
<caption><p>Classification of attribute-aware recommender systems.</p></caption>
<table frame="hsides" rules="groups">
<tbody>
<tr>
<td valign="top" align="left">DMF</td>
<td valign="top" align="left">Similarity</td>
<td valign="top" align="left">Adams et al., <xref ref-type="bibr" rid="B1">2010</xref>; Gu et al., <xref ref-type="bibr" rid="B31">2010</xref>; Li et al., <xref ref-type="bibr" rid="B63">2010a</xref>; Du et al., <xref ref-type="bibr" rid="B24">2011</xref>; Zhou et al., <xref ref-type="bibr" rid="B125">2012</xref>; G&#x000F6;nen et al., <xref ref-type="bibr" rid="B30">2013</xref>; Chen et al., <xref ref-type="bibr" rid="B15">2014</xref>; Barjasteh et al., <xref ref-type="bibr" rid="B6">2015</xref>; Yu et al., <xref ref-type="bibr" rid="B114">2017</xref></td>
</tr>
<tr>
<td/>
<td valign="top" align="left">Linear</td>
<td valign="top" align="left">Menon and Elkan, <xref ref-type="bibr" rid="B73">2010</xref>; Porteous et al., <xref ref-type="bibr" rid="B82">2010</xref>; Menon et al., <xref ref-type="bibr" rid="B72">2011</xref>; He and McAuley, <xref ref-type="bibr" rid="B37">2016</xref>; Zhao et al., <xref ref-type="bibr" rid="B120">2016</xref>; Feipeng Zhao, <xref ref-type="bibr" rid="B26">2017</xref>; Guo, <xref ref-type="bibr" rid="B35">2017</xref></td>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td/>
<td valign="top" align="left">Bilinear</td>
<td valign="top" align="left">Agarwal and Chen, <xref ref-type="bibr" rid="B4">2009</xref>; Stern et al., <xref ref-type="bibr" rid="B99">2009</xref>; Li et al., <xref ref-type="bibr" rid="B64">2010b</xref>; Yang et al., <xref ref-type="bibr" rid="B110">2011</xref>; Chen et al., <xref ref-type="bibr" rid="B18">2012</xref>; Park et al., <xref ref-type="bibr" rid="B79">2013</xref>; Xu et al., <xref ref-type="bibr" rid="B108">2013</xref>; Kim and Choi, <xref ref-type="bibr" rid="B53">2014</xref>; Natarajan and Dhillon, <xref ref-type="bibr" rid="B75">2014</xref>; Shin et al., <xref ref-type="bibr" rid="B96">2015</xref>; Chou et al., <xref ref-type="bibr" rid="B22">2016</xref>; Lu et al., <xref ref-type="bibr" rid="B68">2016</xref></td>
</tr>
<tr>
<td valign="top" align="left">GMF</td>
<td valign="top" align="left">Multiple Matrix Factorization</td>
<td valign="top" align="left">Singh and Gordon, <xref ref-type="bibr" rid="B98">2008</xref>; Shan and Banerjee, <xref ref-type="bibr" rid="B91">2010</xref>; Fang and Si, <xref ref-type="bibr" rid="B25">2011</xref>; Ma et al., <xref ref-type="bibr" rid="B71">2011b</xref>; Yoo and Choi, <xref ref-type="bibr" rid="B112">2011</xref>; Bouchard et al., <xref ref-type="bibr" rid="B12">2013</xref>; Saveski and Mantrach, <xref ref-type="bibr" rid="B88">2014</xref>; Gao et al., <xref ref-type="bibr" rid="B28">2015</xref>; Ge et al., <xref ref-type="bibr" rid="B29">2016</xref>; Brouwer and Li&#x000F2;, <xref ref-type="bibr" rid="B13">2017</xref>; Sedhain et al., <xref ref-type="bibr" rid="B89">2017</xref></td>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td/>
<td valign="top" align="left">Deep Neural Networks</td>
<td valign="top" align="left">Li et al., <xref ref-type="bibr" rid="B61">2015</xref>; Wang et al., <xref ref-type="bibr" rid="B105">2015</xref>, <xref ref-type="bibr" rid="B104">2016</xref>; Zhang et al., <xref ref-type="bibr" rid="B116">2016</xref>; Dong et al., <xref ref-type="bibr" rid="B23">2017</xref>; Li and She, <xref ref-type="bibr" rid="B62">2017</xref></td>
</tr>
<tr>
<td valign="top" align="left">GF</td>
<td valign="top" align="left">TF</td>
<td valign="top" align="left">Karatzoglou et al., <xref ref-type="bibr" rid="B51">2010</xref>; Hidasi and Tikk, <xref ref-type="bibr" rid="B42">2012</xref>; Hidasi, <xref ref-type="bibr" rid="B41">2015</xref>; Kasai and Mishra, <xref ref-type="bibr" rid="B52">2016</xref>; Zhou T. et al., <xref ref-type="bibr" rid="B124">2017</xref></td>
</tr>
<tr style="border-bottom: thin solid #000000;">
<td/>
<td valign="top" align="left">FM</td>
<td valign="top" align="left">Rendle et al., <xref ref-type="bibr" rid="B84">2011</xref>; Cheng et al., <xref ref-type="bibr" rid="B20">2014</xref>; Nguyen et al., <xref ref-type="bibr" rid="B76">2014</xref>; Blondel et al., <xref ref-type="bibr" rid="B9">2015</xref>, <xref ref-type="bibr" rid="B10">2016</xref>; Cao et al., <xref ref-type="bibr" rid="B14">2016</xref>; Juan et al., <xref ref-type="bibr" rid="B50">2016</xref>; Guo et al., <xref ref-type="bibr" rid="B34">2017</xref>; He and Chua, <xref ref-type="bibr" rid="B38">2017</xref>; Lu et al., <xref ref-type="bibr" rid="B67">2017</xref></td>
</tr>
<tr>
<td valign="top" align="left">HG</td>
<td/>
<td valign="top" align="left">Yu et al., <xref ref-type="bibr" rid="B115">2014</xref>; Zheng et al., <xref ref-type="bibr" rid="B122">2016</xref>; Palumbo et al., <xref ref-type="bibr" rid="B78">2017</xref></td>
</tr>
</tbody>
</table>
</table-wrap>
<sec>
<title>4.1. Discriminative Matrix Factorization</title>
<p>Intuitively, the goal of an attribute-aware recommender system is to import attributes to improve recommendation performance (either rating prediction or item ranking). In the framework of matrix factorization, an item is rated or ranked according to the latent factors of the item and its corresponding users. In order words, the learning of latent factors in classical matrix factorization depends only on ratings. Thus, the learning may fail due to a lack of training ratings. If we can regularize the latent factors using attributes or make attributes determine how to rate items then matrix factorization methods can be more robust to compensate for the lack of rating information in the training data, especially for those users or items that have very few ratings. In the following, we choose to describe attribute participation from probabilistic perspectives. Learning in Probabilistic Matrix Factorization (PMF) tries to maximize the posterior probability <italic>p</italic>(<italic><bold>W</bold></italic>, <italic><bold>H</bold></italic> &#x02223; <italic><bold>R</bold></italic>) of two latent factor matrices <italic><bold>W</bold></italic> (for users) and <italic><bold>H</bold></italic> (for items) given observed entries of training rating matrix <italic><bold>R</bold></italic>. Clearly, attribute-aware recommender systems claim that we are given an extra attribute matrix <italic><bold>X</bold></italic>. Then by Bayes&#x00027; rule, the posterior probability can be shown as follows:</p>
<disp-formula id="E24"><label>(24)</label><mml:math id="M76"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Posterior</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mfrac><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Prior</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>We eliminate the denominator <italic>p</italic>(<italic><bold>R</bold></italic> &#x02223; <italic><bold>X</bold></italic>) since it does not contain variables <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic> for maximization. At the prior part, we follow the independence assumption <italic><bold>W</bold></italic>&#x022A5;<italic><bold>H</bold></italic> of PMF, though here the independence is given attribute matrix <italic><bold>X</bold></italic>. Now, compared with classical PMF, both likelihood <italic>p</italic>(<italic><bold>R</bold></italic> &#x02223; <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic>, <italic><bold>X</bold></italic>) and prior <italic>p</italic>(<italic><bold>W</bold></italic> &#x02223; <italic><bold>X</bold></italic>)<italic>p</italic>(<italic><bold>H</bold></italic> &#x02223; <italic><bold>X</bold></italic>) could be affected by attributes <italic><bold>X</bold></italic>. Attributes in the likelihood can directly help predict or rank ratings, while attributes in the priors regularize the learning directions of latent factors. Moreover, some current works assume additional independence between attributes and the matrix factorization formulation. We give graphical interpretation of Discriminative Matrix Factorization in <xref ref-type="fig" rid="F5">Figure 5</xref>. For ease of explanation, we suppose that all the random variables follow a normal distribution <inline-formula><mml:math id="M77"><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003BC;</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> with mean &#x003BC; and variance &#x003C3;<sup>2</sup>, or a multivariate normal distribution <inline-formula><mml:math id="M78"><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mo>&#x003BC;</mml:mo></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> with mean vector <italic><bold>&#x003BC;</bold></italic> and covariance matrix <bold>&#x003A3;</bold>. Theoretically, the following models accept other probability distributions.</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>Graphical interpretation of a discriminative probabilistic matrix factorization whose attributes <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic>, <italic><bold>Z</bold></italic> are given for ratings and latent factors. User and item-relevant attributes <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic> could affect the generation of latent factors <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic>, or ratings <italic><bold>R</bold></italic>, while rating-relevant attributes <italic><bold>Z</bold></italic> typically determine the rating prediction <italic><bold>R</bold></italic>. The models of this class may eliminate some of the gray arrows to imply additional independence assumptions between attributes and other factors.</p></caption>
<graphic xlink:href="fdata-02-00049-g0005.tif"/>
</fig>
<p>We further introduce the sub-categories below.</p>
<sec>
<title>4.1.1. Attributes in a Linear Model</title>
<p>This is the generalized form to utilize attributes in this category. Given the attributes, a weight vector is applied to perform linear regression together with classical matrix factorization <inline-formula><mml:math id="M79"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>w</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>h</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Its characteristics in mathematical form are shown in likelihood functions:</p>
<disp-formula id="E25"><label>(25)</label><mml:math id="M80"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>argmax</mml:mo></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mi>&#x003B8;</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B2;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B3;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>z</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Prior</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mo>;</mml:mo><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B8; &#x0003D; {&#x003B1;, &#x003B2;, &#x003B3;}, while &#x003B4;(<italic><bold>R</bold></italic>) denotes the non-missing ratings in the training data, and &#x003C0;(<italic>u, i</italic>) is the column index corresponding to user <italic>u</italic> and item <italic>i</italic>. <inline-formula><mml:math id="M81"><mml:mstyle mathvariant="bold-italic"><mml:mtext>X</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mtext>Y</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mtext>Z</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:mo>|</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>R</mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>|</mml:mo></mml:mrow></mml:msup></mml:math></inline-formula> denote attribute matrices relevant to user, item, and ratings, respectively, while &#x003B1;, &#x003B2;, &#x003B3; are their corresponding transformation functions, where attribute space is mapped toward the rating space identical with <inline-formula><mml:math id="M82"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>w</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>h</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Most early models select simple linear transformations, i.e., &#x003B1;(<italic><bold>x</bold></italic>) &#x0003D; <italic><bold>a</bold></italic><sup>&#x022A4;</sup><italic><bold>x</bold></italic>, &#x003B2;(<italic><bold>y</bold></italic>) &#x0003D; <bold>b</bold><sup>&#x022A4;</sup><italic><bold>y</bold></italic>, &#x003B3;(<italic><bold>z</bold></italic>) &#x0003D; <italic><bold>c</bold></italic><sup>&#x022A4;</sup><italic><bold>z</bold></italic>, which has shown a boost in performance, but recent works consider neural networks for non-linear &#x003B1;, &#x003B2;, &#x003B3; mapping functions. A simple linear regression model can be expressed as a likelihood function of normal distribution <inline-formula><mml:math id="M83"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>r</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003BC;</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> with mean &#x003BC; and variance &#x003C3;<sup>2</sup>. Ideally, the distributions of latent factors <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic> will have prior knowledge from attributes <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic>, but we have not yet observed an approach aiming at designing attribute-aware priors as the last two terms of (25).</p>
<list list-type="bullet">
<list-item><p><bold>Bayesian Matrix Factorization with Side Information (BMFSI)</bold> (Porteous et al., <xref ref-type="bibr" rid="B82">2010</xref>) is an example in this sub-category. On the basis of Bayesian Probabilistic Matrix Factorization (BPMF) (Salakhutdinov and Mnih, <xref ref-type="bibr" rid="B87">2008</xref>), BMFSI uses a linear combination like (25) to introduce attribute information to rating prediction. It is formulated as:
<disp-formula id="E26"><label>(26)</label><mml:math id="M84"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mi>&#x003B8;</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Priors</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mi>&#x003B8;</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>b</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Matrix&#x000A0;factorization&#x000A0;using&#x000A0;attributes</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003BC;</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003BC;</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Regularization</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>where &#x003B8; &#x0003D; {<italic><bold>a</bold></italic>, <italic><bold>b</bold></italic>} and &#x003B4;(<italic><bold>R</bold></italic>) is the set of training ratings. The difference from (25) is that rating attributes <italic><bold>z</bold></italic> will be concatenated with either <italic><bold>x</bold></italic><sub><italic>u</italic></sub> or <italic><bold>y</bold></italic><sub><italic>u</italic></sub>, and thus we drop independent weight variable <italic>c</italic> in BMFSI. We ignore other attribute-free designs of BMFSI (e.g., the Dirichlet process).</p></list-item>
</list>
</sec>
<sec>
<title>4.1.2. Attributes in a Bilinear Model</title>
<p>This is a popular method when two kinds of attributes (usually user and item) are provided. Given user attribute matrix <italic><bold>X</bold></italic> and item attribute matrix <italic><bold>Y</bold></italic>, a matrix <bold>A</bold> is used to model the relation between them. The mathematical form can be viewed as follows:</p>
<disp-formula id="E27"><label>(27)</label><mml:math id="M85"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mi>&#x003B8;</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x003B1;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B2;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B3;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>b</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>|</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>|</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Prior</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B8; &#x0003D; {&#x003B1;, &#x003B2;, &#x003B3;} are transformation functions from attribute space to rating space. In particular, function &#x003B1; learns the interior dependency between user attributes <italic><bold>x</bold></italic> and item attributes <italic><bold>y</bold></italic>, while &#x003B2; and &#x003B3; find the extra factors by which <italic><bold>x</bold></italic> or <italic><bold>y</bold></italic> itself affects the rating result. Compared with (25), the advantage of (27) is that it further considers a set of rating factors that come from the intersections between user and item attributes. However, such a modeling approach cannot work if either user attributes or item attributes are not provided by training data. Prior studies commonly select a simple linear form, called bilinear regression:</p>
<disp-formula id="E28"><label>(28)</label><mml:math id="M86"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>&#x003B1;</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B2;</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>&#x003B3;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mi>b</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>c</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>d</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mi>b</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover><mml:msub><mml:mrow><mml:mover accent="false"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>In fact, as mentioned in Lu et al. (<xref ref-type="bibr" rid="B68">2016</xref>), <inline-formula><mml:math id="M87"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>c</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>d</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>y</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mtext>b</mml:mtext></mml:mstyle></mml:math></inline-formula> can be absorbed into <inline-formula><mml:math id="M88"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mtext>A</mml:mtext></mml:mstyle><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>y</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> and written in the form <inline-formula><mml:math id="M89"><mml:mrow><mml:msubsup><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover><mml:mi>u</mml:mi><mml:mo>&#x022A4;</mml:mo></mml:msubsup><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover><mml:msub><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> by appending a new dimension whose value is fixed to 1 for each <italic><bold>x</bold></italic> and <italic><bold>y</bold></italic>.</p>
<p>Works in this category differ on whether the bilinear term is explicit or implicit. Also, the latent factor matrices <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic> are inherently included in the bilinear form. Specifically, (28) implies that the form of the dot product of two linear-transformed attributes <italic><bold>w</bold></italic><sub><italic>u</italic></sub> &#x0003D; <italic><bold>Sx</bold></italic><sub><italic>u</italic></sub> and <italic><bold>h</bold></italic><sub><italic>i</italic></sub> &#x0003D; <italic><bold>Ty</bold></italic><sub><italic>i</italic></sub> since it can be reformed as <inline-formula><mml:math id="M90"><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>w</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>h</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mtext>T</mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>y</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> where <italic><bold>A</bold></italic> &#x0003D; <italic><bold>S</bold></italic><sup>&#x022A4;</sup><italic><bold>T</bold></italic>. Some works such as the Regression-based Latent Factor Model (see below) choose to softly constrain <italic><bold>w</bold></italic><sub><italic>u</italic></sub> &#x02248; <italic><bold>Sx</bold></italic><sub><italic>u</italic></sub> and <italic><bold>h</bold></italic><sub><italic>i</italic></sub> &#x02248; <italic><bold>Ty</bold></italic><sub><italic>i</italic></sub> using priors <italic>p</italic>(<italic><bold>W</bold></italic> &#x02223; <italic><bold>X</bold></italic>) and, <italic>p</italic>(<italic><bold>H</bold></italic> &#x02223; <italic><bold>Y</bold></italic>).</p>
<list list-type="bullet">
<list-item><p><bold>Matchbox</bold> (Stern et al., <xref ref-type="bibr" rid="B99">2009</xref>) (<xref ref-type="fig" rid="F6">Figure 6</xref>). Let <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic>, <italic><bold>Z</bold></italic> be the attribute matrices with respect to users, items, and ratings, respectively. Matchbox assumes a rating is predicted by the linear combinations of <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic>, <italic><bold>Z</bold></italic>:
<disp-formula id="E29"><label>(29)</label><mml:math id="M91"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>c</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>c</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>Z</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>c</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Prior</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>c</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>c</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>z</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Matrix&#x000A0;factorization&#x000A0;using&#x000A0;attributes</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mtable class="subarray-c" rowspacing="0" columnalign="center"><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>m</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi><mml:mi>u</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi><mml:mi>u</mml:mi><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>B</mml:mi><mml:mi>i</mml:mi><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Regularization</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>where &#x003B4;(<italic><bold>R</bold></italic>) is the set of non-missing entries in rating matrix <italic>R</italic>. <italic><bold>x</bold></italic><sub><italic>u</italic></sub>, <italic><bold>y</bold></italic><sub><italic>i</italic></sub> represents the attribute set of user <italic>u</italic> or item <italic>i</italic>. <italic><bold>z</bold></italic><sub>(<italic>u,i</italic>)</sub> denotes the rating-relevant attributes associated with user <italic>u</italic> and item <italic>i</italic>. Note that (29) defines latent factors <italic><bold>W</bold></italic> &#x0003D; <italic><bold>AX</bold></italic>, <italic><bold>H</bold></italic> &#x0003D; <italic><bold>BY</bold></italic>, and then we just have to learn the shared weight matrices <italic><bold>A</bold></italic>, <bold>B</bold>. The prior distributions of <italic><bold>A</bold></italic>, <bold>B</bold>, <italic><bold>c</bold></italic> are further factorized, which assumes that all the weight entries in these matrices are independent of each other.</p></list-item>
<list-item><p><bold>Friendship-Interest Propagation (FIP)</bold> (Yang et al., <xref ref-type="bibr" rid="B110">2011</xref>) (<xref ref-type="fig" rid="F7">Figure 7</xref>). Following the notations from the previous RLFM introduction, FIP considers two types of attribute matrices: <italic><bold>X</bold></italic> and <italic><bold>Y</bold></italic>. Based on vanilla matrix factorization, FIP encodes attribute information by modeling the potential correlations between <italic><bold>X</bold></italic> and <italic><bold>Y</bold></italic>:
<disp-formula id="E30"><label>(30)</label><mml:math id="M92"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>C</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>C</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Prior</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>C</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mi>C</mml:mi></mml:mstyle><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Matrix&#x000A0;factorization&#x000A0;using&#x000A0;attributes</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>W</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>H</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Regularization&#x000A0;using&#x000A0;attributes</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>where matrix <italic><bold>C</bold></italic> forms the correlations between attribute matrices <italic><bold>X</bold></italic> and <italic><bold>Y</bold></italic>.</p></list-item>
<list-item><p><bold>Regression-based Latent Factor Model (RLFM)</bold> (Agarwal and Chen, <xref ref-type="bibr" rid="B4">2009</xref>) (<xref ref-type="fig" rid="F8">Figure 8</xref>). Given three types of attribute matrices: user-relevant <italic><bold>X</bold></italic>, item-relevant <italic><bold>Y</bold></italic>, and rating-relevant <italic><bold>Z</bold></italic>, RLFM models them in different parts of biased matrix factorization. <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic> serve as the hyperparameters of latent factors, while <italic><bold>Z</bold></italic> joins the regression framework to predict ratings together with latent factors. RLFM can be written as:
<disp-formula id="E31"><label>(31)</label><mml:math id="M93"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mi>&#x003B8;</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>c</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>d</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mo>&#x003B3;</mml:mo></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>Z</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>c</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mo>&#x003B1;</mml:mo></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>d</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B2;</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Prior</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mi>&#x003B8;</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>r</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>c</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="italic"><mml:mi>d</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mo>&#x003B3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>z</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Matrix&#x000A0;factorization&#x000A0;using&#x000A0;attributes</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mtable class="subarray-c" rowspacing="0" columnalign="center"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>W</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mo>&#x003B1;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>H</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B2;</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Regularization&#x000A0;using&#x000A0;attributes</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>where &#x003B8; &#x0003D; {<italic><bold>c</bold></italic>, <italic><bold>d</bold></italic>, <italic><bold>A</bold></italic>, <italic><bold>B</bold></italic>, <italic><bold>&#x003B1;</bold></italic>, <italic><bold>&#x003B2;</bold></italic>, <italic><bold>&#x003B3;</bold></italic>} and &#x003B4;(<italic><bold>R</bold></italic>) is the set of non-missing ratings for training. Biased matrix factorization adds two vectors <italic><bold>c</bold></italic>, <italic><bold>d</bold></italic> to learn the biases for each user or item. Parameters <italic><bold>A</bold></italic>, <italic><bold>B</bold></italic>, <italic><bold>&#x003B1;</bold></italic>, <italic><bold>&#x003B2;</bold></italic>, <bold>&#x003B3;</bold> map attributes with latent factors (for <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic>) or rating prediction (for <italic><bold>Z</bold></italic>).</p></list-item>
</list>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>Matchbox.</p></caption>
<graphic xlink:href="fdata-02-00049-g0006.tif"/>
</fig>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p>KPMF.</p></caption>
<graphic xlink:href="fdata-02-00049-g0007.tif"/>
</fig>
<fig id="F8" position="float">
<label>Figure 8</label>
<caption><p>RLFM.</p></caption>
<graphic xlink:href="fdata-02-00049-g0008.tif"/>
</fig>
</sec>
<sec>
<title>4.1.3. Attributes in a Similarity Matrix</title>
<p>In this case, a similarity matrix that measures the closeness of attributes between users or between items is presented. Given the user attribute matrix <inline-formula><mml:math id="M94"><mml:mstyle mathvariant="bold-italic"><mml:mtext>X</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>, where <italic>N</italic><sub><italic>u</italic></sub> is the number of users and <italic>D</italic> is the user attribute dimension, a similarity matrix <inline-formula><mml:math id="M95"><mml:mstyle mathvariant="bold-italic"><mml:mtext>S</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> is computed. There are many metrics for similarity calculation, such as Euclidean distance and kernel functions. The similarity matrix is then used for matrix factorization or other solutions. The special quality of this case is that human knowledge is involved in determining how the interactions between attributes should be modeled. One example is Kernelized Probabilistic Matrix Factorization, which utilizes both a user similarity matrix and item a similarity matrix.</p>
<list list-type="bullet">
<list-item><p><bold>Kernelized Probabilistic Matrix Factorization (KPMF)</bold> (Zhou et al., <xref ref-type="bibr" rid="B125">2012</xref>) (<xref ref-type="fig" rid="F9">Figure 9</xref>). Let <italic>K, N</italic><sub><italic>u</italic></sub>, <italic>N</italic><sub><italic>i</italic></sub> be the number of latent factors, users, and items. Given user-relevant attribute matrix <inline-formula><mml:math id="M96"><mml:mstyle mathvariant="bold-italic"><mml:mtext>X</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> or item-relevant attribute matrix <inline-formula><mml:math id="M97"><mml:mstyle mathvariant="bold-italic"><mml:mtext>Y</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>, we can always obtain a similarity matrix <inline-formula><mml:math id="M98"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> or <inline-formula><mml:math id="M99"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>S</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>Y</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> where each entry stores a pre-defined similarity between a pair of users or items. KPMF then formulates the similarity matrix as the prior of its corresponding latent factor matrix:
<disp-formula id="E32"><label>(32)</label><mml:math id="M100"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Prior</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Matrix&#x000A0;factorization</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>k</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold"><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>S</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold"><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>S</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Regularization&#x000A0;using&#x000A0;attributes</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Here, we use subscripts <italic><bold>w</bold></italic><sub><italic>u</italic></sub> to denote the <italic>u</italic>-th column vector of a matrix <italic><bold>W</bold></italic>, while superscripts <italic><bold>w</bold></italic><sup><italic>k</italic></sup> imply the <italic>k</italic>-th row vector of <italic><bold>W</bold></italic>. Intuitively, the similarity matrices control the learning preferences of user or item latent factors. If two users have similar user-relevant attributes (i.e., they have a higher similarity measure in <italic><bold>S</bold></italic><sub><italic><bold>X</bold></italic></sub>), then their latent factors are forced to be closer during the matrix factorization learning.</p></list-item>
</list>
<fig id="F9" position="float">
<label>Figure 9</label>
<caption><p>FIP.</p></caption>
<graphic xlink:href="fdata-02-00049-g0009.tif"/>
</fig>
<p>Neural Collaborative Filtering (He et al., <xref ref-type="bibr" rid="B40">2017</xref>) (NCF) is a model that combines a linear structure and a neural network. He et al. (<xref ref-type="bibr" rid="B39">2018</xref>) further improves it by using CNN on top of the outer product of user and item embeddings. However, the authors only used user and item one-hot encoding vectors as their input. Though they mentioned that it could be easily modified to accommodate additional attributes, it was not clearly demonstrated. Therefore, we do not include it in either of the categories since it is beyond the scope of our survey (though it is similar to Discriminative Matrix Factorization). We still include NCF as a baseline model in the empirical comparison section, as well as including a slight modification of the model that takes additional attributes as inputs as a competitor. A brief introduction of the model and its variance will be given in section 5.1.1.</p>
</sec>
</sec>
<sec>
<title>4.2. Generative Matrix Factorization</title>
<p>In Probabilistic Matrix Factorization (PMF), ratings are generated by the interactions of user or item latent factors. However, the PMF latent factors are not limited to rating generation. We can also generate attributes from latent factors. Mathematically, using Bayes&#x00027; rule, we maximize a posteriori as follows:</p>
<disp-formula id="E33"><label>(33)</label><mml:math id="M101"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Posterior</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mfrac><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Prior</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>p</italic>(<italic><bold>R</bold></italic>, <italic><bold>X</bold></italic>) does not affect the posterior maximization. We again assume independence <italic><bold>R</bold></italic>&#x022A5;<italic><bold>X</bold></italic> given latent factors <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic> in (33), which is commonly adopted in related work. Furthermore, <italic><bold>X</bold></italic> may share either latent factors <italic><bold>W</bold></italic> [i.e., <italic>p</italic>(<italic><bold>X</bold></italic> &#x02223; <italic><bold>W</bold></italic>)] or <italic><bold>H</bold></italic> [i.e., <italic>p</italic>(<italic><bold>X</bold></italic> &#x02223; <italic><bold>H</bold></italic>)] with <italic><bold>R</bold></italic> but not both due to matrix factorization having more generalization capability. We give the graphical interpretation of Generative Matrix Factorization in <xref ref-type="fig" rid="F10">Figure 10</xref>.</p>
<fig id="F10" position="float">
<label>Figure 10</label>
<caption><p>Graphical interpretation of generative probabilistic matrix factorization, whose attributes <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic>, <italic><bold>Z</bold></italic>, together with ratings, are generated or predicted by latent factors. User and item-relevant attributes <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic> could be generated by corresponding latent factors <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic>, respectively. Rating-relevant attributes <italic><bold>Z</bold></italic> are likely to result from both <italic><bold>W</bold></italic> and <italic><bold>H</bold></italic>. For models of this class, some of the gray arrows are removed to represent their additional independence assumptions about attribute generation.</p></caption>
<graphic xlink:href="fdata-02-00049-g0010.tif"/>
</fig>
<p>The following relevant works are classified in this category. For simplicity, all the probabilities follow a normal distribution, i.e, <inline-formula><mml:math id="M102"><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>x</mml:mi><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003BC;</mml:mi><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> (i.e., squared loss objective) with mean &#x003BC; and variance &#x003C3;<sup>2</sup> (or mean vector <bold>&#x003BC;</bold> and covariance matrix <bold>&#x003A3;</bold> for multivariate normal distributions). However, the example models are never restricted to within normal distributions.</p>
<p>There are two different branches in this direction. On the one hand, earlier works again use the matrix factorization technique to generate attributes from user or item latent factors. This can be seen as a linear mapping between latent factors and attributes. On the other hand, with the help of deep neural networks, recent works combine matrix factorization and deep autoencoders to realize non-linear mappings for attribute generation. We will introduce them in the following sections.</p>
<sec>
<title>4.2.1. Attributes in Multiple Matrix Factorization</title>
<p>Similar to PMF <italic><bold>R</bold></italic> &#x02248; <italic><bold>W</bold></italic><sup>&#x022A4;</sup><italic><bold>H</bold></italic> for rating distributions; attributes distributions are modeled using another matrix factorization form. Given user attribute matrix <italic><bold>X</bold></italic>, item attribute matrix <italic><bold>Y</bold></italic>, and rating attribute matrix <italic><bold>Z</bold></italic>, they can be factorized as <italic><bold>X</bold></italic> &#x02248; <italic><bold>A</bold></italic><sup>&#x022A4;</sup><italic><bold>W</bold></italic>, <italic><bold>Y</bold></italic> &#x02248; <bold>B</bold><sup>&#x022A4;</sup><italic><bold>H</bold></italic> of, low rank. Specifically, its objective function is written as:</p>
<disp-formula id="E34"><label>(34)</label><mml:math id="M103"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mtable class="subarray-c" rowspacing="0" columnalign="center"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>r</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>v</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>b</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>z</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mi>C</mml:mi></mml:mstyle><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Prior</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B4;(<italic><bold>R</bold></italic>) denotes the non-missing entries of matrix <italic><bold>R</bold></italic>. The insight of (34) is to share the latent factors <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic> in multiple factorization tasks. <italic><bold>W</bold></italic> is shared with user attributes, while <italic><bold>H</bold></italic> is shared with item attributes. <italic><bold>Z</bold></italic> requires the sharing of both <italic><bold>W</bold></italic> and <italic><bold>H</bold></italic> due to user- and item-specific rating attributes. Therefore, the side information of <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic>, and <italic><bold>Z</bold></italic> can indirectly transfer to rating prediction. Auxiliary matrices <italic><bold>A</bold></italic>, <bold>B</bold>, and <italic><bold>C</bold></italic> learn the mappings between latent factors and attributes. With respect to the mathematical form of matrix factorization, the expectation of feature values is linearly correlated with its corresponding latent factors.</p>
<list list-type="bullet">
<list-item><p><bold>Collective Matrix Factorization (CMF)</bold> (Singh and Gordon, <xref ref-type="bibr" rid="B98">2008</xref>) (<xref ref-type="fig" rid="F11">Figure 11</xref>). Here, we introduce a common model in this sub-category. The CMF framework relies on the combination of multiple matrix factorization objective functions. CMF first builds the MF for rating matrix <italic><bold>R</bold></italic>. User- and item-relevant attribute matrices <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic> are then appended to the matrix factorization objectives. Overall, we have:
<disp-formula id="E35"><label>(35)</label><mml:math id="M104"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Prior</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Matrix&#x000A0;factorization&#x000A0;of&#x000A0;</mml:mtext><mml:mi>R</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>u</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>X</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Matrix&#x000A0;factorization&#x000A0;of&#x000A0;</mml:mtext><mml:mi>X</mml:mi></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>v</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>v</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>b</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>Y</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Matrix&#x000A0;factorization&#x000A0;of&#x000A0;</mml:mtext><mml:mi>Y</mml:mi></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mtable class="subarray-c" rowspacing="0" columnalign="center"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold"><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>W</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold"><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>H</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>a</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold"><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mstyle displaystyle="true"><mml:msub><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>b</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>v</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold"><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>B</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Regularization</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>where &#x003B4;(<italic><bold>R</bold></italic>), &#x003B4;(<italic><bold>X</bold></italic>), &#x003B4;(<italic><bold>Y</bold></italic>) denote the non-missing entries of matrix <italic><bold>R</bold></italic>, <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic> that are generated by latent factor matrices <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic>, <italic><bold>A</bold></italic>, <bold>B</bold> of zero-mean normal priors (i.e., <italic>l</italic>2 regularization). In (35), <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic> are shared by at least two matrix factorization objectives. Attribute information in <italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic> is transferred to rating prediction <italic><bold>R</bold></italic> through sharing the same latent factors. Note that CMF is not limited to three matrix factorization objectives (35).</p></list-item>
</list>
<fig id="F11" position="float">
<label>Figure 11</label>
<caption><p>CMF.</p></caption>
<graphic xlink:href="fdata-02-00049-g0011.tif"/>
</fig>
</sec>
<sec>
<title>4.2.2. Attributes in Deep Neural Networks</title>
<p>In deep neural networks, an autoencoder is usually used to learn the latent representation of observed data. Specifically, the model tries to construct an encoder <inline-formula><mml:math id="M105"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi></mml:mrow></mml:math></inline-formula> and a decoder <inline-formula><mml:math id="M106"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">D</mml:mi></mml:mrow></mml:math></inline-formula>, where the encoder learns to map from possibly modified attributes <inline-formula><mml:math id="M107"><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover></mml:math></inline-formula> to low-dimensional latent factors, and the decoder recovers original attributes <italic><bold>X</bold></italic> from latent factors. Moreover, activation functions in autoencoders can reflect non-linear mappings between latent factors and attributes, which may capture the characteristics of attributes more accurately.</p>
<p>To implement an autoencoder, we first generate another attribute matrix <inline-formula><mml:math id="M108"><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover></mml:math></inline-formula> from <italic><bold>X</bold></italic>. <inline-formula><mml:math id="M109"><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover></mml:math></inline-formula> could be the same as <italic><bold>X</bold></italic> or could be different due to corruption, e.g., adding random noise. Autoencoders aim to predict the original <italic><bold>X</bold></italic> using latent factors that are inferred from generated <inline-formula><mml:math id="M110"><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover></mml:math></inline-formula>. Here, attributes serve not only as the generation results <italic><bold>X</bold></italic> but also as the prior knowledge <inline-formula><mml:math id="M111"><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover></mml:math></inline-formula> of latent factors. Let us review Bayes&#x00027; Rule to figure out where autoencoders appear for generative matrix factorization:</p>
<disp-formula id="E36"><label>(36)</label><mml:math id="M112"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo class="qopname">&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mfrac><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo class="qopname">&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo class="qopname">&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo class="qopname">&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo class="qopname">&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo class="qopname">&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Matrix factorization</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Decoder</mml:mtext><mml:mrow><mml:mi mathvariant="-tex-caligraphic">D</mml:mi></mml:mrow></mml:mrow></mml:munder></mml:mstyle></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Encoder</mml:mtext><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi></mml:mrow></mml:mrow></mml:munder></mml:mstyle></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Prior&#x000A0;with&#x000A0;assumption&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>&#x022A5;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow></mml:munder></mml:mstyle><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p><italic>p</italic>(<italic><bold>R</bold></italic>, <italic><bold>Y</bold></italic> &#x02223; <italic><bold>&#x01EF8;</bold></italic>) is eliminated due to irrelevance in maximization of (36). By sharing latent factors <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic> between autoencoders and matrix factorization, attribute information can affect the learning of rating prediction. Modeling <inline-formula><mml:math id="M113"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">D</mml:mi></mml:mrow></mml:math></inline-formula> with normal distributions, we can conclude that the expectation of attributes <italic><bold>X</bold></italic> is non-linearly mapped from latent factors <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic>. Although latent factors have priors from attributes, we categorize relevant works as generative matrix factorization, since we explicitly model attribute distributions in the decoder part of autoencoders.</p>
<list list-type="bullet">
<list-item><p><bold>Collaborative Deep Learning (CDL)</bold> (Wang et al., <xref ref-type="bibr" rid="B105">2015</xref>) (<xref ref-type="fig" rid="F12">Figure 12</xref>). This model uses a combination of collaborative filtering and Stacked Denoising Auto-Encoder (SDAE). Since the model claims to exploit item attributes <italic><bold>Y</bold></italic> only, in the following introduction we define <inline-formula><mml:math id="M114"><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover></mml:mrow></mml:math></inline-formula> in (36). In SDAE, input attribute <italic><bold>&#x01EF8;</bold></italic> is not equivalent to <italic><bold>Y</bold></italic> due to the addition of random noise to <italic><bold>&#x01EF8;</bold></italic>. CDL implicitly adds several independence assumptions (<italic><bold>R</bold></italic>&#x022A5;<italic><bold>&#x01EF8;</bold></italic> &#x02223; <italic><bold>W</bold></italic>, <italic><bold>H</bold></italic>), (<italic><bold>Y</bold></italic>&#x022A5;<italic><bold>W</bold></italic> &#x02223; <italic><bold>H</bold></italic>, <italic><bold>&#x01EF8;</bold></italic>), (<italic><bold>W</bold></italic>&#x022A5;<italic><bold>&#x01EF8;</bold></italic>) to formulate its model. Then, using identical notations in CMF introduction, normal distributions <inline-formula><mml:math id="M115"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow></mml:math></inline-formula> are again applied to CDL:
<disp-formula id="E37"><label>(37)</label><mml:math id="M116"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003D5;</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Prior</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003D5;</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Matrix&#x000A0;factorization</mml:mtext></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">D</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003D5;</mml:mi></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi></mml:mrow></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>&#x003B8;</mml:mi></mml:mstyle></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent='true'><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle><mml:mo>&#x002DC;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>H</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Stacked&#x000A0;denoising&#x000A0;auto-encoder&#x000A0;for&#x000A0;</mml:mtext><mml:mstyle mathvariant="bold-italic"><mml:mi>Y</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold"><mml:mn>0</mml:mn></mml:mstyle><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold"><mml:mo>&#x003A3;</mml:mo></mml:mstyle></mml:mrow><mml:mrow><mml:mi>W</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Regularization</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>Functions <inline-formula><mml:math id="M117"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">E</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">D</mml:mi></mml:mrow></mml:math></inline-formula> indicate the encoder and the decoder of SDAE. The two functions could be formed by multi-layer perceptrons whose parameters are denoted by <italic><bold>&#x003B8;</bold></italic>, <italic><bold>&#x003D5;</bold></italic>. The distribution of attribute matrix <italic><bold>Y</bold></italic> to be modeled in the decoder part can be clearly seen. Last but not least, the analysis from (36) to (37) implies that other ideas, user-relevant attributes for example, could be involved naturally in CDL, as long as we remove more independence assumptions.</p></list-item>
</list>
<fig id="F12" position="float">
<label>Figure 12</label>
<caption><p>CDL.</p></caption>
<graphic xlink:href="fdata-02-00049-g0012.tif"/>
</fig>
</sec>
</sec>
<sec>
<title>4.3. Generalized Factorization</title>
<p>Thanks to the success of matrix factorization in recommender systems, advanced works have emerged on generalizing the concept of matrix factorization in order to extract more information from attributes or interactions between users and items. The works classified in either sections 4.1 or 4.2 propose to design attribute-aware components on the basis of PMF. They explicitly express an assumption of vanilla PMF: the existence of a latent factor matrix <italic><bold>W</bold></italic> to represent user preferences and another matrix <italic><bold>H</bold></italic> for items. However, the works classified in this section do not regard <italic><bold>W</bold></italic> and <italic><bold>H</bold></italic> as special features of the models. Rather, such works propose an expanded latent factor space shared by users, items, and attributes. Here, neither users nor items are special entities in a recommender system. They are simply considered as categorical attributes. Taking rating <italic>r</italic><sub><italic>ui</italic></sub> as an example, it implies that we have a one-hot user-encoding vector where all the entries are 0 except for the <italic>u</italic>-th entry; similarly, we also have a one-hot item-encoding vector of the <italic>i</italic>-th entry, 1. Thus, external attributes <italic><bold>X</bold></italic> can be involved simply in the matrix-factorization-based models, because now users and items are also attributes whose interactions commonly predict or rank ratings. We first propose the most generalized version of interpretation: Given a rating <italic>r</italic> and its corresponding attribute vector <italic><bold>x</bold></italic> &#x02208; &#x0211D;<sup><italic>N</italic></sup>, then we make rating estimate (<xref ref-type="fig" rid="F13">Figure 13</xref>):</p>
<disp-formula id="E38"><label>(38)</label><mml:math id="M118"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:munder><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mi>w</mml:mi></mml:munder><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x0220F;</mml:mo><mml:mrow><mml:mi>r</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:munder><mml:mi mathvariant='script'>N</mml:mi></mml:mstyle><mml:mrow><mml:mo>(</mml:mo> <mml:mrow><mml:mi>r</mml:mi><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mi>&#x003BC;</mml:mi><mml:mi>R</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow> <mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>M</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mrow><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:msub><mml:mi>j</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:munderover><mml:mrow><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:msub><mml:mi>j</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>j</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:munderover><mml:mtext>&#x0200B;</mml:mtext></mml:mstyle></mml:mrow></mml:mstyle></mml:mrow></mml:mstyle><mml:mo>&#x02026;</mml:mo><mml:mtext>&#x0200B;</mml:mtext><mml:mstyle displaystyle='true'><mml:munderover><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:msub><mml:mi>j</mml:mi><mml:mi>d</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>j</mml:mi><mml:mrow><mml:mi>d</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:munderover><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:msub><mml:mi>j</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:msub><mml:mi>j</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mi>j</mml:mi><mml:mi>d</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mstyle><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:msub><mml:mi>j</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:msub><mml:mi>j</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:msub><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:msub><mml:mi>j</mml:mi><mml:mi>d</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mi>R</mml:mi><mml:mn>2</mml:mn></mml:msubsup></mml:mrow> <mml:mo>)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where &#x003B4;(<italic><bold>R</bold></italic>) indicates the set of observed ratings in training data. Variable <italic>d</italic> &#x02208; {0} &#x0222A; &#x02115; determines the <italic>d</italic>th-order multiplication interaction between attributes <italic>x</italic><sub><italic>j</italic></sub>. As <italic>d</italic> &#x0003D; 0, we introduce an extra bias weight <italic>w</italic><sub>0</sub> &#x02208; &#x0211D; in (38). The large number of parameters <italic>w</italic> &#x02208; &#x0211D; is very likely to overfit training ratings due to the dimensionality curse. To alleviate overfitting problems, the ideas in matrix factorization are applied here. For higher values of <italic>d</italic>, it is assumed that each <italic>w</italic> is a function of low-dimensional latent factors:</p>
<disp-formula id="E39"><label>(39)</label><mml:math id="M119"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M120"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> implies the <italic>K</italic>-dimensional (<italic>K</italic><sub><italic>j</italic></sub> &#x0226A; <italic>N</italic>&#x02200;<italic>j</italic>) latent factor or representation vector for each element <italic>x</italic><sub><italic>j</italic></sub> of <italic><bold>x</bold></italic> (<xref ref-type="fig" rid="F14">Figure 14</xref>). Function <italic>f</italic><sub><italic>d</italic></sub> maps these <italic>d</italic> vectors to a real-valued weight. Our learning parameters then become <italic><bold>v</bold></italic>. The overall number of parameters (<italic>D</italic><sub><italic>m</italic></sub> &#x02264; <italic>d</italic> &#x02264; <italic>D</italic><sub><italic>M</italic></sub>) decreases from <inline-formula><mml:math id="M121"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>M</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover><mml:mfrac><mml:mrow><mml:mi>n</mml:mi><mml:mo>!</mml:mo></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mo>!</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>-</mml:mo><mml:mi>d</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>!</mml:mo></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mi>O</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M122"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>O</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>N</mml:mi><mml:mi>K</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> where <inline-formula><mml:math id="M123"><mml:mi>K</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mtext>max</mml:mtext></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02264;</mml:mo><mml:mi>j</mml:mi><mml:mo>&#x02264;</mml:mo><mml:mi>N</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Next, we prove that matrix factorization is a special case of (38). Let <italic>D</italic><sub><italic>m</italic></sub> &#x0003D; <italic>D</italic><sub><italic>M</italic></sub> &#x0003D; 2 and <italic><bold>x</bold></italic> be the concatenation of one-hot encoding vectors of users as well as items. Also, we define <inline-formula><mml:math id="M124"><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>v</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mtext>y</mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mtext>y</mml:mtext></mml:mstyle></mml:math></inline-formula>. Then, for rating <italic>r</italic><sub><italic>ui</italic></sub> of user <italic>u</italic> to item <italic>i</italic>, we have:</p>
<disp-formula id="E40"><label>(40)</label><mml:math id="M125"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:mrow><mml:mi mathvariant="-tex-caligraphic">N</mml:mi></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>N</italic><sub><italic>u</italic></sub> denotes the number of users. Equation (40) is essentially equivalent to matrix factorization. In this class, the existing works either generalize or improve two early published models: Tensor Factorization (TF) (<xref ref-type="fig" rid="F15">Figure 15</xref>) and the Factorization Machine (FM) (<xref ref-type="fig" rid="F16">Figure 16</xref>). Both models can be viewed as special cases of (38). We introduce TF and FM in the sections below.</p>
<fig id="F13" position="float">
<label>Figure 13</label>
<caption><p><italic>w</italic>-weighted generalization.</p></caption>
<graphic xlink:href="fdata-02-00049-g0013.tif"/>
</fig>
<fig id="F14" position="float">
<label>Figure 14</label>
<caption><p><italic>v</italic>-approximate generalization.</p></caption>
<graphic xlink:href="fdata-02-00049-g0014.tif"/>
</fig>
<fig id="F15" position="float">
<label>Figure 15</label>
<caption><p>TF.</p></caption>
<graphic xlink:href="fdata-02-00049-g0015.tif"/>
</fig>
<fig id="F16" position="float">
<label>Figure 16</label>
<caption><p>FM.</p></caption>
<graphic xlink:href="fdata-02-00049-g0016.tif"/>
</fig>
<sec>
<title>4.3.1. TF-Extended Models</title>
<p>Tensor Factorization (TF) (Karatzoglou et al., <xref ref-type="bibr" rid="B51">2010</xref>) requires the input features to be categorical. Attribute vector <italic><bold>x</bold></italic> &#x02208; {0, 1}<sup><italic>N</italic></sup> is the concatenation of <italic>D</italic> one-hot encoding vectors. (<italic>D</italic> &#x02212; 2) categorical rating-relevant attributes form their own binary one-hot representations. The additional two one-hot vectors represent IDs of users and items, respectively. As a special case of (38), TF fixes <italic>D</italic><sub><italic>m</italic></sub> &#x0003D; <italic>D</italic><sub><italic>M</italic></sub> &#x0003D; <italic>D</italic> to build a single <italic>D</italic>-order interaction between attributes. Since weight function <italic>f</italic><sub><italic>D</italic></sub> in (39) allows individual dimensions <italic>K</italic><sub><italic>j</italic></sub> for each latent factor vector <italic><bold>v</bold></italic><sub><italic>j</italic></sub>, TF defines a tensor <inline-formula><mml:math id="M126"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">S</mml:mi></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> to exploit the tensor product of all latent factor vectors. In sum, (38) is simplified as follows:</p>
<disp-formula id="E41"><label>(41)</label><mml:math id="M127"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mo>&#x02026;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;as&#x000A0;</mml:mtext><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>&#x02026;</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mtext>other&#x000A0;</mml:mtext><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mo>&#x02329;</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">S</mml:mi></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>&#x0232A;</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:munderover></mml:mstyle><mml:mo>&#x02026;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where function <italic>f</italic>(&#x000B7;) &#x0003D; &#x0003C; &#x000B7; &#x0003E; denotes the tensor product. Note that attribute vectors <italic><bold>x</bold></italic> in TF must consist of exact <italic>C</italic> 1s due to one-hot encoding. Therefore, there exists only the matches <italic>j</italic><sub>1</sub> &#x0003D; <italic>l</italic><sub>1</sub>, <italic>j</italic><sub>2</sub> &#x0003D; <italic>l</italic><sub>2</sub>, &#x02026;, <italic>j</italic><sub><italic>D</italic></sub> &#x0003D; <italic>l</italic><sub><italic>D</italic></sub> where all the attributes in these positions are set to 1.</p>
</sec>
<sec>
<title>4.3.2. FM-Extended Models</title>
<p>The Factorization Machine (FM) (Rendle et al., <xref ref-type="bibr" rid="B84">2011</xref>) allows numerical attributes <italic><bold>x</bold></italic> &#x02208; &#x0211D;<sup><italic>N</italic></sup> as input, including one-hot representations of users and items. Although higher-order interactions between attributes could be formulated, FM focuses on at most second-order interactions. To derive FM from (38), let 0 &#x0003D; <italic>D</italic><sub><italic>m</italic></sub> &#x02264; <italic>d</italic> &#x02264; <italic>D</italic><sub><italic>M</italic></sub> &#x0003D; 2 and <inline-formula><mml:math id="M128"><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>v</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:math></inline-formula> in (39) be applied for the second-order interaction. We then begin to simplify (38):</p>
<disp-formula id="E42"><label>(42)</label><mml:math id="M129"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mi>&#x003BC;</mml:mi></mml:mrow><mml:mrow><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:munder></mml:mstyle><mml:mo>&#x0002B;</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:munder></mml:mstyle><mml:mo>&#x0002B;</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:munder></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>which is exactly the formulation of FM. Note that FM implicitly requires all the latent factor vectors <italic><bold>v</bold></italic> to be of the same dimension <italic>K</italic>; however, this requirement could be removed from the viewpoint of our general form (38). Models in this category mainly differ in two aspects. First, linear mapping can be replaced by deep neural networks, which allows non-linear mapping of attributes. Second, FM only extracts first-order and second-order interactions. Further works such as Cao et al. (<xref ref-type="bibr" rid="B14">2016</xref>) extract higher-order interactions between attributes.</p>
</sec>
</sec>
<sec>
<title>4.4. Modeling User-Item-Rating Interactions Using Heterogeneous Graphs</title>
<p>We notice several relevant works that perform low-rank factorization or representation learning in heterogeneous graphs, such as (Lee et al., <xref ref-type="bibr" rid="B60">2011</xref>; Yu et al., <xref ref-type="bibr" rid="B115">2014</xref>; Pham et al., <xref ref-type="bibr" rid="B81">2016</xref>; Zheng et al., <xref ref-type="bibr" rid="B122">2016</xref>; Palumbo et al., <xref ref-type="bibr" rid="B78">2017</xref>; Jiang et al., <xref ref-type="bibr" rid="B49">2018</xref>; Nandanwar et al., <xref ref-type="bibr" rid="B74">2018</xref>). Note that these works do not require graph-structured data. Instead, they model the interactions between user, item, rating, and attribute as a heterogeneous graph. The interactions of users and items can be represented by a heterogeneous graph with two node types. An edge is unweighted for implicit feedback and weighted for explicit opinions. External attributes are typically leveraged by assigning them extra nodes in the heterogeneous graph. A heterogeneous graph structure is more suitable for categorical attributes, since each candidate value of attributes can be naturally assigned a node.</p>
<p>In heterogeneous graphs, recommendation can be viewed as a <italic>link prediction</italic> problem. Predicting a future rating corresponds to forecasting whether an edge will be built between user and item nodes. The existing works commonly adopt a two-stage algorithm to learn the model. First, we apply a random-walk or a meta-path algorithm to gather the similarities between users and items from a heterogeneous graph. The similarity information can be kept as multiple similarity matrices or network embedding vectors. Then, a matrix factorization model or other supervised machine learning algorithms are applied to extract discriminative features from the gathered similarity information, which is used for future rating prediction. Another kind of method is to first define the environment where ranking or similarity algorithms are applied. Defining the environment refers to either determining the heterogeneous graph structures or learning the transition probabilities between nodes from observed heterogeneous graphs. Having the environment, we can apply an existing algorithm (Rooted PageRank, for example) or a proposed method to gain the relative ranking scores for each item. In other words, the main difference between the two kinds of methods is whether the similarity calculation is in the first stage or the second stage. Both kinds of methods as abovementioned can be unified as a constrained likelihood maximization:</p>
<disp-formula id="E43"><label>(43)</label><mml:math id="M130"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmax&#x000A0;</mml:mtext></mml:mrow><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>p</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>s</mml:mi><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle><mml:mo>&#x02223;</mml:mo><mml:mi>&#x003B8;</mml:mi><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Likelihood</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mtext>such that</mml:mtext></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mstyle displaystyle="true"><mml:munder accentunder="false"><mml:mrow><mml:mi>s</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>w</mml:mi><mml:mo>&#x02208;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x02119;</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:msub><mml:mrow><mml:mi>f</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>w</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x02200;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>R</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo>&#x0FE38;</mml:mo></mml:munder></mml:mstyle></mml:mrow><mml:mrow><mml:mtext>Constraint&#x000A0;considering&#x000A0;attributes</mml:mtext></mml:mrow></mml:munder></mml:mstyle><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where a parameterized function <italic>f</italic><sub>&#x003B8;</sub> is specifically defined to estimate a similarity score <italic>s</italic>(<italic>u, i</italic>) of item <italic>i</italic>, given user <italic>u</italic> as a query. The calculation of a similarity score comes from the set &#x02119;<sub><italic>u,i</italic></sub> of random walks or paths <italic>w</italic> from node <italic>u</italic> to <italic>i</italic> in the heterogeneous graph. The generation of &#x02119;<sub><italic>u,i</italic></sub> considers the attribute node set <italic><bold>X</bold></italic>. Either or both of the likelihood and the constraint may involve the information of observed ratings &#x003B4;(<italic><bold>R</bold></italic>) of rating matrix <italic><bold>R</bold></italic> for likelihood maximization or similarity calculation. In our estimation, the current heterogeneous-graph-based models do not directly solve the constrained optimization problem (Equation 43). Commonly, they first exploit a two-stage solution that either solves the likelihood maximization or satisfies the similarity constraint. The output is then cast into the other part of (Equation 43). With different definitions of <italic>f</italic><sub>&#x003B8;</sub> and <italic>p</italic>, the two-stage process may run only once or iteratively until convergence. The definition of <italic>s</italic>(<italic>u, i</italic>) in the surveyed papers includes PageRank (Lee et al., <xref ref-type="bibr" rid="B60">2011</xref>; Jiang et al., <xref ref-type="bibr" rid="B49">2018</xref>), PathSim (Yu et al., <xref ref-type="bibr" rid="B115">2014</xref>), and so on. The likelihood function <italic>p</italic> guides the similarity-related parameters &#x003B8; to fit the distribution objective of observed similarities <italic>s</italic> or ratings <italic><bold>R</bold></italic>. The objective may be given attributes <italic><bold>X</bold></italic> as auxiliary learning data. Minor works like (Lee et al., <xref ref-type="bibr" rid="B60">2011</xref>) do not optimize the likelihood; instead, they directly compute the similarity constraint with pre-defined &#x003B8; from a specifically designed heterogeneous graph.</p>
<p>We now explain why random walk or path-based algorithms in heterogeneous graphs are regarded as collaborative filtering methods. For ease of explanation, we first consider the case of no auxiliary attributes. We have users and items as nodes in a graph structure, where edge weights denote the ratings of users toward items. If both users <italic>u</italic> and <italic>v</italic> rate the same item <italic>i</italic>, then <italic>i</italic> becomes a shortcut from <italic>u</italic> to <italic>v</italic>. Therefore, starting from user node <italic>u</italic>, another user <italic>v</italic> at a low shortest path distance from <italic>u</italic> could have similar rating behaviors as <italic>u</italic>. We can then recommend items at short distances from <italic>u</italic>, based on the shortcut through <italic>v</italic>. This is just the spirit of collaborative filtering, which exploits the similar rating behaviors of other users for future recommendation to target users. If attribute nodes are taken into consideration in heterogeneous graphs, they also become the shortcuts for paths between users and items.</p>
<list list-type="bullet">
<list-item><p><bold>HeteRec</bold> (Yu et al., <xref ref-type="bibr" rid="B115">2014</xref>). This model first assumes an attribute-aware heterogeneous graph formed by attributes and ratings. We then obtain <italic>M</italic> non-negative PathSim Sun et al. (<xref ref-type="bibr" rid="B100">2011</xref>) similarity matrices <italic><bold>S</bold></italic><sup>(1)</sup>, <italic><bold>S</bold></italic><sup>(2)</sup>, &#x02026;, <italic><bold>S</bold></italic><sup>(<italic>m</italic>)</sup>, &#x02026;, <italic><bold>S</bold></italic><sup>(<italic>M</italic>)</sup>. Given low-rank non-negative factorization of each <italic><bold>S</bold></italic><sup>(<italic>m</italic>)</sup> &#x0003D; <italic><bold>U</bold></italic><sup>(<italic>m</italic>)&#x022A4;</sup><italic><bold>V</bold></italic><sup>(<italic>m</italic>)</sup>, a rating estimate <inline-formula><mml:math id="M131"><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:math></inline-formula> is defined as follows:
<disp-formula id="E44"><label>(44)</label><mml:math id="M132"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>M</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>&#x003B8;</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>u</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msup><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p></list-item>
<list-item><p><bold>Graph-Based Flexible Recommendation (GFREC)</bold> (Lee et al., <xref ref-type="bibr" rid="B60">2011</xref>). This approach applies personalized PageRank, an unsupervised random walk-based algorithm, to perform random walks in a bipartite heterogeneous graph for recommendation. Instead of independently defining a single node for each categorical attribute value, GFREC makes a node imply both an attribute value and its associated user or item. For example, given a user <italic>u</italic> and its corresponding attribute value <italic>x</italic>, we can put a node named (<italic>u, x</italic>) in the heterogeneous network. In a GFREC bipartite heterogeneous graph, two disjoint sets respectively refer to users and items. GFREC shows that personalized PageRank can compute the visiting probabilities of each node in this bipartite heterogeneous graph. Finally, the probabilities are used to rank items to be recommended.</p></list-item>
</list>
</sec>
<sec>
<title>4.5. Differences Between Models</title>
<p>In our classification system, there are still a number of works in each category. Although models in the same category share a similar mathematical form in terms of the design of the objective function, they can vary in certain design aspects. One of the most important differences is the task they focus on. Some models emphasize predicting future ratings. Therefore, they are usually dedicated to minimizing the <italic>Root Mean Square Error (RMSE)</italic> to achieve a more accurate prediction of scores. Some other models care more about the top-N items that a user may like. Hence, they adopt pairwise ranking to predict the preference for items of a given user. A second difference is based on the types of attributes that are exploited. For example, Yang et al. (<xref ref-type="bibr" rid="B110">2011</xref>) takes a social network as its input feature matrix. A third difference is the source of attributes each model claims to use. Some models claim to accept only user attributes, while others might be more general for different types of attributes.</p>
</sec>
</sec>
<sec id="s5">
<title>5. Empirical Comparison</title>
<p>In this section, we evaluate the effectiveness of each model by examining its performance on several datasets. We focus on the <italic>rating prediction</italic> task since the majority of the models have their objectives designed for this task. We also compare the performance of each competitor under different conditions: with/without user-relevant attributes, item-relevant attributes, or rating-relevant attributes. Hyperparameters for each model are tuned based on grid search.</p>
<sec>
<title>5.1. Experimental Setup</title>
<sec>
<title>5.1.1. Model</title>
<p>We consider several popular models that are representative of each category for comparison: the Regression-based Latent Factor Model (RLFM) (Agarwal and Chen, <xref ref-type="bibr" rid="B4">2009</xref>) and Friendship-Interest Propagation (FIP) (Yang et al., <xref ref-type="bibr" rid="B110">2011</xref>) in Discriminative Matrix Factorization, Collective Matrix Factorization (CMF) (Singh and Gordon, <xref ref-type="bibr" rid="B98">2008</xref>) in Generative Matrix Factorization, and Tensor Factorization (TF) (Karatzoglou et al., <xref ref-type="bibr" rid="B51">2010</xref>), the Factorization Machine (FM) (Rendle et al., <xref ref-type="bibr" rid="B84">2011</xref>), and the Neural Factorization Machine (NFM) (He and Chua, <xref ref-type="bibr" rid="B38">2017</xref>) in Generalized Factorization. We also select Matrix Factorization (MF) (Chin et al., <xref ref-type="bibr" rid="B21">2016</xref>) as a simple baseline model that does not include any attribute and Neural Collaborative Filtering (NCF) (He et al., <xref ref-type="bibr" rid="B40">2017</xref>) as a stronger baseline (the simple version where attributes are one-hot encoding vectors of users and items). NCF&#x0002B; (where attributes are one-hot encoding vectors appended with those from datasets) serves as a competitor in DMF. We do not compare Heterogeneous Graph models, as models in this category are more diverse and it is hard to pick a representative model. The attribute types that each model accepts are summarized in <xref ref-type="table" rid="T6">Table 6</xref>.</p>
<list list-type="bullet">
<list-item><p><bold>Tensor Factorization (TF)</bold></p>
<p>TF is an <italic>D</italic>-dimensional extension of MF. We denote the tensor containing the ratings by <inline-formula><mml:math id="M133"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">R</mml:mi></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>. The tensor <inline-formula><mml:math id="M134"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">R</mml:mi></mml:mrow></mml:math></inline-formula> can be factorized into <italic>D</italic> matrices <inline-formula><mml:math id="M135"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>V</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> and one central tensor <inline-formula><mml:math id="M136"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">S</mml:mi></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> where <italic>K</italic><sub>1</sub>, <italic>K</italic><sub>2</sub>, &#x02026;, <italic>K</italic><sub><italic>D</italic></sub> is the dimension of latent factors. In this case, the predicted rating for <italic>r</italic><sub><italic>j</italic><sub>1</sub><italic>j</italic><sub>2</sub>&#x02026;<italic>j</italic><sub><italic>D</italic></sub></sub> is <inline-formula><mml:math id="M137"><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mi mathvariant="-tex-caligraphic">S</mml:mi></mml:mrow><mml:msub><mml:mrow><mml:mo>&#x000D7;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>V</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>V</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mo>&#x000D7;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>V</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>V</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x000D7;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>V</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>V</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>. Note that the subscript of the tensor-matrix multiplication operator &#x000D7; <sub><italic><bold>V</bold></italic></sub> shows the direction on which the tensor multiplies the matrix. The loss function for this model is
<disp-formula id="E45"><label>(45)</label><mml:math id="M138"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmin</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>S</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>V</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02223;</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">R</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:munder></mml:mstyle><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>&#x02026;</mml:mo><mml:msub><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x0002B;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mo>&#x003A9;</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>V</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mo>&#x003A9;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">S</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>where <inline-formula><mml:math id="M139"><mml:mi>&#x003B4;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mrow><mml:mi mathvariant="-tex-caligraphic">R</mml:mi></mml:mrow></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is the set of non-missing entries in <inline-formula><mml:math id="M140"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">R</mml:mi></mml:mrow></mml:math></inline-formula>, and <inline-formula><mml:math id="M141"><mml:mo>&#x003A9;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>V</mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>V</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:mfrac><mml:mo>&#x02225;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mtext>V&#x000A0;</mml:mtext></mml:mstyle><mml:msubsup><mml:mrow><mml:mo>&#x02225;</mml:mo></mml:mrow><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula> is the regularization term of squared Frobenius norm. We can update the latent factors using SGD. One major concern of with model is that its complexity and storage requirement grow exponentially with the number of dimensions of the rating tensor <inline-formula><mml:math id="M142"><mml:mrow><mml:mi mathvariant="-tex-caligraphic">R</mml:mi></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item><p><bold>Collective Matrix Factorization (CMF)</bold></p>
<p>CMF is a model incorporating side information by factorizing multiple matrices simultaneously. In an <italic>D</italic>-entities schema, <inline-formula><mml:math id="M143"><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>X</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> represents the relation between entity <italic>i</italic> and <italic>j</italic> if the relation exists, i.e., <italic>E</italic><sub><italic>i</italic></sub> &#x0007E; <italic>E</italic><sub><italic>j</italic></sub>. CMF factorizes these matrices into <inline-formula><mml:math id="M146"><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>U</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>U</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>2</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:mo>&#x02026;</mml:mo><mml:mo>,</mml:mo><mml:msup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>U</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msup><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mi>N</mml:mi></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> such that <italic><bold>X</bold></italic><sup>(<italic>ij</italic>)</sup> &#x02248; <italic>f</italic><sup>(<italic>ij</italic>)</sup>(<italic><bold>U</bold></italic><sup>(<italic>i</italic>)&#x022A4;</sup><italic><bold>U</bold></italic><sup>(<italic>j</italic>)</sup>). For a dataset with user- and item-relevant attributes, there are four entities (<italic>E</italic><sub>1</sub>: user id, <italic>E</italic><sub>2</sub>: item id, <italic>E</italic><sub>3</sub>: user features, and <italic>E</italic><sub>4</sub>: item features) and three relations (<italic><bold>X</bold></italic><sup>(12)</sup>: ratings matrix, <italic><bold>X</bold></italic><sup>(13)</sup>, <italic><bold>X</bold></italic><sup>(24)</sup>: feature matrix). In our experiment, f is the identity function for the rating matrix and the sigmoid function is that for the feature matrix. Let <italic>E</italic> &#x0003D; {(<italic>i, j</italic>):<italic>E</italic><sub><italic>i</italic></sub> &#x0007E; <italic>E</italic><sub><italic>j</italic></sub> &#x02229; <italic>i</italic> &#x0003C; <italic>j</italic>} denote the set of all existing relations pairs, <italic><bold>U</bold></italic> denote the set of latent factors, <italic><bold>W</bold></italic> denote the set of weight matrices, and <inline-formula><mml:math id="M154"><mml:msub><mml:mrow><mml:mi>D</mml:mi></mml:mrow><mml:mrow><mml:mi>F</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>Y</mml:mtext></mml:mstyle><mml:mo>||</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mtext>X</mml:mtext></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mtext>W</mml:mtext></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:munder><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>F</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mo>*</mml:mo></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> measure the weighted divergence of two matrices <italic><bold>Y</bold></italic> and <italic><bold>X</bold></italic>. The loss function for this model is
<disp-formula id="E46"><label>(46)</label><mml:math id="M155"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:munder><mml:mrow><mml:mtext>argmin</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>U</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle></mml:mrow></mml:munder><mml:mstyle displaystyle='true'><mml:munder><mml:mo>&#x02211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi><mml:mo>&#x02208;</mml:mo><mml:mi>E</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:msup><mml:mi>&#x003B1;</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>i</mml:mi><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:mstyle><mml:mrow><mml:mo>(</mml:mo> <mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:msup><mml:mi>F</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>i</mml:mi><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mi>U</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msup><mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mi>U</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:msup><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>&#x0007C;</mml:mo><mml:mo stretchy='false'>&#x0007C;</mml:mo><mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mi>X</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>i</mml:mi><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:msup><mml:mo>,</mml:mo><mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>i</mml:mi><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:msup><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow> <mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:msup><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy='false'>&#x0007C;</mml:mo><mml:mo stretchy='false'>&#x0007C;</mml:mo><mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mi>U</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:msup><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>D</mml:mi><mml:mrow><mml:msup><mml:mi>G</mml:mi><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mn>0</mml:mn><mml:mo stretchy='false'>&#x0007C;</mml:mo><mml:mo stretchy='false'>&#x0007C;</mml:mo><mml:msup><mml:mstyle mathvariant="bold-italic"><mml:mi>U</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:msup><mml:mo stretchy='false'>)</mml:mo></mml:mrow> <mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>where <italic>F</italic><sup>(<italic>ij</italic>)</sup> defines the loss for a reconstruction, and <italic>G</italic><sup>(<italic>i</italic>)</sup> defines the loss for a regularizer. We can update <italic><bold>U</bold></italic> through a Newton-Raphson step.</p></list-item>
<list-item><p><bold>Regression-Based Latent Factor Model (RLFM)</bold></p>
<p>Let <italic>r</italic><sub><italic>ui</italic></sub> denote the rating given by user <italic>u</italic> to item <italic>i</italic>. <inline-formula><mml:math id="M156"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>z</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>Z</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>, <inline-formula><mml:math id="M157"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>x</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>X</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> and <inline-formula><mml:math id="M158"><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>y</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>Y</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> denote attribute vectors for rating &#x003C0;(<italic>u, i</italic>) (i.e., index associated with user <italic>u</italic> and item <italic>i</italic>), user <italic>u</italic>, and item <italic>i</italic>, respectively. This model learns the latent factors (<inline-formula><mml:math id="M159"><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x0211D;</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>w</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>) to user <italic>u</italic>, (<inline-formula><mml:math id="M160"><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x0211D;</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mtext>h</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>) to item <italic>i</italic> and (<inline-formula><mml:math id="M161"><mml:mstyle mathvariant="bold-italic"><mml:mtext>b</mml:mtext></mml:mstyle><mml:mo>&#x02208;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x0211D;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>K</mml:mi></mml:mrow><mml:mrow><mml:mi>Z</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>) to rating <italic>r</italic><sub><italic>ij</italic></sub>, such that the rating is estimated by:
<disp-formula id="E47"><label>(47)</label><mml:math id="M162"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>z</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x003C0;</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mi>b</mml:mi></mml:mstyle><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B1;</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msubsup><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x022A4;</mml:mo></mml:mrow></mml:msubsup><mml:msub><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>This model assumes that &#x003B1;<sub><italic>u</italic></sub>, &#x003B2;<sub><italic>i</italic></sub>, <italic><bold>w</bold></italic><sub><italic>u</italic></sub>, and <italic><bold>h</bold></italic><sub><italic>i</italic></sub> follow Gaussian distribution given attributes <italic><bold>x</bold></italic><sub><italic>u</italic></sub> and <italic><bold>y</bold></italic><sub><italic>i</italic></sub>, so the model can be fitted by a Monte Carlo EM algorithm.</p></list-item>
<list-item><p><bold>Friendship-Interest Propagation (FIP)</bold></p>
<p>FIP combines learned latent factors (<italic><bold>W</bold></italic>, <italic><bold>H</bold></italic>) and a given attribute matrix (<italic><bold>X</bold></italic>, <italic><bold>Y</bold></italic>) to fit user profiles and item properties. Let <italic>U</italic> be the set of users and <italic>I</italic> be the set of items. For each training example (<italic>u, i, r</italic>) &#x02208; <italic>O</italic>, user <italic>u</italic> &#x02208; <italic>U</italic> gives item <italic>i</italic> &#x02208; <italic>I</italic> a rating <italic>r</italic>. The objective function is as follows:
<disp-formula id="E48"><label>(48)</label><mml:math id="M163"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:munder><mml:mrow><mml:mtext>argmin</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>C</mml:mi></mml:mstyle></mml:mrow></mml:munder><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>r</mml:mi></mml:mrow><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mi>O</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mi>L</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle><mml:mi>u</mml:mi><mml:mo>&#x022A4;</mml:mo></mml:msubsup><mml:msub><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle><mml:mi>i</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle><mml:mi>u</mml:mi><mml:mi>T</mml:mi></mml:msubsup><mml:mstyle mathvariant="bold-italic"><mml:mi>C</mml:mi></mml:mstyle><mml:msub><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mtext>&#x003BB;</mml:mtext><mml:mi>C</mml:mi></mml:msub><mml:mo>&#x003A9;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>C</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>+</mml:mo><mml:msub><mml:mtext>&#x003BB;</mml:mtext><mml:mi>W</mml:mi></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mo>&#x003A9;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>W</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:mo>&#x003A9;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle><mml:mi>u</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi><mml:msub><mml:mstyle mathvariant="bold-italic"><mml:mi>x</mml:mi></mml:mstyle><mml:mi>u</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mtext>&#x003BB;</mml:mtext><mml:mi>H</mml:mi></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mo>&#x003A9;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>H</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>+</mml:mo><mml:mo>&#x003A9;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mstyle mathvariant="bold-italic"><mml:mi>h</mml:mi></mml:mstyle><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x02212;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle><mml:msub><mml:mstyle mathvariant="bold-italic"><mml:mi>y</mml:mi></mml:mstyle><mml:mi>i</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mtext>&#x003BB;</mml:mtext><mml:mi>A</mml:mi></mml:msub><mml:mo>&#x003A9;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>A</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mtext>&#x003BB;</mml:mtext><mml:mi>B</mml:mi></mml:msub><mml:mo>&#x003A9;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>B</mml:mi></mml:mstyle><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>where <inline-formula><mml:math id="M164"><mml:mi>L</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> is a loss function, <italic><bold>C</bold></italic> is a correlation matrix, <italic><bold>A</bold></italic> and <bold>B</bold> are the correlation matrices between attribute and latent factors, &#x003A9;(&#x000B7;) is a regularization term, and all of the &#x003BB; with subscripts are hyperparameters. If both user and item attributes are not given, the model is then reduced to matrix factorization. Since it is often the case that a dataset contains either user or item attributes, in the experiments, if a user (or item) attribute is not given, we assume it is a vector of ones with the same dimension as item (or user).</p></list-item>
<list-item><p><bold>Factorization Machine (FM)</bold></p>
<p>FM reduces the original recommendation problem into a traditional classification (or regression) problem. For example, for each observation (<italic>u, i, r</italic>) &#x02208; <italic>O</italic>, it can be transformed into an attribute vector <italic><bold>x</bold></italic> (which can be formed by representing user <italic>u</italic> and item <italic>i</italic> as two one-hot encoding vectors and concatenating them together) and a target rating <italic>r</italic>. The goal is then to fit the target value by utilizing the attribute vector. The objective function can be addressed as follows:
<disp-formula id="E49"><label>(49)</label><mml:math id="M165"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmin</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>V</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>r</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mi>O</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mi>L</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>D</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>&#x003A9;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>V</mml:mi></mml:mrow></mml:msub><mml:mo>&#x003A9;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>V</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>where <italic><bold>w</bold></italic> is the weight vector (<italic>w</italic><sub><italic>i</italic></sub> is its <italic>i</italic>-th element) and <italic><bold>V</bold></italic> &#x02208; &#x0211D;<sup><italic>K &#x000D7; N</italic></sup> is the latent factor matrix. This is called a <italic>factorization machine of degree 2</italic> (or <italic>two-way factorization machine</italic>). An <italic>N-way factorization machine</italic> can be expressed as follows:
<disp-formula id="E50"><label>(50)</label><mml:math id="M166"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmin</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>V</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>r</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mi>O</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mi>L</mml:mi><mml:mstyle displaystyle="true"><mml:mrow><mml:mo stretchy="true">(</mml:mo></mml:mrow><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:mo>&#x0002B;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mo>&#x022EF;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:mrow><mml:mo>(</mml:mo></mml:mrow></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>K</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mstyle displaystyle="true"><mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x0220F;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>i</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mstyle displaystyle="true"><mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mstyle></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>&#x003A9;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>V</mml:mi></mml:mrow></mml:msub><mml:mo>&#x003A9;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>V</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>In our experiments, only a two-way factorization machine is used as our baseline model, since it is the most frequent configuration in the experiments conducted in previous studies.</p></list-item>
<list-item><p><bold>Neural Collaborative Filtering (NCF)</bold></p>
<p>NCF (<xref ref-type="fig" rid="F17">Figure 17</xref>) consists of two parts: generalized matrix factorization (GMF) and multi-layer perceptron (MLP). The GMF layer computes the element-wise product of user and item latent factors. The MLP layer is a neural network that takes the concatenation of user and item latent factors as inputs and outputs a vector. The results of GMF and MLP are then concatenated as a vector and serve as the input of the NeuMF layer, which is a one-layer perceptron and outputs the predicted rating. Normally, a user/item attribute is a one-hot encoding vector that represents the user/item. However, if external attributes are provided, they can be easily modified.</p></list-item>
<list-item><p><bold>Neural Factorization Machine (NFM)</bold></p>
<p>NFM is a generalization of two-way FM. While FM extracts the linear interaction between attributes, NFM is able to extract non-linear interactions with the help of a non-linear activation function in a deep neural network. The objective of NFM can be expressed as follows:
<disp-formula id="E51"><label>(51)</label><mml:math id="M167"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mtext>argmin</mml:mtext></mml:mrow><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>V</mml:mi></mml:mstyle><mml:mo>,</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>f</mml:mi></mml:mstyle></mml:mrow></mml:munder></mml:mstyle><mml:mstyle displaystyle="true"><mml:munder class="msub"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>u</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>r</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mi>O</mml:mi></mml:mrow></mml:munder></mml:mstyle><mml:mi>L</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>r</mml:mi><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mn>0</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mstyle mathvariant="bold-italic"><mml:mi>f</mml:mi></mml:mstyle><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mi>i</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>N</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02299;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>v</mml:mi></mml:mstyle></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>&#x003A9;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>w</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>V</mml:mi></mml:mrow></mml:msub><mml:mo>&#x003A9;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>V</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mrow><mml:mi>f</mml:mi></mml:mrow></mml:msub><mml:mo>&#x003A9;</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mstyle mathvariant="bold-italic"><mml:mi>f</mml:mi></mml:mstyle></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p>where &#x02299; is element-wise product of vectors and <italic><bold>f</bold></italic> is the neural network. The neural network takes second-order interactions of attribute vectors in FM as input. In fact, FM can be reduced from NFM where <italic><bold>f</bold></italic> is a vector of ones.</p></list-item>
</list>
<table-wrap position="float" id="T6">
<label>Table 6</label>
<caption><p>Attribute types that are used for each model.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Model</bold></th>
<th valign="top" align="center"><bold>U</bold></th>
<th valign="top" align="center"><bold>I</bold></th>
<th valign="top" align="center"><italic><bold>R</bold></italic></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">TF</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">CMF</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">RLFM</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">FIP</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">FM</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">NCF</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td/>
</tr>
<tr>
<td valign="top" align="left">NFM</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
<td valign="top" align="center">&#x02713;</td>
</tr>
<tr>
<td valign="top" align="left">MF</td>
<td/>
<td/>
<td/>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>U, user-relevant attribute; I, item-relevant attribute; R, rating-relevant attribute</italic>.</p>
</table-wrap-foot>
</table-wrap>
<fig id="F17" position="float">
<label>Figure 17</label>
<caption><p>Model structure of NCF.</p></caption>
<graphic xlink:href="fdata-02-00049-g0017.tif"/>
</fig>
</sec>
<sec>
<title>5.1.2. Dataset</title>
<p>We use widely used data available online to compare the performance of the models. Here, we briefly introduce these datasets, and their statistics can be seen in <xref ref-type="table" rid="T7">Tables 7</xref>&#x02013;<xref ref-type="table" rid="T9">9</xref>. For each dataset, we use the original training and testing sets if they are provided by the host. Otherwise, the training set and testing sets are split based on timestamps, where the training set represents past data and the testing set represents future ratings.</p>
<list list-type="bullet">
<list-item><p><bold>MovieLens-1M, 10M, 20M</bold> (Harper and Konstan, <xref ref-type="bibr" rid="B36">2015</xref>)</p>
<p>The MovieLens datasets contain ratings that users give to different movies with different numbers of ratings (i.e., 1, 10, and 20M). They also include certain user information, such as genre, age and occupation, and item information, for example, the genre of a movie and the year when the movie was produced. The training and testing sets are divided by the time that the ratings were generated. The latest-timestamped 10% ratings serve as the testing set, while the others are served as the training set.</p></list-item>
<list-item><p><bold>Netflix</bold><xref ref-type="fn" rid="fn0001"><sup>1</sup></xref></p>
<p>The Netflix Prize is a competition dedicating to the design of a better movie recommendation system. The data that the host provides contain a large amount of rating instances. It also includes side information about the movies. The testing set is extracted from the probe set, which the host has provided. However, since the training set is so large that several of the models that we are testing cannot finish training in a reasonable amount of time, it is randomly sampled to one-tenth of the original size in all of our experiments.</p></list-item>
<list-item><p><bold>Yahoo Music</bold><xref ref-type="fn" rid="fn0002"><sup>2</sup></xref></p>
<p>Yahoo provides two music datasets (denoted by Yahoo Music 1 and 2 in our experiments) for researchers to study how users rate music products, including tracks and albums. Information such as the genre or artist of a product is provided. The data were also used in the KDD Cup 2011. Among the items being rated in the original competition (albums, tracks), we extract tracks as targets to be rated. The training and testing sets are split in the way provided by the host.</p></list-item>
<list-item><p><bold>Yelp</bold><xref ref-type="fn" rid="fn0003"><sup>3</sup></xref></p>
<p>The Yelp Challenge is a contest that allows participants to come up with a research topic themselves based on the given Yelp dataset. The dataset contains ratings given by users to businesses. It includes user information and item information of various types. The reviews that users give to items are also included. The training and testing sets are split in the same way as we did in the MovieLens datasets.</p></list-item>
</list>
<table-wrap position="float" id="T7">
<label>Table 7</label>
<caption><p>Basic statistics of datasets.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Dataset</bold></th>
<th valign="top" align="center"><bold>Users</bold></th>
<th valign="top" align="center"><bold>Items</bold></th>
<th valign="top" align="center"><bold>Training ratings</bold></th>
<th valign="top" align="center"><bold>Test ratings</bold></th>
<th valign="top" align="center"><bold>Density</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">MovieLens-1M</td>
<td valign="top" align="center">6040</td>
<td valign="top" align="center">3883</td>
<td valign="top" align="center">900188</td>
<td valign="top" align="center">100021</td>
<td valign="top" align="center">3.84 &#x000D7; 10<sup>&#x02212;2</sup></td>
</tr>
<tr>
<td valign="top" align="left">MovieLens-10M</td>
<td valign="top" align="center">69878</td>
<td valign="top" align="center">10681</td>
<td valign="top" align="center">9000048</td>
<td valign="top" align="center">1000006</td>
<td valign="top" align="center">1.21 &#x000D7; 10<sup>&#x02212;2</sup></td>
</tr>
<tr>
<td valign="top" align="left">MovieLens-20M</td>
<td valign="top" align="center">138493</td>
<td valign="top" align="center">10378</td>
<td valign="top" align="center">17819935</td>
<td valign="top" align="center">1979993</td>
<td valign="top" align="center">1.24 &#x000D7; 10<sup>&#x02212;2</sup></td>
</tr>
<tr>
<td valign="top" align="left">Netflix</td>
<td valign="top" align="center">475708</td>
<td valign="top" align="center">17770</td>
<td valign="top" align="center">9907271</td>
<td valign="top" align="center">1408394</td>
<td valign="top" align="center">1.17 &#x000D7; 10<sup>&#x02212;3</sup></td>
</tr>
<tr>
<td valign="top" align="left">Yahoo Music 1</td>
<td valign="top" align="center">129100</td>
<td valign="top" align="center">4772</td>
<td valign="top" align="center">702947</td>
<td valign="top" align="center">6858</td>
<td valign="top" align="center">1.14 &#x000D7; 10<sup>&#x02212;3</sup></td>
</tr>
<tr>
<td valign="top" align="left">Yahoo Music 2</td>
<td valign="top" align="center">50751</td>
<td valign="top" align="center">3852</td>
<td valign="top" align="center">367556</td>
<td valign="top" align="center">7249</td>
<td valign="top" align="center">1.88 &#x000D7; 10<sup>&#x02212;3</sup></td>
</tr>
<tr>
<td valign="top" align="left">Yelp</td>
<td valign="top" align="center">1029432</td>
<td valign="top" align="center">135086</td>
<td valign="top" align="center">3635310</td>
<td valign="top" align="center">406952</td>
<td valign="top" align="center">2.61 &#x000D7; 10<sup>&#x02212;5</sup></td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>We define <inline-formula><mml:math id="M168"><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">Density</mml:mtext></mml:mstyle><mml:mtext>&#x000A0;</mml:mtext><mml:mi>a</mml:mi><mml:mi>s</mml:mi><mml:mfrac><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">&#x00023;(training ratings)</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">&#x00023;(users)</mml:mtext></mml:mstyle><mml:mo>&#x000D7;</mml:mo><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">&#x00023;(items)</mml:mtext></mml:mstyle></mml:mrow></mml:mfrac></mml:math></inline-formula></italic>.</p>
</table-wrap-foot>
</table-wrap>
<table-wrap position="float" id="T8">
<label>Table 8</label>
<caption><p>Attribute statistics of datasets.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Dataset</bold></th>
<th valign="top" align="center"><italic><bold>U</bold></italic></th>
<th valign="top" align="center"><bold>I</bold></th>
<th valign="top" align="center"><italic><bold>R</bold></italic></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">MovieLens-1M</td>
<td valign="top" align="center">29</td>
<td valign="top" align="center">99</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">MovieLens-10M</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">112</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">MovieLens-20M</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">220</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">Netflix</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">95</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">Yahoo Music 1</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">300</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">Yahoo Music 2</td>
<td valign="top" align="center">0</td>
<td valign="top" align="center">300</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">Yelp</td>
<td valign="top" align="center">18</td>
<td valign="top" align="center">234</td>
<td valign="top" align="center">3</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<p><italic>0 means the type of attribute is not present in this dataset</italic>.</p>
</table-wrap-foot>
</table-wrap>
<table-wrap position="float" id="T9">
<label>Table 9</label>
<caption><p>Percentage of new users/items (users/items in testing data but not in training data).</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Dataset</bold></th>
<th valign="top" align="center"><bold>% of new users</bold></th>
<th valign="top" align="center"><bold>% of new items</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">MovieLens-1M</td>
<td valign="top" align="center">2.4</td>
<td valign="top" align="center">0.8</td>
</tr>
<tr>
<td valign="top" align="left">MovieLens-10M</td>
<td valign="top" align="center">65.5</td>
<td valign="top" align="center">10.8</td>
</tr>
<tr>
<td valign="top" align="left">MovieLens-20M</td>
<td valign="top" align="center">73.1</td>
<td valign="top" align="center">8.5</td>
</tr>
<tr>
<td valign="top" align="left">Netflix</td>
<td valign="top" align="center">4.8</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">Yahoo music 1</td>
<td valign="top" align="center">61.1</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">Yahoo music 2</td>
<td valign="top" align="center">46.3</td>
<td valign="top" align="center">0</td>
</tr>
<tr>
<td valign="top" align="left">Yelp</td>
<td valign="top" align="center">49.8</td>
<td valign="top" align="center">3.0</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec>
<title>5.1.3. Attribute Extraction</title>
<p>Most models accept real value attributes as their input. For categorical attributes, the value merely represents which category the user/item belongs to, which means that there is no physical meaning to the value. Therefore, each category is treated as a new attribute dimension. For each dimension, if the user (or item) is in this category, the value is 1, and otherwise 0 (i.e., one-hot encoding). However, categorical attributes are not used in the TF model due to its high space complexity. Since one-hot encoding significantly increases the dimensions of attributes, we find that many of the experimented models cannot finish training in a reasonable amount of time for large-scale datasets. Hence, we determine to retain only the top 100 representative transformed attributes that have the most values of 1. For the Yelp dataset, since some of its attribute values vary significantly, log(1 &#x0002B; <italic>x</italic>) is applied if the original attribute value x is positive, and &#x02212;log(&#x02212;<italic>x</italic>) is applied for negative ones. For TF, the attribute value is further rounded to the nearest integer. For the MovieLens-1M dataset, we combine user attributes with item attributes. For the Yelp dataset, we separate user, item, and rating attributes and compare the results of different combinations of these attributes. For all the other datasets, we use item attributes only.</p>
</sec>
<sec>
<title>5.1.4. Evaluation Metric</title>
<p><italic>Root Mean Square Error (RMSE)</italic> [defined in (19)] is selected as the evaluation metric in our experiments. RMSE is arguably the most widely used evaluation metric for rating prediction, since most model-based collaborative filtering methods try to minimize MSE (RMSE without root) or RMSE as their objectives.</p>
</sec>
</sec>
<sec>
<title>5.2. Performance Comparisons</title>
<p>We run seven benchmark models on seven attribute-appended rating datasets. All the empirical comparisons, evaluated with RMSE, are reported in <xref ref-type="table" rid="T10">Tables 10</xref>, <xref ref-type="table" rid="T11">11</xref>. Note that the bold values are best performances in that caetgory among different models and the star symbol (*) indicates excessive running time or high memory usage (over 24 h or more than 64 GB memory); this usually happens when TF runs on data with a large number of features. MF and NCF are trained on ratings only. We can see that RLFM, FM, NFM, and NCF&#x0002B; can outperform the basic MF models on all datasets. In general, NCF&#x0002B; yields the best results among these models.</p>
<table-wrap position="float" id="T10">
<label>Table 10</label>
<caption><p>RMSE on all datasets except Yelp.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Dataset</bold></th>
<th valign="top" align="center"><bold>MF</bold></th>
<th valign="top" align="center"><bold>NCF</bold></th>
<th valign="top" align="center"><bold>TF</bold></th>
<th valign="top" align="center"><bold>CMF</bold></th>
<th valign="top" align="center"><bold>RLFM</bold></th>
<th valign="top" align="center"><bold>FIP</bold></th>
<th valign="top" align="center"><bold>FM</bold></th>
<th valign="top" align="center"><bold>NFM</bold></th>
<th valign="top" align="center"><bold>NCF&#x0002B;</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">ML-1M</td>
<td valign="top" align="center">0.9002</td>
<td valign="top" align="center">0.9082</td>
<td valign="top" align="center">*</td>
<td valign="top" align="center">0.9088</td>
<td valign="top" align="center">0.8824</td>
<td valign="top" align="center">0.9396</td>
<td valign="top" align="center"><bold>0.8798</bold></td>
<td valign="top" align="center">0.9162</td>
<td valign="top" align="center">0.9054</td>
</tr>
<tr>
<td valign="top" align="left">ML-10M</td>
<td valign="top" align="center">0.9820</td>
<td valign="top" align="center">0.9161</td>
<td valign="top" align="center">*</td>
<td valign="top" align="center">0.9763</td>
<td valign="top" align="center">0.9111</td>
<td valign="top" align="center">1.1085</td>
<td valign="top" align="center"><bold>0.9103</bold></td>
<td valign="top" align="center">0.9132</td>
<td valign="top" align="center">0.9129</td>
</tr>
<tr>
<td valign="top" align="left">ML-20M</td>
<td valign="top" align="center">0.9923</td>
<td valign="top" align="center">0.9402</td>
<td valign="top" align="center">*</td>
<td valign="top" align="center">0.9954</td>
<td valign="top" align="center"><bold>0.9227</bold></td>
<td valign="top" align="center">1.1128</td>
<td valign="top" align="center">0.9297</td>
<td valign="top" align="center">0.9260</td>
<td valign="top" align="center">0.9240</td>
</tr>
<tr>
<td valign="top" align="left">Netflix</td>
<td valign="top" align="center">1.2033</td>
<td valign="top" align="center">1.0737</td>
<td valign="top" align="center">1.1434</td>
<td valign="top" align="center">1.0848</td>
<td valign="top" align="center">1.1325</td>
<td valign="top" align="center">1.1312</td>
<td valign="top" align="center">1.0887</td>
<td valign="top" align="center">1.0707</td>
<td valign="top" align="center"><bold>1.0705</bold></td>
</tr>
<tr>
<td valign="top" align="left">Yahoo 1</td>
<td valign="top" align="center">34.9989</td>
<td valign="top" align="center">33.0522</td>
<td valign="top" align="center">*</td>
<td valign="top" align="center">34.3325</td>
<td valign="top" align="center"><bold>32.9302</bold></td>
<td valign="top" align="center">35.8085</td>
<td valign="top" align="center">33.1422</td>
<td valign="top" align="center">33.9271</td>
<td valign="top" align="center">33.1743</td>
</tr>
<tr>
<td valign="top" align="left">Yahoo 2</td>
<td valign="top" align="center">46.8444</td>
<td valign="top" align="center">41.2785</td>
<td valign="top" align="center">*</td>
<td valign="top" align="center">45.2139</td>
<td valign="top" align="center">45.3166</td>
<td valign="top" align="center">50.6670</td>
<td valign="top" align="center">45.4528</td>
<td valign="top" align="center">42.2594</td>
<td valign="top" align="center"><bold>40.4920</bold></td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T11">
<label>Table 11</label>
<caption><p>RMSE on Yelp.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Baselines</bold></th>
<th valign="top" align="left"><bold>Attribute</bold></th>
<th valign="top" align="center"><bold>TF</bold></th>
<th valign="top" align="center"><bold>CMF</bold></th>
<th valign="top" align="center"><bold>RLFM</bold></th>
<th valign="top" align="center"><bold>FIP</bold></th>
<th valign="top" align="center"><bold>FM</bold></th>
<th valign="top" align="center"><bold>NFM</bold></th>
<th valign="top" align="center"><bold>NCF&#x0002B;</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="middle" align="left" rowspan="7">MF: 1.4809 NCF:1.3805</td>
<td valign="top" align="left">U</td>
<td valign="top" align="center">*</td>
<td valign="top" align="center">1.3967</td>
<td valign="top" align="center">1.1434</td>
<td valign="top" align="center">1.4162</td>
<td valign="top" align="center">1.1337</td>
<td valign="top" align="center">1.1440</td>
<td valign="top" align="center"><bold>1.1280</bold></td>
</tr>
<tr>
<td valign="top" align="left">I</td>
<td valign="top" align="center">*</td>
<td valign="top" align="center">1.3951</td>
<td valign="top" align="center">1.2672</td>
<td valign="top" align="center">1.4269</td>
<td valign="top" align="center">1.2849</td>
<td valign="top" align="center">1.2923</td>
<td valign="top" align="center"><bold>1.2586</bold></td>
</tr>
<tr>
<td valign="top" align="left">U&#x0002B;I</td>
<td valign="top" align="center">*</td>
<td valign="top" align="center">1.3848</td>
<td valign="top" align="center">1.1029</td>
<td valign="top" align="center">1.2905</td>
<td valign="top" align="center">1.0603</td>
<td valign="top" align="center">1.0876</td>
<td valign="top" align="center"><bold>1.0372</bold></td>
</tr>
<tr>
<td valign="top" align="left">R</td>
<td valign="top" align="center">1.4958</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">1.3114</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center"><bold>1.3065</bold></td>
<td valign="top" align="center">1.3386</td>
<td valign="top" align="center">&#x02013;</td>
</tr>
<tr>
<td valign="top" align="left">U&#x0002B;R</td>
<td valign="top" align="center">*</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">1.1244</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center"><bold>1.1067</bold></td>
<td valign="top" align="center">1.1168</td>
<td valign="top" align="center">&#x02013;</td>
</tr>
<tr>
<td valign="top" align="left">I&#x0002B;R</td>
<td valign="top" align="center">*</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center"><bold>1.2470</bold></td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">1.2566</td>
<td valign="top" align="center">1.2693</td>
<td valign="top" align="center">&#x02013;</td>
</tr>
<tr>
<td valign="top" align="left">U&#x0002B;I&#x0002B;R</td>
<td valign="top" align="center">*</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center">1.0852</td>
<td valign="top" align="center">&#x02013;</td>
<td valign="top" align="center"><bold>1.0372</bold></td>
<td valign="top" align="center">1.0755</td>
<td valign="top" align="center">&#x02013;</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec>
<title>5.3. Findings and Discussion</title>
<p>In this section, we give a brief comparison in <xref ref-type="table" rid="T12">Table 12</xref> and discuss some findings from the experiment results in section 5.2.</p>
<list list-type="bullet">
<list-item><p>Attribute-aware models outperform their counterparts that do not incorporate attributesWe first identify two pairs of recommender systems: MF with FM and NCF with NCF&#x0002B;. FM can be seen as a design that incorporates attributes into MF, and the same applies for NCF&#x0002B; vs. NCF. From <xref ref-type="table" rid="T10">Tables 10</xref>, <xref ref-type="table" rid="T11">11</xref>, we can see that in most cases, attribute-aware designs (FM, NCF&#x0002B;) do outperform their counterparts (MF, NCF). This is intuitive, as attributes can provide additional information that benefits recommendation performance. Therefore, for each of the two pairs, attribute-aware design can achieve better performance.</p></list-item>
<list-item><p>DMF and GF models perform better than GMF in general The results in <xref ref-type="table" rid="T10">Tables 10</xref>, <xref ref-type="table" rid="T11">11</xref> show that discriminative matrix factorization models (TF, RLFM, and NCF&#x0002B;) and matrix factorization generalization (FM and NFM) perform better than a generative matrix factorization design (CMF). This may be because, in addition to reconstructing a rating matrix, generative matrix factorization models have to simultaneously recover attribute matrices, which could lead to overfitting when given insufficient data.</p></list-item>
<list-item><p>User attributes are more beneficial than item and rating attributesAs the dataset contains three kinds of attributes (user, item, and rating), we would focus our discussion based on the result of <xref ref-type="table" rid="T11">Table 11</xref>. RLFM, FM, and NFM are the only models that consider all three types of attributes, and it is apparent that the best result occurs when all attributes are exploited. However, if we consider three types of attribute separately, it seems that the user attributes are the most beneficial to most models. The result is expected as the goal of recommender systems is to predict user preferences regarding items. Therefore, user information should play the most important role. Rating attributes are not as effective as the others, and NCF&#x0002B; can achieve top performance without using them.</p></list-item>
</list>
<table-wrap position="float" id="T12">
<label>Table 12</label>
<caption><p>Comparison between three types of models.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th valign="top" align="left"><bold>Models</bold></th>
<th valign="top" align="left"><bold>DMF</bold></th>
<th valign="top" align="left"><bold>GMF</bold></th>
<th valign="top" align="left"><bold>GF</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">General attributes</td>
<td valign="top" align="left">No</td>
<td valign="top" align="left">No</td>
<td valign="top" align="left">Yes</td>
</tr>
<tr>
<td valign="top" align="left">Predicting missing attributes</td>
<td valign="top" align="left">No</td>
<td valign="top" align="left">Yes</td>
<td valign="top" align="left">No</td>
</tr>
<tr>
<td valign="top" align="left">Performance</td>
<td valign="top" align="left">Good</td>
<td valign="top" align="left">Not as Good</td>
<td valign="top" align="left">Good</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec sec-type="conclusions" id="s6">
<title>6. Conclusion</title>
<p>Collaborative filtering is arguably the most effective approach to building a recommender system. This paper introduces and compares the performance of different attribute-aware models. We believe it can benefit not only researchers in this area but also engineers intending to build a recommender system that utilizes a rich set of attributes.</p>
</sec>
<sec id="s7">
<title>Author Contributions</title>
<p>All authors listed have made a substantial, direct and intellectual contribution to the work, and approved it for publication.</p>
<sec>
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
</sec>
</body>
<back>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Adams</surname> <given-names>R. P.</given-names></name> <name><surname>Dahl</surname> <given-names>G. E.</given-names></name> <name><surname>Murray</surname> <given-names>I.</given-names></name></person-group> (<year>2010</year>). <article-title>Incorporating side information in probabilistic matrix factorization with gaussian processes</article-title>, in <source>Proceedings of the Twenty-Sixth Conference on Uncertainty in Artificial Intelligence, UAI&#x00027;10</source> (<publisher-loc>Arlington, VA</publisher-loc>: <publisher-name>AUAI Press</publisher-name>), <fpage>1</fpage>&#x02013;<lpage>9</lpage>.</citation></ref>
<ref id="B2">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Adomavicius</surname> <given-names>G.</given-names></name> <name><surname>Tuzhilin</surname> <given-names>A.</given-names></name></person-group> (<year>2005</year>). <article-title>Toward the next generation of recommender systems: a survey of the state-of-the-art and possible extensions</article-title>. <source>IEEE Trans. Knowl. Data Eng.</source> <volume>17</volume>, <fpage>734</fpage>&#x02013;<lpage>749</lpage>. <pub-id pub-id-type="doi">10.1109/TKDE.2005.99</pub-id></citation></ref>
<ref id="B3">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Adomavicius</surname> <given-names>G.</given-names></name> <name><surname>Tuzhilin</surname> <given-names>A.</given-names></name></person-group> (<year>2011</year>). <source>Context-Aware Recommender Systems</source>. <publisher-loc>Boston, MA</publisher-loc>: <publisher-name>Springer</publisher-name>, <fpage>217</fpage>&#x02013;<lpage>253</lpage>.</citation></ref>
<ref id="B4">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Agarwal</surname> <given-names>D.</given-names></name> <name><surname>Chen</surname> <given-names>B.-C.</given-names></name></person-group> (<year>2009</year>). <article-title>Regression-based latent factor models</article-title>, in <source>Proceedings of the 15th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD &#x00027;09</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>19</fpage>&#x02013;<lpage>28</lpage>.</citation></ref>
<ref id="B5">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Baltrunas</surname> <given-names>L.</given-names></name> <name><surname>Ludwig</surname> <given-names>B.</given-names></name> <name><surname>Ricci</surname> <given-names>F.</given-names></name></person-group> (<year>2011</year>). <article-title>Matrix factorization techniques for context aware recommendation</article-title>, in <source>Proceedings of the Fifth ACM Conference on Recommender Systems, RecSys &#x00027;11</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>301</fpage>&#x02013;<lpage>304</lpage>.</citation></ref>
<ref id="B6">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Barjasteh</surname> <given-names>I.</given-names></name> <name><surname>Forsati</surname> <given-names>R.</given-names></name> <name><surname>Masrour</surname> <given-names>F.</given-names></name> <name><surname>Esfahanian</surname> <given-names>A.-H.</given-names></name> <name><surname>Radha</surname> <given-names>H.</given-names></name></person-group> (<year>2015</year>). <article-title>Cold-start item and user recommendation with decoupled completion and transduction</article-title>, in <source>Proceedings of the 9th ACM Conference on Recommender Systems, RecSys &#x00027;15</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>91</fpage>&#x02013;<lpage>98</lpage>.</citation></ref>
<ref id="B7">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Beutel</surname> <given-names>A.</given-names></name> <name><surname>Chi</surname> <given-names>E. H.</given-names></name> <name><surname>Cheng</surname> <given-names>Z.</given-names></name> <name><surname>Pham</surname> <given-names>H.</given-names></name> <name><surname>Anderson</surname> <given-names>J.</given-names></name></person-group> (<year>2017</year>). <article-title>Beyond globally optimal: focused learning for improved recommendations</article-title>, in <source>Proceedings of the 26th International Conference on World Wide Web, WWW &#x00027;17</source> (<publisher-loc>Geneva</publisher-loc>: <publisher-name>International World Wide Web Conferences Steering Committee</publisher-name>), <fpage>203</fpage>&#x02013;<lpage>212</lpage>.</citation></ref>
<ref id="B8">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Beutel</surname> <given-names>A.</given-names></name> <name><surname>Covington</surname> <given-names>P.</given-names></name> <name><surname>Jain</surname> <given-names>S.</given-names></name> <name><surname>Xu</surname> <given-names>C.</given-names></name> <name><surname>Li</surname> <given-names>J.</given-names></name> <name><surname>Gatto</surname> <given-names>V.</given-names></name> <etal/></person-group>. (<year>2018</year>). <article-title>Latent cross: making use of context in recurrent recommender systems</article-title>, in <source>Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining, WSDM &#x00027;18</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>46</fpage>&#x02013;<lpage>54</lpage>.</citation></ref>
<ref id="B9">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Blondel</surname> <given-names>M.</given-names></name> <name><surname>Fujino</surname> <given-names>A.</given-names></name> <name><surname>Ueda</surname> <given-names>N.</given-names></name></person-group> (<year>2015</year>). <source>Convex Factorization Machines</source>. <publisher-loc>Cham</publisher-loc>: <publisher-name>Springer International Publishing</publisher-name>, <fpage>19</fpage>&#x02013;<lpage>35</lpage>.</citation></ref>
<ref id="B10">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Blondel</surname> <given-names>M.</given-names></name> <name><surname>Ishihata</surname> <given-names>M.</given-names></name> <name><surname>Fujino</surname> <given-names>A.</given-names></name> <name><surname>Ueda</surname> <given-names>N.</given-names></name></person-group> (<year>2016</year>). <article-title>Polynomial networks and factorization machines: New insights and efficient training algorithms</article-title>, in <source>Proceedings of the 33rd International Conference on International Conference on Machine Learning - Volume 48, ICML&#x00027;16</source>, <fpage>850</fpage>&#x02013;<lpage>858</lpage>. Available online at: <ext-link ext-link-type="uri" xlink:href="http://jmlr.org">JMLR.org</ext-link></citation></ref>
<ref id="B11">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bobadilla</surname> <given-names>J.</given-names></name> <name><surname>Ortega</surname> <given-names>F.</given-names></name> <name><surname>Hernando</surname> <given-names>A.</given-names></name> <name><surname>Guti&#x000E9;Rrez</surname> <given-names>A.</given-names></name></person-group> (<year>2013</year>). <article-title>Recommender systems survey</article-title>. <source>Knowl. Based Syst.</source> <volume>46</volume>, <fpage>109</fpage>&#x02013;<lpage>132</lpage>. <pub-id pub-id-type="doi">10.1016/j.knosys.2013.03.012</pub-id></citation></ref>
<ref id="B12">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Bouchard</surname> <given-names>G.</given-names></name> <name><surname>Yin</surname> <given-names>D.</given-names></name> <name><surname>Guo</surname> <given-names>S.</given-names></name></person-group> (<year>2013</year>). <article-title>Convex collective matrix factorization</article-title>, in <source>Proceedings of the Sixteenth International Conference on Artificial Intelligence and Statistics, AISTATS 2013</source>, volume 31 of <italic>JMLR Workshop and Conference Proceedings</italic> (<publisher-loc>Scottsdale, AZ</publisher-loc>), <fpage>144</fpage>&#x02013;<lpage>152</lpage>. Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.JMLR.org">JMLR.org</ext-link></citation></ref>
<ref id="B13">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Brouwer</surname> <given-names>T.</given-names></name> <name><surname>Li&#x000F2;</surname> <given-names>P.</given-names></name></person-group> (<year>2017</year>). <article-title>Bayesian hybrid matrix factorisation for data integration</article-title>, in <source>Proceedings of the 20th International Conference on Artificial Intelligence and Statistics, AISTATS 2017</source>, volume 54 of <italic>Proceedings of Machine Learning Research</italic>, eds <person-group person-group-type="editor"><name><surname>Singh</surname> <given-names>A.</given-names></name> <name><surname>Zhu</surname> <given-names>X. J.</given-names></name></person-group> (<publisher-loc>Fort Lauderdale, FL</publisher-loc>: <publisher-name>PMLR</publisher-name>), <fpage>557</fpage>&#x02013;<lpage>566</lpage>.</citation></ref>
<ref id="B14">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Cao</surname> <given-names>B.</given-names></name> <name><surname>Zhou</surname> <given-names>H.</given-names></name> <name><surname>Li</surname> <given-names>G.</given-names></name> <name><surname>Yu</surname> <given-names>P. S.</given-names></name></person-group> (<year>2016</year>). <article-title>Multi-view machines</article-title>, in <source>Proceedings of the Ninth ACM International Conference on Web Search and Data Mining, WSDM &#x00027;16</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>427</fpage>&#x02013;<lpage>436</lpage>.</citation></ref>
<ref id="B15">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>C.</given-names></name> <name><surname>Zheng</surname> <given-names>X.</given-names></name> <name><surname>Wang</surname> <given-names>Y.</given-names></name> <name><surname>Hong</surname> <given-names>F.</given-names></name> <name><surname>Lin</surname> <given-names>Z.</given-names></name></person-group> (<year>2014</year>). <article-title>Context-aware collaborative topic regression with social matrix factorization for recommender systems</article-title>, in <source>Proceedings of the Twenty-Eighth AAAI Conference on Artificial Intelligence, AAAI&#x00027;14</source> (<publisher-loc>Qu&#x000E9;bec City, QC</publisher-loc>: <publisher-name>AAAI Press</publisher-name>), <fpage>9</fpage>&#x02013;<lpage>15</lpage>.</citation></ref>
<ref id="B16">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>T.</given-names></name> <name><surname>Li</surname> <given-names>H.</given-names></name> <name><surname>Yang</surname> <given-names>Q.</given-names></name> <name><surname>Yu</surname> <given-names>Y.</given-names></name></person-group> (<year>2013</year>). <article-title>General functional matrix factorization using gradient boosting</article-title>, in <source>Proceedings of the 30th International Conference on International Conference on Machine Learning - Volume 28, ICML&#x00027;13</source>, <fpage>436</fpage>&#x02013;<lpage>444</lpage>. Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.JMLR.org">JMLR.org</ext-link></citation></ref>
<ref id="B17">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>T.</given-names></name> <name><surname>Sun</surname> <given-names>Y.</given-names></name> <name><surname>Shi</surname> <given-names>Y.</given-names></name> <name><surname>Hong</surname> <given-names>L.</given-names></name></person-group> (<year>2017</year>). <article-title>On sampling strategies for neural network-based collaborative filtering</article-title>, in <source>Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD &#x00027;17</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>767</fpage>&#x02013;<lpage>776</lpage>.</citation></ref>
<ref id="B18">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>T.</given-names></name> <name><surname>Zhang</surname> <given-names>W.</given-names></name> <name><surname>Lu</surname> <given-names>Q.</given-names></name> <name><surname>Chen</surname> <given-names>K.</given-names></name> <name><surname>Zheng</surname> <given-names>Z.</given-names></name> <name><surname>Yu</surname> <given-names>Y.</given-names></name></person-group> (<year>2012</year>). <article-title>Svdfeature: a toolkit for feature-based collaborative filtering</article-title>. <source>J. Mach. Learn. Res.</source> <volume>13</volume>, <fpage>3619</fpage>&#x02013;<lpage>3622</lpage>.</citation></ref>
<ref id="B19">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Chen</surname> <given-names>X.</given-names></name> <name><surname>Qin</surname> <given-names>Z.</given-names></name> <name><surname>Zhang</surname> <given-names>Y.</given-names></name> <name><surname>Xu</surname> <given-names>T.</given-names></name></person-group> (<year>2016</year>). <article-title>Learning to rank features for recommendation over multiple categories</article-title>, in <source>Proceedings of the 39th International ACM SIGIR Conference on Research and Development in Information Retrieval, SIGIR &#x00027;16</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>305</fpage>&#x02013;<lpage>314</lpage>.</citation></ref>
<ref id="B20">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Cheng</surname> <given-names>C.</given-names></name> <name><surname>Xia</surname> <given-names>F.</given-names></name> <name><surname>Zhang</surname> <given-names>T.</given-names></name> <name><surname>King</surname> <given-names>I.</given-names></name> <name><surname>Lyu</surname> <given-names>M. R.</given-names></name></person-group> (<year>2014</year>). <article-title>Gradient boosting factorization machines</article-title>, in <source>Proceedings of the 8th ACM Conference on Recommender Systems, RecSys &#x00027;14</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>265</fpage>&#x02013;<lpage>272</lpage>.</citation></ref>
<ref id="B21">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Chin</surname> <given-names>W.-S.</given-names></name> <name><surname>Yuan</surname> <given-names>B.-W.</given-names></name> <name><surname>Yang</surname> <given-names>M.-Y.</given-names></name> <name><surname>Zhuang</surname> <given-names>Y.</given-names></name> <name><surname>Juan</surname> <given-names>Y.-C.</given-names></name> <name><surname>Lin</surname> <given-names>C.-J.</given-names></name></person-group> (<year>2016</year>). <article-title>Libmf: a library for parallel matrix factorization in shared-memory systems</article-title>. <source>J. Mach. Learn. Res.</source> <volume>17</volume>, <fpage>2971</fpage>&#x02013;<lpage>2975</lpage>.</citation></ref>
<ref id="B22">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Chou</surname> <given-names>S.-Y.</given-names></name> <name><surname>Yang</surname> <given-names>Y.-H.</given-names></name> <name><surname>Jang</surname> <given-names>J.-S. R.</given-names></name> <name><surname>Lin</surname> <given-names>Y.-C.</given-names></name></person-group> (<year>2016</year>). <article-title>Addressing cold start for next-song recommendation</article-title>, in <source>Proceedings of the 10th ACM Conference on Recommender Systems, RecSys &#x00027;16</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>115</fpage>&#x02013;<lpage>118</lpage>.</citation></ref>
<ref id="B23">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Dong</surname> <given-names>X.</given-names></name> <name><surname>Yu</surname> <given-names>L.</given-names></name> <name><surname>Wu</surname> <given-names>Z.</given-names></name> <name><surname>Sun</surname> <given-names>Y.</given-names></name> <name><surname>Yuan</surname> <given-names>L.</given-names></name> <name><surname>Zhang</surname> <given-names>F.</given-names></name></person-group> (<year>2017</year>). <article-title>A hybrid collaborative filtering model with deep structure for recommender systems</article-title>, in <source>Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence</source>, eds <person-group person-group-type="editor"><name><surname>Singh</surname> <given-names>S. P.</given-names></name> <name><surname>Markovitch</surname> <given-names>S.</given-names></name></person-group> (<publisher-loc>San Francisco, CA</publisher-loc>: <publisher-name>AAAI Press</publisher-name>), <fpage>1309</fpage>&#x02013;<lpage>1315</lpage>.</citation></ref>
<ref id="B24">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Du</surname> <given-names>L.</given-names></name> <name><surname>Li</surname> <given-names>X.</given-names></name> <name><surname>Shen</surname> <given-names>Y.-D.</given-names></name></person-group> (<year>2011</year>). <article-title>User graph regularized pairwise matrix factorization for item recommendation</article-title>, in <source>Proceedings of the 7th International Conference on Advanced Data Mining and Applications - Volume Part II, ADMA&#x00027;11</source> (<publisher-loc>Berlin; Heidelberg</publisher-loc>: <publisher-name>Springer-Verlag</publisher-name>), <fpage>372</fpage>&#x02013;<lpage>385</lpage>.</citation></ref>
<ref id="B25">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Fang</surname> <given-names>Y.</given-names></name> <name><surname>Si</surname> <given-names>L.</given-names></name></person-group> (<year>2011</year>). <article-title>Matrix co-factorization for recommendation with rich side information and implicit feedback</article-title>, in <source>Proceedings of the 2nd International Workshop on Information Heterogeneity and Fusion in Recommender Systems, HetRec &#x00027;11</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>65</fpage>&#x02013;<lpage>69</lpage>.</citation></ref>
<ref id="B26">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Feipeng Zhao</surname> <given-names>Y. G.</given-names></name></person-group> (<year>2017</year>). <article-title>Learning discriminative recommendation systems with side information</article-title>, in <source>Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence, IJCAI-17</source> (<publisher-loc>Melbourne, VIC</publisher-loc>), <fpage>3469</fpage>&#x02013;<lpage>3475</lpage>.</citation></ref>
<ref id="B27">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Gantner</surname> <given-names>Z.</given-names></name> <name><surname>Drumond</surname> <given-names>L.</given-names></name> <name><surname>Freudenthaler</surname> <given-names>C.</given-names></name> <name><surname>Rendle</surname> <given-names>S.</given-names></name> <name><surname>Schmidt-Thieme</surname> <given-names>L.</given-names></name></person-group> (<year>2010</year>). <article-title>Learning attribute-to-feature mappings for cold-start recommendations</article-title>, in <source>Proceedings of the 2010 IEEE International Conference on Data Mining, ICDM &#x00027;10</source> (<publisher-loc>Washington, DC</publisher-loc>: <publisher-name>IEEE Computer Society</publisher-name>), <fpage>176</fpage>&#x02013;<lpage>185</lpage>.</citation></ref>
<ref id="B28">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Gao</surname> <given-names>H.</given-names></name> <name><surname>Tang</surname> <given-names>J.</given-names></name> <name><surname>Hu</surname> <given-names>X.</given-names></name> <name><surname>Liu</surname> <given-names>H.</given-names></name></person-group> (<year>2015</year>). <article-title>Content-aware point of interest recommendation on location-based social networks</article-title>, in <source>Proceedings of the Twenty-Ninth AAAI Conference on Artificial Intelligence, AAAI&#x00027;15</source> (<publisher-loc>Austin, TX</publisher-loc>: <publisher-name>AAAI Press</publisher-name>), <fpage>1721</fpage>&#x02013;<lpage>1727</lpage>.</citation></ref>
<ref id="B29">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Ge</surname> <given-names>H.</given-names></name> <name><surname>Caverlee</surname> <given-names>J.</given-names></name> <name><surname>Lu</surname> <given-names>H.</given-names></name></person-group> (<year>2016</year>). <article-title>Taper: a contextual tensor-based approach for personalized expert recommendation</article-title>, in <source>Proceedings of the 10th ACM Conference on Recommender Systems, RecSys &#x00027;16</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>261</fpage>&#x02013;<lpage>268</lpage>.</citation></ref>
<ref id="B30">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>G&#x000F6;nen</surname> <given-names>M.</given-names></name> <name><surname>Khan</surname> <given-names>S. A.</given-names></name> <name><surname>Kaski</surname> <given-names>S.</given-names></name></person-group> (<year>2013</year>). <article-title>Kernelized bayesian matrix factorization</article-title>, in <source>Proceedings of the 30th International Conference on International Conference on Machine Learning - Volume 28, ICML&#x00027;13</source>, <fpage>III864</fpage>&#x02013;<lpage>III872</lpage>. Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.JMLR.org">JMLR.org</ext-link></citation></ref>
<ref id="B31">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Gu</surname> <given-names>Q.</given-names></name> <name><surname>Zhou</surname> <given-names>J.</given-names></name> <name><surname>Ding</surname> <given-names>C. H. Q.</given-names></name></person-group> (<year>2010</year>). <article-title>Collaborative filtering: weighted nonnegative matrix factorization incorporating user and item graphs</article-title>, in <source>Proceedings of the SIAM International Conference on Data Mining, SDM 2010</source> (<publisher-loc>Columbus, OH</publisher-loc>: <publisher-name>SIAM</publisher-name>), <fpage>199</fpage>&#x02013;<lpage>210</lpage>.</citation></ref>
<ref id="B32">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Gunawardana</surname> <given-names>A.</given-names></name> <name><surname>Meek</surname> <given-names>C.</given-names></name></person-group> (<year>2008</year>). <article-title>Tied boltzmann machines for cold start recommendations</article-title>, in <source>Proceedings of the 2008 ACM Conference on Recommender Systems, RecSys &#x00027;08</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>19</fpage>&#x02013;<lpage>26</lpage>.</citation></ref>
<ref id="B33">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Gunawardana</surname> <given-names>A.</given-names></name> <name><surname>Meek</surname> <given-names>C.</given-names></name></person-group> (<year>2009</year>). <article-title>A unified approach to building hybrid recommender systems</article-title>, in <source>Proceedings of the Third ACM Conference on Recommender Systems, RecSys &#x00027;09</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>117</fpage>&#x02013;<lpage>124</lpage>.</citation></ref>
<ref id="B34">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Guo</surname> <given-names>H.</given-names></name> <name><surname>Tang</surname> <given-names>R.</given-names></name> <name><surname>Ye</surname> <given-names>Y.</given-names></name> <name><surname>Li</surname> <given-names>Z.</given-names></name> <name><surname>He</surname> <given-names>X.</given-names></name></person-group> (<year>2017</year>). <article-title>Deepfm: a factorization-machine based neural network for CTR prediction</article-title>, in <source>Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence, IJCAI 2017</source>, ed <person-group person-group-type="editor"><name><surname>Sierra</surname> <given-names>C.</given-names></name></person-group> (<publisher-loc>Melbourne, VIC</publisher-loc>), <fpage>1725</fpage>&#x02013;<lpage>1731</lpage>. Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.ijcai.org">ijcai.org</ext-link></citation></ref>
<ref id="B35">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Guo</surname> <given-names>Y.</given-names></name></person-group> (<year>2017</year>). <article-title>Convex co-embedding for matrix completion with predictive side information</article-title>, in <source>Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence</source>, eds <person-group person-group-type="editor"><name><surname>Singh</surname> <given-names>S. P.</given-names></name> <name><surname>Markovitch</surname> <given-names>S.</given-names></name></person-group> (<publisher-loc>San Francisco, CA</publisher-loc>: <publisher-name>AAAI Press</publisher-name>), <fpage>1955</fpage>&#x02013;<lpage>1961</lpage>.</citation></ref>
<ref id="B36">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Harper</surname> <given-names>F. M.</given-names></name> <name><surname>Konstan</surname> <given-names>J. A.</given-names></name></person-group> (<year>2015</year>). <article-title>The movielens datasets: history and context</article-title>. <source>ACM Trans. Interact. Intell. Syst.</source> <volume>5</volume>, <fpage>19:1</fpage>&#x02013;<lpage>19:19</lpage>. <pub-id pub-id-type="doi">10.1145/2827872</pub-id></citation></ref>
<ref id="B37">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>He</surname> <given-names>R.</given-names></name> <name><surname>McAuley</surname> <given-names>J.</given-names></name></person-group> (<year>2016</year>). <article-title>Vbpr: Visual bayesian personalized ranking from implicit feedback</article-title>, in <source>Proceedings of the Thirtieth AAAI Conference on Artificial Intelligence, AAAI&#x00027;16</source> (<publisher-loc>Phoenix, AZ</publisher-loc>: <publisher-name>AAAI Press</publisher-name>), <fpage>144</fpage>&#x02013;<lpage>150</lpage>.</citation></ref>
<ref id="B38">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>He</surname> <given-names>X.</given-names></name> <name><surname>Chua</surname> <given-names>T.-S.</given-names></name></person-group> (<year>2017</year>). <article-title>Neural factorization machines for sparse predictive analytics</article-title>, in <source>Proceedings of the 40th International ACM SIGIR Conference on Research and Development in Information Retrieval, SIGIR &#x00027;17</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>355</fpage>&#x02013;<lpage>364</lpage>.</citation></ref>
<ref id="B39">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>He</surname> <given-names>X.</given-names></name> <name><surname>Du</surname> <given-names>X.</given-names></name> <name><surname>Wang</surname> <given-names>X.</given-names></name> <name><surname>Tian</surname> <given-names>F.</given-names></name> <name><surname>Tang</surname> <given-names>J.</given-names></name> <name><surname>Chua</surname> <given-names>T.-S.</given-names></name></person-group> (<year>2018</year>). <article-title>Outer product-based neural collaborative filtering</article-title>, in <source>IJCAI</source> (<publisher-loc>Stockholm</publisher-loc>).</citation></ref>
<ref id="B40">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>He</surname> <given-names>X.</given-names></name> <name><surname>Liao</surname> <given-names>L.</given-names></name> <name><surname>Zhang</surname> <given-names>H.</given-names></name> <name><surname>Nie</surname> <given-names>L.</given-names></name> <name><surname>Hu</surname> <given-names>X.</given-names></name> <name><surname>Chua</surname> <given-names>T.-S.</given-names></name></person-group> (<year>2017</year>). <article-title>Neural collaborative filtering</article-title>, in <source>Proceedings of the 26th International Conference on World Wide Web, WWW &#x00027;17</source> (<publisher-loc>Geneva</publisher-loc>: <publisher-name>International World Wide Web Conferences Steering Committee</publisher-name>), <fpage>173</fpage>&#x02013;<lpage>182</lpage>.</citation></ref>
<ref id="B41">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Hidasi</surname> <given-names>B.</given-names></name></person-group> (<year>2015</year>). <article-title>Context-aware preference modeling with factorization</article-title>, in <source>Proceedings of the 9th ACM Conference on Recommender Systems, RecSys &#x00027;15</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>371</fpage>&#x02013;<lpage>374</lpage>.</citation></ref>
<ref id="B42">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Hidasi</surname> <given-names>B.</given-names></name> <name><surname>Tikk</surname> <given-names>D.</given-names></name></person-group> (<year>2012</year>). <article-title>Fast als-based tensor factorization for context-aware recommendation from implicit feedback</article-title>, in <source>Proceedings of the 2012 European Conference on Machine Learning and Knowledge Discovery in Databases - Volume Part II</source>, ECML PKDD&#x00027;12 (<publisher-loc>Berlin; Heidelberg</publisher-loc>: <publisher-name>Springer-Verlag</publisher-name>), <fpage>67</fpage>&#x02013;<lpage>82</lpage>.</citation></ref>
<ref id="B43">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hidasi</surname> <given-names>B.</given-names></name> <name><surname>Tikk</surname> <given-names>D.</given-names></name></person-group> (<year>2016</year>). <article-title>General factorization framework for context-aware recommendations</article-title>. <source>Data Min. Knowl. Discov.</source> <volume>30</volume>, <fpage>342</fpage>&#x02013;<lpage>371</lpage>. <pub-id pub-id-type="doi">10.1007/s10618-015-0417-y</pub-id></citation></ref>
<ref id="B44">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Hsieh</surname> <given-names>C.-K.</given-names></name> <name><surname>Yang</surname> <given-names>L.</given-names></name> <name><surname>Cui</surname> <given-names>Y.</given-names></name> <name><surname>Lin</surname> <given-names>T.-Y.</given-names></name> <name><surname>Belongie</surname> <given-names>S.</given-names></name> <name><surname>Estrin</surname> <given-names>D.</given-names></name></person-group> (<year>2017</year>). <article-title>Collaborative metric learning</article-title>, in <source>Proceedings of the 26th International Conference on World Wide Web, WWW &#x00027;17</source> (<publisher-loc>Geneva</publisher-loc>: <publisher-name>International World Wide Web Conferences Steering Committee</publisher-name>), <fpage>193</fpage>&#x02013;<lpage>201</lpage>.</citation></ref>
<ref id="B45">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Hu</surname> <given-names>L.</given-names></name> <name><surname>Sun</surname> <given-names>A.</given-names></name> <name><surname>Liu</surname> <given-names>Y.</given-names></name></person-group> (<year>2014</year>). <article-title>Your neighbors affect your ratings: on geographical neighborhood influence to rating prediction</article-title>, in <source>Proceedings of the 37th International ACM SIGIR Conference on Research and Development in Information Retrieval, SIGIR &#x00027;14</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>345</fpage>&#x02013;<lpage>354</lpage>.</citation></ref>
<ref id="B46">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Isinkaye</surname> <given-names>F.</given-names></name> <name><surname>Folajimi</surname> <given-names>Y.</given-names></name> <name><surname>Ojokoh</surname> <given-names>B.</given-names></name></person-group> (<year>2015</year>). <article-title>Recommendation systems: principles, methods and evaluation</article-title>. <source>Egypt. Inform. J.</source> <volume>16</volume>, <fpage>261</fpage>&#x02013;<lpage>273</lpage>. <pub-id pub-id-type="doi">10.1016/j.eij.2015.06.005</pub-id></citation></ref>
<ref id="B47">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Jamali</surname> <given-names>M.</given-names></name> <name><surname>Lakshmanan</surname> <given-names>L.</given-names></name></person-group> (<year>2013</year>). <article-title>Heteromf: Recommendation in heterogeneous information networks using context dependent factor models</article-title>, in <source>Proceedings of the 22nd International Conference on World Wide Web, WWW &#x00027;13</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>643</fpage>&#x02013;<lpage>654</lpage>.</citation></ref>
<ref id="B48">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Ji</surname> <given-names>K.</given-names></name> <name><surname>Shen</surname> <given-names>H.</given-names></name> <name><surname>Tian</surname> <given-names>H.</given-names></name> <name><surname>Wu</surname> <given-names>Y.</given-names></name> <name><surname>Wu</surname> <given-names>J.</given-names></name></person-group> (<year>2014</year>). <source>Two-Phase Layered Learning Recommendation via Category Structure</source>. <publisher-loc>Cham</publisher-loc>: <publisher-name>Springer International</publisher-name> <volume>Publishing</volume>, <fpage>13</fpage>&#x02013;<lpage>24</lpage>.</citation></ref>
<ref id="B49">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Jiang</surname> <given-names>Z.</given-names></name> <name><surname>Liu</surname> <given-names>H.</given-names></name> <name><surname>Fu</surname> <given-names>B.</given-names></name> <name><surname>Wu</surname> <given-names>Z.</given-names></name> <name><surname>Zhang</surname> <given-names>T.</given-names></name></person-group> (<year>2018</year>). <article-title>Recommendation in heterogeneous information networks based on generalized random walk model and bayesian personalized ranking</article-title>, in <source>Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining, WSDM &#x00027;18</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>288</fpage>&#x02013;<lpage>296</lpage>.</citation></ref>
<ref id="B50">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Juan</surname> <given-names>Y.</given-names></name> <name><surname>Zhuang</surname> <given-names>Y.</given-names></name> <name><surname>Chin</surname> <given-names>W.-S.</given-names></name> <name><surname>Lin</surname> <given-names>C.-J.</given-names></name></person-group> (<year>2016</year>). <article-title>Field-aware factorization machines for ctr prediction</article-title>, in <source>Proceedings of the 10th ACM Conference on Recommender Systems, RecSys &#x00027;16</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>43</fpage>&#x02013;<lpage>50</lpage>.</citation></ref>
<ref id="B51">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Karatzoglou</surname> <given-names>A.</given-names></name> <name><surname>Amatriain</surname> <given-names>X.</given-names></name> <name><surname>Baltrunas</surname> <given-names>L.</given-names></name> <name><surname>Oliver</surname> <given-names>N.</given-names></name></person-group> (<year>2010</year>). <article-title>Multiverse recommendation: N-dimensional tensor factorization for context-aware collaborative filtering</article-title>, in <source>Proceedings of the Fourth ACM Conference on Recommender Systems, RecSys &#x00027;10</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>79</fpage>&#x02013;<lpage>86</lpage>.</citation></ref>
<ref id="B52">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Kasai</surname> <given-names>H.</given-names></name> <name><surname>Mishra</surname> <given-names>B.</given-names></name></person-group> (<year>2016</year>). <article-title>Low-rank tensor completion: A riemannian manifold preconditioning approach</article-title>, in <source>Proceedings of the 33rd International Conference on International Conference on Machine Learning - Volume 48, ICML&#x00027;16</source>, <fpage>1012</fpage>&#x02013;<lpage>1021</lpage>. Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.JMLR.org">JMLR.org</ext-link></citation></ref>
<ref id="B53">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>Y.</given-names></name> <name><surname>Choi</surname> <given-names>S.</given-names></name></person-group> (<year>2014</year>). <article-title>Scalable variational bayesian matrix factorization with side information</article-title>, in <source>Proceedings of the Seventeenth International Conference on Artificial Intelligence and Statistics, AISTATS 2014</source>, volume 33 of <italic>JMLR Workshop and Conference Proceedings</italic> (<publisher-loc>Reykjavik</publisher-loc>), <fpage>493</fpage>&#x02013;<lpage>502</lpage>. Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.JMLR.org">JMLR.org</ext-link></citation></ref>
<ref id="B54">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Koenigstein</surname> <given-names>N.</given-names></name> <name><surname>Dror</surname> <given-names>G.</given-names></name> <name><surname>Koren</surname> <given-names>Y.</given-names></name></person-group> (<year>2011</year>). <article-title>Yahoo! music recommendations: modeling music ratings with temporal dynamics and item taxonomy</article-title>, in <source>Proceedings of the Fifth ACM Conference on Recommender Systems, RecSys &#x00027;11</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>165</fpage>&#x02013;<lpage>172</lpage>.</citation></ref>
<ref id="B55">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Koenigstein</surname> <given-names>N.</given-names></name> <name><surname>Paquet</surname> <given-names>U.</given-names></name></person-group> (<year>2013</year>). <article-title>Xbox movies recommendations: variational bayes matrix factorization with embedded feature selection</article-title>, in <source>Proceedings of the 7th ACM Conference on Recommender Systems, RecSys &#x00027;13</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>129</fpage>&#x02013;<lpage>136</lpage>.</citation></ref>
<ref id="B56">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Koren</surname> <given-names>Y.</given-names></name> <name><surname>Bell</surname> <given-names>R.</given-names></name></person-group> (<year>2011</year>). <source>Advances in Collaborative Filtering</source>. <publisher-loc>Boston, MA</publisher-loc>: <publisher-name>Springer</publisher-name>, <fpage>145</fpage>&#x02013;<lpage>186</lpage>.</citation></ref>
<ref id="B57">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Koren</surname> <given-names>Y.</given-names></name> <name><surname>Bell</surname> <given-names>R.</given-names></name> <name><surname>Volinsky</surname> <given-names>C.</given-names></name></person-group> (<year>2009</year>). <article-title>Matrix factorization techniques for recommender systems</article-title>. <source>Computer</source> <volume>42</volume>, <fpage>30</fpage>&#x02013;<lpage>37</lpage>. <pub-id pub-id-type="doi">10.1109/MC.2009.263</pub-id></citation></ref>
<ref id="B58">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Kula</surname> <given-names>M.</given-names></name></person-group> (<year>2015</year>). <article-title>Metadata embeddings for user and item cold-start recommendations</article-title>, in <source>Proceedings of the 2nd Workshop on New Trends on Content-Based Recommender Systems co-located with 9th ACM Conference on Recommender Systems (RecSys 2015)</source>, volume 1448 of <italic>CEUR Workshop Proceedings</italic> (<publisher-loc>Vienna</publisher-loc>), eds <person-group person-group-type="editor"><name><surname>Bogers</surname> <given-names>T.</given-names></name> <name><surname>Koolen</surname> <given-names>M.</given-names></name></person-group>, <fpage>14</fpage>&#x02013;<lpage>21</lpage>. Available online at: <ext-link ext-link-type="uri" xlink:href="http://ceur-ws.org">CEUR-WS.org</ext-link></citation></ref>
<ref id="B59">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lee</surname> <given-names>D.</given-names></name> <name><surname>Park</surname> <given-names>S. E.</given-names></name> <name><surname>Kahng</surname> <given-names>M.</given-names></name> <name><surname>Lee</surname> <given-names>S.</given-names></name> <name><surname>Lee</surname> <given-names>S.-G.</given-names></name></person-group> (<year>2010</year>). <source>Exploiting Contextual Information from Event Logs for Personalized Recommendation</source>. <publisher-loc>Berlin; Heidelberg</publisher-loc>: <publisher-name>Springer</publisher-name>, <fpage>121</fpage>&#x02013;<lpage>139</lpage>.</citation></ref>
<ref id="B60">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lee</surname> <given-names>S.</given-names></name> <name><surname>Song</surname> <given-names>S.-i.</given-names></name> <name><surname>Kahng</surname> <given-names>M.</given-names></name> <name><surname>Lee</surname> <given-names>D.</given-names></name> <name><surname>Lee</surname> <given-names>S.-g.</given-names></name></person-group> (<year>2011</year>). <article-title>Random walk based entity ranking on graph for multidimensional recommendation</article-title>, in <source>Proceedings of the Fifth ACM Conference on Recommender Systems, RecSys &#x00027;11</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>93</fpage>&#x02013;<lpage>100</lpage>.</citation></ref>
<ref id="B61">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>S.</given-names></name> <name><surname>Kawale</surname> <given-names>J.</given-names></name> <name><surname>Fu</surname> <given-names>Y.</given-names></name></person-group> (<year>2015</year>). <article-title>Deep collaborative filtering via marginalized denoising auto-encoder</article-title>, in <source>Proceedings of the 24th ACM International on Conference on Information and Knowledge Management, CIKM &#x00027;15</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>811</fpage>&#x02013;<lpage>820</lpage>.</citation></ref>
<ref id="B62">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>X.</given-names></name> <name><surname>She</surname> <given-names>J.</given-names></name></person-group> (<year>2017</year>). <article-title>Collaborative variational autoencoder for recommender systems</article-title>, in <source>Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD &#x00027;17</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>305</fpage>&#x02013;<lpage>314</lpage>.</citation></ref>
<ref id="B63">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>Y.</given-names></name> <name><surname>Hu</surname> <given-names>J.</given-names></name> <name><surname>Zhai</surname> <given-names>C.</given-names></name> <name><surname>Chen</surname> <given-names>Y.</given-names></name></person-group> (<year>2010a</year>). <article-title>Improving one-class collaborative filtering by incorporating rich user information</article-title>, in <source>Proceedings of the 19th ACM International Conference on Information and Knowledge Management, CIKM &#x00027;10</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>959</fpage>&#x02013;<lpage>968</lpage>.</citation></ref>
<ref id="B64">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>Y.</given-names></name> <name><surname>Nie</surname> <given-names>J.</given-names></name> <name><surname>Zhang</surname> <given-names>Y.</given-names></name> <name><surname>Wang</surname> <given-names>B.</given-names></name> <name><surname>Yan</surname> <given-names>B.</given-names></name> <name><surname>Weng</surname> <given-names>F.</given-names></name></person-group> (<year>2010b</year>). <article-title>Contextual recommendation based on text mining</article-title>, in <source>Proceedings of the 23rd International Conference on Computational Linguistics: Posters, COLING &#x00027;10</source> (<publisher-loc>Stroudsburg, PA</publisher-loc>: <publisher-name>Association for Computational Linguistics</publisher-name>), <fpage>692</fpage>&#x02013;<lpage>700</lpage>.</citation></ref>
<ref id="B65">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>X.</given-names></name> <name><surname>Aberer</surname> <given-names>K.</given-names></name></person-group> (<year>2013</year>). <article-title>Soco: a social network aided context-aware recommender system</article-title>, in <source>Proceedings of the 22nd International Conference on World Wide Web, WWW &#x00027;13</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>781</fpage>&#x02013;<lpage>802</lpage>.</citation></ref>
<ref id="B66">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Liu</surname> <given-names>X.</given-names></name> <name><surname>Wu</surname> <given-names>W.</given-names></name></person-group> (<year>2015</year>). <article-title>Learning context-aware latent representations for context-aware collaborative filtering</article-title>, in <source>Proceedings of the 38th International ACM SIGIR Conference on Research and Development in Information Retrieval, SIGIR &#x00027;15</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>887</fpage>&#x02013;<lpage>890</lpage>.</citation></ref>
<ref id="B67">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lu</surname> <given-names>C.-T.</given-names></name> <name><surname>He</surname> <given-names>L.</given-names></name> <name><surname>Shao</surname> <given-names>W.</given-names></name> <name><surname>Cao</surname> <given-names>B.</given-names></name> <name><surname>Yu</surname> <given-names>P. S.</given-names></name></person-group> (<year>2017</year>). <article-title>Multilinear factorization machines for multi-task multi-view learning</article-title>, in <source>Proceedings of the Tenth ACM International Conference on Web Search and Data Mining, WSDM &#x00027;17</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>701</fpage>&#x02013;<lpage>709</lpage>.</citation></ref>
<ref id="B68">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lu</surname> <given-names>J.</given-names></name> <name><surname>Liang</surname> <given-names>G.</given-names></name> <name><surname>Sun</surname> <given-names>J.</given-names></name> <name><surname>Bi</surname> <given-names>J.</given-names></name></person-group> (<year>2016</year>). <article-title>A sparse interactive model for matrix completion with side information</article-title>, in <source>Advances in Neural Information Processing Systems 29: Annual Conference on Neural Information Processing Systems 2016</source>, eds <person-group person-group-type="editor"><name><surname>Lee</surname> <given-names>D. D.</given-names></name> <name><surname>Sugiyama</surname> <given-names>M.</given-names></name> <name><surname>von Luxburg</surname> <given-names>U.</given-names></name> <name><surname>Guyon</surname> <given-names>I.</given-names></name> <name><surname>Garnett</surname> <given-names>R.</given-names></name></person-group> (<publisher-loc>Barcelona</publisher-loc>), <fpage>4071</fpage>&#x02013;<lpage>4079</lpage>.</citation></ref>
<ref id="B69">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lu</surname> <given-names>K.</given-names></name> <name><surname>Zhang</surname> <given-names>G.</given-names></name> <name><surname>Li</surname> <given-names>R.</given-names></name> <name><surname>Zhang</surname> <given-names>S.</given-names></name> <name><surname>Wang</surname> <given-names>B.</given-names></name></person-group> (<year>2012</year>). <source>Exploiting and Exploring Hierarchical Structure in Music Recommendation</source>. <publisher-loc>Berlin; Heidelberg</publisher-loc>: <publisher-name>Springer</publisher-name>, <fpage>211</fpage>&#x02013;<lpage>225</lpage>.</citation></ref>
<ref id="B70">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Ma</surname> <given-names>H.</given-names></name> <name><surname>Zhou</surname> <given-names>D.</given-names></name> <name><surname>Liu</surname> <given-names>C.</given-names></name> <name><surname>Lyu</surname> <given-names>M. R.</given-names></name> <name><surname>King</surname> <given-names>I.</given-names></name></person-group> (<year>2011a</year>). <article-title>Recommender systems with social regularization</article-title>, in <italic>Proceedings of the Fourth ACM International Conference on Web Search and Data Mining, WSDM &#x00027;11</italic> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>287</fpage>&#x02013;<lpage>296</lpage>.</citation></ref>
<ref id="B71">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Ma</surname> <given-names>H.</given-names></name> <name><surname>Zhou</surname> <given-names>T. C.</given-names></name> <name><surname>Lyu</surname> <given-names>M. R.</given-names></name> <name><surname>King</surname> <given-names>I.</given-names></name></person-group> (<year>2011b</year>). <article-title>Improving recommender systems by incorporating social contextual information</article-title>. <source>ACM Trans. Inform. Syst.</source> <volume>29</volume>, <fpage>9:1</fpage>&#x02013;<lpage>9:23</lpage>. <pub-id pub-id-type="doi">10.1145/1961209.1961212</pub-id></citation></ref>
<ref id="B72">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Menon</surname> <given-names>A. K.</given-names></name> <name><surname>Chitrapura</surname> <given-names>K.-P.</given-names></name> <name><surname>Garg</surname> <given-names>S.</given-names></name> <name><surname>Agarwal</surname> <given-names>D.</given-names></name> <name><surname>Kota</surname> <given-names>N.</given-names></name></person-group> (<year>2011</year>). <article-title>Response prediction using collaborative filtering with hierarchies and side-information</article-title>, in <source>Proceedings of the 17th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD &#x00027;11</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>141</fpage>&#x02013;<lpage>149</lpage>.</citation></ref>
<ref id="B73">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Menon</surname> <given-names>A. K.</given-names></name> <name><surname>Elkan</surname> <given-names>C.</given-names></name></person-group> (<year>2010</year>). <article-title>A log-linear model with latent features for dyadic prediction</article-title>, in <source>Proceedings of the 2010 IEEE International Conference on Data Mining, ICDM &#x00027;10</source> (<publisher-loc>Washington, DC</publisher-loc>: <publisher-name>IEEE Computer Society</publisher-name>), <fpage>364</fpage>&#x02013;<lpage>373</lpage>.</citation></ref>
<ref id="B74">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Nandanwar</surname> <given-names>S.</given-names></name> <name><surname>Moroney</surname> <given-names>A.</given-names></name> <name><surname>Murty</surname> <given-names>M. N.</given-names></name></person-group> (<year>2018</year>). <article-title>Fusing diversity in recommendations in heterogeneous information networks</article-title>, in <source>Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining, WSDM &#x00027;18</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>414</fpage>&#x02013;<lpage>422</lpage>.</citation></ref>
<ref id="B75">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Natarajan</surname> <given-names>N.</given-names></name> <name><surname>Dhillon</surname> <given-names>I. S.</given-names></name></person-group> (<year>2014</year>). <article-title>Inductive matrix completion for predicting gene&#x02014;disease associations</article-title>. <source>Bioinformatics</source> <volume>30</volume>, <fpage>i60</fpage>&#x02013;<lpage>i68</lpage>. <pub-id pub-id-type="doi">10.1093/bioinformatics/btu269</pub-id><pub-id pub-id-type="pmid">24932006</pub-id></citation></ref>
<ref id="B76">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Nguyen</surname> <given-names>T. V.</given-names></name> <name><surname>Karatzoglou</surname> <given-names>A.</given-names></name> <name><surname>Baltrunas</surname> <given-names>L.</given-names></name></person-group> (<year>2014</year>). <article-title>Gaussian process factorization machines for context-aware recommendations&#x0201D;</article-title> in <source>Proceedings of the 37th International ACM SIGIR Conference on Research and Development in Information Retrieval, SIGIR &#x00027;14</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>63</fpage>&#x02013;<lpage>72</lpage>.</citation></ref>
<ref id="B77">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Ning</surname> <given-names>X.</given-names></name> <name><surname>Karypis</surname> <given-names>G.</given-names></name></person-group> (<year>2012</year>). <article-title>Sparse linear methods with side information for top-n recommendations</article-title>, in <source>Proceedings of the Sixth ACM Conference on Recommender Systems, RecSys &#x00027;12</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>155</fpage>&#x02013;<lpage>162</lpage>.</citation></ref>
<ref id="B78">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Palumbo</surname> <given-names>E.</given-names></name> <name><surname>Rizzo</surname> <given-names>G.</given-names></name> <name><surname>Troncy</surname> <given-names>R.</given-names></name></person-group> (<year>2017</year>). <article-title>Entity2rec: learning user-item relatedness from knowledge graphs for top-n item recommendation</article-title>, in <source>Proceedings of the Eleventh ACM Conference on Recommender Systems, RecSys &#x00027;17</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>32</fpage>&#x02013;<lpage>36</lpage>.</citation></ref>
<ref id="B79">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Park</surname> <given-names>S.</given-names></name> <name><surname>Kim</surname> <given-names>Y.-D.</given-names></name> <name><surname>Choi</surname> <given-names>S.</given-names></name></person-group> (<year>2013</year>). <article-title>Hierarchical bayesian matrix factorization with side information</article-title>, in <source>Proceedings of the Twenty-Third International Joint Conference on Artificial Intelligence, IJCAI &#x00027;13</source> (<publisher-loc>Beijing</publisher-loc>: <publisher-name>AAAI Press</publisher-name>), <fpage>1593</fpage>&#x02013;<lpage>1599</lpage>.</citation></ref>
<ref id="B80">
<citation citation-type="web"><person-group person-group-type="author"><name><surname>Paterek</surname> <given-names>A.</given-names></name></person-group> (<year>2007</year>). <source>Improving Regularized Singular Value Decomposition for Collaborative Filtering</source>. Available online at: <ext-link ext-link-type="uri" xlink:href="https://www.cs.uic.edu/&#x0007E;liub/KDD-cup-2007/proceedings/Regular-Paterek.pdf">https://www.cs.uic.edu/&#x0007E;liub/KDD-cup-2007/proceedings/Regular-Paterek.pdf</ext-link></citation></ref>
<ref id="B81">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pham</surname> <given-names>T.-A. N.</given-names></name> <name><surname>Li</surname> <given-names>X.</given-names></name> <name><surname>Cong</surname> <given-names>G.</given-names></name> <name><surname>Zhang</surname> <given-names>Z.</given-names></name></person-group> (<year>2016</year>). <article-title>A general recommendation model for heterogeneous networks</article-title>. <source>IEEE Trans. Knowl. Data Eng.</source> <volume>28</volume>, <fpage>3140</fpage>&#x02013;<lpage>3153</lpage>. <pub-id pub-id-type="doi">10.1109/TKDE.2016.2601091</pub-id></citation></ref>
<ref id="B82">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Porteous</surname> <given-names>I.</given-names></name> <name><surname>Asuncion</surname> <given-names>A.</given-names></name> <name><surname>Welling</surname> <given-names>M.</given-names></name></person-group> (<year>2010</year>). <article-title>Bayesian matrix factorization with side information and dirichlet process mixtures</article-title>, in <source>Proceedings of the Twenty-Fourth AAAI Conference on Artificial Intelligence, AAAI&#x00027;10</source> (<publisher-loc>Atlanta, GA</publisher-loc>: <publisher-name>AAAI Press</publisher-name>), <fpage>563</fpage>&#x02013;<lpage>568</lpage>.</citation></ref>
<ref id="B83">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Rendle</surname> <given-names>S.</given-names></name> <name><surname>Freudenthaler</surname> <given-names>C.</given-names></name> <name><surname>Gantner</surname> <given-names>Z.</given-names></name> <name><surname>Schmidt-Thieme</surname> <given-names>L.</given-names></name></person-group> (<year>2009</year>). <article-title>Bpr: Bayesian personalized ranking from implicit feedback</article-title>, in <source>Proceedings of the Twenty-Fifth Conference on Uncertainty in Artificial Intelligence, UAI &#x00027;09</source> (<publisher-loc>Arlington, VA</publisher-loc>: <publisher-name>AUAI Press</publisher-name>), <fpage>452</fpage>&#x02013;<lpage>461</lpage>.</citation></ref>
<ref id="B84">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Rendle</surname> <given-names>S.</given-names></name> <name><surname>Gantner</surname> <given-names>Z.</given-names></name> <name><surname>Freudenthaler</surname> <given-names>C.</given-names></name> <name><surname>Schmidt-Thieme</surname> <given-names>L.</given-names></name></person-group> (<year>2011</year>). <article-title>Fast context-aware recommendations with factorization machines</article-title>, in <source>Proceedings of the 34th International ACM SIGIR Conference on Research and Development in Information Retrieval, SIGIR &#x00027;11</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>635</fpage>&#x02013;<lpage>644</lpage>.</citation></ref>
<ref id="B85">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Safoury</surname> <given-names>L.</given-names></name> <name><surname>Salah</surname> <given-names>A.</given-names></name></person-group> (<year>2013</year>). <article-title>Exploiting user demographic attributes for solving cold-start problem in recommender system</article-title>. <source>Lect. Notes Softw. Eng.</source> <volume>1</volume>:<fpage>303</fpage>.</citation></ref>
<ref id="B86">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Salakhutdinov</surname> <given-names>R.</given-names></name> <name><surname>Mnih</surname> <given-names>A.</given-names></name></person-group> (<year>2007</year>). <article-title>Probabilistic matrix factorization</article-title>, in <source>Proceedings of the 20th International Conference on Neural Information Processing Systems, NIPS&#x00027;07</source> (<publisher-loc>Vancouver, BC</publisher-loc>: <publisher-name>Curran Associates Inc</publisher-name>), <fpage>1257</fpage>&#x02013;<lpage>1264</lpage>.</citation></ref>
<ref id="B87">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Salakhutdinov</surname> <given-names>R.</given-names></name> <name><surname>Mnih</surname> <given-names>A.</given-names></name></person-group> (<year>2008</year>). <article-title>Bayesian probabilistic matrix factorization using markov chain monte carlo</article-title>, in <source>Proceedings of the 25th International Conference on Machine Learning, ICML &#x00027;08</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>880</fpage>&#x02013;<lpage>887</lpage>.</citation></ref>
<ref id="B88">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Saveski</surname> <given-names>M.</given-names></name> <name><surname>Mantrach</surname> <given-names>A.</given-names></name></person-group> (<year>2014</year>). <article-title>Item cold-start recommendations: learning local collective embeddings</article-title>, in <source>Proceedings of the 8th ACM Conference on Recommender Systems, RecSys &#x00027;14</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>89</fpage>&#x02013;<lpage>96</lpage>.</citation></ref>
<ref id="B89">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Sedhain</surname> <given-names>S.</given-names></name> <name><surname>Menon</surname> <given-names>A. K.</given-names></name> <name><surname>Sanner</surname> <given-names>S.</given-names></name> <name><surname>Xie</surname> <given-names>L.</given-names></name> <name><surname>Braziunas</surname> <given-names>D.</given-names></name></person-group> (<year>2017</year>). <article-title>Low-rank linear cold-start recommendation from social data</article-title>, in <source>Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence</source>, eds <person-group person-group-type="editor"><name><surname>Singh</surname> <given-names>S. P.</given-names></name> <name><surname>Markovitch</surname> <given-names>S.</given-names></name></person-group> (<publisher-loc>San Francisco, CA</publisher-loc>: <publisher-name>AAAI Press</publisher-name>), <fpage>1502</fpage>&#x02013;<lpage>1508</lpage>.</citation></ref>
<ref id="B90">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Sedhain</surname> <given-names>S.</given-names></name> <name><surname>Sanner</surname> <given-names>S.</given-names></name> <name><surname>Braziunas</surname> <given-names>D.</given-names></name> <name><surname>Xie</surname> <given-names>L.</given-names></name> <name><surname>Christensen</surname> <given-names>J.</given-names></name></person-group> (<year>2014</year>). <article-title>Social collaborative filtering for cold-start recommendations</article-title>, in <source>Proceedings of the 8th ACM Conference on Recommender Systems, RecSys &#x00027;14</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>345</fpage>&#x02013;<lpage>348</lpage>.</citation></ref>
<ref id="B91">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Shan</surname> <given-names>H.</given-names></name> <name><surname>Banerjee</surname> <given-names>A.</given-names></name></person-group> (<year>2010</year>). <article-title>Generalized probabilistic matrix factorizations for collaborative filtering</article-title>, in <source>Proceedings of the 2010 IEEE International Conference on Data Mining, ICDM &#x00027;10</source> (<publisher-loc>Washington, DC</publisher-loc>: <publisher-name>IEEE Computer Society</publisher-name>), <fpage>1025</fpage>&#x02013;<lpage>1030</lpage>.</citation></ref>
<ref id="B92">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Shi</surname> <given-names>Y.</given-names></name> <name><surname>Karatzoglou</surname> <given-names>A.</given-names></name> <name><surname>Baltrunas</surname> <given-names>L.</given-names></name> <name><surname>Larson</surname> <given-names>M.</given-names></name> <name><surname>Hanjalic</surname> <given-names>A.</given-names></name></person-group> (<year>2014a</year>). <article-title>Cars2: learning context-aware representations for context-aware recommendations</article-title>, in <source>Proceedings of the 23rd ACM International Conference on Information and Knowledge Management, CIKM &#x00027;14</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>291</fpage>&#x02013;<lpage>300</lpage>.</citation></ref>
<ref id="B93">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Shi</surname> <given-names>Y.</given-names></name> <name><surname>Karatzoglou</surname> <given-names>A.</given-names></name> <name><surname>Baltrunas</surname> <given-names>L.</given-names></name> <name><surname>Larson</surname> <given-names>M.</given-names></name> <name><surname>Hanjalic</surname> <given-names>A.</given-names></name> <name><surname>Oliver</surname> <given-names>N.</given-names></name></person-group> (<year>2012a</year>). <article-title>Tfmap: optimizing map for top-n context-aware recommendation</article-title>, in <source>Proceedings of the 35th International ACM SIGIR Conference on Research and Development in Information Retrieval, SIGIR &#x00027;12</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>155</fpage>&#x02013;<lpage>164</lpage>.</citation></ref>
<ref id="B94">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Shi</surname> <given-names>Y.</given-names></name> <name><surname>Karatzoglou</surname> <given-names>A.</given-names></name> <name><surname>Baltrunas</surname> <given-names>L.</given-names></name> <name><surname>Larson</surname> <given-names>M.</given-names></name> <name><surname>Oliver</surname> <given-names>N.</given-names></name> <name><surname>Hanjalic</surname> <given-names>A.</given-names></name></person-group> (<year>2012b</year>). <article-title>Climf: learning to maximize reciprocal rank with collaborative less-is-more filtering</article-title>, in <source>Proceedings of the Sixth ACM Conference on Recommender Systems, RecSys &#x00027;12</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>139</fpage>&#x02013;<lpage>146</lpage>.</citation></ref>
<ref id="B95">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Shi</surname> <given-names>Y.</given-names></name> <name><surname>Larson</surname> <given-names>M.</given-names></name> <name><surname>Hanjalic</surname> <given-names>A.</given-names></name></person-group> (<year>2014b</year>). <article-title>Collaborative filtering beyond the user-item matrix: a survey of the state of the art and future challenges</article-title>. <source>ACM Comput. Surv.</source> <volume>47</volume>, <fpage>3:1</fpage>&#x02013;<lpage>3:45</lpage>. <pub-id pub-id-type="doi">10.1145/2556270</pub-id></citation></ref>
<ref id="B96">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Shin</surname> <given-names>D.</given-names></name> <name><surname>Cetintas</surname> <given-names>S.</given-names></name> <name><surname>Lee</surname> <given-names>K.-C.</given-names></name> <name><surname>Dhillon</surname> <given-names>I. S.</given-names></name></person-group> (<year>2015</year>). <article-title>Tumblr blog recommendation with boosted inductive matrix completion</article-title>, in <source>Proceedings of the 24th ACM International Conference on Information and Knowledge Management, CIKM &#x00027;15</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>203</fpage>&#x02013;<lpage>212</lpage>.</citation></ref>
<ref id="B97">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Shin</surname> <given-names>D.</given-names></name> <name><surname>Lee</surname> <given-names>J.-w.</given-names></name> <name><surname>Yeon</surname> <given-names>J.</given-names></name> <name><surname>Lee</surname> <given-names>S.-g.</given-names></name></person-group> (<year>2009</year>). <article-title>Context-aware recommendation by aggregating user context</article-title>, in <source>Proceedings of the 2009 IEEE Conference on Commerce and Enterprise Computing, CEC &#x00027;09</source> (<publisher-loc>Washington, DC</publisher-loc>: <publisher-name>IEEE Computer Society</publisher-name>), <fpage>423</fpage>&#x02013;<lpage>430</lpage>.</citation></ref>
<ref id="B98">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Singh</surname> <given-names>A. P.</given-names></name> <name><surname>Gordon</surname> <given-names>G. J.</given-names></name></person-group> (<year>2008</year>). <article-title>Relational learning via collective matrix factorization</article-title>, in <source>Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD &#x00027;08</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>650</fpage>&#x02013;<lpage>658</lpage>.</citation></ref>
<ref id="B99">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Stern</surname> <given-names>D.</given-names></name> <name><surname>Herbrich</surname> <given-names>R.</given-names></name> <name><surname>Graepel</surname> <given-names>T.</given-names></name></person-group> (<year>2009</year>). <article-title>Matchbox: Large scale bayesian recommendations</article-title>, in <source>Proceedings of the 18th International World Wide Web Conference</source> (<publisher-loc>Madrid</publisher-loc>).</citation></ref>
<ref id="B100">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sun</surname> <given-names>Y.</given-names></name> <name><surname>Han</surname> <given-names>J.</given-names></name> <name><surname>Yan</surname> <given-names>X.</given-names></name> <name><surname>Yu</surname> <given-names>P. S.</given-names></name> <name><surname>Wu</surname> <given-names>T.</given-names></name></person-group> (<year>2011</year>). <article-title>Pathsim: meta path-based top-k similarity search in heterogeneous information networks</article-title>. <source>PVLDB</source> <volume>4</volume>, <fpage>992</fpage>&#x02013;<lpage>1003</lpage>.</citation></ref>
<ref id="B101">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Taylor</surname> <given-names>M.</given-names></name> <name><surname>Guiver</surname> <given-names>J.</given-names></name> <name><surname>Robertson</surname> <given-names>S.</given-names></name> <name><surname>Minka</surname> <given-names>T.</given-names></name></person-group> (<year>2008</year>). <article-title>Softrank: optimizing non-smooth rank metrics</article-title>, in <source>Proceedings of the 2008 International Conference on Web Search and Data Mining, WSDM &#x00027;08</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>77</fpage>&#x02013;<lpage>86</lpage>.</citation></ref>
<ref id="B102">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Verbert</surname> <given-names>K.</given-names></name> <name><surname>Manouselis</surname> <given-names>N.</given-names></name> <name><surname>Ochoa</surname> <given-names>X.</given-names></name> <name><surname>Wolpers</surname> <given-names>M.</given-names></name> <name><surname>Drachsler</surname> <given-names>H.</given-names></name> <name><surname>Bosnic</surname> <given-names>I.</given-names></name> <etal/></person-group>. (<year>2012</year>). <article-title>Context-aware recommender systems for learning: a survey and future challenges</article-title>. <source>IEEE Trans. Learn. Technol.</source> <volume>5</volume>, <fpage>318</fpage>&#x02013;<lpage>335</lpage>. <pub-id pub-id-type="doi">10.1109/TLT.2012.11</pub-id></citation></ref>
<ref id="B103">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>C.</given-names></name> <name><surname>Blei</surname> <given-names>D. M.</given-names></name></person-group> (<year>2011</year>). <article-title>Collaborative topic modeling for recommending scientific articles</article-title>, in <source>Proceedings of the 17th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD &#x00027;11</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>448</fpage>&#x02013;<lpage>456</lpage>.</citation></ref>
<ref id="B104">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>H.</given-names></name> <name><surname>Shi</surname> <given-names>X.</given-names></name> <name><surname>Yeung</surname> <given-names>D.</given-names></name></person-group> (<year>2016</year>). <article-title>Collaborative recurrent autoencoder: recommend while learning to fill in the blanks</article-title>, in <source>Advances in Neural Information Processing Systems 29: Annual Conference on Neural Information Processing Systems 2016</source>, eds <person-group person-group-type="editor"><name><surname>Lee</surname> <given-names>D. D.</given-names></name> <name><surname>Sugiyama</surname> <given-names>M.</given-names></name> <name><surname>von Luxburg</surname> <given-names>U.</given-names></name> <name><surname>Guyon</surname> <given-names>I.</given-names></name> <name><surname>Garnett</surname> <given-names>R.</given-names></name></person-group> (<publisher-loc>Barcelona</publisher-loc>), <fpage>415</fpage>&#x02013;<lpage>423</lpage>.</citation></ref>
<ref id="B105">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Wang</surname> <given-names>H.</given-names></name> <name><surname>Wang</surname> <given-names>N.</given-names></name> <name><surname>Yeung</surname> <given-names>D.-Y.</given-names></name></person-group> (<year>2015</year>). <article-title>Collaborative deep learning for recommender systems</article-title>, in <source>Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD &#x00027;15</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>1235</fpage>&#x02013;<lpage>1244</lpage>.</citation></ref>
<ref id="B106">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Weng</surname> <given-names>S.-S.</given-names></name> <name><surname>Lin</surname> <given-names>B.</given-names></name> <name><surname>Chen</surname> <given-names>W.-T.</given-names></name></person-group> (<year>2009</year>). <article-title>Using contextual information and multidimensional approach for recommendation</article-title>. <source>Expert Syst. Appl.</source> <volume>36</volume>, <fpage>1268</fpage>&#x02013;<lpage>1279</lpage>. <pub-id pub-id-type="doi">10.1016/j.eswa.2007.11.056</pub-id></citation></ref>
<ref id="B107">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Weston</surname> <given-names>J.</given-names></name> <name><surname>Wang</surname> <given-names>C.</given-names></name> <name><surname>Weiss</surname> <given-names>R. J.</given-names></name> <name><surname>Berenzweig</surname> <given-names>A.</given-names></name></person-group> (<year>2012</year>). <article-title>Latent collaborative retrieval</article-title>, in <source>Proceedings of the 29th International Conference on Machine Learning, ICML 2012</source> (<publisher-loc>Edinburgh</publisher-loc>: <publisher-name>icml.cc/Omnipress</publisher-name>).</citation></ref>
<ref id="B108">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Xu</surname> <given-names>M.</given-names></name> <name><surname>Jin</surname> <given-names>R.</given-names></name> <name><surname>Zhou</surname> <given-names>Z.-H.</given-names></name></person-group> (<year>2013</year>). <article-title>Speedup matrix completion with side information: Application to multi-label learning</article-title>, in <source>Proceedings of the 26th International Conference on Neural Information Processing Systems, NIPS&#x00027;13</source> (<publisher-loc>Lake Tahoe, NV</publisher-loc>: <publisher-name>Curran Associates Inc</publisher-name>), <fpage>2301</fpage>&#x02013;<lpage>2309</lpage>.</citation></ref>
<ref id="B109">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>J.</given-names></name> <name><surname>Sun</surname> <given-names>Z.</given-names></name> <name><surname>Bozzon</surname> <given-names>A.</given-names></name> <name><surname>Zhang</surname> <given-names>J.</given-names></name></person-group> (<year>2016</year>). <article-title>Learning hierarchical feature influence for recommendation by recursive regularization</article-title>, in <source>Proceedings of the 10th ACM Conference on Recommender Systems, RecSys &#x00027;16</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>51</fpage>&#x02013;<lpage>58</lpage>.</citation></ref>
<ref id="B110">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Yang</surname> <given-names>S.-H.</given-names></name> <name><surname>Long</surname> <given-names>B.</given-names></name> <name><surname>Smola</surname> <given-names>A.</given-names></name> <name><surname>Sadagopan</surname> <given-names>N.</given-names></name> <name><surname>Zheng</surname> <given-names>Z.</given-names></name> <name><surname>Zha</surname> <given-names>H.</given-names></name></person-group> (<year>2011</year>). <article-title>Like like alike: joint friendship and interest propagation in social networks</article-title>, in <source>Proceedings of the 20th International Conference on World Wide Web, WWW &#x00027;11</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>537</fpage>&#x02013;<lpage>546</lpage>.</citation></ref>
<ref id="B111">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Yoo</surname> <given-names>J.</given-names></name> <name><surname>Choi</surname> <given-names>S.</given-names></name></person-group> (<year>2009</year>). <article-title>Weighted nonnegative matrix co-tri-factorization for collaborative prediction</article-title>, in <source>Proceedings of the 1st Asian Conference on Machine Learning: Advances in Machine Learning, ACML &#x00027;09</source> (<publisher-loc>Berlin; Heidelberg</publisher-loc>: <publisher-name>Springer-Verlag</publisher-name>), <fpage>396</fpage>&#x02013;<lpage>411</lpage>.</citation></ref>
<ref id="B112">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Yoo</surname> <given-names>J.</given-names></name> <name><surname>Choi</surname> <given-names>S.</given-names></name></person-group> (<year>2011</year>). <article-title>Bayesian matrix co-factorization: variational algorithm and cram&#x000E9;r-rao bound</article-title>, in <source>Proceedings of the 2011th European Conference on Machine Learning and Knowledge Discovery in Databases - Volume Part III, ECMLPKDD&#x00027;11</source> (<publisher-loc>Berlin; Heidelberg</publisher-loc>: <publisher-name>Springer-Verlag</publisher-name>), <fpage>537</fpage>&#x02013;<lpage>552</lpage>.</citation></ref>
<ref id="B113">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Yoo</surname> <given-names>J.</given-names></name> <name><surname>Choi</surname> <given-names>S.</given-names></name></person-group> (<year>2012</year>). <article-title>Hierarchical variational bayesian matrix co-factorization</article-title>, in <source>2012 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)</source> (<publisher-loc>Kyoto</publisher-loc>), <fpage>1901</fpage>&#x02013;<lpage>1904</lpage>.</citation></ref>
<ref id="B114">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Yu</surname> <given-names>H.</given-names></name> <name><surname>Huang</surname> <given-names>H.</given-names></name> <name><surname>Dhillon</surname> <given-names>I. S.</given-names></name> <name><surname>Lin</surname> <given-names>C.</given-names></name></person-group> (<year>2017</year>). <article-title>A unified algorithm for one-cass structured matrix factorization with side information</article-title>,;; in <source>Proceedings of the Thirty-First AAAI Conference on Artificial Intelligence</source>, eds <person-group person-group-type="editor"><name><surname>Singh</surname> <given-names>S. P.</given-names></name> <name><surname>Markovitch</surname> <given-names>S.</given-names></name></person-group> (<publisher-loc>San Francisco, CA</publisher-loc>: <publisher-name>AAAI Press</publisher-name>), <fpage>2845</fpage>&#x02013;<lpage>2851</lpage>.</citation></ref>
<ref id="B115">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Yu</surname> <given-names>X.</given-names></name> <name><surname>Ren</surname> <given-names>X.</given-names></name> <name><surname>Sun</surname> <given-names>Y.</given-names></name> <name><surname>Gu</surname> <given-names>Q.</given-names></name> <name><surname>Sturt</surname> <given-names>B.</given-names></name> <name><surname>Khandelwal</surname> <given-names>U.</given-names></name> <etal/></person-group>. (<year>2014</year>). <article-title>Personalized entity recommendation: A heterogeneous information network approach</article-title>, in <source>Proceedings of the 7th ACM International Conference on Web Search and Data Mining, WSDM &#x00027;14</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>283</fpage>&#x02013;<lpage>292</lpage>.</citation></ref>
<ref id="B116">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>F.</given-names></name> <name><surname>Yuan</surname> <given-names>N. J.</given-names></name> <name><surname>Lian</surname> <given-names>D.</given-names></name> <name><surname>Xie</surname> <given-names>X.</given-names></name> <name><surname>Ma</surname> <given-names>W.-Y.</given-names></name></person-group> (<year>2016</year>). <article-title>Collaborative knowledge base embedding for recommender systems</article-title>, in <source>Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD &#x00027;16</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>353</fpage>&#x02013;<lpage>362</lpage>.</citation></ref>
<ref id="B117">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>M.</given-names></name> <name><surname>Tang</surname> <given-names>J.</given-names></name> <name><surname>Zhang</surname> <given-names>X.</given-names></name> <name><surname>Xue</surname> <given-names>X.</given-names></name></person-group> (<year>2014</year>). <article-title>Addressing cold start in recommender systems: a semi-supervised co-training algorithm</article-title>, in <source>Proceedings of the 37th International ACM SIGIR Conference on Research and Development in Information Retrieval, SIGIR &#x00027;14</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>73</fpage>&#x02013;<lpage>82</lpage>.</citation></ref>
<ref id="B118">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>S. Y.</given-names></name> <name><surname>Yao</surname> <given-names>L.</given-names></name> <name><surname>Sun</surname> <given-names>A.</given-names></name> <name><surname>Tay</surname> <given-names>Y.</given-names></name></person-group> (<year>2017</year>). <article-title>Deep learning based recommender system: a survey and new perspectives</article-title>. <source>ArXiv</source>, abs/1707.07435.</citation></ref>
<ref id="B119">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zhang</surname> <given-names>Y.</given-names></name> <name><surname>Yin</surname> <given-names>H.</given-names></name> <name><surname>Huang</surname> <given-names>Z.</given-names></name> <name><surname>Du</surname> <given-names>X.</given-names></name> <name><surname>Yang</surname> <given-names>G.</given-names></name> <name><surname>Lian</surname> <given-names>D.</given-names></name></person-group> (<year>2018</year>). <article-title>Discrete deep learning for fast content-aware recommendation</article-title>, in <source>Proceedings of the Eleventh ACM International Conference on Web Search and Data Mining, WSDM &#x00027;18</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>717</fpage>&#x02013;<lpage>726</lpage>.</citation></ref>
<ref id="B120">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zhao</surname> <given-names>F.</given-names></name> <name><surname>Xiao</surname> <given-names>M.</given-names></name> <name><surname>Guo</surname> <given-names>Y.</given-names></name></person-group> (<year>2016</year>). <article-title>Predictive collaborative filtering with side information</article-title>, in <source>Proceedings of the Twenty-Fifth International Joint Conference on Artificial Intelligence, IJCAI&#x00027;16</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>AAAI Press</publisher-name>), <fpage>2385</fpage>&#x02013;<lpage>2390</lpage>.</citation></ref>
<ref id="B121">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zhao</surname> <given-names>Q.</given-names></name> <name><surname>Shi</surname> <given-names>Y.</given-names></name> <name><surname>Hong</surname> <given-names>L.</given-names></name></person-group> (<year>2017</year>). <article-title>Gb-cent: Gradient boosted categorical embedding and numerical trees</article-title>, in <source>Proceedings of the 26th International Conference on World Wide Web, WWW &#x00027;17</source> (<publisher-loc>Geneva</publisher-loc>: <publisher-name>International World Wide Web Conferences Steering Committee</publisher-name>), <fpage>1311</fpage>&#x02013;<lpage>1319</lpage>.</citation></ref>
<ref id="B122">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zheng</surname> <given-names>J.</given-names></name> <name><surname>Liu</surname> <given-names>J.</given-names></name> <name><surname>Shi</surname> <given-names>C.</given-names></name> <name><surname>Zhuang</surname> <given-names>F.</given-names></name> <name><surname>Li</surname> <given-names>J.</given-names></name> <name><surname>Wu</surname> <given-names>B.</given-names></name></person-group> (<year>2016</year>). <article-title>Dual similarity regularization for recommendation</article-title>, in <source>Proceedings, Part II, of the 20th Pacific-Asia Conference on Advances in Knowledge Discovery and Data Mining - Volume 9652, PAKDD 2016</source> (<publisher-loc>New York, NY</publisher-loc>: <publisher-name>Springer-Verlag New York, Inc</publisher-name>), <fpage>542</fpage>&#x02013;<lpage>554</lpage>.</citation></ref>
<ref id="B123">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zhou</surname> <given-names>C.</given-names></name> <name><surname>Bai</surname> <given-names>J.</given-names></name> <name><surname>Song</surname> <given-names>J.</given-names></name> <name><surname>Liu</surname> <given-names>X.</given-names></name> <name><surname>Zhao</surname> <given-names>Z.</given-names></name> <name><surname>Chen</surname> <given-names>X.</given-names></name> <etal/></person-group>. (<year>2017</year>). <article-title>Atrank: zn attention-based user behavior modeling framework for recommendation</article-title>. <source>arXiv [preprint]. arXiv:1711.06632</source>.</citation></ref>
<ref id="B124">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zhou</surname> <given-names>T.</given-names></name> <name><surname>Qian</surname> <given-names>H.</given-names></name> <name><surname>Shen</surname> <given-names>Z.</given-names></name> <name><surname>Zhang</surname> <given-names>C.</given-names></name> <name><surname>Xu</surname> <given-names>C.</given-names></name></person-group> (<year>2017</year>). <article-title>Tensor completion with side information: A riemannian manifold approach</article-title>, in <source>Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence, IJCAI-17</source> (<publisher-loc>Melbourne, VIC</publisher-loc>), <fpage>3539</fpage>&#x02013;<lpage>3545</lpage>.</citation></ref>
<ref id="B125">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Zhou</surname> <given-names>T.</given-names></name> <name><surname>Shan</surname> <given-names>H.</given-names></name> <name><surname>Banerjee</surname> <given-names>A.</given-names></name> <name><surname>Sapiro</surname> <given-names>G.</given-names></name></person-group> (<year>2012</year>). <article-title>Kernelized probabilistic matrix factorization: exploiting graphs and side information</article-title>, in <source>Proceedings of the Twelfth SIAM International Conference on Data Mining</source> (<publisher-loc>Anaheim, CA</publisher-loc>: <publisher-name>SIAM/Omnipress</publisher-name>), <fpage>403</fpage>&#x02013;<lpage>414</lpage>.</citation></ref>
</ref-list>
<fn-group>
<fn id="fn0001"><p><sup>1</sup><ext-link ext-link-type="uri" xlink:href="http://www.netflixprize.com/">http://www.netflixprize.com/</ext-link></p></fn>
<fn id="fn0002"><p><sup>2</sup><ext-link ext-link-type="uri" xlink:href="https://webscope.sandbox.yahoo.com/">https://webscope.sandbox.yahoo.com/</ext-link></p></fn>
<fn id="fn0003"><p><sup>3</sup><ext-link ext-link-type="uri" xlink:href="https://www.yelp.com/dataset">https://www.yelp.com/dataset</ext-link></p></fn>
</fn-group>
</back>
</article>