yusanshi / news-recommendation

Implementations of some methods in news recommendation.
MIT License
241 stars 50 forks source link

【提问】关于数据不均衡问题 #33

Closed Energy9502 closed 2 years ago

Energy9502 commented 2 years ago

新闻推荐的实验数据中,因为每个用户在一定时间段(近一周或近几周),浏览点击的数据量是不一样的,例如:userid1浏览点击了31篇,userid2浏览点击了41篇。限定用户历史点击数为30,那么userid1正样本的数据量为1,在训练集中出现的次数为1,userid2正样本的数据量为11,在训练集中出现的次数为11(先不考虑验证集、测试集),负样本在候选集中随机抽样k个。

我的问题如下(测试模型LSTUR)

  1. 点击量多的类型数据,会影响某些用户的个性化推荐(训练集中10%正样本都出现了关于疫情的数据,但用户userid(x)历史点击数据没有疫情相关的数据(点击教育类的数据),最后推荐结果中疫情类数据排在很靠前,反而教育类的数据排序不是很好)。请问您有相关的类似情况吗?
  2. 如果想要让模型记住用户浏览、点击个性化兴趣多一些,而大众用户都点击浏览的类型数据兴趣少一些,在训练数据构造或模型应该做哪些调整?
yusanshi commented 2 years ago

新闻推荐的实验数据中,因为每个用户在一定时间段(近一周或近几周),浏览点击的数据量是不一样的,例如:userid1浏览点击了31篇,userid2浏览点击了41篇。限定用户历史点击数为30,那么userid1正样本的数据量为1,在训练集中出现的次数为1,userid2正样本的数据量为11,在训练集中出现的次数为11(先不考虑验证集、测试集),负样本在候选集中随机抽样k个。

我用的 MIND 数据集的构造方式跟您说的这个应该有些不同,比如,它是严格按照前后时间段分别构造 history、train set、val set、test set,4 个时间段之间没有重叠;它的负样本来自于一个新闻列表中给用户展示了但是没有点的新闻,所以是真实的负样本。

关于后面您说的流行度的问题,它应该是属于推荐系统中 Popularity Bias / Fairness 的问题,我对这个没系统研究过,不过有几篇论文感觉还不错 https://arxiv.org/pdf/1901.07555.pdfhttps://arxiv.org/pdf/1907.13286.pdf

在实际开发中(实习期间)我也确实碰到过类似的情况,当时我们用的解决办法主要是在 padding news (指当用户的历史比较少的时候为了保证 user history shape 的一致性所填补的 paddding news)上做调整,也没有发现其他特别好的解决方法,欢迎交流探讨

Energy9502 commented 2 years ago

谢谢推荐的文章及耐心解答