w*****h 发帖数: 423 | 1 在公司做sentiment analysis,
现在的做法是这样
首先在大概几万句sentences中训练出word2vec model
然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing
, 用neural net作为classifier
类别三类,positive, neutral, negative
之前是公司的一个印度人在负责,达到63% accuracy
我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚
至80%
现在我想到思路有几个
1. 做semi-supervise, 没有label的数据有的是
2. unsupervise learning, 比如用autoencoder来initialize neural net
3. GBM or Random forest? 觉得这几个不可能超过我现在这个了
来这里希望得到一些启发,谢啦! |
m******r 发帖数: 1033 | |
g****t 发帖数: 31659 | 3 不如你从测试的角度想?
一个accuracy 指标就是一个思路。最好不要跟别人定的指标。跟着别人定的指标打命
中率就是奴隶。
打命中率的终极办法是自己定一个指标,和自己的程序互相绕。最后达到骗住一个是一
个的目的。
简单说,你找个合理的,可以量化的,说的过去的办法,
把你失败的例子定义成no conclusion就完了。并不是所有的句子都可以分成三类的。
激励不足则无法分辨系统内部模态。这些类似算卦的话要学会... |
w*****h 发帖数: 423 | 4 python
【在 m******r 的大作中提到】 : 你们用什么语言做的?
|
w*****h 发帖数: 423 | 5 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让business那边
的人重新tag,竟然不少比例和上次的不一样。
不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
ps. “激励不足则无法分辨系统内部模态”,haha, 这句话好,咋翻译成英文呢?
【在 g****t 的大作中提到】 : 不如你从测试的角度想? : 一个accuracy 指标就是一个思路。最好不要跟别人定的指标。跟着别人定的指标打命 : 中率就是奴隶。 : 打命中率的终极办法是自己定一个指标,和自己的程序互相绕。最后达到骗住一个是一 : 个的目的。 : 简单说,你找个合理的,可以量化的,说的过去的办法, : 把你失败的例子定义成no conclusion就完了。并不是所有的句子都可以分成三类的。 : 激励不足则无法分辨系统内部模态。这些类似算卦的话要学会...
|
g****t 发帖数: 31659 | 6 Excitation persistence? 真有类似的东西的。60年代可能就有了。你的领导无非是要
个好看的东西卖给他的领导。其实就是矩阵近似不可逆
公司不是你家的,我觉得不要追求数学物理模型以及算法方面的突破。你要真想做,分
析的路数例如把数据分成子类,一类类看看为什么有的类效果好,有的不好。等于误差
分析。
cs的路数就是
做一个多种DL互相换的软件系统。那么多DL框架,对你的特定问题,做个
方便的工具替换着来回试,够你做半年了。然后取个好名字,叫做互补多向DL
: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让
business那边
: 的人重新tag,竟然不少比例和上次的不一样。
: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话
好,咋翻译成英文
呢?
【在 w*****h 的大作中提到】 : 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让business那边 : 的人重新tag,竟然不少比例和上次的不一样。 : 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。 : ps. “激励不足则无法分辨系统内部模态”,haha, 这句话好,咋翻译成英文呢?
|
g****t 发帖数: 31659 | 7 BTW,你领导对你还是不错的,知道往别的部门找找原因。是不是老中?
到时候你搞不定,领导就说数据统计不稳定,不是well defined的。搞定就是你立功了。
如果你领导信得过。不如你做些数据自动tag的tool什么的,
去tag组做个小领导完事。这样你领导完就可以晋级大领导。
: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让
business那边
: 的人重新tag,竟然不少比例和上次的不一样。
: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话
好,咋翻译成英文
呢?
【在 w*****h 的大作中提到】 : 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让business那边 : 的人重新tag,竟然不少比例和上次的不一样。 : 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。 : ps. “激励不足则无法分辨系统内部模态”,haha, 这句话好,咋翻译成英文呢?
|
w*****h 发帖数: 423 | 8 leader确实中国人,
不过还是得拿成绩说话阿,靠leader照顾不是长久之计
了。
【在 g****t 的大作中提到】 : BTW,你领导对你还是不错的,知道往别的部门找找原因。是不是老中? : 到时候你搞不定,领导就说数据统计不稳定,不是well defined的。搞定就是你立功了。 : 如果你领导信得过。不如你做些数据自动tag的tool什么的, : 去tag组做个小领导完事。这样你领导完就可以晋级大领导。 : : : 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让 : business那边 : : 的人重新tag,竟然不少比例和上次的不一样。 : : 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。 : : ps. “激励不足则无法分辨系统内部模态”,haha, 这句话
|
w***g 发帖数: 5958 | 9 你想到的思路都没有问题。但是都太incremental不够糙快猛。
我自己觉得,你的bottleneck是在word2vec和sentence to vector
这个大框架上。不知道你具体sentence to vector是怎么做的,
但是如果是变成固定维数的vector,那就比较肯定是一个可以
有所突破的bottleneck。你可以试下基于CNN或者RNN的model。
你在这里找找看有没有能用的代码:
https://nlp.stanford.edu/sentiment/
不过在这之前,我建议试下xgboost。固定维度的数据分类,标准
做法就是xgboost。注意树的深度不要太高,2,3,4试一下就差不多了。
我觉得这个能帮你从68%提高到70%。
semisupervised learning实战非常risky,轻易不要浪费时间在上面。
上CNN/RNN,我估计做好了能到75%以上。80%很可能超过了数据
本身的难度。
还有,你让business重新tag,如果差异可以量化,这个是一个非常
好的指标。如果让人做都有多少多少差异,就别指望机器能做的更好了。
testing
【在 w*****h 的大作中提到】 : 在公司做sentiment analysis, : 现在的做法是这样 : 首先在大概几万句sentences中训练出word2vec model : 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing : , 用neural net作为classifier : 类别三类,positive, neutral, negative : 之前是公司的一个印度人在负责,达到63% accuracy : 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚 : 至80% : 现在我想到思路有几个
|
w*****h 发帖数: 423 | 10 信息量很大,我回去试试再来板上汇报
多谢wdong!
【在 w***g 的大作中提到】 : 你想到的思路都没有问题。但是都太incremental不够糙快猛。 : 我自己觉得,你的bottleneck是在word2vec和sentence to vector : 这个大框架上。不知道你具体sentence to vector是怎么做的, : 但是如果是变成固定维数的vector,那就比较肯定是一个可以 : 有所突破的bottleneck。你可以试下基于CNN或者RNN的model。 : 你在这里找找看有没有能用的代码: : https://nlp.stanford.edu/sentiment/ : 不过在这之前,我建议试下xgboost。固定维度的数据分类,标准 : 做法就是xgboost。注意树的深度不要太高,2,3,4试一下就差不多了。 : 我觉得这个能帮你从68%提高到70%。
|
|
|
m****o 发帖数: 182 | 11 先用bidirectional lstm + glove 测一下baseline吧,之后可以考虑做dependency
parsing + tree lstm。 |
T*******x 发帖数: 8565 | 12 请教xgboost和neural network比有没有任何优势?
:你想到的思路都没有问题。但是都太incremental不够糙快猛。
:我自己觉得,你的bottleneck是在word2vec和sentence to vector |
w***g 发帖数: 5958 | 13 这两个用来解决不同的问题.
固定唯独的特征数据(比如病人的年龄性别身高体重等各种参数), 用xgboost效果比较
好.
图象声音等从传感器获得的数据, 用neural network比较好.
xgboost能做的, 非要用neural network调到同样的效果, 也应该能调到, 就是麻烦点.
【在 T*******x 的大作中提到】 : 请教xgboost和neural network比有没有任何优势? : : :你想到的思路都没有问题。但是都太incremental不够糙快猛。 : :我自己觉得,你的bottleneck是在word2vec和sentence to vector
|
m****o 发帖数: 182 | 14 tensorflow应该不久也会推出gradient boosting,到时候就不用几个库之间折腾来折
腾去了。
点.
【在 w***g 的大作中提到】 : 这两个用来解决不同的问题. : 固定唯独的特征数据(比如病人的年龄性别身高体重等各种参数), 用xgboost效果比较 : 好. : 图象声音等从传感器获得的数据, 用neural network比较好. : xgboost能做的, 非要用neural network调到同样的效果, 也应该能调到, 就是麻烦点.
|
s********k 发帖数: 6180 | 15 训练量看起来可能有点少,除非很专业领域,直接试一下glove或者Word2vec的库看看
行不行
testing
【在 w*****h 的大作中提到】 : 在公司做sentiment analysis, : 现在的做法是这样 : 首先在大概几万句sentences中训练出word2vec model : 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing : , 用neural net作为classifier : 类别三类,positive, neutral, negative : 之前是公司的一个印度人在负责,达到63% accuracy : 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚 : 至80% : 现在我想到思路有几个
|
s********k 发帖数: 6180 | 16 另外你的NN是什么样的?就是几层的全连接的话,试一下上LSTM,就用最简单的
seq2seq model
testing
【在 w*****h 的大作中提到】 : 在公司做sentiment analysis, : 现在的做法是这样 : 首先在大概几万句sentences中训练出word2vec model : 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing : , 用neural net作为classifier : 类别三类,positive, neutral, negative : 之前是公司的一个印度人在负责,达到63% accuracy : 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚 : 至80% : 现在我想到思路有几个
|
s********k 发帖数: 6180 | 17 其实xgboost好像效率不如软家那个lightGBM
【在 m****o 的大作中提到】 : tensorflow应该不久也会推出gradient boosting,到时候就不用几个库之间折腾来折 : 腾去了。 : : 点.
|
m*****e 发帖数: 47 | 18 "首先在大概几万句sentences中训练出word2vec model"
"然后将大概4000个labels的sentences转成vector"
1) My guess is the size of the data not large enough. What's the training
error? If training error < test error and training error is closer to human
error, it is a high variance problem. You can add regularization. But it
probably means the amount of data is not big enough. You can try transfer
learning by using GloVe for example.
2) I would also check the quality of the embeddings. Use a few examples and
see how many of the top 10 words make sense to you. On one project, I got
good results with embeddings trained from 1,000,000 good-quality sentences
written by professionals. Good meaning at least 9 out of 10 of the top
similar words make sense to me. On another project, 80,000 sentences of not
-so-good quality got back garbage results. If your training data sucks, use
pretained embeddings like GloVe.
3) How do you turn sentences into vectors? I would either do doc2vec or
concatenate word embeddings. For the latter case, try 1d CNN or RNN.
Let us know how it turns out. |
T*******x 发帖数: 8565 | 19 谢谢。看来xgboost还是有意义的,我以为都被neural network碾压了。
点.
【在 w***g 的大作中提到】 : 这两个用来解决不同的问题. : 固定唯独的特征数据(比如病人的年龄性别身高体重等各种参数), 用xgboost效果比较 : 好. : 图象声音等从传感器获得的数据, 用neural network比较好. : xgboost能做的, 非要用neural network调到同样的效果, 也应该能调到, 就是麻烦点.
|
s********k 发帖数: 6180 | 20 对于tabular类的data,GBM各种类型都不错,但是这个例子还是raw data 的text,估
计还是NN比较好一点吧,第一个感觉是训练数据不够,比起测试数据用来训练word2vec
太少了。如果不是专业领域直接上Glove之类看看。第二就是NN模型用个LSTM比如
seq2seq看看
【在 T*******x 的大作中提到】 : 谢谢。看来xgboost还是有意义的,我以为都被neural network碾压了。 : : 点.
|
|
|
w***g 发帖数: 5958 | 21 我去学习学习
【在 s********k 的大作中提到】 : 其实xgboost好像效率不如软家那个lightGBM
|
w*****h 发帖数: 423 | 22 正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
这还是在没有做ensemble的情况下, 太赞了。
再请教wdong和楼上几位,有必要再上RNN吗?
【在 w***g 的大作中提到】 : 你想到的思路都没有问题。但是都太incremental不够糙快猛。 : 我自己觉得,你的bottleneck是在word2vec和sentence to vector : 这个大框架上。不知道你具体sentence to vector是怎么做的, : 但是如果是变成固定维数的vector,那就比较肯定是一个可以 : 有所突破的bottleneck。你可以试下基于CNN或者RNN的model。 : 你在这里找找看有没有能用的代码: : https://nlp.stanford.edu/sentiment/ : 不过在这之前,我建议试下xgboost。固定维度的数据分类,标准 : 做法就是xgboost。注意树的深度不要太高,2,3,4试一下就差不多了。 : 我觉得这个能帮你从68%提高到70%。
|
T*******x 发帖数: 8565 | 23 你这个accuracy是用CNN还是用xgboost得到的?
【在 w*****h 的大作中提到】 : 正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%, : 这还是在没有做ensemble的情况下, 太赞了。 : 再请教wdong和楼上几位,有必要再上RNN吗?
|
w*****h 发帖数: 423 | 24 CNN
可能有点误解,我是说CNN训练的轮数还没达到设定的epoch值, 它还在训练中,但目
前的model已经有70% accuracy了
xgboost我也试过了,和NN差不多
【在 T*******x 的大作中提到】 : 你这个accuracy是用CNN还是用xgboost得到的?
|
w***g 发帖数: 5958 | 25 如果是几十上百个词的短文本,我估计rnn不会有提高(NLP专家请指正)。你有时间还
不如试试data augmentation, 比如随机增减几个词,同义词替换啥的。不过你现在最
重要的是establish问题复杂度,就是上次说的对比不同人的区别,这样知道什么时候
停止优化。不然老板拍脑袋定指标,终有一天会把你逼死。
:正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
: |
T*******x 发帖数: 8565 | 26 这个高。
【在 w***g 的大作中提到】 : 如果是几十上百个词的短文本,我估计rnn不会有提高(NLP专家请指正)。你有时间还 : 不如试试data augmentation, 比如随机增减几个词,同义词替换啥的。不过你现在最 : 重要的是establish问题复杂度,就是上次说的对比不同人的区别,这样知道什么时候 : 停止优化。不然老板拍脑袋定指标,终有一天会把你逼死。 : : :正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%, : :
|
b**k 发帖数: 268 | 27 又学习到了 膜拜大牛
【在 w***g 的大作中提到】 : 如果是几十上百个词的短文本,我估计rnn不会有提高(NLP专家请指正)。你有时间还 : 不如试试data augmentation, 比如随机增减几个词,同义词替换啥的。不过你现在最 : 重要的是establish问题复杂度,就是上次说的对比不同人的区别,这样知道什么时候 : 停止优化。不然老板拍脑袋定指标,终有一天会把你逼死。 : : :正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%, : :
|
w*****h 发帖数: 423 | 28 在公司做sentiment analysis,
现在的做法是这样
首先在大概几万句sentences中训练出word2vec model
然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing
, 用neural net作为classifier
类别三类,positive, neutral, negative
之前是公司的一个印度人在负责,达到63% accuracy
我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚
至80%
现在我想到思路有几个
1. 做semi-supervise, 没有label的数据有的是
2. unsupervise learning, 比如用autoencoder来initialize neural net
3. GBM or Random forest? 觉得这几个不可能超过我现在这个了
来这里希望得到一些启发,谢啦! |
m******r 发帖数: 1033 | |
g****t 发帖数: 31659 | 30 不如你从测试的角度想?
一个accuracy 指标就是一个思路。最好不要跟别人定的指标。跟着别人定的指标打命
中率就是奴隶。
打命中率的终极办法是自己定一个指标,和自己的程序互相绕。最后达到骗住一个是一
个的目的。
简单说,你找个合理的,可以量化的,说的过去的办法,
把你失败的例子定义成no conclusion就完了。并不是所有的句子都可以分成三类的。
激励不足则无法分辨系统内部模态。这些类似算卦的话要学会... |
|
|
w*****h 发帖数: 423 | 31 python
【在 m******r 的大作中提到】 : 你们用什么语言做的?
|
w*****h 发帖数: 423 | 32 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让business那边
的人重新tag,竟然不少比例和上次的不一样。
不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
ps. “激励不足则无法分辨系统内部模态”,haha, 这句话好,咋翻译成英文呢?
【在 g****t 的大作中提到】 : 不如你从测试的角度想? : 一个accuracy 指标就是一个思路。最好不要跟别人定的指标。跟着别人定的指标打命 : 中率就是奴隶。 : 打命中率的终极办法是自己定一个指标,和自己的程序互相绕。最后达到骗住一个是一 : 个的目的。 : 简单说,你找个合理的,可以量化的,说的过去的办法, : 把你失败的例子定义成no conclusion就完了。并不是所有的句子都可以分成三类的。 : 激励不足则无法分辨系统内部模态。这些类似算卦的话要学会...
|
g****t 发帖数: 31659 | 33 Excitation persistence? 真有类似的东西的。60年代可能就有了。你的领导无非是要
个好看的东西卖给他的领导。其实就是矩阵近似不可逆
公司不是你家的,我觉得不要追求数学物理模型以及算法方面的突破。你要真想做,分
析的路数例如把数据分成子类,一类类看看为什么有的类效果好,有的不好。等于误差
分析。
cs的路数就是
做一个多种DL互相换的软件系统。那么多DL框架,对你的特定问题,做个
方便的工具替换着来回试,够你做半年了。然后取个好名字,叫做互补多向DL
: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让
business那边
: 的人重新tag,竟然不少比例和上次的不一样。
: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话
好,咋翻译成英文
呢?
【在 w*****h 的大作中提到】 : 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让business那边 : 的人重新tag,竟然不少比例和上次的不一样。 : 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。 : ps. “激励不足则无法分辨系统内部模态”,haha, 这句话好,咋翻译成英文呢?
|
g****t 发帖数: 31659 | 34 BTW,你领导对你还是不错的,知道往别的部门找找原因。是不是老中?
到时候你搞不定,领导就说数据统计不稳定,不是well defined的。搞定就是你立功了。
如果你领导信得过。不如你做些数据自动tag的tool什么的,
去tag组做个小领导完事。这样你领导完就可以晋级大领导。
: 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让
business那边
: 的人重新tag,竟然不少比例和上次的不一样。
: 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。
: ps. “激励不足则无法分辨系统内部模态”,haha, 这句话
好,咋翻译成英文
呢?
【在 w*****h 的大作中提到】 : 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让business那边 : 的人重新tag,竟然不少比例和上次的不一样。 : 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。 : ps. “激励不足则无法分辨系统内部模态”,haha, 这句话好,咋翻译成英文呢?
|
w*****h 发帖数: 423 | 35 leader确实中国人,
不过还是得拿成绩说话阿,靠leader照顾不是长久之计
了。
【在 g****t 的大作中提到】 : BTW,你领导对你还是不错的,知道往别的部门找找原因。是不是老中? : 到时候你搞不定,领导就说数据统计不稳定,不是well defined的。搞定就是你立功了。 : 如果你领导信得过。不如你做些数据自动tag的tool什么的, : 去tag组做个小领导完事。这样你领导完就可以晋级大领导。 : : : 嗯,我leader基本上就在干这样的事,发现其实有些句子确实不好分,让 : business那边 : : 的人重新tag,竟然不少比例和上次的不一样。 : : 不过本着学习的态度,还是来板上求些意见, 毕竟不是专业学NLP的。 : : ps. “激励不足则无法分辨系统内部模态”,haha, 这句话
|
w***g 发帖数: 5958 | 36 你想到的思路都没有问题。但是都太incremental不够糙快猛。
我自己觉得,你的bottleneck是在word2vec和sentence to vector
这个大框架上。不知道你具体sentence to vector是怎么做的,
但是如果是变成固定维数的vector,那就比较肯定是一个可以
有所突破的bottleneck。你可以试下基于CNN或者RNN的model。
你在这里找找看有没有能用的代码:
https://nlp.stanford.edu/sentiment/
不过在这之前,我建议试下xgboost。固定维度的数据分类,标准
做法就是xgboost。注意树的深度不要太高,2,3,4试一下就差不多了。
我觉得这个能帮你从68%提高到70%。
semisupervised learning实战非常risky,轻易不要浪费时间在上面。
上CNN/RNN,我估计做好了能到75%以上。80%很可能超过了数据
本身的难度。
还有,你让business重新tag,如果差异可以量化,这个是一个非常
好的指标。如果让人做都有多少多少差异,就别指望机器能做的更好了。
testing
【在 w*****h 的大作中提到】 : 在公司做sentiment analysis, : 现在的做法是这样 : 首先在大概几万句sentences中训练出word2vec model : 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing : , 用neural net作为classifier : 类别三类,positive, neutral, negative : 之前是公司的一个印度人在负责,达到63% accuracy : 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚 : 至80% : 现在我想到思路有几个
|
w*****h 发帖数: 423 | 37 信息量很大,我回去试试再来板上汇报
多谢wdong!
【在 w***g 的大作中提到】 : 你想到的思路都没有问题。但是都太incremental不够糙快猛。 : 我自己觉得,你的bottleneck是在word2vec和sentence to vector : 这个大框架上。不知道你具体sentence to vector是怎么做的, : 但是如果是变成固定维数的vector,那就比较肯定是一个可以 : 有所突破的bottleneck。你可以试下基于CNN或者RNN的model。 : 你在这里找找看有没有能用的代码: : https://nlp.stanford.edu/sentiment/ : 不过在这之前,我建议试下xgboost。固定维度的数据分类,标准 : 做法就是xgboost。注意树的深度不要太高,2,3,4试一下就差不多了。 : 我觉得这个能帮你从68%提高到70%。
|
m****o 发帖数: 182 | 38 先用bidirectional lstm + glove 测一下baseline吧,之后可以考虑做dependency
parsing + tree lstm。 |
T*******x 发帖数: 8565 | 39 请教xgboost和neural network比有没有任何优势?
:你想到的思路都没有问题。但是都太incremental不够糙快猛。
:我自己觉得,你的bottleneck是在word2vec和sentence to vector |
w***g 发帖数: 5958 | 40 这两个用来解决不同的问题.
固定唯独的特征数据(比如病人的年龄性别身高体重等各种参数), 用xgboost效果比较
好.
图象声音等从传感器获得的数据, 用neural network比较好.
xgboost能做的, 非要用neural network调到同样的效果, 也应该能调到, 就是麻烦点.
【在 T*******x 的大作中提到】 : 请教xgboost和neural network比有没有任何优势? : : :你想到的思路都没有问题。但是都太incremental不够糙快猛。 : :我自己觉得,你的bottleneck是在word2vec和sentence to vector
|
|
|
m****o 发帖数: 182 | 41 tensorflow应该不久也会推出gradient boosting,到时候就不用几个库之间折腾来折
腾去了。
点.
【在 w***g 的大作中提到】 : 这两个用来解决不同的问题. : 固定唯独的特征数据(比如病人的年龄性别身高体重等各种参数), 用xgboost效果比较 : 好. : 图象声音等从传感器获得的数据, 用neural network比较好. : xgboost能做的, 非要用neural network调到同样的效果, 也应该能调到, 就是麻烦点.
|
s********k 发帖数: 6180 | 42 训练量看起来可能有点少,除非很专业领域,直接试一下glove或者Word2vec的库看看
行不行
testing
【在 w*****h 的大作中提到】 : 在公司做sentiment analysis, : 现在的做法是这样 : 首先在大概几万句sentences中训练出word2vec model : 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing : , 用neural net作为classifier : 类别三类,positive, neutral, negative : 之前是公司的一个印度人在负责,达到63% accuracy : 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚 : 至80% : 现在我想到思路有几个
|
s********k 发帖数: 6180 | 43 另外你的NN是什么样的?就是几层的全连接的话,试一下上LSTM,就用最简单的
seq2seq model
testing
【在 w*****h 的大作中提到】 : 在公司做sentiment analysis, : 现在的做法是这样 : 首先在大概几万句sentences中训练出word2vec model : 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing : , 用neural net作为classifier : 类别三类,positive, neutral, negative : 之前是公司的一个印度人在负责,达到63% accuracy : 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚 : 至80% : 现在我想到思路有几个
|
s********k 发帖数: 6180 | 44 其实xgboost好像效率不如软家那个lightGBM
【在 m****o 的大作中提到】 : tensorflow应该不久也会推出gradient boosting,到时候就不用几个库之间折腾来折 : 腾去了。 : : 点.
|
m*****e 发帖数: 47 | 45 "首先在大概几万句sentences中训练出word2vec model"
"然后将大概4000个labels的sentences转成vector"
1) My guess is the size of the data not large enough. What's the training
error? If training error < test error and training error is closer to human
error, it is a high variance problem. You can add regularization. But it
probably means the amount of data is not big enough. You can try transfer
learning by using GloVe for example.
2) I would also check the quality of the embeddings. Use a few examples and
see how many of the top 10 words make sense to you. On one project, I got
good results with embeddings trained from 1,000,000 good-quality sentences
written by professionals. Good meaning at least 9 out of 10 of the top
similar words make sense to me. On another project, 80,000 sentences of not
-so-good quality got back garbage results. If your training data sucks, use
pretained embeddings like GloVe.
3) How do you turn sentences into vectors? I would either do doc2vec or
concatenate word embeddings. For the latter case, try 1d CNN or RNN.
Let us know how it turns out. |
T*******x 发帖数: 8565 | 46 谢谢。看来xgboost还是有意义的,我以为都被neural network碾压了。
点.
【在 w***g 的大作中提到】 : 这两个用来解决不同的问题. : 固定唯独的特征数据(比如病人的年龄性别身高体重等各种参数), 用xgboost效果比较 : 好. : 图象声音等从传感器获得的数据, 用neural network比较好. : xgboost能做的, 非要用neural network调到同样的效果, 也应该能调到, 就是麻烦点.
|
s********k 发帖数: 6180 | 47 对于tabular类的data,GBM各种类型都不错,但是这个例子还是raw data 的text,估
计还是NN比较好一点吧,第一个感觉是训练数据不够,比起测试数据用来训练word2vec
太少了。如果不是专业领域直接上Glove之类看看。第二就是NN模型用个LSTM比如
seq2seq看看
【在 T*******x 的大作中提到】 : 谢谢。看来xgboost还是有意义的,我以为都被neural network碾压了。 : : 点.
|
w***g 发帖数: 5958 | 48 我去学习学习
【在 s********k 的大作中提到】 : 其实xgboost好像效率不如软家那个lightGBM
|
w*****h 发帖数: 423 | 49 正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
这还是在没有做ensemble的情况下, 太赞了。
再请教wdong和楼上几位,有必要再上RNN吗?
【在 w***g 的大作中提到】 : 你想到的思路都没有问题。但是都太incremental不够糙快猛。 : 我自己觉得,你的bottleneck是在word2vec和sentence to vector : 这个大框架上。不知道你具体sentence to vector是怎么做的, : 但是如果是变成固定维数的vector,那就比较肯定是一个可以 : 有所突破的bottleneck。你可以试下基于CNN或者RNN的model。 : 你在这里找找看有没有能用的代码: : https://nlp.stanford.edu/sentiment/ : 不过在这之前,我建议试下xgboost。固定维度的数据分类,标准 : 做法就是xgboost。注意树的深度不要太高,2,3,4试一下就差不多了。 : 我觉得这个能帮你从68%提高到70%。
|
T*******x 发帖数: 8565 | 50 你这个accuracy是用CNN还是用xgboost得到的?
【在 w*****h 的大作中提到】 : 正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%, : 这还是在没有做ensemble的情况下, 太赞了。 : 再请教wdong和楼上几位,有必要再上RNN吗?
|
|
|
w*****h 发帖数: 423 | 51 CNN
可能有点误解,我是说CNN训练的轮数还没达到设定的epoch值, 它还在训练中,但目
前的model已经有70% accuracy了
xgboost我也试过了,和NN差不多
【在 T*******x 的大作中提到】 : 你这个accuracy是用CNN还是用xgboost得到的?
|
w***g 发帖数: 5958 | 52 如果是几十上百个词的短文本,我估计rnn不会有提高(NLP专家请指正)。你有时间还
不如试试data augmentation, 比如随机增减几个词,同义词替换啥的。不过你现在最
重要的是establish问题复杂度,就是上次说的对比不同人的区别,这样知道什么时候
停止优化。不然老板拍脑袋定指标,终有一天会把你逼死。
:正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%,
: |
T*******x 发帖数: 8565 | 53 这个高。
【在 w***g 的大作中提到】 : 如果是几十上百个词的短文本,我估计rnn不会有提高(NLP专家请指正)。你有时间还 : 不如试试data augmentation, 比如随机增减几个词,同义词替换啥的。不过你现在最 : 重要的是establish问题复杂度,就是上次说的对比不同人的区别,这样知道什么时候 : 停止优化。不然老板拍脑袋定指标,终有一天会把你逼死。 : : :正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%, : :
|
b**k 发帖数: 268 | 54 又学习到了 膜拜大牛
【在 w***g 的大作中提到】 : 如果是几十上百个词的短文本,我估计rnn不会有提高(NLP专家请指正)。你有时间还 : 不如试试data augmentation, 比如随机增减几个词,同义词替换啥的。不过你现在最 : 重要的是establish问题复杂度,就是上次说的对比不同人的区别,这样知道什么时候 : 停止优化。不然老板拍脑袋定指标,终有一天会把你逼死。 : : :正在测试CNN,epoch还没训练完,不过目前的accuracy已经达到70%, : :
|
m*****e 发帖数: 47 | 55 多谢反馈。
想核实一下细节,是用的一维convolution吗?宽度多少? |
t******o 发帖数: 61 | 56 前面说过:不要用神经网络!不要用神经网络!不要用神经网络!
CNN RNN啥的都是需要很多的feature,数据量要大,比如图片那种,全是像素,
feature都差不多,你扔到CNN里一层层BP就能把重要feature弄出来然后performance高。
但是你这个sentiment analysis,有两大原因,导致不能用NN这种暴力方法:
1. 数据量:太小,才几万句;NN在NLP领域唯一比较成功的就是各种embedding,不管
是BOW还是skip-gram,数据量都很大,你算算那些东西展开后,都是2的多少次方;这
个任务里,句子实在太少;
2. NLP里面,feature权重差别大:NLP不像图片,所有feature几乎可以看作都一样,
比如像素;就sentiment来讲,sentiment或者说opinion可能存在于词层面(pos)、短
语层面(chunking)、句子层面(syntax)、甚至段落(semantics);什么NN加
word2vec只能照顾到词层面,顶多一部分短语层面,句子和段落的信息全丢了。
按照前面括号里提到的相关方法提取出feature,然后加入上下文,比如前三后三啥的
,然后放到xgb这种模型里才好。
当然了,按照上面说的把该有的feature提取出来,就算还扔进原来的NN,也还是会比
以前好一些。
NLP很多任务不适合NN的原因在于,你需要基于对linguistics的知识自己去提取
feature,从morphology、syntax、semantics、pragmatics从下到上一层层去找
feature,才能把自然语言的意思找出来。
人类语言表达语义更多是靠语言单位之间的关系,而不是光靠词本身;翻译成machine
learning的黑话,就是不可以有feature independence的假设;这些你需要自己提取的
feature,可以看作是latent variable,全是hidden的,你自己不提出来,model是无
法自己弄出来的。类似于NN这种只能解决feature从多到精的问题,却无法解决feature
从无到有的问题。
testing
【在 w*****h 的大作中提到】 : 在公司做sentiment analysis, : 现在的做法是这样 : 首先在大概几万句sentences中训练出word2vec model : 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing : , 用neural net作为classifier : 类别三类,positive, neutral, negative : 之前是公司的一个印度人在负责,达到63% accuracy : 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚 : 至80% : 现在我想到思路有几个
|
g*********9 发帖数: 1285 | 57 这个为什么不买现成的工具?你自己做的能比人家专业公司做的好?
testing
【在 w*****h 的大作中提到】 : 在公司做sentiment analysis, : 现在的做法是这样 : 首先在大概几万句sentences中训练出word2vec model : 然后将大概4000个labels的sentences转成vector, 80%作为training, 20%作为testing : , 用neural net作为classifier : 类别三类,positive, neutral, negative : 之前是公司的一个印度人在负责,达到63% accuracy : 我接手之后调参 + 做一些ensemble提高到68% leader似乎不满足,觉得可以到70%甚 : 至80% : 现在我想到思路有几个
|