如何解决词表维度大,softmax计算量大导致的word2vec计算量大的问题?

weixin_28743657 2022-01-13 11:20:34

如何解决词表维度大,softmax计算量大导致的word2vec计算量大的问题? 

...全文
2107 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38498942 2022-01-13
  • 打赏
  • 举报
回复 1

1、层次softmax;把N个多分类问题变成logn个二分类问题,可以将softmax转换成sigmoid函数
2、高频词抽样+负采样,将常见的单词组合或者词组作为单个“word”来处理;对高频词单词进行抽样来减少训练样本个数;对优化目标采用“negative sampling”方法,这样每个训练样本的训练只会更新一小部分的模型权重,从而降低计算负担

【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的竞赛项目学习资料,作为参考学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 云移杯-景区口碑评价分值预测初赛第9源码+学习说明.zip ## 任务 根据每个用户的评论,预测他们对景区的情感值(1~5)。 ## 思路 1. 分类问题:通过分类器学习评论与情感值的复杂映射关系。 2. 回归问题:情感值实际是有先后等级关系,因此可以采用回归大法,直接预测。 注意:分类可以采用softmax多分的手段,实测效果很差。因此,我最终还是采用了回归大法。 ## 特征 特征很重要,自然语言处理作为非结构化数据的代表需要处理成计算机能够认识的语言,才能送入分类器来学习。首先需要对中文评论进行分词,此处采用两种开源分词: - 结巴分词,pyhton版本,可直接在python处理。 - hankcs分词,java版本,NLP大神的开源大作,链接如下:https://github.com/hankcs/HanLP 分词之后,有两种处理手段: 1. 把每个词当作一个标签,进行one-hot-code编码,也就是bag of words,变成一个稀疏矩阵,采用ridge or lasso等LR模型进行学习。 2. word2vec,该方法能够避免one-hot-code编码的稀疏性,且可以计算每个词之间的距离,得到近义词,反义词等。当然它还不仅如此,比如:king - man + woman = queen 针对第一种bag of words得到每个单词对应的标签,比如: 喜欢 -> 23, 不喜欢 -> 24, 杭州 -> 68,注意在进行标记时,我是根据每个词出现的频率来打标签的,这里可以简单理解为"杭州"出现的频率 > "不喜欢"出现的频率 > "喜欢"出现的频率 ### 统计特征 根据情感值标签,统计每个词出现的频次,从大到小排序: 1. label_1: 不认 大众化 斑斑驳驳 过团 找罪 船下 双倍 透顶 一百 误导 差价 一片狼藉 夸耀 太矮 再行 倒闭 值不值 谁家 三十块 明教 质... 2. label_2: 小得 望了望 五毛钱 欲望 关了 形同虚设 多钱 无法比拟 次数 脏乱差 差太多 人多车 还花 金领 佳音 室内环境 宰死 王小二 帮到... 3. label_3: 聊胜于无 名声大噪 兵谏亭 超强 不太值 好深 耗时间 白跑一趟 慈城 做礼拜 请问 体会出 景點 看提 啥子 金融机构 亦昌冶坊 可不... 4. label_4: 显贵 古庙 菽庄花园 没钱 门市 总归 明月山 土家族 早年 天主教堂 虎丘 桥边 紫藤 九门 麋鹿 兴坪 冰挂 古装 偷偷 留着 一探... 5. label_5: 叩拜 海鲜 热播 泰国 环岛 只选 藏兵 广州市区 亲眼看到 妃子 铺满 千奇百怪 水底 大会堂 内景 西域 忘不掉 透明 加深 慈禧... 对于每个情感值标签,出现词的集合是不一样的,简单统计它们的频次之后,可取topK的词进行离散化,比如由label_1构成的top5词集合为{不认,大众化,斑斑驳驳 ,过团,找罪},接着针对每一条评论,如果这些词出现在这条评论里,则为1,否则为0,对应能够生成5个特征。label_2至label_5同理。 ### 地点特征(/java/NLP.java) 往往景区差评成群聚现象,好的地方大都好评,差的地方整体呈现脏乱差现象,因此: 1. 取整个词料库top100的地点进行离散化 2. 差评景区离散化 ### 情绪窗口(/features/feature_extract.py) 采用snownlp做情绪预测,输入一条评论能够得到(0~1)之间的情感值,越接近1情感越积极。直接做整条评论的情感值特征提取效果不佳,采用如下trick: - 固定一个情感窗口,如窗口大小为2,则根据评论"我 不 喜欢 这个 地方",能够得到【我不】,【不喜欢】,【喜欢这个】,【这个地方】四条独立的组合,取情感值的最大,最小,均值,能够有效提取情感值较差的词组合。 ### tf-idf 如果单纯的根据频次统计词集合,会出现大无意义的词,如{的,是}等等这些词会占据绝大部分,因此可以借助停用词表来过滤这些无意义的词。不过实测效果不好,这需要一个很强大的停用词表,而每种NLP任务的停用词表千变万化,一套大而全的停用词往往得不到一个针对性的效果。 解决思路:采用关键词提取法,tf-idf会对一条评论的每个词进行打分,根据打分进行排序,就能得到topK的关键词集合。核心思想如下:首先一个词在该条评论中出现的次数与该分成正比,这样某个词
在本项目中,我们将探讨如何使用RNN(循环神经网络)进行自然语言处理(NLP)任务,特别是针对京东评论的情感分析。RNN是一种适用于处理序列数据的深度学习模型,尤其在文本理解方面表现出色。这里,我们拥有一个完整的解决方案,包括源代码、训练数据集以及停用词表,这些都为理解和应用RNN提供了良好的基础。 让我们深入了解RNN的工作原理。RNN是一种具有循环结构的神经网络,能够通过内部状态捕获序列信息。每个时间步,RNN接收输入并更新其状态,这个状态可以传递到下一个时间步,形成一种“记忆”机制。这种设计使得RNN能够处理变长的输入序列,如句子或段落,这对于理解和分析文本非常有用。 在情感分析任务中,目标是判断一段文本的情感倾向,例如正面、负面或中性。为了应用RNN,我们需要对原始评论进行预处理,包括分词、去除停用词(如“的”、“是”等常见但不携带太多信息的词汇)、词干提取和词向化。数据集中的评论会被转化为适合RNN输入的格式,如使用词嵌入(如Word2Vec或GloVe)将每个词转换为固定维度的向。 接下来,我们构建RNN模型。常见的RNN结构包括简单RNN、LSTM(长短时记忆网络)和GRU(门控循环单元)。考虑到文本的复杂性和梯度消失问题,通常选择LSTM或GRU,它们引入了额外的门控机制来更好地捕捉长期依赖。模型会包含一个或多个RNN层,可能还会包含全连接层和激活函数(如softmax,用于分类输出)。 训练过程包括前向传播、计算损失、反向传播优化器更新权重。在这个项目中,可能会使用如Adam或SGD的优化器,损失函数可能是交叉熵。在训练期间,我们会定期评估模型性能,并可能采用验证集调整超参数,防止过拟合。 数据集在训练过程中起着关键作用。京东评论数据集包含了大的用户评价,这些评价反映了产品的真实用户体验,为模型提供丰富的学习素材。停用词表的使用有助于减少不相关词汇对模型的影响,提高模型对关键信息的聚焦能力。 完成训练后,模型可用于预测新的评论情感。这不仅对电商平台的产品推荐系统有价值,也可以帮助商家理解消费者反馈,改进产品和服务。 这个项目展示了如何利用RNN在NLP领域的实际应用,提供了从数据预处理到模型构建、训练和评估的完整流程。对于想要深入理解和实践深度学习在文本分类上的应用,尤其是RNN的初学者,这是一个非常有价值的资源。
在本项目中,我们将探讨如何使用RNN(循环神经网络)进行自然语言处理(NLP)任务,特别是针对京东评论的情感分析。RNN是一种适用于处理序列数据的深度学习模型,尤其在文本理解方面表现出色。这里,我们拥有一个完整的解决方案,包括源代码、训练数据集以及停用词表,这些都为理解和应用RNN提供了良好的基础。 让我们深入了解RNN的工作原理。RNN是一种具有循环结构的神经网络,能够通过内部状态捕获序列信息。每个时间步,RNN接收输入并更新其状态,这个状态可以传递到下一个时间步,形成一种“记忆”机制。这种设计使得RNN能够处理变长的输入序列,如句子或段落,这对于理解和分析文本非常有用。 在情感分析任务中,目标是判断一段文本的情感倾向,例如正面、负面或中性。为了应用RNN,我们需要对原始评论进行预处理,包括分词、去除停用词(如“的”、“是”等常见但不携带太多信息的词汇)、词干提取和词向化。数据集中的评论会被转化为适合RNN输入的格式,如使用词嵌入(如Word2Vec或GloVe)将每个词转换为固定维度的向。 接下来,我们构建RNN模型。常见的RNN结构包括简单RNN、LSTM(长短时记忆网络)和GRU(门控循环单元)。考虑到文本的复杂性和梯度消失问题,通常选择LSTM或GRU,它们引入了额外的门控机制来更好地捕捉长期依赖。模型会包含一个或多个RNN层,可能还会包含全连接层和激活函数(如softmax,用于分类输出)。 训练过程包括前向传播、计算损失、反向传播优化器更新权重。在这个项目中,可能会使用如Adam或SGD的优化器,损失函数可能是交叉熵。在训练期间,我们会定期评估模型性能,并可能采用验证集调整超参数,防止过拟合。 数据集在训练过程中起着关键作用。京东评论数据集包含了大的用户评价,这些评价反映了产品的真实用户体验,为模型提供丰富的学习素材。停用词表的使用有助于减少不相关词汇对模型的影响,提高模型对关键信息的聚焦能力。 完成训练后,模型可用于预测新的评论情感。这不仅对电商平台的产品推荐系统有价值,也可以帮助商家理解消费者反馈,改进产品和服务。 这个项目展示了如何利用RNN在NLP领域的实际应用,提供了从数据预处理到模型构建、训练和评估的完整流程。对于想要深入理解和实践深度学习在文本分类上的应用,尤其是RNN的初学者,这是一个非常有价值的资源。

2,852

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧