虽然有许多推荐算法和技术,但大多数都属于以下广泛类别:协作过滤、内容过滤和上下文过滤。
混合推荐系统结合了上述类型系统的优势,以便创建更全面的推荐系统。
2
用例和应用
电子商务与零售:个性化营销
媒体与娱乐:个性化内容
个性化银行
作为一款由数百万人数字化消费的大众市场产品,银行是推荐产品的主要选择。了解客户的详细金融情况及其过去偏好,加上数千名类似用户的数据,这一点非常强大。
3
推荐系统的优势
推荐系统是推动个性化用户体验、与客户更深入互动以及零售、娱乐、医疗健康、金融等行业中功能强大的决策支持工具的关键组件。在某些大型商业平台上,推荐系统所产生的收入占比高达30%。推荐质量每提高1%可以转化为数十亿美元的收入。
4
推荐模型如何进行推荐将取决于您拥有的数据类型。如果您只拥有过去发生的交互数据,您可能有兴趣使用协作过滤。如果您有描述用户及其与之交互过的物品的数据(例如,用户的年龄、餐厅的菜系、电影的平均评价),您可以通过添加内容和上下文过滤,对当前给定这些属性下新交互的可能性进行建模。
推荐矩阵分解
使用交替最小二乘法(ALS)算法的矩阵分解将稀疏用户物品评价矩阵u-by-i近似为用户和物品因素矩阵的两个密集矩阵的乘积,其大小分别为u×f和f×i(其中u表示用户数,i表示物品数,f表示潜在特征数)。因素矩阵表示算法尝试发现的潜在特征或隐藏特征。一个矩阵试图描述每个用户的潜在特征或隐藏特征,另一个矩阵则试图描述每部电影的潜在特性。对于每个用户和每个物品,ALS算法会迭代学习(f)数字,“factors”表示用户或物品。在每一次迭代中,算法可以交替地修复一个因子矩阵并针对另一个矩阵进行优化,并且此过程会一直持续到其收敛。
5
人工神经网络(ANN)存在不同变体,如下所示:
DL技术还利用庞大且快速发展的新颖网络架构和优化算法,对大量数据进行训练,利用深度学习的强大功能进行特征提取,并构建更具表现力的模型。
神经协作过滤
神经协作过滤(NCF)模型是一个神经网络,可基于用户和物品交互提供协作过滤。该模型从非线性角度处理矩阵分解。NCFTensorFlow以一系列(用户ID、物品ID)对作为输入,然后分别将其输入到矩阵分解步骤(其中嵌入成倍增加)并输入到多层感知器(MLP)网络中。
然后,将矩阵分解和MLP网络的输出将组合到一个密集层中,以预测输入用户是否可能与输入物品交互。
用于协作过滤的变分自动编码器
自动编码器神经网络使用隐藏层中获取的表征,来重建输出层的输入层。用于协作过滤的自动编码器可以学习用户物品矩阵的非线性表征,并可通过确定缺失值重建该矩阵。
用于协作过滤(VAE-CF)的NVIDIAGPU加速变分自动编码器是一种优化的架构实现,首先在用于协作过滤的变分自动编码器中介绍。VAE-CF是一个神经网络,可基于用户和物品交互提供协作过滤。此模型的训练数据由用户和物品之间的每次交互的用户项ID对组成。
上下文序列学习
在NLP应用中,会使用词嵌入等技术将输入文本转换为词向量。借助词嵌入,可将句子中的每个词翻译成一组数字,然后再输入到RNN变体、Transformer或BERT中,以理解上下文。神经网络在训练自身时,这些数字会随时发生变化,编码每个单词的语义和上下文信息等独特属性,这意味着,相似词在此数字空间中彼此接近,不同词则相距遥远。这些DL模型为特定语言任务(例如下一词语预测和文本摘要)提供适当的输出,这些任务用于生成输出序列。
Wide&Deep
Wide&Deep是指使用并行处理两个部分(Wide模型和Deep模型)的输出,并对其输出进行求和以创建交互概率的网络类别。Wide模型是特征及其转换的一个广义线性模型。Deep模型是一个密集神经网络(DNN),由5个隐藏MLP层(包含1024个神经元)组成,每个层都从密集特征嵌入开始。分类变量会嵌入到连续向量空间中,然后通过学习的嵌入或用户确定的嵌入输入到DNN中。
综合来说,这两种表征信道通常比单种表征信道提供更多的建模能力。NVIDIA与许多使用离线和在线指标报告改进的行业合作伙伴合作,他们使用Wide&Deep替代传统机器学习模型。
DLRM
DLRM是一种基于DL的模型,适用于推荐,由Facebook研究院提出。它旨在同时使用推荐系统训练数据中通常呈现的分类输入和数值输入。要处理分类数据,嵌入层将每个类别映射到密集表征,然后再将其输入到多层感知器(MLP)。数值特征可直接输入到MLP。
在下一级别中,通过在所有嵌入向量对和已处理的密集特征之间取点积,显式计算不同特征的二次交互。并将这些成对交互输入到顶层MLP中,以计算用户和物品对之间的交互概率。
DLRM是NVIDIAMerlin的一部分,后者是一个基于DL所构建的高性能推荐系统框架,我们下面将介绍这一框架。
6
为何推荐系统在GPU上表现更出色?
许多机器学习算法的基础数学运算通常是矩阵乘法。这些类型的运算具有高度并行性,并且可以使用GPU大幅加速。
7
NVIDIAMerlin推荐系统应用程序框架
大型推荐系统解决方案的性能存在多种挑战,包括大型数据集、复杂的数据预处理和特征工程流程,以及大量重复实验。为满足大规模DL推荐系统训练和推理的计算需求,推荐您使用GPU解决方案,可为您提供快速的特征工程和高训练吞吐量(以实现快速实验和生产再训练)。它们还可为您提供低延迟、高吞吐量的推理。
NVIDIAMerlin是一个开源应用程序框架和生态系统,旨在促进从实验到生产的推荐系统开发的所有阶段,并由NVIDIAGPU加速。
该框架可为推荐数据集中常见的运算符提供快速的特征工程和预处理,以及为其提供多个基于深度学习的典型推荐模型的高训练吞吐量。其中包括Wide&Deep、DeepCrossNetworks、DeepFM和DLRM,这些模型可实现快速实验和生产再训练。对于生产部署,Merlin还提供低延迟、高吞吐量和生产推理。这些组件相结合,为在GPU上的训练和部署深度学习推荐系统模型提供端到端框架,该框架既易于使用,又具有高性能。
NVIDIATriton推理服务器和NVIDIATensorRT加速GPU上的生产推理,以便实现特征转换和神经网络执行。
8
NVIDIAGPU加速的端到端数据科学和DL
NVIDIAMerlin基于NVIDIARAPIDS构建。通过基于CUDA构建的RAPIDS开源软件库套件,您能够完全在GPU上执行端到端数据科学和分析流程,同时仍然使用Pandas和Scikit-LearnAPI等熟悉的界面。