Graph + AI 中国峰会火热报名中,点击探索图分析更多可能! 了解详情
写点什么

鸟枪换炮,如何在推荐中发挥 AI Lab 开源中文词向量的威力?

2019 年 8 月 22 日

鸟枪换炮,如何在推荐中发挥AI Lab开源中文词向量的威力?

本文来自“深度推荐系统”专栏,这个系列将介绍在深度学习的强力驱动下,给推荐系统工业界所带来的最前沿的变化。本文则结合作者在工作中的经验总结,着重于介绍在推荐系统中如何使用腾讯 AI Lab 开源的中文词向量。


近年来,深度学习技术在自然语言处理领域中得到了广泛应用。用深度学习技术来处理自然语言文本,离不开文本的向量化,即把一段文本转化成一个 n 维的向量。在当前“万物皆可 embedding”的思想领导下,词向量既是 NLP 领域中一个非常基础的工具,也是推荐、广告等业务场景中用于召回以及排序等阶段的简单且实用的核武器,主要用于进行语义相似度度量等。


词向量的核心是 word2vec[1],相应原理介绍不是本文介绍的重点。常用的训练工具有 gensim,fasttext 等,一般的训练步骤包括:收集语料 --> 文本过滤 --> 分词 --> 去除停用词 --> 训练模型。


目前,针对英语环境,工业界和学术界已发布了一些高质量的词向量数据,并得到了广泛的使用和验证。其中较为知名的有谷歌公司基于 word2vec 算法[1]、斯坦福大学基于 GloVe 算法[2]、Facebook 基于 fastText 项目[3]发布的数据等。然而,目前公开可下载的中文词向量数据还比较少,并且数据的词汇覆盖率有所不足,


腾讯 AI Lab 开源中文词向量

腾讯 AI Lab 采用自研的 Directional Skip-Gram (DSG)算法 [4] 作为词向量的训练算法。DSG 算法基于基本的 Skip-Gram,在文本窗口中词对共现关系的基础上,额外考虑了词对的相对位置,以提高词向量语义表示的准确性。


数据简介:mp.weixin.qq.com/s/2Sto


数据下载地址:ai.tencent.com/ailab/nl


索引词库大小:800w;词向量维度:200


如何在推荐中使用开源词向量

在推荐系统的基于内容召回策略中,一般需要根据用户已经点击过的文章所包含的 tag 词或者主题,为用户推荐与点击历史中最相似的文章。其中有一种做法就是从文章中抽取 T 个 tag 相应的词向量来表示这篇文章的文章向量(如 vec_doc = w1 * vec_t1 + w2 * vec_t2 + …,这里 w1,w2 是文章中 tag 词相应的权重);然后,根据用户的点击历史计算文章向量的相似度,取 topk 个返回。下面主要实际业务场景中简单的使用步骤:


  • 向量裁剪:从腾讯 AI Lab 官网下载下来的原始词向量库比较大,16G 并且包含大量的停用词。这里可首先计算自己业务场景的 tag 库与这份开源中文自己向量的 tag 集合之间的交集得到裁剪后的向量库。

  • 加载词向量:可以使用 gensim 进行加载。可以参考 gensim 使用手册:radimrehurek.com/gensim


from gensim.models.word2vec import KeyedVectorswv_from_text = KeyedVectors.load_word2vec_format('Tencent_AILab_ChineseEmbedding.txt', binary=False)
复制代码


  • 部分测试数据


model=wv_from_text.wv
print(model.most_similar("如懿传"))[('海上牧云记', 0.8060665130615234), ('孤芳不自赏', 0.7940512299537659), ('醉玲珑', 0.7932543754577637), ('凰权', 0.7888569831848145), ('古装剧', 0.7873178720474243), ('琅琊榜2', 0.7863854765892029), ('延禧攻略', 0.7858327031135559), ('那年花开月正圆', 0.7804251909255981), ('大剧', 0.7796347737312317), ('凤囚凰', 0.7741515040397644)]
print(model.similarity("郭靖","黄蓉"))0.9186713635202067
print(model.n_similarity(["中国","北京"],["俄罗斯","莫斯科"]))0.6441469472853117
print(model.doesnt_match(["洪七公","王重阳","郭靖","黄药师"]))王重阳
复制代码


工业实际应用注意事项

实际使用中我们发现业务场景的 tag 覆盖率与文章覆盖率都有极大比例的提升。同时也带来了业务 CTR 的明显提升。


  • 总体老说腾讯 AI Lab 开源的这份中文词向量的覆盖度比较高,精度也比较高。但是词向量里含有大量停用词,导致文件比较大加载速度较慢(数分钟),而且内存消耗较大,实际使用时根据场景需要裁剪以节省性能;

  • 根据不同领域的情况,有可能某些特定垂直领域的词语之间的相关性计算不是特别准,需要根据业务场景需要加入相应的语料进行增量训练后再使用;

  • 另外,随着时间的推移会不断出现新词,物名,人名等,就需要重新训练模型。如果后期 AI Lab 不再更新维护这份词向量的话,则需要自己进行维护迭代升级。


参考文献

  1. Distributed Representations of Words and Phrases and their Compositionality

  2. GloVe: Global Vectors for Word Representation

  3. Enriching Word Vectors with Subword Information

  4. Yan Song, Shuming Shi, Jing Li, and Haisong Zhang. Directional Skip-Gram: Explicitly Distinguishing Left and Right Context for Word Embeddings. NAACL 2018


本文授权转载自知乎专栏“深度推荐系统”。原文链接:https://zhuanlan.zhihu.com/p/64385839


2019 年 8 月 22 日 08:057919

评论

发布
暂无评论
发现更多内容

高防云服务器与云服务器的区别以及如何去更好的选择?

九河云安全

刘擎:如何在迷失中找到自我?

石云升

哲学 自我 8月日更

学了阿里P8级架构师的7+1+1落地项目,万字长文!

Java 程序员 后端

Linux-Vim 编辑器和恢复 ext4 下误删除文件-Xmanager 工具

学神来啦

vim Linux 学习 运维

模块九毕设

c

架构实战营

学会这十招,轻松搜索github优质项目

Java架构师迁哥

课余时间学点python(一)Python基础之了解,下载,使用

ベ布小禅

8月日更

Apache APISIX 在移动云的应用

Apache APISIX 中国社区

开源 APISIX

多数元素

Memorys

Java 面试 算法

Apache ShardingSphere:由开源驱动的分布式数据库中间件生态

SphereEx

数据库 开源

IE 退出后,苹果 Safari 成为了开发者最讨厌的浏览器?

百度开发者中心

产品 最佳实践 开发者 方法论 浏览器

Vue进阶(幺柒贰):应用 @fullcalendar/vue 实现日程日历

No Silver Bullet

Vue 8月日更 Fullcalendar

已获千赞,进阶学习资料!

Java 程序员 后端

阿里云 Centos7安装ssh+nginx+mysql 傻瓜式教程

九河云安全

开发者进阶宝典,HarmonyOS 职业认证全奉上

科技汇

Nginx 内存池似懂非懂?一文带你看清高性能服务器内存池

Linux服务器开发

nginx Linux服务器开发 Linux后台开发 高性能服务器 内存池

香港云服务器的运行原理以及是微小创业公司的最具性价比的选择

九河云安全

Vue进阶(幺玖肆):VantUI 实现 Dialog 弹框动态显示 message

No Silver Bullet

Vue eCharts 8月日更

宅家36天咸鱼翻身入职腾讯,看完这一篇就够了!

Java 程序员 后端

DBA:这有一份对接NBU备份故障排除指南,请查收!

华为云开发者社区

故障 DWS 备份 NBU NetBackup

书单 | 7月畅销新书情报,看谁是最大黑马

博文视点Broadview

jackson1处理特殊字符有什么问题?

BUG侦探

json Java 开发 jackson特殊字符

学习Java开发的步骤,先睹为快

Java 程序员 后端

这套Github上40K+star面试笔记,可以帮你搞定95%以上的Java面试

Crud的程序员

Java spring 编程 架构

架构实战训练营存储架构设计

Clarke

带你彻底搞懂Java启动速度优化!全网独家首发!

Java 程序员 后端

勒索软件、网络钓鱼、零信任和网络安全的新常态

九河云安全

通过EasyRecovery如何恢复被永久删除的音频?

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

实战SpringCloud通用请求字段拦截处理,成功入职腾讯

Java 程序员 后端

PostgreSQL如何查找某一事务中的完整SQL

Qunar技术沙龙

sql postgresql 运维 dba

基于ECS搭建FTP服务

若尘

阿里云 ftp服务 8月日更

鸟枪换炮,如何在推荐中发挥AI Lab开源中文词向量的威力?-InfoQ