【推荐系统】item2vec实战分析

w2v里样本是“句子”产生的,所以是有顺序的,i2v里的item其实是set,可以认为无序。

也就是说,一个用户的所有观看(举例而言的,其实有时候观看完成度太低是不算正样本的,而且会有长度限制、时效限制)构成set,set里item两两互为正样本

懂了w2v,把w换成i就是i2v了。有点小区别就是,w2v里样本是“句子”产生的,所以是有顺序的,i2v里的item其实是set,可以认为无序。也就是说,一个用户的所有观看(举例而言的,其实有时候观看完成度太低是不算正样本的,而且会有长度限制、时效限制)构成set,set里item两两互为正样本。
链接:https://www.jianshu.com/p/0ecc53bba169

gensim输出

'w2v.model.wv.vectors.npy', 'w2v.model.trainables.syn1neg.npy', 'w2v.model', 'w2v.model.trainables.vectors_lockf.npy'

corpus.model是自己命名的模型名。注意:这 三个文件在一起才是模型。

corpus.model   
corpus.model.wv.vectors.npy   
corpus.model.trainables.syn1neg.npy  
这里有个注意:腾讯开源的word2vec是没有以上三个文件组成的预训练模型的。他开源的一个个结果文件,也就是说每个词语对应的 向量的字典。

gensim输入

模型初始化

from gensim.models import Word2Vec
sentences = [["cat", "say", "meow"], ["dog", "say", "woof"]]
model = Word2Vec(min_count=1)
model.build_vocab(sentences)  # prepare the model vocabulary
model.train(sentences, total_examples=model.corpus_count, epochs=model.iter)  # train word vectors
(1, 30)

更详细的参数解释 

model = Word2Vec(sentence, 
sg=1, 
size=100, 
window=5, 
min_count=1, 
negative=5, 
sample=0.001, 
hs=0, 
workers=multiprocessing.cpu_count(), 
iter=1
)

增量训练

model = Word2Vec.load(latest_ckpt) #模型三个文件都在不然报错
# 增量训练
model.build_vocab(sentence, update=True) # 更新词汇表
model.train(sentence, total_examples=len(sentence), epochs=model.iter)
# epoch=iter语料库的迭代次数;(默认为5)  total_examples:句子数。

 

 

参考:

https://www.jianshu.com/p/0ecc53bba169 推荐系统入门实践(4)召回之item2vec

gensim 训练Word2vec终极使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值