Xinyue Zhang

Standing on Shoulders of Giants.

0%

前言

  • Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,其通过 @vue/cli 实现交互式的项目脚手架,并致力于将 Vue 生态中的工具基础标准化。它确保了各种构建工具能够基于智能的默认配置即可平稳衔接,这样可以专注在撰写应用上,而不必花好几天去纠结配置的问题,与此同时,它也为每个工具提供了调整配置的灵活性。
1
npm install -g @vue/cli
  • Vuex 是一个专门为 Vue.js 应用程序开发的一种状态(数据)管理模式。它采用集中式存储管理应用程序的所有组件的状态(数据),并以相应的规则保证状态以可预测的方式变化。
1
npm install vuex@3 --save
  • vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统的页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。
1
npm install vue-router@3

在本文的最后,补充了Vue UI组件库Element UI的相关内容。

阅读全文 »

前言

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

Vue的引用方式包括两种:

  • 本地引用

    在官网下载 vue.js 文件,并在 .html 文件中的 head 标签中引入:

    1
    <script type="text/javascript" src="vue.js"></script>
  • CDN引用

    1
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>

Vue2.x官方文档:Vue.js

阅读全文 »

一、Gin框架介绍

Gin是一个用Go语言编写的web框架。它是一个类似于martini但拥有更好性能的API框架, 由于使用了httprouter,速度提高了近40倍。 如果你是性能和高效的追求者, 你会爱上Gin

Go世界里最流行的Web框架,Github上有32K+star。 基于httprouter开发的Web框架。 中文文档齐全,简单易用的轻量级框架。

1.1 Gin框架安装与使用

下载并安装Gin:

1
go get -u github.com/gin-gonic/gin
阅读全文 »

一、前言

由于在电子商务和视频网站等各种在线平台上的普遍应用,推荐系统获得了广泛的研究关注。在实际应用中,隐式反馈数据(一类数据,如点击和购买等)被广泛使用,因为它易于收集且普遍适用。实际应用中的推荐通常存在严重的稀疏性问题,这会导致两个困难:

  • 没有足够的交互来为模型学习提供信息。此外,数据高度不平衡:大多数用户和物品与系统只有很少的交互,这使得推荐任务更加困难。
  • 由于我们在隐式反馈中只观察到一小部分正样本,现有的负采样策略是将未观察到的样本视为负样本。然而,通过这种方式,许多潜在的正样本被错误地标记为负样本,并且模型被标签噪声严重误导,尤其是在稀疏数据上。

为了解决上述挑战,我们采用迁移学习来丰富稀疏数据集上的信息,并且我们专注于没有用户和物品重叠的跨域推荐。具体来说,我们分别在稠密和稀疏数据上训练源模型和目标模型,并探索域自适应以对齐embeddings(即隐向量 latent factors),这是协同过滤 (CF) 模型中对用户偏好进行编码的关键组成部分。然而,在基本的 CF 模型中,没有具有特定语义的数据(例如图像和文本),我们通过将用户和物品嵌入(embedding)到潜在空间中来提取高级的密集特征。通过这种方式,我们将来自不同领域的用户和物品映射到不同的潜在空间。为了对齐潜在空间,我们探索域不变特征作为锚点。在本文中,我们利用了可以从用户评论(review)中轻松提取的文本特征。将文本特征与embeddings拼接起来,从而将空间扩展为文本潜在空间。对于域自适应,我们使用连接的embeddings和文本特征作为域分类器的输入。embeddings使用分类器进行对抗训练,而文本特征则固定。

正如我们所见,在我们的策略中,文本特征应该是域不变的,例如,来自所有域的恐怖电影都映射到文本空间的负半轴。现有的许多模型 提取文本特征用于推荐,而这些特征不是域不变的。为了缩小这一差距,首先,我们提出了一种称为文本记忆网络 ( Text Memory Network,TMN) 的记忆结构,通过将每个用户和物品映射到单词语义空间(word semantic space)来提取文本特征;然后,我们将这些特征注入 CF 模型以生成预测,这个由文本特征和CF模块组成的模型被命名为文本协同过滤(Text Collaborative Filtering,TCF)模型;最后,我们在源域和目标域上同步训练两个 TCF 模型,并通过自适应网络将它们连接起来。这个迁移学习模型被命名为文本增强域自适应推荐 (Text-enhanced Domain Adaptation Recommendation,TDAR) 方法。

原文链接:Semi-supervised Collaborative Filtering by Text-enhanced Domain Adaptation

阅读全文 »

一、Domain Adaptation

想象一个分类任务,假设现在我们手里有源域数据和目标域数据,其中源域数据是丰富并且有标记的,而目标域数据是充足但是没有标记的,但是源域和目标域的特征空间和标记空间相同。很显然,我们可以轻松的利用源域数据为源域建立一个分类器,但是由于目标域数据本身没有标记,那么我们无法通过常规方法为目标域构建分类器,这时候Domain adaptation 就可以发挥作用了。

从下图中可以看到(图片来自知乎),源域和目标域的特征都是 $\{x_1,x_2\}$,并且有相同的标记 $\{-1,+1\}$,但是在目标域数据的标记是不可获得的。此外,虽然源域和目标域的特征空间相同,但是两者的特征分布却不同。那么我们如何做到利用源域数据来帮助目标域进行分类呢?

这里最关键的一点就是在同一个特征空间中源域和目标域的分布不同,假设两者分布相同,那么我们就可以直接利用源域分类器对目标域数据进行分类了。因此,Domain adaptation的思想就是通过消除源域和目标域的分布差异,使得源域数据和目标域数据能同时被分开。在图中,通过映射函数 $\phi$ 将源域数据和目标域数据映射到某个空间中,并且将属于 +1 的样本混合在一起,属于 -1 的样本混合在一起。由于源域数据有标记,所以可以利用源域数据建立分类器。又因为源域数据和目标域数据混合在一起了,所以在分开源域样本的同时目标域样本也被分开了,这样任务就完成了。

阅读全文 »

一、前言

传统的推荐系统通常对用户过去的交互(例如评分或点击)做出假设来做出有意义的推荐。虽然这看起来很自然,但是,当假设不成立时,例如当新用户到达或我们的目标是对未使用的产品进行交叉销售时,这种系统的实用性就会降低。另一方面,随着网络服务种类的增加,冷启动用户的信息可以从他们在其他服务中的活动中获得。因此,利用来自其他相关领域的此类附加信息的跨域推荐系统近年来作为解决用户冷启动问题的有希望的解决方案获得了研究的关注 。

针对处理冷启动用户的跨域推荐,特别是在没有共同用户和item的情况。尽管可以推荐item并从目标用户那里获得反馈,但我们的目标是构建一个推荐系统,即使在这种替代方案不可用的情况下也可以工作。在这种情况下,一个主要的挑战是由于缺乏共同的用户,传统的方法不能用于两个服务之间的关系的引出。

该文研究了基于内容的方法,特别是,研究了一种跨域推荐的深度学习方法。深度学习已成功应用于推荐系统,除了在推荐系统应用中的成功之外,深度学习方法在迁移学习领域表现出更好的性能,因为它能够从数据中学习可迁移的特征。事实上,在领域自适应领域,深度神经网络在计算机视觉和自然语言处理任务中表现出最先进的性能。基于这一观察,该文假设深度神经网络的域适应也可以应用于跨域推荐。

领域自适应(Domain Adaptation)是一种使用从具有标记数据的一个域(源域)获得的知识来学习具有少量或没有标记训练数据的新域(目标域)的技术。通过域适应,可以将在源域中训练的分类器应用于目标域。为了实现领域自适应,该文使用了一种用于无监督域适应的神经网络架构,即 Bousmalis 等人提出的域分离网络(DSN)。此外,为了降低极端分类的难度和处理新item,该文通过堆叠去噪自动编码器(SDAE)来结合item特征。

原文链接:Cross-domain Recommendation via Deep Domain Adaptation

阅读全文 »

一、前言

EMCDR将源域和目标域的用户偏好编码为向量,然后学习一个映射函数,该映射函数将源域中的用户向量映射为目标领域上的用户向量,基于两个领域重叠的用户,使用 MSE 损失来进行学习。这类方法往往存在如下问题:

  • 通常两个领域重叠的用户只是一小部分用户,这样学习到的映射函数会在重叠用户上过拟合,降低模型的泛化能力;
  • 使用映射导向的损失函数(MSE),对目标向量的质量有很高的要求。然而在冷启动场景中,目标向量的质量往往不尽人意,这样会导致向量表示学习中被噪声影响;

论文将跨域推荐和元学习思想结合起来,提出了一种Transfer-Meta的框架来构建用户的embedding向量,该框架分为两个阶段:Transfer阶段、Meta阶段。

原文链接:Transfer-Meta Framework for Cross-domain Recommendation to Cold-Start Users

阅读全文 »