首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据其他用户的历史查询推荐产品

根据其他用户的历史查询推荐产品
EN

Data Science用户
提问于 2022-03-15 16:34:05
回答 1查看 20关注 0票数 1

给定用户数据,如下所示:

代码语言:javascript
复制
   user   query       date
0  jack   mango 2020-01-03
1  jack  banana 2020-01-04
2  jack   apple 2020-02-03
3  jack  orange 2020-03-03
4  john    meat 2020-07-03
5  john   water 2020-07-03

现在假设我们有一个新用户进入mango,我正在找到一种推荐用户产品的好方法。

一种方法是基于item2vec的以下方法:

代码语言:javascript
复制
import pandas as pd
df_user= pd.DataFrame( {'user':['jack','jack','jack','jack','john','john'],'query':['mango','banana', 'apple','orange','meat', 'water'],'date':['2020-1-3','2020-1-4','2020-2-3','2020-3-3','2020-7-3','2020-7-3']})
df_user['date']=pd.to_datetime(df_user['date'])

new_query='mango'

from gensim.models import Word2Vec

model = Word2Vec(sentences = df_user.groupby(['user'], as_index=False).agg(list)['query'], window = 9999999, min_count=1)
model.wv.most_similar(new_query, topn=10) 

奇怪的是,它给了

代码语言:javascript
复制
[('banana', 0.09904204308986664),
 ('orange', 0.004004828631877899),
 ('water', -0.022172965109348297),
 ('meat', -0.05908803641796112),
 ('apple', -0.1611100435256958)]

作为产出,“水”和“肉”排在“苹果”之后,

  1. 我的执行有什么问题吗?
  2. 除了item2vec之外,还有其他解决这个问题的好方法吗?
EN

回答 1

Data Science用户

发布于 2022-03-17 03:02:31

这似乎是使用Word2Vec imho的一种奇怪的方式。

一种简单的方法:

  1. 相互计算每个不同值的PMI
  2. 对于任何新查询,请选择其中具有最高PMI的值。

如果您只想要最频繁的关联,您可以使用条件概率而不是PMI。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/109078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档