【问题标题】:How to encode inputs like artist or actor如何对艺术家或演员等输入进行编码
【发布时间】:2018-07-15 21:10:00
【问题描述】:

我目前正在开发一个神经网络,它试图根据特定用户最近的活动为他提出建议。我会尝试用一个例子来说明我的问题。

现在,假设我试图根据用户最近听过的音乐向他推荐新音乐。由于人们经常听他们认识的艺术家,因此这种神经网络的一个输入可能是他最近听过的艺术家。

问题在于此功能的编码。由于数据库中艺术家的 id 对神经网络没有任何意义,我想到的唯一另一个选择是对每个艺术家进行一次热编码,但这对于成千上万不同的艺术家来说听起来也不乐观在那里。

我的问题是:我如何编码这样的特征?

【问题讨论】:

  • 艺术家和流派 ..
  • 好吧,既然流派是一个分类值,我可以只使用一个热编码。这就是为什么我在标题中使用“艺术家或演员”。
  • 你可以从 word2vec 这样的 one-hot 编码中学习低维编码。

标签: tensorflow machine-learning neural-network deep-learning artificial-intelligence


【解决方案1】:

您描述的方法称为content-based filtering。直觉是向客户 A 推荐与 A 以前喜欢的项目类似的项目。这种方法的一个优点是您只需要有关一个用户的数据,这往往会导致“个性化”的推荐方法。但是一些缺点包括功能的构建(您现在正在处理的问题),为新用户构建有趣的配置文件的困难,另外它也永远不会推荐用户内容配置文件之外的项目。至于表示的难度,特征通常是手工制作和事后抽象的。特别是对于音乐,特征可能是“艺术家”、“流派”等,信息关键字的抽象(如有必要)广泛使用tf-idf

这可能超出了问题的范围,但我认为还值得一提的是另一种方法:collaborative filtering。而不是相似的项目,我们在这里尝试寻找具有相似品味的用户并推荐他们喜欢的产品。您在这里需要的唯一数据是某种用户评分或他们(不)喜欢某些数据的程度 - 消除了对功能设计的需要。此外,由于我们分析相似的人而不是推荐项目,这种方法往往也适用于新用户。协同过滤的一般流程如下:

  • 衡量感兴趣的用户与所有其他用户之间的相似度
  • (可选)选择包含最相似用户的较小子集
  • 将评分预测为“最近邻”的加权组合
  • 返回评分​​最高的项目

算法中相似度加权的一种流行方法是基于Pearson correlation coefficient

最后,这里要考虑的一点是对性能/可扩展性的需求:为数百万用户计算成对相似度在普通计算机上并不是真正轻量级的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    相关资源
    最近更新 更多