跳转到主要内容

【推荐系统】LightFM是许多流行的推荐算法的Python实现,用于隐式和显式反馈。

LightFM是许多流行的推荐算法的Python实现,用于隐式和显式反馈。

它还可以将项目和用户元数据合并到传统的矩阵分解算法中。它将每个用户和项目表示为其特征的潜在表示的总和,从而允许推荐泛化到新项目(通过项目特征)和新用户(通过用户特征)。

该方法的细节在arXiv上提供的LightFM论文中进行了描述。

快速入门


如果你不耐烦,直接跳到Movielens快速入门。

安装


PyPI


使用pip从pypi安装:pip安装lightfm。在Linux、使用Homebrew Python的OSX和使用Miniconda的Windows上,一切都应该开箱即用。

OSX和Windows用户注意:默认情况下,LightFM在OSX和窗口上不使用OpenMP,因此所有型号配件都是单线程的。这是由于Clang(和Miniconda)不支持OpenMP,安装启用OpenMP的gcc版本既复杂又劳动密集。如果你想在这些平台上使用LightFM的多线程功能,你应该尝试通过Docker使用它,如下一节所述。

也不支持使用OSX中包含的默认Python发行版进行构建;请尝试Homebrew或Anaconda的版本。

【推荐系统】将两层推荐系统投入生产

推荐系统将始终保持相关性——用户希望看到个性化的内容,最好的目录(就我们的iFunny应用程序而言,是流行的表情包和笑话)。我们的团队正在测试数十个关于智能提要如何改善用户体验的假设。本文将告诉您我们是如何实现协作模型之上的第二级模型的:我们遇到了什么困难,以及它们是如何影响指标的。

通常,矩阵分解,如隐式分解。ALS用于帮助改善饲料。在这种方法中,对于每个用户和每个对象,我们都会得到嵌入,而嵌入最接近用户嵌入的内容(在余弦度量中)最终会出现在最受欢迎的推荐中。

该方法工作迅速,但没有考虑所有信息(例如,在矩阵分解中添加用户的性别和年龄将是一项挑战)。

两级推荐系统试图在不放弃“永恒经典”的情况下使用更复杂的算法

实施两层推荐系统

我们需要从各种算法中“组装”出一个顶级解决方案。我们拥有: