Vue2.x学习笔记(下):vue-cli/vuex/vue-router篇
前言
- 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
的相关内容。
Vue2.x学习笔记(上):基础语法篇
前言
Vue
(读音 /vjuː/,类似于 view)
是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue
被设计为可以自底向上逐层应用。Vue
的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue
也完全能够为复杂的单页应用提供驱动。
Vue的引用方式包括两种:
本地引用
在官网下载 [vue.js](https://cn.vuejs.org/v2/guide/installation.html) 文件,并在 <code>.html</code> 文件中的 <code>head</code> 标签中引入:
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
Go Web: Gin框架学习笔记
一、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 |
我的推荐算法之路(12):TDAR
一、前言
由于在电子商务和视频网站等各种在线平台上的普遍应用,推荐系统获得了广泛的研究关注。在实际应用中,隐式反馈数据(一类数据,如点击和购买等)被广泛使用,因为它易于收集且普遍适用。实际应用中的推荐通常存在严重的稀疏性问题,这会导致两个困难:
- 没有足够的交互来为模型学习提供信息。此外,数据高度不平衡:大多数用户和物品与系统只有很少的交互,这使得推荐任务更加困难。
- 由于我们在隐式反馈中只观察到一小部分正样本,现有的负采样策略是将未观察到的样本视为负样本。然而,通过这种方式,许多潜在的正样本被错误地标记为负样本,并且模型被标签噪声严重误导,尤其是在稀疏数据上。
为了解决上述挑战,我们采用迁移学习来丰富稀疏数据集上的信息,并且我们专注于没有用户和物品重叠的跨域推荐。具体来说,我们分别在稠密和稀疏数据上训练源模型和目标模型,并探索域自适应以对齐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
我的推荐算法之路(11):DANN与DARec
一、Domain Adaptation
想象一个分类任务,假设现在我们手里有源域数据和目标域数据,其中源域数据是丰富并且有标记的,而目标域数据是充足但是没有标记的,但是源域和目标域的特征空间和标记空间相同。很显然,我们可以轻松的利用源域数据为源域建立一个分类器,但是由于目标域数据本身没有标记,那么我们无法通过常规方法为目标域构建分类器,这时候Domain adaptation 就可以发挥作用了。
从下图中可以看到(图片来自知乎),源域和目标域的特征都是 \(\{x_1,x_2\}\),并且有相同的标记 \(\{-1,+1\}\),但是在目标域数据的标记是不可获得的。此外,虽然源域和目标域的特征空间相同,但是两者的特征分布却不同。那么我们如何做到利用源域数据来帮助目标域进行分类呢?
这里最关键的一点就是在同一个特征空间中源域和目标域的分布不同,假设两者分布相同,那么我们就可以直接利用源域分类器对目标域数据进行分类了。因此,Domain adaptation的思想就是通过消除源域和目标域的分布差异,使得源域数据和目标域数据能同时被分开。在图中,通过映射函数 \(\phi\) 将源域数据和目标域数据映射到某个空间中,并且将属于 +1 的样本混合在一起,属于 -1 的样本混合在一起。由于源域数据有标记,所以可以利用源域数据建立分类器。又因为源域数据和目标域数据混合在一起了,所以在分开源域样本的同时目标域样本也被分开了,这样任务就完成了。