<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://marovi.ai/index.php?action=history&amp;feed=atom&amp;title=Wide_%26_Deep_Learning_for_Recommender_Systems%2Fpaper%2Fzh</id>
	<title>Wide &amp; Deep Learning for Recommender Systems/paper/zh - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://marovi.ai/index.php?action=history&amp;feed=atom&amp;title=Wide_%26_Deep_Learning_for_Recommender_Systems%2Fpaper%2Fzh"/>
	<link rel="alternate" type="text/html" href="https://marovi.ai/index.php?title=Wide_%26_Deep_Learning_for_Recommender_Systems/paper/zh&amp;action=history"/>
	<updated>2026-04-27T17:00:12Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.1</generator>
	<entry>
		<id>https://marovi.ai/index.php?title=Wide_%26_Deep_Learning_for_Recommender_Systems/paper/zh&amp;diff=6897&amp;oldid=prev</id>
		<title>DeployBot: Batch translate Wide &amp; Deep Learning for Recommender Systems/paper unit 54 → zh</title>
		<link rel="alternate" type="text/html" href="https://marovi.ai/index.php?title=Wide_%26_Deep_Learning_for_Recommender_Systems/paper/zh&amp;diff=6897&amp;oldid=prev"/>
		<updated>2026-04-27T06:15:08Z</updated>

		<summary type="html">&lt;p&gt;Batch translate Wide &amp;amp; Deep Learning for Recommender Systems/paper unit 54 → zh&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;languages /&amp;gt;&lt;br /&gt;
{{PaperTabs}}&lt;br /&gt;
{{PaperInfobox&lt;br /&gt;
 | topic_area  = Machine Learning&lt;br /&gt;
 | difficulty  = Research&lt;br /&gt;
 | authors     = Heng-Tze Cheng; Levent Koc; Jeremiah Harmsen; Tal Shaked; Tushar Chandra; Hrishi Aradhye; Glen Anderson; Greg Corrado; Wei Chai; Mustafa Ispir; Rohan Anil; Zakaria Haque; Lichan Hong; Vihan Jain; Xiaobing Liu; Hemal Shah&lt;br /&gt;
 | year        = 2016&lt;br /&gt;
 | arxiv_id    = 1606.07792&lt;br /&gt;
 | source_url  = https://arxiv.org/abs/1606.07792&lt;br /&gt;
 | pdf_url     = https://arxiv.org/pdf/1606.07792.pdf&lt;br /&gt;
}}&lt;br /&gt;
{{ContentMeta&lt;br /&gt;
 | generated_by   = arxiv-importer-raw&lt;br /&gt;
 | model_used     = strategy:html5&lt;br /&gt;
 | generated_date = 2026-04-27&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;wide-deep-learning-for-recommender-systems&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Wide &amp;amp;amp; Deep Learning for Recommender Systems =&lt;br /&gt;
&lt;br /&gt;
Heng-Tze Cheng    Levent Koc    Jeremiah Harmsen    Tal Shaked    Tushar Chandra    Hrishi Aradhye    Glen Anderson    Greg Corrado    Wei Chai    Mustafa Ispir    Rohan Anil    Zakaria Haque    Lichan Hong    Vihan Jain    Xiaobing Liu    Hemal Shah&amp;lt;br /&amp;gt;&lt;br /&gt;
Google Inc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;abstract&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 摘要 ==&lt;br /&gt;
&lt;br /&gt;
带非线性特征变换的广义线性模型被广泛用于具有稀疏输入的大规模回归与分类问题。通过宽（wide）的交叉乘积特征变换来记忆特征交互既有效又可解释，而泛化则需要更多的特征工程工作量。借助更少的特征工程，深度（deep）神经网络可以通过为稀疏特征学习的低维稠密 embedding，更好地泛化到未见过的特征组合。然而，带 embedding 的深度神经网络在用户-项交互稀疏且高秩时，可能会过度泛化，推荐相关性较弱的项。本文提出 Wide &amp;amp;amp; Deep learning——联合训练 wide 线性模型与 deep 神经网络——以在推荐系统中兼得记忆与泛化的优势。我们在 Google Play 上将该系统投入生产并进行评估，这是一家商用移动应用商店，拥有逾十亿活跃用户与逾百万款应用。线上实验结果表明，相对于仅 wide 或仅 deep 的模型，Wide &amp;amp;amp; Deep 显著提升了应用安装量。我们也已在 TensorFlow 中开源了相关实现。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;keywords&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 关键词： ==&lt;br /&gt;
&lt;br /&gt;
Wide &amp;amp;amp; Deep Learning，推荐系统。&amp;lt;sup&amp;gt;††&amp;lt;/sup&amp;gt;titlenote: 通信作者：&amp;lt;code&amp;gt;hengtze@google.com&amp;lt;/code&amp;gt; {CCSXML}&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;ccs2012&amp;amp;gt; &amp;amp;lt;concept&amp;amp;gt; &amp;amp;lt;concept_id&amp;amp;gt;10010147.10010257&amp;amp;lt;/concept_id&amp;amp;gt; &amp;amp;lt;concept_desc&amp;amp;gt;Computing methodologies Machine learning&amp;amp;lt;/concept_desc&amp;amp;gt; &amp;amp;lt;concept_significance&amp;amp;gt;500&amp;amp;lt;/concept_significance&amp;amp;gt; &amp;amp;lt;/concept&amp;amp;gt; &amp;amp;lt;concept&amp;amp;gt; &amp;amp;lt;concept_id&amp;amp;gt;10010147.10010257.10010293.10010294&amp;amp;lt;/concept_id&amp;amp;gt; &amp;amp;lt;concept_desc&amp;amp;gt;Computing methodologies Neural networks&amp;amp;lt;/concept_desc&amp;amp;gt; &amp;amp;lt;concept_significance&amp;amp;gt;300&amp;amp;lt;/concept_significance&amp;amp;gt; &amp;amp;lt;/concept&amp;amp;gt; &amp;amp;lt;concept&amp;amp;gt; &amp;amp;lt;concept_id&amp;amp;gt;10010147.10010257.10010258.10010259&amp;amp;lt;/concept_id&amp;amp;gt; &amp;amp;lt;concept_desc&amp;amp;gt;Computing methodologies Supervised learning&amp;amp;lt;/concept_desc&amp;amp;gt; &amp;amp;lt;concept_significance&amp;amp;gt;300&amp;amp;lt;/concept_significance&amp;amp;gt; &amp;amp;lt;/concept&amp;amp;gt; &amp;amp;lt;concept&amp;amp;gt; &amp;amp;lt;concept_id&amp;amp;gt;10002951.10003317.10003347.10003350&amp;amp;lt;/concept_id&amp;amp;gt; &amp;amp;lt;concept_desc&amp;amp;gt;Information systems Recommender systems&amp;amp;lt;/concept_desc&amp;amp;gt; &amp;amp;lt;concept_significance&amp;amp;gt;300&amp;amp;lt;/concept_significance&amp;amp;gt; &amp;amp;lt;/concept&amp;amp;gt; &amp;amp;lt;/ccs2012&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
\ccsdesc&lt;br /&gt;
&lt;br /&gt;
[500]Computing methodologies Machine learning \ccsdesc[300]Computing methodologies Neural networks \ccsdesc[300]Computing methodologies Supervised learning \ccsdesc[300]Information systems Recommender systems&lt;br /&gt;
&lt;br /&gt;
\printccsdesc&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S1&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;introduction&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 1 引言 ==&lt;br /&gt;
&lt;br /&gt;
推荐系统可以视为一种搜索排序系统：其输入查询是用户与上下文信息的集合，输出则是按顺序排列的项列表。给定一个查询，推荐任务就是在数据库中找出相关项，然后依据某些目标（例如点击或购买）对它们排序。&lt;br /&gt;
&lt;br /&gt;
与一般的搜索排序问题类似，推荐系统的一个挑战是同时实现记忆与泛化。记忆可以粗略地理解为从历史数据中学习项或特征的频繁共现并加以利用。而泛化则建立在相关性的传递性之上，去探索过去从未或极少出现过的新特征组合。基于记忆的推荐通常更聚焦、与用户已经发生交互的项更直接相关；相比之下，泛化更有助于提升推荐结果的多样性。本文聚焦于 Google Play 应用商店的应用推荐问题，但该方法应当适用于一般的推荐系统。&lt;br /&gt;
&lt;br /&gt;
在工业级大规模在线推荐与排序系统中，logistic 回归等广义线性模型被广泛使用，因为它们简单、可扩展且可解释。这些模型通常在以 one-hot 编码二值化的稀疏特征上训练。例如，二值特征“&amp;lt;code&amp;gt;user_installed_app=netflix&amp;lt;/code&amp;gt;”在用户安装了 Netflix 时取 1。在稀疏特征上使用交叉乘积变换可以高效实现记忆，例如 &amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt;(&amp;lt;code&amp;gt;user_installed_app=netflix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;impression_app=pandora&amp;lt;/code&amp;gt;”)，当用户安装了 Netflix 并随后被展示 Pandora 时其值为 1。这刻画了一对特征的共现与目标标签之间的关联。可以通过使用粒度更粗的特征来加入泛化能力，例如 &amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt;(&amp;lt;code&amp;gt;user_installed_category=video&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;impression_category=music&amp;lt;/code&amp;gt;)，但这通常需要人工的特征工程。交叉乘积变换的一个局限是：它们无法泛化到训练数据中未出现过的查询-项特征对。&lt;br /&gt;
&lt;br /&gt;
基于 embedding 的模型，例如 factorization machines [&amp;lt;nowiki/&amp;gt;[[#bib.bib5|5]]] 或深度神经网络，可以通过为每个查询和项特征学习一个低维稠密 embedding 向量来泛化到此前未见过的查询-项特征对，同时减轻特征工程负担。然而，当底层的查询-项矩阵稀疏且高秩时——比如有特定偏好的用户或受众面较窄的小众项——就很难为查询和项学习有效的低维表示。在这种情况下，大多数查询-项对之间本不应存在交互，但稠密 embedding 仍会对所有查询-项对给出非零预测，从而可能过度泛化、产生相关性较弱的推荐。相反，带交叉乘积特征变换的线性模型可以用远少得多的参数记忆这些“例外规则”。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S1.F1&amp;quot; class=&amp;quot;figure&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Arxiv_1606_07792_x1.png|332x60px|Refer to caption]]&lt;br /&gt;
&lt;br /&gt;
本文提出 Wide &amp;amp;amp; Deep learning 框架，通过联合训练一个线性模型分量与一个神经网络分量来在同一个模型中同时实现记忆与泛化，如图 [[#S1.F1|1]] 所示。&lt;br /&gt;
&lt;br /&gt;
本文的主要贡献包括：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;lt;span id=&amp;quot;S1.I1.i1&amp;quot;&amp;gt;•&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Wide &amp;amp;amp; Deep learning 框架：针对具有稀疏输入的通用推荐系统，联合训练带 embedding 的前馈神经网络与带特征变换的线性模型。&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;lt;span id=&amp;quot;S1.I1.i2&amp;quot;&amp;gt;•&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;在 Google Play——一家拥有逾十亿活跃用户和逾百万款应用的移动应用商店——上对 Wide &amp;amp;amp; Deep 推荐系统进行的生产化实现与评估。&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;&amp;lt;span id=&amp;quot;S1.I1.i3&amp;quot;&amp;gt;•&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;我们已开源相应实现，并在 TensorFlow 中提供了高阶 API&amp;lt;sup&amp;gt;11&amp;lt;/sup&amp;gt;1详见 &amp;lt;code&amp;gt;http://tensorflow.org&amp;lt;/code&amp;gt; 上的 Wide &amp;amp;amp; Deep Tutorial。。&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
尽管这一思路本身简单，我们的实验表明 Wide &amp;amp;amp; Deep 框架显著提升了移动应用商店的应用安装率，同时也满足了训练与在线服务在速度上的要求。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S2&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;recommender-system-overview&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 2 推荐系统概览 ==&lt;br /&gt;
&lt;br /&gt;
图 [[#S2.F2|2]] 给出了应用推荐系统的整体概览。当用户访问应用商店时，会生成一个查询，其中可包含用户与上下文的多种特征。推荐系统返回一个应用列表（也称为曝光），用户可以对这些应用进行点击或购买等操作。这些用户行为连同查询和曝光会一起被写入日志，作为学习器的训练数据。&lt;br /&gt;
&lt;br /&gt;
由于数据库中应用超过百万款，在服务延迟约束（往往为 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;O\hspace{0pt}{(10)}&amp;lt;/math&amp;gt; 毫秒量级）下对每个查询完整打分所有应用是不切实际的。因此，收到查询后的第一步是召回。召回系统通过多种信号——通常是机器学习模型与人工规则的组合——返回与查询最匹配的一个简短列表。在缩小候选集之后，排序系统按打分对所有项排序。打分通常为 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;P\hspace{0pt}{(\left. y \middle| \mathbf{x} \right.)}&amp;lt;/math&amp;gt;，即在特征 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\mathbf{x}&amp;lt;/math&amp;gt; 给定下用户行为标签 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y&amp;lt;/math&amp;gt; 的概率；特征包括用户特征（如国家、语言、人口统计学）、上下文特征（如设备、一天中的小时、星期几）以及曝光特征（如应用年龄、应用的历史统计）。本文聚焦于使用 Wide &amp;amp;amp; Deep learning 框架的排序模型。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S2.F2&amp;quot; class=&amp;quot;figure&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Arxiv_1606_07792_x2.png|332x135px|Refer to caption]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S3&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;wide-deep-learning&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 3 Wide &amp;amp;amp; Deep Learning ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S3.SS1&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;the-wide-component&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.1 Wide 分量 ===&lt;br /&gt;
&lt;br /&gt;
Wide 分量是形如 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y = {{\mathbf{w}^{T}\hspace{0pt}\mathbf{x}} + b}&amp;lt;/math&amp;gt; 的广义线性模型，如图 [[#S1.F1|1]]（左）所示。&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;y&amp;lt;/math&amp;gt; 是预测值，&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\mathbf{x} = {\lbrack x_{1},x_{2},\ldots,x_{d}\rbrack}&amp;lt;/math&amp;gt; 是 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;d&amp;lt;/math&amp;gt; 个特征构成的向量，&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\mathbf{w} = {\lbrack w_{1},w_{2},\ldots,w_{d}\rbrack}&amp;lt;/math&amp;gt; 是模型参数，&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;b&amp;lt;/math&amp;gt; 是偏置。特征集合包含原始输入特征与变换后的特征。最重要的变换之一是交叉乘积变换，其定义为：&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;S3.E1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;{{\phi_{k}\hspace{0pt}{(\mathbf{x})}} = {\prod\limits_{i = 1}^{d}x_{i}^{c_{k\hspace{0pt}i}}}}\quad{c_{k\hspace{0pt}i} \in {\{ 0,1\}}}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| (1)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
其中 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;c_{k\hspace{0pt}i}&amp;lt;/math&amp;gt; 是一个布尔变量：当第 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; 个特征属于第 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;k&amp;lt;/math&amp;gt; 个变换 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\phi_{k}&amp;lt;/math&amp;gt; 时取 1，否则取 0。对二值特征而言，交叉乘积变换（例如“&amp;lt;code&amp;gt;AND&amp;lt;/code&amp;gt;(&amp;lt;code&amp;gt;gender=female&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;language=en&amp;lt;/code&amp;gt;)”）当且仅当其所有组成特征（“&amp;lt;code&amp;gt;gender=female&amp;lt;/code&amp;gt;”和“&amp;lt;code&amp;gt;language=en&amp;lt;/code&amp;gt;”）都为 1 时取 1，否则取 0。这刻画了二值特征之间的交互，并为广义线性模型注入了非线性。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S3.SS2&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;the-deep-component&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.2 Deep 分量 ===&lt;br /&gt;
&lt;br /&gt;
Deep 分量是一个前馈神经网络，如图 [[#S1.F1|1]]（右）所示。对类别特征而言，原始输入是特征字符串（例如“&amp;lt;code&amp;gt;language=en&amp;lt;/code&amp;gt;”）。这些稀疏的高维类别特征首先被转换为低维稠密的实值向量，即所谓的 embedding 向量。embedding 的维度通常在 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;O\hspace{0pt}{(10)}&amp;lt;/math&amp;gt; 至 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;O\hspace{0pt}{(100)}&amp;lt;/math&amp;gt; 量级。embedding 向量随机初始化，然后在模型训练过程中调整其取值以最小化最终损失函数。这些低维稠密的 embedding 向量在前向传播中被送入神经网络的隐藏层。具体而言，每个隐藏层执行以下计算：&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;S3.E2&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;a^{({l + 1})} = {f\hspace{0pt}{({{W^{(l)}\hspace{0pt}a^{(l)}} + b^{(l)}})}}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| (2)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
其中 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;l&amp;lt;/math&amp;gt; 是层编号，&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;f&amp;lt;/math&amp;gt; 是激活函数，常用整流线性单元（ReLU）。&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a^{(l)}&amp;lt;/math&amp;gt;、&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;b^{(l)}&amp;lt;/math&amp;gt; 和 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;W^{(l)}&amp;lt;/math&amp;gt; 分别是第 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;l&amp;lt;/math&amp;gt; 层的激活、偏置与模型权重。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S3.SS3&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;joint-training-of-wide-deep-model&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 3.3 Wide &amp;amp;amp; Deep 模型的联合训练 ===&lt;br /&gt;
&lt;br /&gt;
Wide 分量与 Deep 分量通过其输出 log-odds 的加权和作为预测进行组合，并送入一个共同的 logistic 损失函数进行联合训练。需要注意的是，联合训练与集成（ensemble）有所区别。在集成中，各个模型独立训练、彼此互不感知，仅在推理时合并预测，而非在训练时。相反地，联合训练在训练阶段同时考虑 wide 与 deep 部分以及二者求和的权重，对所有参数同时进行优化。这对模型规模也有影响：由于集成中各模型的训练相互独立，每个单独模型通常需要更大（例如包含更多特征与变换）才能达到合理精度以支撑整体效果；而在联合训练中，wide 部分只需用少量交叉乘积特征变换来弥补 deep 部分的不足，而不必是一个完整规模的 wide 模型。&lt;br /&gt;
&lt;br /&gt;
Wide &amp;amp;amp; Deep 模型的联合训练通过将梯度从输出同时反向传播到模型的 wide 与 deep 两部分来完成，并使用 mini-batch 的随机优化。实验中我们以带 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;L_{1}&amp;lt;/math&amp;gt; 正则化的 Follow-the-regularized-leader（FTRL）算法 [&amp;lt;nowiki/&amp;gt;[[#bib.bib3|3]]] 作为 wide 部分的优化器，对 deep 部分则使用 AdaGrad [&amp;lt;nowiki/&amp;gt;[[#bib.bib1|1]]]。&lt;br /&gt;
&lt;br /&gt;
组合模型如图 [[#S1.F1|1]]（中）所示。对于 logistic 回归问题，模型的预测为：&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;S3.E3&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;{P\hspace{0pt}{({Y = \left. 1 \middle| \mathbf{x} \right.})}} = {\sigma\hspace{0pt}{({{\mathbf{w}_{w\hspace{0pt}i\hspace{0pt}d\hspace{0pt}e}^{T}\hspace{0pt}{\lbrack\mathbf{x},{\phi\hspace{0pt}{(\mathbf{x})}}\rbrack}} + {\mathbf{w}_{d\hspace{0pt}e\hspace{0pt}e\hspace{0pt}p}^{T}\hspace{0pt}a^{(l_{f})}} + b})}}&amp;lt;/math&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| (3)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
其中 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;Y&amp;lt;/math&amp;gt; 是二值类别标签，&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\sigma\hspace{0pt}{( \cdot )}&amp;lt;/math&amp;gt; 是 sigmoid 函数，&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\phi\hspace{0pt}{(\mathbf{x})}&amp;lt;/math&amp;gt; 是原始特征 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\mathbf{x}&amp;lt;/math&amp;gt; 的交叉乘积变换，&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;b&amp;lt;/math&amp;gt; 是偏置项。&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\mathbf{w}_{w\hspace{0pt}i\hspace{0pt}d\hspace{0pt}e}&amp;lt;/math&amp;gt; 是 wide 模型全部权重构成的向量，&amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\mathbf{w}_{d\hspace{0pt}e\hspace{0pt}e\hspace{0pt}p}&amp;lt;/math&amp;gt; 是作用于最终激活 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;a^{(l_{f})}&amp;lt;/math&amp;gt; 上的权重。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S4&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;system-implementation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 4 系统实现 ==&lt;br /&gt;
&lt;br /&gt;
应用推荐流水线的实现包含三个阶段：数据生成、模型训练和模型服务，如图 [[#S4.F3|3]] 所示。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S4.F3&amp;quot; class=&amp;quot;figure&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Arxiv_1606_07792_x3.png|332x109px|Refer to caption]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S4.SS1&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;data-generation&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4.1 数据生成 ===&lt;br /&gt;
&lt;br /&gt;
在该阶段中，用一段时间窗口内的用户与应用曝光数据来生成训练数据。每个样本对应一次曝光。标签为应用安装情况：曝光的应用被安装时取 1，否则取 0。&lt;br /&gt;
&lt;br /&gt;
该阶段还会生成词表，即将类别特征字符串映射到整数 ID 的表。系统会为出现次数超过最小阈值的所有字符串特征计算 ID 空间。对连续实值特征，则通过将特征值 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;x&amp;lt;/math&amp;gt; 映射到其累积分布函数 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;P\hspace{0pt}{({X \leq x})}&amp;lt;/math&amp;gt;（划分为 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;n_{q}&amp;lt;/math&amp;gt; 个分位数）来归一化到 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\lbrack 0,1\rbrack&amp;lt;/math&amp;gt; 区间。位于第 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;i&amp;lt;/math&amp;gt; 个分位数中的值，其归一化后取值为 &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;\frac{i - 1}{n_{q} - 1}&amp;lt;/math&amp;gt;。分位数的边界在数据生成阶段计算。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S4.SS2&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;model-training&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4.2 模型训练 ===&lt;br /&gt;
&lt;br /&gt;
实验中使用的模型结构如图 [[#S4.F4|4]] 所示。训练时，我们的输入层接收训练数据和词表，并生成稀疏与稠密特征以及标签。Wide 分量由用户已安装应用与曝光应用的交叉乘积变换组成。在模型的 deep 部分，每个类别特征学习一个 32 维 embedding 向量。我们将所有 embedding 与稠密特征拼接在一起，得到约 1200 维的稠密向量。然后将该拼接向量送入 3 层 ReLU，最后接 logistic 输出单元。&lt;br /&gt;
&lt;br /&gt;
Wide &amp;amp;amp; Deep 模型在超过 5000 亿个样本上训练。每次有新的训练数据到来，都需要重新训练模型。然而每次都从头开始训练计算代价高，并且会延迟从数据到达到上线提供服务的时间。为应对这一挑战，我们实现了一个 warm-starting 系统，它使用上一版模型的 embedding 与线性模型权重来初始化新模型。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S4.F4&amp;quot; class=&amp;quot;figure&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Arxiv_1606_07792_x4.png|332x133px|Refer to caption]]&lt;br /&gt;
&lt;br /&gt;
在将模型加载到模型服务器之前，会先做一次模型的 dry run，以确认其在线上服务流量时不会出现问题。我们以对比上一版模型的方式经验性地验证模型质量，作为健全性检查。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S4.SS3&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;model-serving&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 4.3 模型服务 ===&lt;br /&gt;
&lt;br /&gt;
模型训练并验证完成后，我们将其加载到模型服务器中。对每个请求，服务器从应用召回系统接收一组候选应用以及用户特征，用于对每个应用打分。然后按打分从高到低排序，并按该顺序将应用展示给用户。打分通过在 Wide &amp;amp;amp; Deep 模型上执行一次前向推理来计算。&lt;br /&gt;
&lt;br /&gt;
为了将每次请求的服务时间控制在 10 毫秒量级，我们通过多线程并行进行性能优化：并发地运行更小的批次，而不是用一次单批推理为所有候选应用打分。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S5&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;experiment-results&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 5 实验结果 ==&lt;br /&gt;
&lt;br /&gt;
为评估 Wide &amp;amp;amp; Deep learning 在真实推荐系统中的效果，我们进行了线上实验，从两方面评估了该系统：应用安装量与服务性能。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S5.T1&amp;quot; class=&amp;quot;figure&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;S5.T1.1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- id=&amp;quot;S5.T1.1.1.1&amp;quot;&lt;br /&gt;
! id=&amp;quot;S5.T1.1.1.1.1&amp;quot;| 模型&lt;br /&gt;
! id=&amp;quot;S5.T1.1.1.1.2&amp;quot;| 离线 AUC&lt;br /&gt;
! id=&amp;quot;S5.T1.1.1.1.3&amp;quot;| 线上安装量增益&lt;br /&gt;
|- id=&amp;quot;S5.T1.1.2.1&amp;quot;&lt;br /&gt;
! id=&amp;quot;S5.T1.1.2.1.1&amp;quot;| Wide（对照）&lt;br /&gt;
| id=&amp;quot;S5.T1.1.2.1.2&amp;quot;| 0.726&lt;br /&gt;
| id=&amp;quot;S5.T1.1.2.1.3&amp;quot;| 0%&lt;br /&gt;
|- id=&amp;quot;S5.T1.1.3.2&amp;quot;&lt;br /&gt;
! id=&amp;quot;S5.T1.1.3.2.1&amp;quot;| Deep&lt;br /&gt;
| id=&amp;quot;S5.T1.1.3.2.2&amp;quot;| 0.722&lt;br /&gt;
| id=&amp;quot;S5.T1.1.3.2.3&amp;quot;| +2.9%&lt;br /&gt;
|- id=&amp;quot;S5.T1.1.4.3&amp;quot;&lt;br /&gt;
! id=&amp;quot;S5.T1.1.4.3.1&amp;quot;| Wide &amp;amp;amp; Deep&lt;br /&gt;
| id=&amp;quot;S5.T1.1.4.3.2&amp;quot;| 0.728&lt;br /&gt;
| id=&amp;quot;S5.T1.1.4.3.3&amp;quot;| +3.9%&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S5.SS1&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;app-acquisitions&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5.1 应用安装量 ===&lt;br /&gt;
&lt;br /&gt;
我们在 A/B 测试框架下进行了为期 3 周的线上实验。对照组随机选取 1% 的用户，向其呈现由旧版排序模型生成的推荐——后者是经过高度优化的 wide-only logistic 回归模型，带有丰富的交叉乘积特征变换。实验组同样选取 1% 的用户，向其呈现由用同一组特征训练的 Wide &amp;amp;amp; Deep 模型生成的推荐。如表 [[#S5.T1|1]] 所示，相对于对照组，Wide &amp;amp;amp; Deep 模型将应用商店主着陆页的应用安装率提升了 +3.9%（具有统计显著性）。我们还与另一个使用相同特征与神经网络结构、仅取模型 deep 部分的 1% 用户组进行了对比，Wide &amp;amp;amp; Deep 模型在 deep-only 模型的基础上又获得了 +1% 的增益（具有统计显著性）。&lt;br /&gt;
&lt;br /&gt;
除线上实验外，我们也给出了离线留出集上的 ROC 曲线下面积（AUC）。尽管 Wide &amp;amp;amp; Deep 的离线 AUC 略高一些，但其在线上流量上的影响更为显著。一种可能的原因是：离线数据集中的曝光与标签是固定的，而线上系统可以通过把泛化与记忆结合起来产生新的探索性推荐，并从用户的新反馈中持续学习。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S5.SS2&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;serving-performance&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 5.2 服务性能 ===&lt;br /&gt;
&lt;br /&gt;
鉴于我们这家商用移动应用商店的高流量水平，要做到高吞吐与低延迟的服务非常具有挑战性。在峰值流量下，我们的推荐服务器每秒为超过 1000 万个应用打分。在单线程下，将所有候选项放入一次批量推理需要 31 毫秒。我们引入多线程并将每个批次切分为更小的批次后，客户端侧延迟（含服务开销）显著降至 14 毫秒，如表 [[#S7.T2|2]] 所示。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S6&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;related-work&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 6 相关工作 ==&lt;br /&gt;
&lt;br /&gt;
将带交叉乘积特征变换的 wide 线性模型与带稠密 embedding 的深度神经网络相结合，这一思路受到先前工作的启发，例如 factorization machines [&amp;lt;nowiki/&amp;gt;[[#bib.bib5|5]]] 通过将两个变量之间的交互分解为两个低维 embedding 向量的内积，为线性模型引入泛化能力。本文中，我们用神经网络代替内积来学习 embedding 之间高度非线性的交互，从而扩展了模型容量。&lt;br /&gt;
&lt;br /&gt;
在语言模型方面，已有研究提出联合训练循环神经网络（RNN）与基于 n-gram 特征的最大熵模型，通过在输入与输出之间学习直接的权重，从而显著降低 RNN 的复杂度（例如隐藏层规模）[&amp;lt;nowiki/&amp;gt;[[#bib.bib4|4]]]。在计算机视觉方面，deep residual learning [&amp;lt;nowiki/&amp;gt;[[#bib.bib2|2]]] 通过跨越一层或多层的捷径连接来降低训练更深层模型的难度并提升精度。联合训练神经网络与图模型也已被应用于从图像估计人体姿态 [&amp;lt;nowiki/&amp;gt;[[#bib.bib6|6]]]。本工作针对具有稀疏输入数据的通用推荐与排序问题，探索了前馈神经网络与线性模型的联合训练，并在稀疏特征与输出单元之间建立直接连接。&lt;br /&gt;
&lt;br /&gt;
在推荐系统文献中，已有研究通过将用于内容信息的 deep learning 与用于评分矩阵的 collaborative filtering（CF）耦合来探索 collaborative deep learning [&amp;lt;nowiki/&amp;gt;[[#bib.bib7|7]]]。在移动应用推荐系统方面也有先前工作，例如 AppJoy 使用了基于用户应用使用记录的 CF [&amp;lt;nowiki/&amp;gt;[[#bib.bib8|8]]]。与先前工作中基于 CF 或基于内容的方法不同，我们在用户与曝光数据上联合训练 Wide &amp;amp;amp; Deep 模型，用于应用推荐系统。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S7&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;conclusion&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 7 结论 ==&lt;br /&gt;
&lt;br /&gt;
记忆与泛化对于推荐系统都很重要。Wide 线性模型可以利用交叉乘积特征变换高效地记忆稀疏的特征交互，而深度神经网络则可以通过低维 embedding 泛化到此前未见过的特征交互。我们提出了 Wide &amp;amp;amp; Deep learning 框架，以结合这两类模型各自的优势。我们将该框架在 Google Play——一家大规模商用应用商店——的推荐系统上进行了生产化部署与评估。线上实验结果表明，相对于仅 wide 与仅 deep 的模型，Wide &amp;amp;amp; Deep 模型在应用安装量上带来了显著提升。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;S7.T2&amp;quot; class=&amp;quot;figure&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| id=&amp;quot;S7.T2.1&amp;quot; class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- id=&amp;quot;S7.T2.1.1.1&amp;quot;&lt;br /&gt;
| id=&amp;quot;S7.T2.1.1.1.1&amp;quot;| 批次大小&lt;br /&gt;
| id=&amp;quot;S7.T2.1.1.1.2&amp;quot;| 线程数&lt;br /&gt;
| id=&amp;quot;S7.T2.1.1.1.3&amp;quot;| 服务延迟（毫秒）&lt;br /&gt;
|- id=&amp;quot;S7.T2.1.2.2&amp;quot;&lt;br /&gt;
| id=&amp;quot;S7.T2.1.2.2.1&amp;quot;| 200&lt;br /&gt;
| id=&amp;quot;S7.T2.1.2.2.2&amp;quot;| 1&lt;br /&gt;
| id=&amp;quot;S7.T2.1.2.2.3&amp;quot;| 31&lt;br /&gt;
|- id=&amp;quot;S7.T2.1.3.3&amp;quot;&lt;br /&gt;
| id=&amp;quot;S7.T2.1.3.3.1&amp;quot;| 100&lt;br /&gt;
| id=&amp;quot;S7.T2.1.3.3.2&amp;quot;| 2&lt;br /&gt;
| id=&amp;quot;S7.T2.1.3.3.3&amp;quot;| 17&lt;br /&gt;
|- id=&amp;quot;S7.T2.1.4.4&amp;quot;&lt;br /&gt;
| id=&amp;quot;S7.T2.1.4.4.1&amp;quot;| 50&lt;br /&gt;
| id=&amp;quot;S7.T2.1.4.4.2&amp;quot;| 4&lt;br /&gt;
| id=&amp;quot;S7.T2.1.4.4.3&amp;quot;| 14&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;bib&amp;quot; class=&amp;quot;section&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;references&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span id=&amp;quot;bib.bib1&amp;quot;&amp;gt;[1] J. Duchi, E. Hazan, 与 Y. Singer. Adaptive subgradient methods for online learning and stochastic optimization. Journal of Machine Learning Research, 12:2121–2159, 2011 年 7 月。&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span id=&amp;quot;bib.bib2&amp;quot;&amp;gt;[2] K. He, X. Zhang, S. Ren, 与 J. Sun. Deep residual learning for image recognition. Proc. IEEE Conference on Computer Vision and Pattern Recognition, 2016。&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span id=&amp;quot;bib.bib3&amp;quot;&amp;gt;[3] H. B. McMahan. Follow-the-regularized-leader and mirror descent: Equivalence theorems and l1 regularization. 见 Proc. AISTATS, 2011。&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span id=&amp;quot;bib.bib4&amp;quot;&amp;gt;[4] T. Mikolov, A. Deoras, D. Povey, L. Burget, 与 J. H. Cernocky. Strategies for training large scale neural network language models. 见 IEEE Automatic Speech Recognition &amp;amp;amp; Understanding Workshop, 2011。&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span id=&amp;quot;bib.bib5&amp;quot;&amp;gt;[5] S. Rendle. Factorization machines with libFM. ACM Trans. Intell. Syst. Technol., 3(3):57:1–57:22, 2012 年 5 月。&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span id=&amp;quot;bib.bib6&amp;quot;&amp;gt;[6] J. J. Tompson, A. Jain, Y. LeCun, 与 C. Bregler. Joint training of a convolutional network and a graphical model for human pose estimation. 见 Z. Ghahramani, M. Welling, C. Cortes, N. D. Lawrence, 与 K. Q. Weinberger 编, NIPS, 第 1799–1807 页。2014。&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span id=&amp;quot;bib.bib7&amp;quot;&amp;gt;[7] H. Wang, N. Wang, 与 D.-Y. Yeung. Collaborative deep learning for recommender systems. 见 Proc. KDD, 第 1235–1244 页, 2015。&amp;lt;/span&amp;gt;&lt;br /&gt;
* &amp;lt;span id=&amp;quot;bib.bib8&amp;quot;&amp;gt;[8] B. Yan 与 G. Chen. AppJoy: Personalized mobile application discovery. 见 MobiSys, 第 113–126 页, 2011。&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Machine Learning]]&lt;br /&gt;
[[Category:Research]]&lt;br /&gt;
[[Category:Research Papers]]&lt;/div&gt;</summary>
		<author><name>DeployBot</name></author>
	</entry>
</feed>