当您访问诸如Jingdong或Toobao之类的电子商务系统时,您会发现,当您观看某个产品或购买某种产品时,E -Commerce Systems会立即推荐许多类似的产品;在搜索百度的某些新闻时,信息将立即推荐类似的新闻。这些如何做?这涉及我们今天要解释的内容回忆。
无论是协作过滤还是深度学习模型,目前最受欢迎的推荐系统几乎所有这些都是基于用户和项目交互式行为来构建其召回系统的,但是无论如何,基于内容的建议仍然可以保留他们的召回系统这是因为:首先,对于发布期内的推荐系统,用户的内容交互相对较小,并且需要带有内容召回的召回机制来确保召回次数;其次,即使是成熟的大型平台,也是每天都有大量新内容的新内容,例如Douyin,Quick Hand,Xiaohongshu和其他UGC(用户创建的内容)平台。出于作者的保护,通常会保护新内容以分发,但是将分发新的新内容,但是将分发新的新内容,但是将分发新的新内容,但是将分发新的新内容,但是新内容却缺乏交互。如果只有一种策略来回忆,例如合作过滤,例如用户互动,那么新发布的内容就很难获得曝光的机会;行为行为的大多数内容都具有一定的爆炸性模型,也就是说,用户互动的项目,越容易流行,并且越来越容易回忆。从某个角度来看,建议使用用户包含闭合循环。内容过多的普及将不利于系统多样性。过度建议爆炸性内容。从长远来看,很容易使用户感到疲劳。内容召回可以在一定程度上弥补这种缺陷。根据用户和项目的标签匹配程度建议,它将更有利于系统的个性化。
基于内容的召回只是一个框架,其方法是多种多样的。从基因上讲,它可以分为明确的标签召回和隐藏的向量回忆。
当内容的标签与用户标签一致时,可以为用户使用此类内容。标签回忆的基本过程是:1。标记项目;2.为标签和物品构建倒置索引;3.根据用户标签,向后拉出在线标签以进行推荐。
构建内容标签标签的方法有很多。最常见的标签类型是内容类别。
今天的标题类别
知识图:除了对关键字的分析外,知识图也是内容结构的解决方案。知识图是通过在实体和属性之间构建关联来构建的(如果实体是鞋子,属性,属性包含品牌,大小,生产国,等等),从而在实体之间建立关系网络。知识图可以在实体之间提供隐藏的相关性,该实体可以扩大召回范围。但是,知识图的构建非常耗时 - 耗时且艰辛。困难是NLP,它要求机器了解大量信息。从基因上讲,需要一个特殊的团队来完成这项工作。推荐的团队通常不会构建回忆的知识图。实际上,搜索中的知识图将更加强大场地。
标记用户标签的重要想法之一是匹配项目和用户标签。那么如何标记用户?首先,很明显,用户的兴趣标签会动态更改,因为人们的兴趣很长一段时间都广泛稳定,但是短期很难预测。标签的最直观的想法用户是用户观看,浏览,喜欢和收集用户直接向用户收集的标签。有趣的是坚强和弱,因此如何计算用户的每个标签重量?一般来说,用户的标签可以用作用作用户的标签以下公式:$ $用户标签重量=行为类型重量频率行为衰减 * tf-idf标签重要度$ $我们看每个项目:
通过用户的兴趣标签重量,结合每个标签下项目的倒拉链,可以为用户选择相应的项目。选择项目后,需要根据权重对它们进行排序。最终的重量系数可以使用产品的产品(TFIDF或TexTrank值)的标签重量。
除了通过标签显示项目和用户兴趣外,隐式表达这些项目和用户还可以发现用户的潜在兴趣并扩大项目的召回。矢量化的常用解决方案是LDA,DOC2VEC,ETC。
ldalda是两个常用模型的缩写:线性律师分析和潜在的dirichlet分配(潜在的dirichlet分配),自然语言分析中的LDA是指shestater.lda将文档分解为文档 - > themes->单词 - >单词 - >单词 - >单词 - >单词 -文章和主题矩阵以及主题和细分矩阵,一篇文章已分解(这里的主题不是实际意义上的主题,而是它的可能性)。也就是说:可以如下制作文章:
$ p(单词| document)= sum_ {theme} p(单词|主题) * p(主题| document)$ $
矩阵的使用指示:
其中,“文档字”矩阵表示每个文档中每个单词的概率;“主题字”矩阵表示每个主题中每个单词的概率;主题的概率。通过左矩阵的迭代,您可以在右侧求解两个矩阵。这样,可以将文章转换为密集的主题向量(其中矢量的长度是模型参数,该参数表示主题的数量。一般而言,Speakeit意味着预设主题更丰富,效果会更好)。
从应用的角度来看,LDA相对简单。本地培训可以在Python的Gensim软件包中使用LDAMOL界面。分布式培训可以在Spark中使用MLLIB的LDA接口。
common_corpus是输入数据,原始文本通过调用常规下的dictary.doc2bow转换为所需的输入格式;num_topics是主题的数量,即最终矢量长度;但是,LDA背后的数学原理实际上是相对复杂的,涉及统计知识,例如dialixre的分布,多项式分布和吉布斯采样。有兴趣的读者可以阅读LDA的数学原理。
当doc2vec谈论doc2vec时,有必要首先谈论word2vec。word2vec可以说是为矢量化创建先例。框架是不同的,但是这个想法源自Word2Vec。
Word2Vec目标是允许以计算机可以处理的方式表达单词。可以处理这里的计算机,这意味着两个单词可以通过数值方式计算。国王“ - “男人” +“ whore” =“ Queen”)。Word2Vec实现机制是单层神经网络。他们,输入层中的所有单词均使用一热编码,隐藏层是密集的向量(长度为参数),并且输出层是每个预测单词的概率。
Word2Vec的培训任务给出了上下文,涵盖了一个单词,并让换句话说一起预测一个封面单词。通过不断迭代网络参数,在预测输出到全部数量中覆盖单词的概率是最高的。Word2Vec网络模型。在预测阶段中,任何单词都可以通过网络获得隐藏层上的相应向量。CBOW模式。给了一个单词来预测上下文。想知道Word2Vec原理的阅读器可以咨询文献[3],在这里不会重复。
DOC2VEC已反复使用Word2Vec从想法到实践,但是段落ID已添加到输入中。从理论上表示段落的主要目的(每个段落都有自己的ID),并添加了附加的pargraph ID。是要加入的新段落,训练有素相关的参数以及隐藏的层和输出层参数已固定。仅迭代与Pargraph ID相关的矩阵参数。Pargraphvector.doc2vec称为DM模型为上述(类比Word2Vec的CBOW)。它还具有类似于跳过的模型,称为PV-DBOW。参见文献[4]。doc2vec的应用并不复杂。Python中的Gensim包含DOC2VEC模型的包装。您可以直接致电文章进行预测和培训文章。
X_TRAIN是输入数据。请注意,请先致电Geneim.models.doc2vec.taggedDocume首先以IDINE并将其转换为培训所需的格式;大小是最终矢量长度;其他参数可以检查API文档。
搜索矢量检索当用户和项目都可以由向量表示时,您可以使用相似的向量召回来检索项目。在相似性计算的术语中,通常使用欧洲风格的距离或字符串距离(随后的文章将是后续文章引入以引入机器学习中的相似性)。通常有两种类型的解决方案:离线计算和在线召回。
离线计算是巨大的(电子商务,视频,笔记等。尽管业务有所不同,但通常一定数量的公司项目至少是数千万米),即使使用了离线计算,这两个或两个版本仍然是不现实的。从基因上讲,最近搜索的ANN(大约最近的邻居)的大约是ANN行业的许多开源实现。有一些基于树的基于图的基于图,它们是更常用的。LSH(局部敏感的哈希,局部敏感哈希)是一种更著名的算法。尺寸)通过某些哈希算法映射到低维空间,映射后的点相似。当低维空间在同一桶中时,这两个向量被认为是近邻居向量。- 可以通过检查低维空间的同一桶矢量来获得矢量的邻居向量。
如图所示,在三个维空间中,点A和B在X轴和Y轴上密切投影,可以将其视为空间中的相似点。尽管a和c在x投影中的一个桶中,但它们位于y轴上,但是在y轴轴中,投影距离很远,因此不能认为它相似。
LSH算法可以通过在Spark中的MLLIB下调用BucketedRandomproject Warosh来使用。通常有两个检索想法:i2i召回或U2i Reque.i2i Reque.i2i Reque是用户最近交互的项目。通过类似的向量,他们直接回忆起与它们相似的项目。U2i召回是加权的,平均值(可以使用牛顿的冷却定律,与交互时间结合使用)来指示用户,然后基于用户向量,查找具有较高配置矢量相似性的项目。
在线召回和在线召回对响应性能的要求很高。在行业中常用的ANN的开源实施中,更常见的Facebook Faiss或国内开源项目Milvus,后者支持分布式体系结构,这是高度可用的。,因此它赢得了许多公司的青睐。Baidu Fland Paddle,Sohu,小米,Shell和其他公司都被应用。检索想法类似于离线召回。您可以选择I2I召回或U2I召回计划。
今天的大量深度学习中使用了矢量的计算和回忆。随后的文章将进行详细说明。
推荐系统的主要内容通常基于所有产品(新闻,产品,视频,注释等),但是如果您能获得有关项目的更多补充信息,则将对提高建议准确性非常有益。通常有以下内容获取的解决方案:
内容的内容如前所述,它具有高度匹配的用户兴趣,强大的解释性和易于启动的特征召回还可以具有更广泛的产品表单应用程序,例如主题推荐,因为其解释的特征。我们的每日产品可以找到内容建议:JD.com的主题建议,微博主题的集成,Douelan的Music Label Cloud等。
主题/主题/标签的内容可以大大增加用户粘性,这可以增加e -Commerce的用户订单的可能性。
尽管建议使用内容,但仍有各种优势,但是存在某些缺陷。主要问题如下:
由于上述原因,内容建议可以用作召回系统的最低策略,但是任何建议系统都不仅具有内容建议。基于用户互动的建议策略,它将与内容推荐的内容建议形成多彩的多路召回。
这是一个对读者的思考问题:您在日常生活中使用的各种网站和应用程序中看到了什么?
参考:[1]。推荐算法基于内容。B0%E5%AD%A6%E5%AB%E5%8D%A6.PDF [3] Word2Vec参数学习解释了Xin Rong,https://arxiv.org/abs/1411.2738 [4]