0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

自制Word2Vec图书推荐系统,帮你找到最想看的书!

DPVg_AI_era 来源:未知 作者:李倩 2018-09-25 08:53 次阅读

最近有开发者自制了一套图书推荐系统,使用Word2Vec算法将书目表示为向量,可以同时获得几种书籍的推荐结果,并获得书籍的TSNE图及相似度最高的推荐。图书数据来自GoodReads上的评价最高的前10000本书。开发者表示,采用较小的batchsize和长度可变的窗口可提升推荐相似度。

近日,有开发人员自制了一套图书推荐系统,使用Word2Vec算法将书目表示为向量,可以同时获得几种书籍的推荐,并获得书籍的TSNE图以及相似度最高的推荐信息。训练数据来自GoodReads上的评价最高的前10000本书。

作者将这一系统在Reddit论坛上进行了算法介绍和推荐效果图分享,引发广泛讨论。我们不妨来看看这个自制荐书系统是怎么做的。

以下是作者自己给出的系统展示和介绍,最后是技术实现环节的相关讨论。

下面的图片来自两个2D TSNE生成的图书嵌入图。第一部分是数据中最常出现的3000本书的TNSE(已经过10000本书的数据训练),第二部分是全部10000本书的TSNE。

我做了两个TSNE图,因为随着书籍书目的增加,推荐的准确度趋于下降,所以我想查看最常出现的书籍的分布图,然后再处理其余的书。

首先最常出现的3000本书的TSNE图,先给出几个局部放大图,最后放上全图。

下图为作于最近30-40年间的奇幻/古典奇幻类书

中间的部分大部分是漫画书,周围是一些科学类书籍

宇宙科幻类:

喜剧类(主要是电视剧)

全图

然后是全部10000本书的TSNE图,同样先给出几个局部图,最后是全图。

历史类书籍。图左半部为美国史,右半部为世界通史

宇宙史和起源理论

儿童经典书目

食品科学和新闻类

Word2Vec荐书系统的技术实现

下面是一些技术上的实现要点,对机器学习感兴趣的小伙伴们可以关注一下。

1、使用较小的batch size

训练中使用batch size较小(32和64)对于确保所有书籍向量的稳健性非常重要。在更高的batch size(128、256和512)下,大多数向量具有相当的相似性,但似乎总是有一些书的向量不具备相似性。

以《哈利·波特》2-7部的推荐结果为例,如果直接查看数据,很容易知道与这些书相似度最高的书应该是该系列中的其他《哈利·波特》书,但最初推荐模型给出的相似图书结果并非如此。但是,在把batch size设置为64后,推荐结果的相似度很快得到明显改善。

由于平均窗口大小为112,并在20到200之间变化(取决于用户阅读的书籍数量),因此像《哈利·波特》这样的系列丛书中的一些书,很可能会与其他书籍匹配为相似了。

假设某系列丛书中共有7本书,并且用户对所有7本书都进行了评分,该用户还评价了112本其他书,那么,其中一本《哈利·波特》书与另一本《哈利·波特》在该用户的标签下实现配对的概率是6/112。

在这种情况下,由于word2vec试图一次性优化多个嵌入,因此对于窗口大小很小且恒定的情况,更高的batch size会比word2vec算法的应用对结果优化造成更加明显的阻碍。

2、Softmax嵌入向量算术

到目前为止,上面的所有矢量算术示例都是我在书籍输入嵌入上执行加法和/或减法,然后针对softmax嵌入对结果矢量执行相似性结果的情况。比结果向量与输入嵌入进行比较要稳健得多。

3、可变长度窗口(VLW)

最初的Word2Vec Cbow算法使用固定的窗口大小的单词用作特定目标的输入。比如,如果窗口大小是目标词左侧和右侧的2个单词,那么在这句“The cat in the hat”中,如果目标词(标签)是“in”,那么单词'The ','cat','the'和'hat'将各自向量进行平均,并将得到的结果向量作为输入。

而在这个荐书系统中,窗口大小不可能是固定的。对于特定数据点(输入),由用户输入的所有对全部书籍的评价都可能作为潜在的输入,而且每个用户浏览过的书籍数量彼此存在很大差异,因此窗口大小不可能恒定。

尽管窗口大小不是恒定的,但是平均输入向量的数量是保持不变的。所有提供的数据都使用两个平均向量作为输入,这样向量的算术属性的稳健性是最高的。改变输入平均向量的数量,在相似性推荐属性方面并没有表现出明显优势。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4448

    浏览量

    90721
  • 机器学习
    +关注

    关注

    66

    文章

    8095

    浏览量

    130519

原文标题:【Reddit今日最火】Lit2Vec图书推荐系统,自动推荐适合你的AI好书!

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    AURIX Development Studio支持在线调试自制的最小系统吗?

    AURIX Development Studio支持在线调试自制的最小系统吗?看到的都是调试英飞凌官方的board,没见到其他的。
    发表于 02-19 07:48

    论文遭首届ICLR拒稿、代码被过度优化,word2vec作者Tomas Mikolov分享背后的故事

    尽管 word2vec 是我被引用最多的论文,但我从未认为它是我最有影响力的项目。实际上,word2vec 代码最初只是我之前项目 RNNLM 的一个子集,我感觉 RNNLM 很快就被人们遗忘了。但在我看来,它应该和 AlexNet 一样具有革命性意义。
    的头像 发表于 12-18 16:51 371次阅读
    论文遭首届ICLR拒稿、代码被过度优化,<b class='flag-5'>word2vec</b>作者Tomas Mikolov分享背后的故事

    求助,如何自制ST-LINK V2

    如何自制ST-link V2
    发表于 11-02 08:21

    看完本篇,帮你纠正错误的去耦方法

    看完本篇,帮你纠正错误的去耦方法
    的头像 发表于 10-26 15:22 242次阅读
    看完本篇,<b class='flag-5'>帮你</b>纠正错误的去耦方法

    RFID微型图书馆设备在智慧图书馆中的作用

    随着RFID技术的逐渐普及,各行各业都引入了RFID技术,智慧图书馆也已成为图书馆的管理新趋势。RFID自主借还书机、RFID安全门禁、RFID智能微型图书馆等设备在智慧图书馆中扮演着
    的头像 发表于 10-11 17:55 310次阅读
    RFID微型<b class='flag-5'>图书</b>馆设备在智慧<b class='flag-5'>图书</b>馆中的作用

    如何使用Python读取写入Word文件

    01 准备 Python 是一种通用编程语言,也可以用于处理 Microsoft Word 文件。在本文中,我将向你介绍如何使用 Python 和 python-docx 库读取、写入和操作
    的头像 发表于 09-27 17:03 1431次阅读

    transformer原理解析

    这些embedding可以使用谷歌Word2vec (单词的矢量表示) 找到。在我们的数值示例中,我们将假设每个单词的embedding向量填充有 (0和1) 之间的随机值。
    的头像 发表于 09-06 14:44 704次阅读
    transformer原理解析

    基于窄带物联网的图书馆座位智能管理系统设计

    针对图书馆座位使用效率较低的问题,设计了一款基于窄带物联网的图书馆座位智能管理系统,本系统通过微控制器及热释电红外传感器,以非接触式、主动实时采集
    发表于 08-21 11:10 296次阅读
    基于窄带物联网的<b class='flag-5'>图书</b>馆座位智能管理<b class='flag-5'>系统</b>设计

    C语言程序设计之图书管理系统

    创建一个图书管理系统。假设图书管理系统中仅仅包含图书的书名和编号和作者等信息。程序的运行效果如图1.0所示,选择任意菜单后,实现相应功能。
    发表于 08-21 09:33 3次下载

    C语言程序设计之图书信息管理系统

    设计“图书信息管理系统”要求: 图书信息包括:书号、书名、作者、价格等。使之提供以下功能:(1) 系统以菜单方式工作。(2) 图书信息录入功
    发表于 08-21 09:29 2次下载

    基于STM32的窄带物联网图书馆座位智能管理系统

    针对图书馆座位使用效率较低的问题,设计了一款基于窄带物联网的图书馆座位智能管理系统,本系统通过微控制器及热释电红外传感器,以非接触式、主动实时采集
    的头像 发表于 08-01 00:46 355次阅读
    基于STM32的窄带物联网<b class='flag-5'>图书</b>馆座位智能管理<b class='flag-5'>系统</b>

    RFID技术在智慧图书馆的应用优势

    随着RFID技术的成熟,RFID技术的应用也越来越广泛,尤其是在图书馆领域,RFID的系统化运用可以改变图书馆的整个工作流程以及管理服务模式,使图书馆自动化得到推进发展,服务功能进一步
    的头像 发表于 06-19 12:28 423次阅读

    PyTorch教程-15.6. 子词嵌入

    中,一个名词可能有多达 15 种格。在语言学中,形态学研究词的形成和词的关系。然而,word2vec 和 GloVe 都没有探索单词的内部结构。 15.6.1。fastText 模型¶ 回想一下单词在 word2vec 中是如何表示的。在skip-gram模型和连
    的头像 发表于 06-05 15:44 186次阅读

    PyTorch教程-15.4. 预训练word2vec

    15.4. 预训练word2vec¶ Colab [火炬]在 Colab 中打开笔记本 Colab [mxnet] Open the notebook in Colab Colab
    的头像 发表于 06-05 15:44 203次阅读
    PyTorch教程-15.4. 预训练<b class='flag-5'>word2vec</b>

    PyTorch教程15.4之预训练word2vec

    电子发烧友网站提供《PyTorch教程15.4之预训练word2vec.pdf》资料免费下载
    发表于 06-05 10:58 0次下载
    PyTorch教程15.4之预训练<b class='flag-5'>word2vec</b>