返回介绍

数学基础

统计学习

深度学习

工具

Scala

二十四、MV-DNN [2015]

发布于 2023-07-17 23:38:25 字数 41011 浏览 0 评论 0 收藏 0

  1. 推荐系统和内容个性化content personalizationweb 服务中扮演着越来越重要的角色。最近的很多web 服务都致力于寻找与用户最相关relevant 的内容,以最大限度地提高网站的互动engagement、并最大限度地降低寻找相关内容relevant content 的时间。

    完成该任务的主要方法称作协同过滤 Collaborative Filtering: CF ,它使用用户在网站上的历史交互 interaction 来预测最相关的内容从而进行推荐。另一种常见的方法是基于内容的推荐content-based recommendation,它使用有关 item 特征或/和用户特征来基于特征之间的相似性similarity 从而向用户推荐新的 item 。虽然这两种方法在许多实际应用中运行良好,但是它们通常都面临一定的限制limitations 和挑战challenges ,尤其是在个性化需求日益增加以及考虑推荐质量recommendation quality 的情况下。具体而言:

    • CF 在提供高质量推荐之前需要大量的网站交互 interaction 的历史记录。这个问题被称作用户冷启动问题user cold start problem 。在一个新建的在线服务中,由于用户与网站的历史交互很少或者没有历史交互,因此问题变得更加严重。因此,传统的 CF 方法通常无法为新用户提供高质量的推荐。

    • 另一方面,content-based 推荐方法从每个用户或/和 item 中提取特征,并使用这些特征进行推荐。例如,如果两个新闻News $ N_i $ 和 $ N_j $ 共享相同的主题topic,并且用户喜欢新闻 $ N_i $ ,则系统可以向用户推荐新闻 $ N_j $ 。类似地,如果两个用户 $ U_i $ 和 $ U_j $ 共享某些相似性similarity (如地理位置location 相似、年龄相似、性别相同),则系统可以向用户 $ U_j $ 推荐用户 $ U_i $ 之前喜欢的 item

      在实践中,研究表明:content-based 方法可以很好地处理新 item 的冷启动问题。然而,当应用于对新用户的推荐时,其有效性是有问题的。因为 user-level 特征通常更难获取,并且user-level 特征通常是是从用户在线个人画像user online profiles中的有限信息生成的,而这些信息无法准确地捕获实际的用户兴趣。

      即:精准画像难以获取,而且画像相似不代表兴趣相似。

    为解决这些限制,论文 《 Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems》提出了一个利用用户特征和 item 特征的推荐系统。和许多基于用户画像user profile-based 的方法不同,为了构建用户特征,论文提出从用户的浏览和搜索历史中提取丰富的特征来建模用户的兴趣。潜在的假设是:用户的历史在线活动historical online activities 反映了用户的背景 background 和偏好preference ,因此提供了关于用户可能感兴趣的 item 和主题 topic 的精确洞察 precise insight。例如,具有很多与婴儿相关 query 和相关网站访问的用户可能暗示着这个用户是一个新生儿的妈妈。通过这些丰富的用户在线活动user online activities,可以更有效地实现对相关relevantitem 的推荐。

    在论文中,作者提出了一种新颖的深度学习方法,该方法从深度结构语义模型 Deep Structured Semantic Model: DSSM 扩展而来,将用户和 item 映射到共享的语义空间,并推荐与用户在语义空间中相似性最大的item 。为此,论文的模型通过非线性转换层将用户和 item (均由丰富的特征集合来表示)投影到紧凑的共享潜在语义空间compact shared latent semantic space 中。在这个语义空间中,用户的语义表示和用户喜欢的 item 的语义表示之间的相似性similarity 被最大化。这使得该模型能够学到兴趣的映射interesting mapping。例如,访问过 fifa.com 的用户喜欢阅读有关世界杯的新闻,并在PC 或者 Xbox 玩足球游戏。

    • 用户侧user side 的丰富特征可以对用户的行为进行建模,从而克服了 content-based 推荐中的诸多限制。

      user 的行为来代替用户画像,可以解决用户画像不准或者不全的问题。

    • 该模型还有效地解决了用户冷启动问题,因为该模型允许我们从query 中捕获用户兴趣并推荐相关的 item (例如音乐),即使用户没有使用音乐服务的任何历史记录。

    • 该模型有一个 ranking-based 目标,旨在将正样本(用户喜欢的 item)排名高于负样本。这种 ranking-based 目标已经被证明对推荐系统更有利。

    此外,作者扩展了原始的 DSSM 模型(在本文中称之为 single-view DNN,因为 DSSM 学习来自单个领域domain 的用户特征和 item 特征),从而联合学习来自不同领域的 item 的特征。作者将新模型命名为 Multi-View Deep Neural Network: MV-DNN

    在文献中,多视图学习 multi-view learning 是一个经过充分研究的领域,它从非共享公共特征空间 not share common feature space 的数据中学习。作者认为 MV-DNN 是多视图学习配置setup 中一种通用的深度学习方法。具体而言,在包含新闻NewsAppsMovie/TV 日志的数据集中,作者不是为每个领域建立独立的模型来简单地将用户特征映射到领域内的 item 特征,而是建立新的多视图模型来发现潜在空间中用户特征的单个映射,从而与来自所有领域的 item 特征共同进行了优化。MV-DNN 使得我们能够学到更好的用户 representation ,它利用更多的跨域数据,并利用来自所有领域的用户偏好数据从而解决数据稀疏性问题。

    论文在实验中表明:这种多视图扩展同时提高了所有领域的推荐质量。此外,值得一提的是,深度学习模型中的非线性映射使得我们能够在潜在空间中找到用户的紧凑表示compact representation,这使得存储学到的用户映射 user mapping 以及在不同任务之间共享信息变得更加容易。

    使用深度学习来建模丰富的用户特征的另一个挑战是特征空间的高维high dimension ,这使得学习效率低下并可能影响模型的泛化能力。作者提出了几种有效 effective 且可扩展scalable 的降维技术,这些技术在不损失大量信息的情况下可以将维度降低到合理的大小。

    论文的主要贡献:

    • 使用丰富的用户特征来构建通用的推荐系统。
    • content-based 推荐系统提出深度学习方法,并研究不同的技术以扩展该系统。
    • 引入新颖的多视图深度学习模型,通过组合来自多个领域的数据集来构建推荐系统。
    • 通过利用从 multi-view DNN model 中学到的语义特征映射 semantic feature mapping 来解决文献中未充分研究的用户冷启动问题。
    • 使用四个真实世界的大型数据集进行严格的实验,并证明论文提出的方法相对于 state-of-the-art 方法有着显著的优势。
  2. 相关工作:已有大量文献对推荐系统进行广泛的研究。这里我们旨在回顾一组与论文提出的方法最相关的代表性方法。通常推荐系统可以分为协同推荐collaborative recommendation 和基于内容的推荐 content-based recommendation

    • 协同推荐系统Collaborative Recommendation Systems 向用户推荐一个 item,如果相似的用户喜欢这个 item

      该技术的例子包括:最近邻模型 nearest neighbor modeling、矩阵补全Matrix Completion、受限玻尔兹曼机Restricted Boltzmann machine 、贝叶斯矩阵分解Bayesian matrix factorization 等等。本质上,这些方法都是用户协同过滤user collaborative filteringitem 协同过滤 item collaborative filtering、或者同时 item 和用户的协同过滤。

      • user-based 协同过滤中,基于用户喜欢的 item 来计算用户之间的相似度 similarity 。然后,通过组合相似用户在目标item 上的score 来计算当前用户对目标 itemuser-item pairscore
      • item-based 协同过滤中,基于喜欢这两个item 的用户来计算 item 之间的相似度 similarity 。然后向用户推荐该用户曾经喜欢的 item 所相似的 item
      • user-item based 协同过滤中,基于 user-item 矩阵为 useritem 找到公共空间 common space,并结合 item representation 和用户 representation 来找到推荐。几乎所有矩阵分解方法都是这种技术的例子。

      collaborative filtering: CF 可以扩展到大规模设置large-scale setup ,但是它无法处理新用户和新 item。这一问题通常被称作冷启动问题cold-start issue

    • content-based 推荐从 item 和/或用户的画像中提取特征,并根据这些特征向用户推荐 item。背后的假设是:相似的用户倾向于喜欢他们以前喜欢的 item 所相似的 item

      • 《Amazon.com recommendations: Item-to-item collaborative filtering》 中,作者提出了一种方法来构建具有用户历史喜欢的 item 的一些特征的搜索query,从而寻找其它相关的 item 来推荐。

      • 《Personalized news recommendation based on click behavior》 中,作者给出了另一个例子,其中每个用户都是由新闻主题topics 上的分布建模的。其中这个主题分布是根据用户喜欢的文章来构建的,并且使用和用户相同地理位置location 的所有其它用户的主题分布偏好preference 作为先验分布 prior distribution

        这种方法可以处理新item (新的新闻),但是对于新用户,系统仅使用地理位置特征,这意味着新用户预期看到该用户当地最热门的主题topics 的新闻。这可能是推荐新闻的很好的特性,但是在其他领域(如 Apps 推荐)中,仅使用地理位置信息location information 可能无法得到用户偏好的一个很好的先验 prior

    • 最近,研究人员开发了将协同推荐和 content-based 推荐结合在一起的方法。

      • 《Content-boosted collaborative filtering for improved recommendations》 中,作者在使用协同过滤之前使用 item 特征来平滑用户数据。
      • 《Tied boltzmann machines for cold start recommendations》 中,作者使用受限玻尔兹曼机来学习 item 之间的相似性,然后将其与协同过滤相结合。
      • 《Collaborative topic modeling for recommending scientific articles》中开发从一种贝叶斯方法来共同学习item (在他们的场景中 item 是研究论文 research paper) 在不同主题topics上的分布、以及评分矩阵的因子分解。
    • 在推荐系统中处理冷启动问题主要针对新item (没有任何用户评分的 item)进行研究。如前所述,所有 content-based filtering 都可以处理 item 的冷启动,并且有一些方法是专门针对冷启动问题开发和评估的。《Learning preferences of new users in recommender systems: an information theoretic approach》 中的工作研究了如何通过推荐能够提供用户最多偏好信息的 item 、同时最小化推荐不相关内容irrelevant content 的概率,从而为新用户逐步地学习用户偏好。

    • 近年来,通过丰富的特征进行用户建模的研究很多。例如,已经表明用户的搜索query 可以用于发现用户之间的相似性。用户搜索历史中的丰富特征也被用于个性化的 web 搜索。对于推荐系统,《Scalable hierarchical multitask learning algorithms for conversion optimization in display advertising》中的作者利用用户的历史搜索query 来构建推荐广告的个性化分类personalized taxonomy

      另一方面,研究人员发现,用户的社交行为也可以用于建立用户画像。在 《Twitter-based user modeling for news recommendations》 中,作者使用 Twitter 数据中的用户推文tweets 来推荐新闻文章。

    • 大多数传统的推荐系统的研究都几种在单个领域 domain 内的数据。最近人们对跨域推荐cross domain recommendation 越来越感兴趣。有不同的方法来处理跨域推荐。

      • 一种方法是假设不同的领域共享相似的用户集合,但是不共享item 集合。如 《Cross-domain collaborative recommendation in a cold-start context: The impact of user profile size on the quality of recommendation》 所示。在他们的工作中,作者从电影评分数据集和书籍评分数据集抽取公共用户并增强数据,然后将增强的数据集用于执行协同过滤。他们表明:这种方法尤其有助于那些在某个领域中几乎没有用户画像的用户(冷启动用户)。

      • 另一种方法处理的场景是:同样的item 集合在不同领域中共享不同类型的反馈(如用户点击、用户显式评分等等)。

        • 《Transfer learning in collaborative filtering for sparsity reduction》 中,作者介绍了一种用于跨域矩阵分解的坐标系转换方法coordinate system transfer method
        • 《Transfer learning for collaborative filtering via a rating-matrix generative model》 中,作者研究了在领域之间不存在共享用户或共享 item 的情况下的跨域推荐。他们开发了一个生成模型来发现不同领域之间的公共簇common clusters 。但是,由于计算成本问题,他们的方法无法扩展到中等规模数据集之外。
        • 《Cross-domain collaboration recommendation》 中介绍了一种不同的 author collaboration 推荐方法,其中他们建立了一个主题模型来推荐来自不同研究领域的 author collaboration
    • 对于推荐系统中的很多方法,目标函数是最小化 user-item 矩阵重构reconstruction 的均方误差。最近,ranking-based 目标函数已经显示出在给出更好的推荐方面更有效。

    • 深度学习最近被提出从而用于为协同过滤和 content-based 方法建立推荐系统。

      • 《Restricted boltzmann machines for collaborative filtering》 中,受限玻尔兹曼机模型被用于协同过滤。
      • 《Cross-domain collaborative recommendation in a cold-start context: The impact of user profile size on the quality of recommendation》 中,深度学习用于 content-based 推荐,其中深度学习用于学习音乐特征的 embedding。然后使用这个 embedding 在协同过滤中对矩阵分解进行正则化。

24.1 模型

24.1.1 数据集

  1. 这里首先介绍数据集。我们描述了每个数据集的数据收集过程和特征表示feature representation ,以及数据集的一些基本统计信息。这里使用的四个数据集是从微软的几款产品的用户日志中收集的,包括:Bing Web vertical 的搜索引擎日志、Bing News vertical 的新闻浏览历史记录、Windows AppStoreApp 下载日志、XboxMovie/TV 观看日志。所有日志都是在 2013-12 ~ 2014-06 期间收集的,并且重点关注美国、加拿大、英国等英语市场English-speaking markets

  2. 用户特征:我们从 Bing 收集了用户的搜索query 和他们点击的 URL,从而形成用户特征。

    • 首先对 query 进行规范化normalized 、词干化stemmed,然后将其拆分为 unigram 特征。

      然后,我们使用 TF-IDF 得分来保留最热门 popular 和最重要 non-trivial 的特征。

    • 对于 URL ,我们压缩到仅保留 domain-level (如 www.linkedin.com) 。

    通过对 queryURL 的这些操作我们降低了特征的维度。

    总体而言,我们选择了 300 万个 uni-gram 特征和 50 万个域名特征,最终得到的用户特征向量user feature vector350 万维。

    • query 特征向量为 300 万维,分量大小为对应 uni-gram termTF-IDF 得分。
    • 域名特征向量为 50 万维,为域名的 one-hot 向量。
  3. 新闻特征:我们从 Bing News vertical 收集了点击的新闻 News 。每个新闻 item 由三部分的特征来表示:

    • 第一部分是使用字母三元组表示 letter tri-gram representation 编码的标题特征。
    • 第二部分是每篇新闻的 top-level 类目category (如娱乐Entertainment) 编码的二元特征。
    • 第三部分是在每篇新闻中,通过内部专有的 NLP parser 抽取的命名实体Named Entities,这些命名实体也是通过 letter tri-gram representation 来编码。

    这三部分得到的新闻特征向量为 10 万维。

  4. App 特征:我们从 Windows AppStore 日志中收集用户历史下载的 App 。每个App item 由两部分的特征来表示:

    • 第一部分是使用 letter tri-gram representation 编码的App 标题特征。
    • 第二部分是每个 App 的类目category (如游戏 Game) 编码的二元特征。

    考虑到 App 描述信息 descriptions 不断的变化,我们决定不将它纳入特征空间中。最终得到的 App 特征向量为 5 万维。

  5. Movie/TV 特征:我们从 XBox 日志中收集了每个 XBox 用户观看的历史 Movie/TV 。每个 item 由两部分的特征来表示:

    • 第一部分是item 标题和描述信息description 合并为文本特征 text features,然后使用 letter tri-gram 来编码。
    • 第二部分是每个 item 的流派 genre 编码的二元特征。

    最终得到的 Movie/TV 特征向量为 5 万维。

  6. 在我们的神经网络框架中,用户特征被映射到用户视图user view,其它特征被映射到不同的 item 视图item view 。出于训练的目的,每个用户视图都与一个包含相应用户集合的 item 视图相匹配。为实现这一点,我们根据用户 ID(每个用户都有一个唯一的、匿名的、哈希的 Microsoft User ID)来执行 inner join,从而得到 user-item view pair 。这导致每个 user-item view pair 中包含的用户数量不同。

    下表描述了本文所使用的数据的一些基本统计信息。Joint Users 列给出了 item viewuser view 之间公共用户common users 的数量。

    读者注:为什么用搜索数据作为 User View ?因为搜索数据的规模最大、用户行为最丰富、暴露用户的主动意图,从而能够更好地刻画用户兴趣。

24.1.2 DSSM

  1. 在论文 《Learning deep structured semantic models for web search using click-through data》 中引入了深度结构化语义模型 deep structured semantic model: DSSM ,从而增强 web 搜索上下文中的query document 匹配。考虑到 DSSM 和我们提出的 MV-DNN 模型密切相关,因此这里我们简要回顾一下 DSSM

  2. DSSM 的典型体系结构如下图所示。

    • DNN 的输入(原始文本特征)是一个高维的 term vector ,例如 querydocumentterm 的未归一化的原始计数raw count
    • 然后 DSSM 通过两个神经网络传递其输入,每个神经网络对应不同的输入(如 querydocument ),并将每个输入映射到共享语义空间shared semantic space 中的语义向量semantic vector
    • 对于 web document rankingDSSMquerydocument 之间的相关度得分 relevance score 计算为它们对应的语义向量之间的余弦相似度cosine similarity,并通过 documentquery 的相似度得分对 document 进行排序rank

  3. 正式而言,对于DSSM 中的单个神经网络,如果我们将 $ \mathbf{\vec x} $ 表示为输入的 term vector,将 $ \mathbf{\vec y} $ 表示为输出向量,将 $ \mathbf{\vec h}_i,i=1,2\cdots,L-1 $ 表示为中间的隐向量 hidden vector 。令 $ \mathbf W_i $ 为第 $ i $ 层的权重矩阵, $ \mathbf{\vec b}_i $ 为第 $ i $ 层的偏置向量,那么有:

    $ \mathbf{\vec h}_1 = \mathbf W_1\mathbf{\vec x}\\ \mathbf{\vec h}_i = f\left(\mathbf W_i\mathbf{\vec h}_{i-1} + \mathbf{\vec b}_i\right),\; 2=1,\cdots,L-1\\ \mathbf{\vec y} = f\left(\mathbf W_L\mathbf{\vec h}_{L-1} + \mathbf{\vec b}_L\right) $

    其中 $ f(\cdot) $ 为非线性激活函数,这里我们使用 tanh 函数:

    $ f(x) = \frac{1-e^{-2x}}{1+e^{-2x}} $

    然后,query $ Q $ 和 document $ D $ 之间的语义相关性得分 semantic relevance score 为:

    $ R(Q,D) = \cos \left(\mathbf{\vec y}_Q,\mathbf{\vec y}_D\right) = \frac{\mathbf{\vec y}_Q\cdot \mathbf{\vec y}_D}{\left\|\mathbf{\vec y}_Q\right\|\times \left\|\mathbf{\vec y}_D\right\|} $

    其中 $ \mathbf{\vec y}_Q $ 和 $ \mathbf{\vec y}_D $ 分别为 query 语义向量和 document 语义向量。

    web 搜索中,给定 query 条件下,document 按照它和 query 之间的语义相关性得分semantic relevance score 进行排序。

  4. 传统上,每个单词word 由一个 one-hot word vector 来表示,其中向量的维度是词表 vocabulary 的大小。然而,在现实世界的 web 搜索任务中词表通常非常大,因此 one-hot 向量的 word representation 使得模型的学习代价太大。因此,DSSM 使用一个 word hashing layer 来用一个 letter tri-gram vector 来表示一个单词。

    例如,给定一个单词(如 web),在添加了单词边界符号(如 #web# )之后,单词被分割为一系列的 letter n-grams。然后,单词表示为 letter tri-gramscount vector 。例如,web 这个单词的 letter tri-gram representation 为:#-w-e, w-e-b, e-b-#

    DSSM 中,第一层layer 的权重矩阵 $ \mathbf W_1 $ 表示从 term-vector 映射到 letter tri-gram count vectorletter tri-gram 映射矩阵,这不需要学习。

    尽管英语单词的总量可能非常庞大,但是英语(或者其它类似语言)中不同的 letter tri-grams 总量通常是有限的。因此,这种做法可以泛化到没有在训练集中出现的新单词。

  5. 在训练中,假设 query 和针对该query 点击的 document 相关,我们利用这一信号来训练 DSSM 的参数,即权重矩阵 $ \mathbf W_i $ 、偏置向量 $ \mathbf{\vec b}_i $ 。

    • 首先,给定query 的条件下,一个 document 被点击的概率是通过 softmax 函数从它们之间的语义相关性得分来估计:

      $ p(D\mid Q) = \frac{\exp(\gamma \times R(Q,D))}{\sum_{D^\prime \in \mathbb D}\exp(\gamma\times R(Q,D^\prime))} $

      其中:

      • $ \gamma $ 为softmax 函数中的平滑因子 smoothing factor,并且通常是根据实验中的验证集来设定的。

      • $ \mathbb D $ 为待排序的候选document 的集合。理想情况下 $ \mathbb D $ 应该包含所有可能的 document

        实际上对于每个 (query, clicked-document)pair 对,记作 $ Q,D^+ $ 其中 $ Q $ 为 query 、 $ D^+ $ 为点击的 document,我们使用 $ D^+ $ 和 $ q $ 个随机选择的未点击 document 来近似 $ \mathbb D $ 。即:

        $ \mathbb D = \left\{D^+\right\}\bigcup \left\{D_j^{-};j=1,\cdots,q\right\} $
    • 然后,我们通过最大化在整个训练集上的、给定query 条件下点击documentlikelihood 来估计模型参数:

      $ \mathcal L(\Theta) = -\log \prod_{Q,D^+} p\left(D^+\mid Q\right) $

      其中 $ \Theta $ 为模型的参数集合。

      注意,虽然目标函数 $ \mathcal L(\Theta) $ 中没有负样本的损失函数,但是 $ p(D\mid Q) $ 中有负样本参与计算。而且 $ \sum_{D\in \mathbb D} p(D\mid Q) = 1.0 $ ,因此 $ p(D^+\mid Q) $ 尽可能大意味着 $ p(D^-_j\mid Q) $ 尽可能小。

24.1.3 MV-DNN

  1. DSSM 可以视作一个多学习框架 multi-learning framework,它将数据的两个不同的视图映射到一个共享视图 shared view 。从这个意义上讲,可以从更一般地角度来学习两个不同视图之间的共享映射 shared mapping

    在这项工作中我们提出了 DSSM 的扩展,其中包含有两个以上的数据视图,我们称之为多视图 DNN 模型 Multi-view DNN: MV-DNN 。在这种配置 setting下我们有 $ K+1 $ 个视图,其中一个中心视图pivot view 称作 $ \mathbf V_u $ ,其它 $ K $ 个辅助视图 auxiliary views 记作 $ \mathbf V_1,\cdots,\mathbf V_K $ 。

    • 每个 $ \mathbf V_i\in \{\mathbf V_u,\mathbf V_1,\cdots,\mathbf V_K\} $ 都有它自己的领域输入 domain input $ \mathbf X_i\in \mathbb R^{N_i\times d_i} $ ,其中 $ N_i $ 为第 $ i $ 个视图的样本数、 $ d_i $ 为第 $ i $ 个视图的输入维度。
    • 每个视图 $ \mathbf V_i\in \{\mathbf V_u,\mathbf V_1,\cdots,\mathbf V_K\} $ 都有自己的非线性映射层,从而将 $ \mathbf X_i $ 映射到共享的语义空间 shared semantic space $ \mathbf Y_i $ 。

    MV-DNN 的体系架构如下图所示。在我们的推荐系统设置setup中,我们将中心视图 $ \mathbf V_u $ 设为用户特征,并为我们要推荐的每种不同类型的 item 创建辅助视图。

    下图中,MV-DNN 将高维稀疏特征(如用户、新闻、App 中的原始特征)映射为联合语义空间joint semantic space 中的低维稠密特征。 DNN 第一个隐层(具有 5 万个单元)完成单词哈希word hashing。然后将 word-hashed 特征通过多个非线性层来投影,其中最后一层的激活值构成了语义空间中的特征。

    注意:该图中的输入的特征维度(5M3M )是假设的,因为实际上每个视图可以具有任意数量的特征。

  2. 给定训练的一组 user-item view pair ,假设第 $ j $ 个样本具有中心视图特征 $ \mathbf{\vec x}_j^{(u)} $ 、以及某个活跃的辅助视图特征 $ \mathbf{\vec x}_j^{(a)} $ ,其中 $ 1\le a\le K $ 。所有其它辅助视图的输入 $ \left\{\mathbf{\vec x}_j^{(k)}\right\}_{k\ne a} $ 都设为零向量。

    MV-DNN 的目标函数是为每个视图找到一个非线性映射,使得在语义空间中,中心视图的映射 $ \mathbf Y_u $ 和其它所有视图的映射 $ \mathbf Y_1,\cdots,\mathbf Y_K $ 之间的相似度之和最大化。数学上表述为:

    $ \mathcal L=\sum_{a=1}^K \mathcal L_a = \sum_{a=1}^{K} \sum_{j=1}^{N_a}\frac{\exp\left(\gamma_a\cos\left(\mathbf{\vec y}_j^{(u)},\mathbf{\vec y}_{j}^{(a)}\right)\right)}{\sum_{i=1}^{I_a}\exp\left(\gamma_a \cos\left(\mathbf{\vec y}_{j}^{(u)},\mathbf{\vec y}_{i}^{(a)}\right)\right)} $

    其中: $ K $ 为辅助视图的总数, $ N_a $ 为第 $ a $ 个辅助视图的样本数, $ I_a $ 为第 $ a $ 个辅助视图的 item 数量, $ \gamma_a $ 为第 $ a $ 个辅助视图的平滑因子。

    该目标函数就是将各辅助视图的目标函数相加。

    具有该目标函数的直觉是:试图为用户特征找到单个映射 single mapping ,该映射可以将用户特征转换到一个匹配不同视图/领域中用户喜欢的所有 item 的空间中。

    这种共享参数的方式允许没有足够信息的领域通过具有更多数据的其它领域来学习良好的映射。例如,如果我们假设具有相似新闻News 偏好的用户在其他领域中也具有相似的偏好,那么这意味着其它领域也可以从新闻领域学到的用户映射中受益,那么这种方式应该会很好地工作。

    如果该假设成立,那么来自任何领域的样本都将有助于所有领域中更准确accurately 地对相似用户进行分组。实验结果表明,该假设在我们实验的领域是合理的,我们将在实验部分进一步阐述。

    DSSMMV-DNN 的目标函数评估的是:最大化正样本和负样本之间的相对序关系。这和 CTR 预估任务中的 logloss 目标函数不同,后者的目标是准确预估样本的点击率。因此 DSSMMV-DNN 无法直接应用与 CTR 预估任务,而只能用于推荐任务。

  3. MV-DNN训练:可以使用随机梯度下降 Stochastic Gradient Decent: SGD 来训练 MV-DNN

    实际上每个训练样本都包含一对a pair输入,一个用于用户视图user view、一个用于数据视图data view 。因此,尽管在我们的模型中仅有一个用户视图,但是使用 $ K $ 个用户特征文件 user feature files 会更方便,每个文件对应于一个 item 特征文件 item feature file

  4. MV-DNN 的优势:尽管 MV-DNN 是原始 DSSM 框架的扩展,但是MV-DNN具有几个独特的特点使得它优于 DSSM

    • 首先,原始的 DSSM 模型对 query 视图和document 视图使用相同的特征维度,并使用相同的representation (例如 letter tri-gram)进行预处理。这在特征构建步骤feature composition step 中产生了巨大的限制。

      原始的 DSSM 使用相同的塔结构来处理 query 视图和 doc 视图,因此特征维度和预处理方法都一样。

      • 由于推荐系统的异质性heterogeneity,用户视图和 item 视图很可能具有不同的输入特征。

      • 此外,很多类型的特征不能用 letter tri-gram 来最佳地表示。

        例如,URL 域名特征通常包含前缀和后缀,如 wwwcomorg。如果采用 letter tri-gram ,那么这些前缀、后缀将映射到相同的letter tri-gram

        在实践中我们发现,在输入的原始文本很短的情况下(如原始 DSSM 模型中的 query 文本和 document 标题), letter tri-gramrepresentation 工作得很理想。但是不适合为通常包含大量queryURL 域名的 user-level 特征来建模。

      通过消除这些约束,新的 MV-DNN 模型可以融合类别特征categorical feature (如电影题材、app类目)、地理位置特征(如国家、地区)、以及来自用户输入的uni-grambi-gram 表示的原始文本特征。

    • 其次,MV-DNN 有能力扩展到很多不同的领域,而这是原始 DSSM 框架无法做到的。

      通过在每个 user-item view pair 之间执行 pair-wise 训练,我们的模型能够轻松地采用新的 view pair 。这些新的 view pair 可能包含完全独立的用户集合和 item 集合。例如,可以添加从 Xbox games 收集的新的数据集。

      通过在每次训练迭代中交替 user-view pair ,我们的模型最终可以收敛到最优的用户视图 embedding。这个用户视图 embedding 通过所有 item 视图来训练。

      注意,虽然理论上我们可以在不同的 item 视图中使用不同的用户集合,但是在我们的实验中我们选择在所有视图中保持相同的用户集合。这是为了同时考虑便利性convenience 和更容易特征归一化 feature normalization

24.1.4 降维和数据缩减

  1. 在实践中,MV-DNN 通常需要在高维特征空间中为用户视图处理大量的训练样本。为了系统的可扩展性,我们提出了几种降维技术来减少用户视图中的特征数量。

    然后,我们提出了一种压缩compact和摘要summarize 用户训练样本的思想,从而将训练数据的数量缩减 reduce 到用户数量的线性关系。

  2. 用户特征降维技术(仅用于用户视图):

    • top 特征:一种简单的用户特征降维方法是选择 top-K 的最高频 most frequent 特征。

      我们选择特征出现频率 >= 0.001 的用户特征。 主要的基本假设是:可以使用一组相对较小的、解释用户常见在线行为 common online behavior 的常用特征 frequent feature 来很好地描述用户。

      注意,用户的原始特征使用 TF-IDF 得分进行预处理,以便我们选择的 top 特征不再包含搜索query 中的常见停用词。最终用户特征的维度为 8.3 万。

    • K-meansK-means 是一种众所周知的聚类技术,旨在创建多个聚类使得每个点与其最近的聚类之间的距离之和最小化。

      这里的基本思想是:将相似的特征分组到同一个簇中。

      • 给定输入 $ \mathbf X\in \mathbb R^{N\times d} $ ,我们根据列来拆分得到 $ d $ 个样本点point $ (X_1,\cdots,X_d) $ 。

      • 然后对这 $ d $ 个点聚类为 $ C $ 个簇, $ C\ll d $ 。

      • 然后我们统计这些簇中分别有多少个点。假设簇 $ 1\le c\le C $ 中有 $ n_c $ 个点,则我们得到簇向量 $ \mathbf{\vec f}=(n_1,\cdots,n_C)^\top $ 。其中 $ \sum_{c=1}^C n_c = d $ 。

        这相当于将 $ d $ 个特征降维到 $ c $ 个特征。这是基于特征的聚类,而不是基于样本的聚类。

      • 然后我们归一化 $ \mathbf{\vec f} $ ,得到 $ \mathbf{\vec f}^* $ 。

        实际上可以不用归一化。可以通过实验对比归一化和未归一化的效果。

      对于用户特征向量 $ \mathbf{\vec x}_i\in \mathbb R^d $ ,我们假设它在的非零特征为 $ (x_{i,1},\cdots,x_{i,m}) $ ,这些特征对应的簇为 $ 1\le c_{1},\cdots,c_m \le C $ 。则用户特征向量降维为:

      $ x^\prime_{i,c} = \sum_{1\le s\le m, c_s = c} f^*(c)\times x_{i,s},\quad 1\le c\le C\\ \mathbf{\vec x}_i^\prime = (x^\prime_{i,1},\cdots,x^\prime_{i,C})^\top\in \mathbb R^C $

      为了能够使用 K-means 提取合理数量的特征,我们需要有相对较大的簇数量。因为考虑到用户特征的维度为 350 万,较少的簇(比如 100)将导致大块 large chunk 特征在同一个簇中。因此,这将产生难以学到有用模式的特征。为了缓解这个问题,我们将簇数量设置为 10k。这意味着平均每个簇有 350 个用户特征。

      大规模的簇和大规模的原始特征使得运行 K-means 的计算量很大。在我们的实验中,我们使用了一个基于云计算的 Map-Reduce 实现来运行 K-means

    • LSH:局部敏感哈希Local Sensitive Hashing: LSH 的工作原理是使用随机投影矩阵random projection matrix 将数据投影到一个低得多的低维空间,使得原始空间中的 pair-wise 余弦距离cosine distance 仍然在新空间中保留preserved

      LSH 需要一个变换矩阵 $ \mathbf A\in \mathbb R^{d\times C} $ ,其中 $ d $ 为原始空间中的特征数量, $ C $ 为随机投影的数量。这意味着 $ \mathbf A $ 包含 $ C $ 个不同的投影,我们记作 $ \mathbf{\vec a}_i\in \mathbb R^d,i=1,2\cdots,C $ 。每个投影 $ \mathbf{\vec a}_i $ 将原始输入向量 $ \mathbf{\vec x}\in \mathbb R^d $ 映射到一个哈希值 $ y_i\in \mathbb R $ 。LSH 的输出向量 $ \mathbf {\vec y}\in \mathbb R^C $ 可以通过拼接所有不同的哈希值 $ y_i $ 来得到。

      具体而言,为了计算每个 $ y_i $ ,我们使用以下方程:

      $ y_i = \begin{cases} 1,& \mathbf{\vec a}_i\cdot \mathbf{\vec x} \ge 0\\ 0,&\text{else} \end{cases} $

      两个输入向量 $ \mathbf{\vec x}_1,\mathbf{\vec x}_2\in \mathbb R^d $ 的余弦相似度可以近似为 $ \cos\left(\frac{H(\mathbf{\vec y}_1,\mathbf{\vec y}_2)}{C}\pi\right) $ ,其中 $ H(\mathbf{\vec y}_1,\mathbf{\vec y}_2) $ 为LSH 输出向量 $ \mathbf{\vec y}_1 $ 和 $ \mathbf{\vec y}_2 $ 的汉明距离。为了以更高的准确率accuracy 保持余弦相似度,我们需要提高投影数量 $ C $ 。我们使用 $ C=10000 $ ,这和 k-Means 聚类的簇数量相同。

      LSH 可以独立地应用于每个特征向量,并且可以独立地计算所有投影,因此使得该算法在 Map-Reduce 框架内高度可分布distributable。但是,LSH 算法需要生成变换矩阵 $ \mathbf A $ ,在我们的case 中该矩阵包含从标准正态分布 $ \mathcal N(0,1) $ 中随机生成的 $ 3.5M\times 10^4 $ 个元素,这大概需要 300GB 的存储空间。此外,在计算 LSH 向量的时候,必须将 $ \mathbf A $ 存储在每个计算节点上。这些问题使得 LSHMap-Reduce 框架中代价太大。

      人们已经提出了很多方案来解决这个问题,其中大多数方案都是基于生成稀疏矩阵 $ \mathbf A $ 。这里我们使用《Online generation of locality sensitive hash signatures》 中介绍的池化技巧pooling trick。 基本思想是:保留一个由 $ \mathcal N(0,1) $ 生成的、size 为 $ m $ 的随机数池子 $ \mathbf B $ ,其中 $ m $ 通常要远远小于 $ \mathbf A $ 的 size 。为了获得元素 $ A_{i,j} $ ,只需要应用 $ i,j $ 的一致哈希函数consistent hash function 来获得 $ \mathbf B $ 中的索引并查找对应的值。在我们的实验中,我们设置 $ m=1000000 $ ,这样一来内存需求减少了 10000 倍,并且可以在 Map-Reduce 期间仅使用 10M 的存储空间轻松地存储在每个节点上。

  3. 减少训练样本的数量:每个视图的训练数据包含 pair 对 $ (\text{User}_i,\text{Item}_j) $ 的集合,其中 $ \text{User}_i $ 偏好 $ \text{Item}_j $ 。实践中,用户可能会喜欢很多item,这可能使得训练数据非常大。例如,在我们的新闻News 推荐数据集中,pair 对的数量远远超过 10 亿。即使使用优化的 GPU 实现optimized GPU implementation,训练也会非常慢。

    为了缓解这个问题,我们压缩了训练数据,使得每个视图中每个用户都包含一个训练样本。具体而言,压缩的训练样本使用了用户在该视图中喜欢的所有 item 的特征的均值(即对 item 特征进行均值池化)。这样可以将每个视图的训练样本数量降低为用户数量,从而大大减少了训练数据的大小。

    注意,这种技术的一个问题是:目标函数现在变成了最大化用户特征和用户喜欢的item 的平均特征之间的相似性。在评估的时候有细微的差异,因为在测试期间每个用户只能提供一个 item 。但是,这种逼近approximation 是必要的,使得系统有很好的可扩展性。此外,实验结果表明:这种逼近在实践中仍然会产生非常有前景的结果。

24.2 实验

  1. 这里我们将解释我们的实验研究过程,并简要回顾了我们作为 baseline 的几种推荐算法。

  2. 数据集:对于每个数据集,我们旨在评估已经在该领域中具有历史交互的用户(老用户)、以及在该领域中没有任何历史交互但是在用户视图中具有历史搜索和浏览行为的用户(新用户)。为了进行评估,我们根据以下标准将数据集划分为训练集和测试集:

    • 首先,以 0.9 : 0.1 的比例为每个用户随机分配一个 train 或者 test 的标记。

    • 然后,对于每个带 test 标记的用户,我们以 0.8 : 0.2 的比例将其进一步随机分配一个 old 或者 new 标记。

    • 接着,对于每个带 old 标记的用户,他们的 50%item 用于训练、剩余的用于测试。

      于每个带 new 标记的用户,他们的所有 item 都用于测试,从而确保这批用户的 user-itempair 永远不会出现在训练过程中。通过这种方式,这批用户都成为系统的全新用户。

    数据集的详细划分信息在下表所示。

  3. 性能评估:对于训练数据集中的每个 $ (\text{user}_i,\text{item}_j) $ 的 pair 对,我们随机选择其它的 9item $ \{\text{item}_{r_1},\cdots,\text{item}_{r_9}\} $ ,其中 $ r_1,\cdots,r_9 $ 都是随机的索引,然后创建 9 个测试的 pair 对 $ \{(\text{user}_i,\text{item}_{r_1}),\cdots,(\text{user}_i,\text{item}_{r_9}\}) $ 并添加到测试数据集。

    评估指标是:衡量系统对用户 $ \text{user}_i $ 是否将正确的 pair 对 $ (\text{user}_i,\text{item}_j) $ 排序在随机的 pair 对 $ \{(\text{user}_i,\text{item}_{r_1}),\cdots,(\text{user}_i,\text{item}_{r_9}\}) $ 之上。因此,我们采用了两个指标:

    • 平均倒数排名Mean Reciprocal Rank: MRR:计算所有 item 中正确 item 的排名的倒数,然后对整个测试数据集的得分进行平均。
    • Precision@1: P@1:计算系统将正确item 排名为 top 1 item 的次数占比。

    注意:这种随机抽取item 为负样本的方式有可能导致负样本太简单。可以考虑同类目或者同主题下抽取负样本,从而得到 hard 负样本来评估。

  4. baseline 方法:

    • 标准的 SVD 矩阵分解:在这个 baseline 中,我们构建 user-item 矩阵,并使用 SVD 执行矩阵分解。这是协同过滤技术的标准 baseline

      实际上,该 baseline 仅在相对较小的数据集(在我们的 case 中为 Apps 数据)上在计算上是可行的。此外,该方法不能为新用户提供推荐,因为他们没有出现在 user-item 矩阵中。

    • 最热门item:由于 SVD 无法处理新用户的推荐,因此我们使用最热门item 作为新用户的简单 baseline

      它的工作原理是首先计算训练集中每个 item 的频次frequency,然后针对每个测试样本 $ (\text{user}_i,\text{item}_j) $ 及其随机pair 对 $ \{(\text{user}_i,\text{item}_{r_1}),\cdots,(\text{user}_i,\text{item}_{r_9}\}) $ ,该方法根据训练集中 item 的频次来排序。

    • Canonical Correlation Analysis: CCACCA 是一种传统的多视图学习技术,旨在找到两对 two pair 线性变换,每个输入视图一对,使得变换后 transformed 的数据之间的相关性最大化。

      CCADSSM 相似,但是有两个主要区别:

      • 尽管 CCAkernel 版存在非线性变换,但是 CCA 经常使用线性变换,因为kernel 版在大规模数据中计算量是不可行的。
      • CCA 在某种固定方差 certain fixed variance 约束下最大化相关性,而DSSM 最大化 correct pair 的排序rank 。排序目标函数 ranking objective 已经被证明是一个更好的推荐系统目标函数。

      在我们针对 CCA 的实验中,我们仅使用 top-k 的用户特征,因为其它两种降维技术(K-meansLSH)产生了一个非常稀疏的特征向量,这会使得相关性矩阵 correlation matrix 过于稠密dense 从而无法有效地计算。

    • 协同主题回归Collaborative Topic Regression: CTRCTR 是最近提出的推荐系统,它结合了贝叶斯矩阵分解 Bayesian matrix factorizationitem 特征来创建 item 推荐。它在学术论文推荐academic paper recommendation 方面已被证明是成功的。

      CTR 模型中有两个输入:协同矩阵 collaborative matrixitem 特征(以 bag-of-words 来表示)。该模型通过最大化协同矩阵的重构误差 reconstruction error 并将 item 特征作为额外信号extra signal 从而匹配用户和 item 。这有助于对训练数据中没有出现过的新 item 进行建模。对于我们场景中的新用户推荐,我们将协同矩阵 $ \mathbf A $ 的转置作为输入,并提供用户特征而不是 item 特征。

    • single-view DNN:对于 AppsNews 数据集,我们运行三组实验来训练单视图 DNN 模型,每组实验对应于一种降维方法(SV-TopKSV-KmeansSV-LSH )。

    • MV-DNN:我们针对 MV-DNN 进行了另外三组实验。

      • 前两个使用 TopKKmeans 降维的用户特征(MV-TopKMV-Kmeans)来联合训练 AppsNews 数据。
      • 第三组实验使用 TopK 用户特征(MV-TopK w/Xbox)来联合训练 AppsNewsMovie/TV 数据。
  5. 我们评估了 App 数据集(第一张表)和 News 数据集(第二张表)中的不同方法获得的结果,如下表所示。我们将算法分为三类:第一类是 baseline 方法,第二类是我们的单视图模型,第三类是MV-DNN 模型。可以看到:

    • 第一类方法:

      • 朴素的最热门itembaseline 表现很差,这证明了对新用户的简单解决方案在我们的场景下不会很好地工作。
      • 即使对于在协同过滤矩阵中存在的老用户,标准的 SVD 矩阵分解方法在该任务中也不够好。
      • 出乎意料的是,CCA 模型的表现并不比对 Apps 数据的随机猜测更好。这表明在 DSSM 中使用非线性映射以及基于排序的目标函数ranking-based objective 对于系统很重要。
      • CTR 模型对于老用户而言表现不错,但是对于新用户却表现不佳。
    • 第二类方法:对于单视图 DNN,结果表明性能取决于所使用的的降维方法。

      • 对于 AppsNews 数据而言,最好的降维方法是 top-K 特征降维方法,该方法的性能远远优于其它两种方法。

        这可以被视为对以下假设的证实:用户可以使用相对较少的、有信息量informative 的特征的集合来建模。这也表明 K-meansLSH 在正确捕获用户行为语义方面不太有效。

      • 作为单视图 DNN 和传统推荐方法的直接比较,我们的最佳模型 (SV-TopK) 的性能优于最佳的 baseline 方法(CTR,它也利用了 item 特征来进行推荐),其中在所有用户上提升了 11%MRR 得分为 0.497 vs 0.448) 、在新用户上提升了 36.7%MRR 得分为 0.436 vs 0.319)。

        P@1 指标上,我们看到了更大的提升:在所有用户上提升 13%、在新用户上提升 88.7%。这表明我们的系统在推荐 top-rated item 方面的有效性。

    • 第三类方法:对于 MV-DNN,结果表明添加更多领域确实有助于同时改善所有领域。具体而言:

      • 通过将 News 视图和 Apps 视图进行联合训练,我们发现 NewsApps 数据集在这两个指标中都有显著提升。

        具体而言,在 App 数据中,和最佳单视图模型相比,所有用户的 MRR 得分从 0.497 提升到 0.517 ,相对提升 4% 。更重要的是,我们看到新用户有大幅提升,这表明一个视图中缺少新用户的数据可以通过其它视图该用户的数据来弥补。这可以从 App 数据集中新用户的相对提升来说明,其中新用户的 MRR 指标提升了 7%0.436 vs 0.466 )、P@1 指标提升 11%0.268 vs 0.297)。

      • 因此,我们迫切地想知道:我们能否安全地得出结论,即更多的视图确实有助于提升系统的性能?为了回答这个问题,我们进一步将 Xbox 数据添加到框架中,并使用三个 user-item view pair 来训练了一个 MV-DNN 模型。

        结果令人振奋: 在 Apps 数据中所有用户的 MRR 得分进一步提升了 6%、新用户的 MRR 得分进一步提升了 8%

        另一方面,通过和 state-of-the-art 算法进行比较,我们具有 top-K 特征的 MV-DNN with Xbox view 的方法相比 CTR 模型在所有用户上的 P@1 指标提升 25.2%0.277 vs 0.347)、在新用户上的 P@1 指标提升 115%0.142 vs 0.306)。

    News 数据集也可以观察到类似的结果:相对于 CTR 模型,MV-DNN 在所有用户上的 P@1 指标提升 49%、在新用户上的 P@1 指标提升 101% 。注意,在该数据集中缺少 CCASVD 的结果。由于包含 150 万用户和超过 10 亿条数据,这两种传统算法无法处理如此大规模的数据。很明显,我们基于 DNN 的方法可以很轻松地扩展到数十亿条数据,同时产生出色的推荐结果。

    下表为 App 数据集的结果:

    下表为 News 数据集的结果:

  6. 为了探索从系统中学到的模型的有效性,我们执行以下实验来测试单特征输入single-feature input 的推荐性能。具体而言,我们采用了性能最佳的系统(带 top-k 特征的MV-DNN),并构建了仅开启 URL 域名特征的用户特征user feature 。由此产生的用户特征只有一个值,即域名 ID 。然后,我们针对其它视图运行我们的预测模型,以便在所有现有 item 中找到最匹配的 NewsApps 。下表显示了其中的一些结果。可以看到,学到的推荐系统确实非常有效。

    • 在第一个示例中,我们假设用户仅访问了 brackobama.com。匹配度最高的新闻显示了和奥巴马总统 Obama 以及 Obamacare health 的所有相关信息,这些信息都和该网站有关。另一方面,这个示例中最匹配的 Apps 也和健康有关。
    • 在第二个例子中,我们有一个用户访问了 www.spiegel.de,这是一个主要的在线的德国新闻网站,除了用户会阅读德语之外,它没有告诉关于用户的更多信息。该系统为用户匹配了 2014FIFA 世界杯的文章,这似乎是德国人在这段时间内的共同兴趣。
    • 在最后一个例子中,用户似乎对婴儿相关的信息感兴趣,最匹配的NewsApps 都和婴儿、怀孕等相关。

    注意:在这个实验中我们仅使用域名ID,域名的名字domain name 对于目标任务而言是未知的。

  7. 公共数据集:为进一步展示我们的方法在跨域用户建模方面的优势,我们对公共数据集进行了一系列实验。

    数据集包含来自五个领域(数据挖掘、理论等等)的 33739 位作者,其中每条数据包含研究领域的name、论文的标题和摘要、论文的作者列表、论文的发表年份。目标是推荐来自另一个领域的作者进行跨领域合作cross-domain collaboration

    我们使用single-view DNN 来建模这种跨领域协作(如数据挖掘和理论研究学者之间的协作)。在这种情况下,用户视图和 item 视图都共享相同的特征表示。具体而言,我们使用作者在训练期间(1990~2001 年)发表的论文的标题和摘要中的 uni-gram 单词作为特征,从而得到 31932 维的特征向量。我们随机选择训练期间已经有跨域协作、并且在测试期间至少由五个跨域协作的作者作为我们的测试集。对于不同领域之间的每个协作集合,我们将迭代 100 次来训练一个 single-view DNN。注:这里仅评估了single-view DNN (即 DSSM)。

    结果如下表所示。总体而言,除了 P@20 指标之外,我们的方法在所有四个跨域数据集中的性能均明显优于 CTL 方法。特别是,我们在 P@100 时实现了更高的召回率,这对于 DM to theory 提升了 96% 的推荐性能。

    结果表明,将丰富的用户特征和非线性深度神经模型结合使用,确实可以捕获更多语义,而这些语义无法使用传统的 word-based 共享模型(例如生成式的主题模型 topic model )准确地建模。我们相信,使用多视图 DNN 模型可以进一步提高性能。但是我们将其留待将来研究。

    在效率方面,作者报告了整个数据集的 CTL 方法的训练时间为 12~15 小时。而我们的算法运行速度非常快,每个模型仅用 5~7 分钟就可以在 GPU 机器上以相同数量的数据完成 100 次迭代。

  8. 可扩展性:这里我们根据训练时间来比较各种算法的性能。我们的方法使用 SGD 进行训练,因此可以使用分布式训练来处理大量数据。下表给出了不同方法的性能的详细信息。

    可以看到:

    • 对于较小的 Apps 数据集,SVDCCA 训练完成时间相对较快(大约四个小时),但是推荐性能却很差。

    • single-view DNN 模型(SV-TopK)在 33 小时内完成了 100 次训练迭代。

    • content-based CTR 模型需要花费很长的时间进行训练,原因是 CTR 需要使用 LDA 模型训练的主题比例 ( $ \theta $ ) 和主题分布 ( $ \beta $ ) 的初始种子。

      然后 CTR 获取了这些文件,并优化了用户特征和 item 特征之间的关联。因此,对于这两个数据集,训练 CTR 比我们的深度学习模型更昂贵。

    • 另一方面,我们看到 SV-TopKMV-TopK 都表现出对数据大小的 (亚)线性训练时间。因为当更多的数据可用时,SGD 通常会花费更少的时间来收敛。

    另外,下图显示了 NewsApps 视图在 MV-TopK 模型的每次迭代期间的训练误差。在我们的实验中,我们手动将训练迭代次数设置为 100 次。有两个原因:

    • 一个原因是,尽管随着时间的推移效果提升越来越小,但是我们仍然能够看到所有视图的性能都有所提升。

    • 另一个原因是,我们发现在实践中,某些视图的收敛速度比其他视图更快。例如,对于下图中的特定模型,News 视图在 20 次迭代后迅速收敛,而 Apps 视图大约花费了 70 次迭代才能达到收敛。

      由于训练期间交替使用 user-item view pair 的过程以及不同视图的收敛速度不同,因此使用早停以进一步提高模型的可扩展性成为未来的关键工作。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文