- 博客(86)
- 资源 (1)
- 收藏
- 关注
原创 PyTorch中使用LSTM处理变长序列
使用LSTM算法处理的序列经常是变长的,这里介绍一下PyTorch框架下使用LSTM模型处理变长序列的方法。需要使用到PyTorch中torch.nn.utils包中的pack_padd
2021-06-07 21:40:20
8815
2
原创 BiLSTM+ Attention Pytorch实现
最近写算法的时候发现网上关于BiLSTM加Attention的实现方式五花八门,其中很多是错的,自己基于PyTorch框架实现了一版,主要用到了LSTM处理变长序列和masked softmax两个技巧。代码如下:1、attention_utils.pyfrom typing import Dict, Optionalimport numpy as npimport torchimport torch.nn.functional as Ffrom torch import Tensor
2021-06-07 21:06:30
13259
5
原创 Co Attention注意力机制实现
“Hierarchical Question-Image Co-Attention for Visual Question Answering”中的图像和文本间的Co Attention协同注意力实现参考:https://github.com/SkyOL5/VQA-CoAttention/blob/master/coatt/coattention_net.pyhttps://github.com/Zhangtd/Models-reproducing/blob/master/NIPS2016/se
2021-05-26 15:12:52
23732
5
原创 MLP Attention实现
MLP Attention注意力机制的实现公式为:参考https://github.com/pytorch/translate/blob/master/pytorch_translate/attention/mlp_attention.pyhttps://www.aclweb.org/anthology/N16-1174.pdf基于PyTorch框架实现加性注意力机制from typing import Dict, Optionalimport numpy as npimpo
2021-05-26 12:39:30
5583
2
原创 使用Google Scholar在指定出版物中检索
在使用Google Scholar进行查找文献时,我们有时候需要在指定期刊或会议下检索某个主题的相关文献,虽然在Google Scholar的首页提供了高级检索选项:但实际使用时发现按照实例语法无法使用:在“显示以下刊物上的文章”搜索框中输入“IEEE Transactions on Knowledge and Data Engineering OR ACM Transactions on Information Systems”,发现报错正确的使用方法是在Google Scholar搜索框
2021-05-19 22:09:25
6934
原创 MathType注册表位置
MathType完整版试用满30天后,如果不能及时激活,会退化到精简版。相比于完整版,精简版有很多功能不能使用,卸载后重装也还是精简版,原因在于注册表。MathType精简版不可用功能介绍注册表是什么东西?以win10系统为例,演示如何找到MathType的注册表。1、找到注册表编辑器,单击打开;2、找到HKEY_CURRENT_USER>Software>Install Options,单击即可看到MathType的注册表信息。...
2021-04-19 15:00:51
5435
原创 特征选择方法体系
特征选择(Feature Selection)的机器学习中的一项基本任务,其被定义为从可用的特征集合中选择出有意义的特征子集,从而简化机器学习问题。特征选择方法一般分为以下三类:基于封装的方法(Wrapper Methods) 基于过滤的方法(Filter Methods) 基于嵌入的方法(Embedded Methods)1、基于封装的方法(Wrapper Methods)Wrapper methods evaluate subsets of features by training a m
2021-03-10 19:52:26
839
原创 文献分析工具Connected Papers
Connected Papers是一款知名的文献分析工具,使用它,可以 Get a visual overview of a new academic field Make sure you haven't missed an important paper Create the bibliography to your thesis Discover the most relevant prior and derivative works 其使用非常简单,界面如下:
2021-02-05 17:02:49
17129
原创 PyTorch检查模型梯度是否可导
当我们构建复杂网络模型或在模型中加入复杂操作时,可能会需要验证该模型或操作是否可导,即模型是否能够优化,在PyTorch框架下,我们可以使用torch.autograd.gradcheck函数来实现这一功能。首先看一下官方文档中关于该函数的介绍:可以看到官方文档中介绍了该函数基于何种方法,以及其参数列表,下面给出几个例子介绍其使用方法,注意:Tensor需要是双精度浮点型且设置requires_grad = True第一个例子:检查某一操作是否可导from torch.autog
2021-01-21 09:45:30
3385
2
原创 Ray Tune模型调参:以一个简单的二分类模型为例
以Titanic乘客生存预测任务为例,进一步熟悉Ray Tune调参工具。titanic数据集的目标是根据乘客信息预测他们在Titanic号撞击冰山沉没后能否生存。本示例的基础代码参考了下面两篇文章: 1-1,结构化数据建模流程范例(一个不错的PyTorch教程) How to use Tune with PyTorch 也可以看一下上一篇文章:PyTorch + Ray Tune 调参教程中的原始代码如下:import numpy as npimport panda
2021-01-07 11:12:30
1796
7
原创 PyTorch + Ray Tune 调参
参考了PyTorch官方文档和Ray Tune官方文档1、HYPERPARAMETER TUNING WITH RAY TUNE2、How to use Tune with PyTorch以PyTorch中的CIFAR 10图片分类为例,示范如何将Ray Tune融入PyTorch模型训练过程中。其中,要求我们对原PyTorch程序做一些小的修改,包括:将数据加载和训练过程封装到函数中; 使一些网络参数可配置; 增加检查点(可选); 定义用于模型调参的搜索空间。下面以示例代码解析
2021-01-01 15:43:27
6082
10
原创 深度学习模型需要调哪些参数
深度学习模型训练时需要调哪些参数?1、参数初始化策略 代码示例:# Common practise for initialization.for layer in model.modules(): if isinstance(layer, torch.nn.Conv2d): torch.nn.init.kaiming_normal_(layer.weight, mode='fan_out', ..
2020-12-19 09:21:40
10141
2
原创 PyTorch可视化模型结构
1、torchviz代码:import torchimport numpy as npimport torch.nn as nnimport torch.nn.functional as Fimport torchvizclass Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(in_channels=3, out_c
2020-12-18 09:07:56
1708
原创 python读取某目录下word文档中内容并存入txt文件
将某个目录下所有word文档中内容提取出来并存入txt文件中。文档中内容如下:直接上代码:#!/usr/bin/env python# encoding: utf-8'''@file: 1_word.py@time: 2020/11/27 21:15'''import docximport osfile_dir = './doc'for root, dirs, files in os.walk(file_dir, topdown=True): pa..
2020-11-27 21:54:16
2549
2
翻译 博文翻译:Tackling the Cold Start Problem in Recommender Systems
博文地址:Tackling the Cold Start Problem in Recommender Systems题目:Tackling the Cold Start Problem in Recommender Systems / 解决推荐系统中的冷启动问题作者:Kojin Oshiba当我在Wish进行机器学习实习时,我要解决推荐系统中的一个常见问题“冷启动推荐”。冷启动通常发生在新用户或新产品出现在电子商务平台时。传统的推荐方法如CF假定每个用户或产品有一些评分,因此我们可以推断.
2020-10-21 21:37:39
603
原创 常用的Top-N产品推荐评估指标
Top-N产品推荐与传统的评分预测相比,更符合实际的业务需求,在对推荐算法产生的Top-K推荐列表进行评估时,有一些常用的指标,如Hit_Rate@k、Precision@k、Recall@k、Map@k、NDCG@k和MRR@k,下面基于Python实现这6种评估指标。主要参考了https://github.com/wubinzzu/NeuRec/blob/master/evaluator/backend/python/metric.py代码和示例如下:import numpy as np.
2020-10-19 20:14:07
8950
原创 论文阅读笔记:Low-rank Linear Cold-Start Recommendation from Social Data
论文:Low-rank Linear Cold-Start Recommendation from Social Data / 利用社交数据进行低秩线性冷启动推荐作者:Suvash Sedhain, Aditya Krishna Menon, Scott Sanner, Lexing Xie,Darius Braziunas发表刊物:AAAI发表年度:2017下载地址:http://cm.cecs.anu.edu.au/documents/loco-aaai17-final.pdf1、背景.
2020-10-16 11:21:46
467
原创 论文阅读笔记:Social Collaborative Filtering for Cold-start Recommendations
论文:Social Collaborative Filtering for Cold-start Recommendations / 用户冷启动推荐的社会化协同过滤作者:Suvash Sedhain,Scott Sanner,Darius Braziunas,Lexing Xie,Jordan Christensen发表刊物:RecSys发表年度:2014下载地址:http://users.cecs.anu.edu.au/~ssanner/Papers/recsys14.pdf这篇文章研...
2020-10-15 11:44:26
623
2
原创 论文阅读笔记:Learning Attribute-to-Feature Mappings for Cold-Start Recommendations
论文:Learning Attribute-to-Feature Mappings for Cold-Start Recommendations / 通过学习属性到特征的映射进行冷启动推荐作者:Zeno Gantner, Lucas Drumond, Christoph Freudenthaler, Steffen Rendle and Lars Schmidt-Thieme发表刊物:ICDM发表年度:2010下载地址:https://citeseerx.ist.psu.edu/viewdoc/do
2020-10-14 15:07:04
466
原创 论文阅读笔记:Relational Learning via Collective Matrix Factorization
论文:Relational Learning via Collective Matrix Factorization / 通过协同矩阵分解进行关系学习作者:Ajit P. Singh,Geoffrey J. Gordon发表刊物:KDD发表年度:2008下载地址:https://doi.org/10.1145/1401890.1401969CMF模型是评分预测、冷启动推荐等推荐系统相关研究中经常对比的一个经典基线,其基本思想是在做关系学习任务时,可以利用与待预测的关系相关的其他关系数据来改进预.
2020-10-13 11:10:21
1926
原创 推荐系统冷启动问题
推荐系统冷启动问题是指:如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,即在缺乏有价值数据时,如何进行有效的推荐的问题。...
2020-10-08 11:28:17
1286
原创 冷启动推荐的一般性建模流程
冷启动推荐旨在解决当系统中出现新用户或新产品时如何进行推荐的问题,相比于热启动用户或产品,冷启动用户或产品缺少用户-产品交互数据,因此用传统的热启动推荐方法往往不能解决这类问题。当前的冷启动推荐建模的主要思路是:通过学习映射函数将用户或产品的辅助信息表示转换为协同过滤表示。冷启动算法建模的示意图如下:注:图片取自Recommendation for New Users and New Items via Randomized Training and Mixture-of-Experts Trans
2020-09-23 15:14:01
1284
原创 论文阅读笔记:A Closer Look at Few-shot Classification
论文:A Closer Look at Few-shot Classification / 近距离观察小样本分类问题作者:Wei-Yu Chen,Y en-Cheng Liu & Zsolt Kira,Yu-Chiang Frank Wang,Jia-Bin Huang发表刊物:ICLR发表年度:2019下载地址:https://arxiv.org/pdf/1904.04232.pdfABSTRACT小样本分类旨在通过有限标记样例学习一个分类器来识别未知类,虽然近些年取得了一
2020-09-22 14:57:47
3696
原创 python使用t检验和F检验验证模型好坏
要在某个指标上对比两个模型的好坏,我们可以直接进行比较,同时为了使比较结果更具说服力,我们可以使用统计检验的方法,即将两个模型分别跑k次,使用t检验比较这两组k个样本的均值、使用F检验比较这两组k个样本的方差,均值越大、方差越小说明在当前指标上该模型更好更稳定(这里说的指标是正向指标)。那么下面我们以具体代码来进行说明。from scipy.stats import ttest_rel, fimport numpy as npx = [44.2, 36.1, 46.5, 40.7, 61.6,
2020-09-06 17:24:21
12198
1
原创 Python检验样本是否服从正态分布
在进行t检验、F检验之前,我们往往要求样本大致服从正态分布,下面介绍两种检验样本是否服从正态分布的方法。1 可视化我们可以通过将样本可视化,看一下样本的概率密度是否是正态分布来初步判断样本是否服从正态分布。代码如下:import numpy as npimport pandas as pdimport matplotlib.pyplot as plt# 使用pandas和numpy生成一组仿真数据s = pd.DataFrame(np.random.randn(500),colu
2020-09-06 16:41:10
18712
原创 Pytorch保存和加载模型的两种方式
与Tensorflow、Keras等框架一样,Pytorch也提供了两种保存模型的方式,这两种方式都是通过调用pickle序列化方法实现的:只保存模型参数 保存完整模型下面我们依次对这两种方式进行实现,以以下多层感知机模型为例:def create_net(): net = nn.Sequential() net.add_module('linear1', nn.Linear(15, 20)) net.add_module('relu1', nn.ReLU())
2020-08-20 19:58:38
8970
原创 torch.ones_like函数和torch.zero_like函数
torch.ones_like函数和torch.zero_like函数的基本功能是根据给定张量,生成与其形状相同的全1张量或全0张量,示例如下:input = torch.rand(2, 3)print(input)# 生成与input形状相同、元素全为1的张量a = torch.ones_like(input)print(a)# 生成与input形状相同、元素全为0的张量b = torch.zeros_like(input)print(b)效果如下:tensor([[0.08
2020-08-20 19:27:54
33472
6
原创 Pytorch中的torch.where函数
首先我们看一下Pytorch中torch.where函数是怎样定义的:@overloaddef where(condition: Tensor) -> Union[Tuple[Tensor, ...], List[Tensor]]: ...torch.where函数的功能如下:torch.where(condition, x, y):condition:判断条件x:若满足条件,则取x中元素y:若不满足条件,则取y中元素以具体实例看一下torch.where函数的效果:
2020-08-20 19:18:06
15189
3
原创 使用torchkeras打印Pytorch模型结构和基本参数信息
在使用Pytorch构建神经网络模型后,我们需要看一下自己写的模型的网络结构,此时可以使用torchkeras模块中的summary函数实现该功能。以多层感知机为例,首先我们构建网络结构并打印该模型的初步信息,代码如下:import torchfrom torch import nnfrom torchkeras import summarydef create_net(): net = nn.Sequential() net.add_module('linear1', nn
2020-08-20 18:23:04
5263
原创 pandas打印DataFrame的前几行、后几行样本和随机抽样
在使用pandas对结构化数据进行探索性分析时,我们经常需要打印几条样本出来看看数据读取和处理是否正确,除了用iloc函数以索引区间的方式读取,pandas为我们提供了更简单的head和tail函数,这两个函数的使用方法和效果如下。1、head函数pandas中的head函数的使用方法如下:import numpy as npimport pandas as pddf_data = pd.DataFrame(np.random.rand(10, 5))# 打印全体数据print(df
2020-08-20 17:59:23
55901
原创 使用python打印当前时间
在跑模型的时候,我们有时需要计算模型运行时间,此时我们需要获取到模型开始运行的时间以及模型结束运行的时间,以二者的差值作为模型的总运行时间。在python语言中,我们可以使用以下两种常用的方式获取当前时间。1、使用time模块代码如下:# 打印时间戳print(time.time()) # 打印自从1970年1月1日午夜(历元)经过了多长时间,以秒为单位# 打印本地时间print(time.localtime(time.time())) # 打印本地时间# 打印格式
2020-08-20 17:33:55
76716
2
原创 论文阅读笔记:From Zero-Shot Learning to Cold-Start Recommendation
论文:From Zero-Shot Learning to Cold-Start Recommendation / 从零样本学习到冷启动推荐作者:Jingjing Li, Mengmeng Jing, Ke Lu, Lei Zhu, Yang Yang, Zi Huang发表刊物:AAAI发表年度:2019下载地址:https://arxiv.org/abs/1906.08511Abstract零样本学习和冷启动推荐分别是计算机视觉和推荐系统中具有挑战性的研究问题,它们一般来各自的社区中被独
2020-08-17 19:26:28
1320
原创 python返回列表中特定元素对应的索引
在使用列表这一数据结构进行数据分析时,我们会经常遇到需要返回列表中特定元素对应的所有索引的情况。我们可能会首先想到可以使用index函数返回元素索引,看一下效果:a = [1, 2, 3, 4, 2, 1]print(a.index(2))结果为:1可以看到,使用index函数返回的只有一个索引,而列表a中有两个2,应该返回两个索引才对,我们看一下index函数具体细节:可以看到,index函数只返回命中元素的第一个索引,而且该函数也没有参数让我们实现返回多个索引的效果。我们进
2020-08-14 10:46:27
24721
1
原创 python对列表元素排序并返回元素索引序列
在信息检索或top-n推荐中,我们会为用户推荐一个有序推荐列表,这里的“有序”体现在列表中前面的产品相比于列表后面的产品被算法预测为更容易被用户选择,这要求我们按每个产品出现的概率对产品进行排序。可以参考以下示例:# 按列表a中元素的值进行排序,并返回元素对应索引序列a = [1, 3, 4, 5, 2, 7, 9]print('a:', a)sorted_id = sorted(range(len(a)), key=lambda k: a[k], reverse=True)print('元素
2020-08-11 20:33:10
45156
7
原创 python批量计算cosine distance
我们在做推荐或者信息检索任务时经常需要比较项目嵌入和项目嵌入之间或者用户嵌入和项目嵌入之间相似度,进而进行推荐。余弦相似度的计算公式如下:余弦相似度cosine similarity和余弦距离cosine distance是相似度度量中常用的两个指标,我们可以用sklearn.metrics.pairwise下的cosine_similarity和paired_distances函数分别计算两个向量之间的余弦相似度和余弦距离,效果如下:import numpy as npfrom sklea
2020-08-11 19:35:04
17145
2
原创 python计算mAP
mAP(mean Average Precision)是信息检索和推荐系统领域评估算法性能的重要指标。If you have an algorithm that is returning a ranked ordering of items, each item is either hit or miss (like relevant vs. irrelevant search results) and items further down in the list are less likely to
2020-08-07 19:44:22
6379
1
原创 python计算precision@k、recall@k和f1_score@k
sklearn.metrics中的评估函数只能对同一样本的单个预测结果进行评估,如下所示:from sklearn.metrics import classification_reporty_true = [0, 5, 0, 3, 4, 2, 1, 1, 5, 4]y_pred = [0, 2, 4, 5, 2, 3, 1, 1, 4, 2]print(classification_report(y_true, y_pred))而我们经常会遇到需要对同一样本的top-k个预测结果进行
2020-08-06 20:58:15
15709
3
原创 论文阅读笔记:A Survey of Zero-Shot Learning: Settings, Methods, and Applications
论文:A Survey of Zero-Shot Learning: Settings, Methods, and Applications / 零样本学习综述:设定、方法和应用作者:Zhi-Hua Zhou / 周志华发表刊物:ACM Transactions on Intelligent Systems and Technology发表年度:2019下载地址:https://dl.acm.org/doi/abs/10.1145/3293318...
2020-07-30 16:44:50
3149
1
用户画像及其在推荐系统中的应用.pdf
2019-12-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人