TermWeight 词权重算法

TermWeight 词权重算法,第1张

在用户的搜索Query中,有些词在用户的核心语义诉求中占据主导地位,在召回排序时需要重点关注,而有些词则重要性较低,即使丢掉也不影响用户的核心语义表达。

TermWeight是自动计算用户查询query中各term之间相对重要性关系的模块。通过区分用户查询query中不同term的重要程度并赋予相应的得分,从而召回与用户意图最为相关的结果,继而提高搜索的用户体验。

方法:利用query和doc的文档集合计算tf-idf并归一化,作为term的词权重

优势:简单,易实现

劣势:每个term的词权重是静态的,无法根据上下文变化,效果差

term weight训练,方法主要分为两种:(1) 基于点击词共现 和 (2) 基于偏序关系

基于点击词共现法将term weight看做是回归任务来解,标注数据计算时采用term recall得分来表示query中各term的重要性关系。

词共现 :基于uclog的query-title点击数据构建训练集,即通过计算 指标 term recall 作为词权重。

term recall 计算公式如下:

如果是冷启动阶段或词共现计算的 term recall 准确率低,可通过分层回归得分做人工数据标注,示例如下:

注: 分层数和得分可根据具体业务场景来调整

基于偏序关系的方法将term weight看做是排序任务来解,标注数据时采用偏序关系来表示query中各term的重要性关系,如:

该方法适用于 用户query短,多数点击doc都会包含query中所有term ,从而使得 词共现 方法失效。

应用场景的不同,会对应不同的模型选型方案:

(1) DeepCT/DeepRT

基于深度上下文语义的词权重。(a) 通过深度模型生成上下文化的词embedding + (b) 线性回归预测词权重。

优势:利用上下文语义,效果好。

劣势:模型略复杂,需要控制模型复杂程度,满足实时推理。

(2) Feature+ML

基于特征设计+机器学习回归模型预测词权重得分。

优势:计算高效,满足实时推理。

劣势:需要人工精细化设计特征。

下面就两类模型选型详细展开介绍。

DeepCT/DeepRT框架中整体使用的是:(a) 通过深度模型生成上下文化的词embedding + (b) 线性回归预测词权重。

如果数据集是基于词共现的得分,则可直接用MSE等损失函数,如果是基于偏序关系构建的训练集,则可以使用Pairwise Hinge Loss。

论文中使用的是BERT做上下文语义提取,我自己的实践中用的是BiLSTM+Attention,无论哪种方法,其核心本质是希望利用NMT结合上下文语义来动态判断term在当前语境的重要程度。

国际惯例,一图以蔽之

如果系统RT要求较高,则推荐使用BiLSTM,如果追求效果,预训练语言模型的更有优势,需要结合自己的业务场景做选型。

Feature+ML的整体思路是:通过人工设计有效特征,再利用机器学习中的GBDT/LR等模型来做回归预测或排序。常用的模型有Xgboost,LightGBM等。

很明显,该类方法的效果取决于特征设计的好坏,不同业务场景具体特征会有差别,下面总结一些常用特征。

term静态特征 :idf值、词频、term长度、term词性、词位置、是否停用词、是否语气词、是否专有名词(人名/地名)等等。

term交互特征 :term长度占query长度比值、text-rank值、term在query中相对位置、term对query的ppl贡献度等等。

ngram特征 :包含该term的ngram统计特征、以该term开始的ngram统计特征、以该term结尾的ngram统计特征等等(通常用bigram和trigram)。

特征设计后,再用ML模型做回归预测或排序即可,比较简单,不再赘述。

二、6大发展时期

1. 机器翻译的提出(1933-1949)

机器翻译的研究历史最早可以追溯到 20 世纪30年代。1933年,法国科学家 G.B. 阿尔楚尼提出了用机器来进行翻译的想法。

1946 年,世界上第一台现代电子计算机 ENIAC 诞生。随后不久,信息论的先驱、美国科学家 Warren Weaver 于 1947 年提出了利用计算机进行语言自动翻译的想法。1949 年,Warren Weaver 发表《翻译备忘录》[1],正式提出机器翻译的思想。

2. 开创期(1949-1964)

1954 年,美国乔治敦大学在 IBM 公司协同下,用 IBM-701 计算机首次完成了英俄机器翻译试验。IBM 701 计算机有史以来第一次自动将 60 个俄语句子翻译成了英语。但是没人提到这些翻译得到的样本是经过精心挑选和测试过的,从而排除了歧义性。

这一时期,美国与苏联两个大国出于对军事的需要,投入了大量资金用于机器翻译。集中在英文与俄文的语言配对翻译,翻译的主要对象是科学和技术上的文件,如科学期刊的文章,粗糙的翻译足以了解文章的基本内容。欧洲国家由于经济需要,也给予了相当大的重视。机器翻译于这一时期出现热潮。

3. 受挫期(1964-1975)

然而,正当一切有序推进之时,尚在萌芽中的 “机器翻译” 研究却遭受当头一棒。1964 年,美国科学院成立了语言自动处理咨询委员会 (Automatic Language Processing Advisory Committee)。委员会经过 2 年的研究,于 1966 年 11 月公布了一份名为《语言与机器》(简称 ALPAC 报告)的报告[2]。该报告全面否定了机器翻译的可行性,并宣称 “在近期或可以预见的未来,开发出实用的机器翻译系统是没有指望的”。建议停止对机器翻译项目的资金支持。受此报告影响,各类机器翻译项目锐减,机器翻译的研究出现了空前的萧条。

4. 复苏期(1975-1989)

1970中后期,随着计算机技术和语言学的发展以及社会信息服务的需求,机器翻译才开始复苏并日渐繁荣。业界研发出了多种翻译系统,例如 Weinder、URPOTRAA、TAUM-METEO 等。 其中于 1976 年由加拿大蒙特利尔大学与加拿大联邦政府翻译局联合开发的 TAUM-METEO 系统,是机器翻译发展史上的一个里程碑,标志着机器翻译由复苏走向繁荣。

5. 发展期(1993-2006)

这一时期主要是统计机器翻译。

1993 年 IBM 的 Brown 和 Della Pietra 等人提出的基于词对齐的翻译模型。标志着现代统计机器翻译方法的诞生。

2003 年Franz Och 提出对数线性模型及其权重训练方法,这篇文章提出了基于短语的翻译模型和最小错误率训练方法。对应的两篇文章Statistical phrase-based translation[3]和Minimum error rate training in statistical machine translation。[4]标志着统计机器翻译的真正崛起。

6. 繁荣期(2006-至今)

2006年,谷歌翻译作为一个免费服务正式发布,并带来了统计机器翻译研究的一大波热潮。这一研究正是Franz Och于2004年加入谷歌,领导谷歌翻译。 正是因为一代代科学家们不懈的努力,才让科幻一步步照进现实。

2013 Recurrent Continuous Translation Models[5],Nal Kalchbrenner和 Phil Blunsom提出了一种用于机器翻译的新型端到端编码器-解码器架构 。该模型使用卷积神经网络(CNN)将给定的源文本编码为连续向量,然后使用循环神经网络(RNN)作为解码器将状态向量转换为目标语言。他们的研究可视为神经机器翻译(NMT)的开端,

2014 Sequence to sequence learning with neural networks[6].是由Bengio提出的,基于encoder-decoder架构,其中encoder和decoder都是RNN结构,使用的是LSTM。这个架构也上线到Google的翻译中,翻译的质量有些可以超越人类。

2015 Neural Machine Translation by Jointly Learning to Align and Translate[7].在以往的encoder-decoder框架上加入对其的attention权重。

2017 Attention Is All You Need[8].Transformer抛弃了传统的CNN和RNN,整个网络结构完全是由Attention机制组成。Transformer的主要创新点在于multi-head、self-Attenion,基于此,transformer可以并行 *** 作,大大加快了训练过程。

2018 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding[9].BERT本质上是在大规模的语料上,运行自监督的方法,学习到一个好的特征表示。那么下游任务,可以BERT训练的词向量,作为输入,做一些fine-tune则可完成任务。主要通过Mask Language Model(MLM) 和 Next Sentence Prediction(NSP) 的这两个任务训练,得到词特征表示和句特征表示。

三、参考

参考论文:

[1]http://www.mt-archive.info/Weaver-1949.pdf

[2]Thierry Poibeau, "The 1966 ALPAC Report and Its Consequences," inMachine Translation, MITP, 2017, pp.75-89.

[1]Koehn P , Och F J , Marcu D . Statistical Phrase-Based Translation[C]// Conference of the North American Chapter of the Association for Computational Linguistics on Human Language Technology. Association for Computational Linguistics, 2003.

[4]Och, Franz Josef. "Minimum Error Rate Training for Statistical Machine Translation." ACL, 2003.

[5]Kalchbrenner, N., &Blunsom, P. (2013, October). Recurrent Continuous Translation Models. InEMNLP(Vol. 3, No. 39, p. 413).

[6]Sutskever, I., Vinyals, O., &Le, Q. V. (2014). Sequence to sequence learning with neural networks. InAdvances in neural information processing systems(pp. 3104-3112).

[7]Bahdanau, D., Cho, K., &Bengio, Y. (2014). Neural machine translation by jointly learning to align and translate.arXiv preprint arXiv:1409.0473.

[8]Vaswani A , Shazeer N , Parmar N , et al. Attention Is All You Need[J]. arXiv, 2017.

[9]Devlin J , Chang M W , Lee K , et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding[J]. 2018.

参考回答:

干货 | 关于机器翻译,看这一篇就够了

讯飞开放平台:机器翻译三大核心技术原理 | AI知识科普

神经机器翻译:历史与展望

人工智能机器翻译的发展经历了哪几个重要阶段?

1982年,美国加州理工学院物理学家John hopfield 发明了一种单层反馈神经网络 Hopfield network,用来解决组合优化问题。这是最早的RNN的雏形。86年,michael I. Jordan 定义了recurrent的概念,提出 Jordan network。1990年, 美国认知科学家Jeffrey L. Elman 对jordan network进行了简化,并采用BP算法进行训练,便有了如今最简单的包含单个自连接节点的RNN 模型。但此时RNN由于梯度消失(gradient vanishing)及梯度爆炸(gradient exploding)的问题,训练非常困难,应用非常受限。直到1997年,人工智能研究所的主任Jurgen Schmidhuber 提出长短期记忆(LSTM),LSTM使用门控单元及记忆机制大大缓解了早期RNN训练的问题。同样在1997年,Mike Schuster 提出双向RNN模型(Bidirectional RNN)。这两种模型大大改进了早期RNN结构,拓宽了RNN的应用范围,为后续序列建模的发展奠定了基础。此时RNN虽然在一些序列建模任务上取得了不错的效果,但由于计算资源消耗大,后续几年一直没有太大的进展。

2010年,Tomas Mikolov对bengio提出的feedforward Neural network language model (NNLM) 进行了改进,提出了基于RNN的语言模型(RNN LM),并将其用在语音识别任务中,大幅提升了识别精度。再此基础上Tomas Mikolov于2013年提出了大名鼎鼎的word2vec,与NNLM及RNNLM不同,word2vec的目标不再专注于建模语言模型,而是如何利用语言模型学习每个单词的语义化向量(distributed representation),其中distributed representation概念最早要来源于Hinton 1986年的工作。Word2vec引发了深度学习在自然语言处理领域的浪潮,除此之外还启发了knowledge representation,network representation等新的领域。

另一方面,2014年,Bengio团队与google几乎同时提出了seq2seq架构,将RNN用于机器翻译。没过多久,Bengio团队又提出attention机制,对seq2seq架构进行改进。自此机器翻译全面进入到神经机器翻译(NMT)的时代,NMT不仅过程简单,而且效果要远超统计机器翻译的效果。目前主流的机器翻译系统几乎都采用了神经机器翻译的技术。除此之外,attention机制也被广泛用于基于深度学习的各种任务中。

近两年,相关领域仍有一些突破性进展,2017年,facebook人工智能实验室提出基于卷积神经网络的seq2seq架构,将rnn替换为带有门控单元的cnn,提升效果的同时大幅加快了模型训练速度,此后不久,google提出transformer架构,使用self-attention代替原有的RNN及CNN,更进一步降低了模型复杂度。在词表示学习方面,Allen人工智能研究所2018年提出上下文相关的表示学习方法ELMo,利用双向LSTM语言模型对不同语境下的单词学习不同的向量表示,在6个nlp任务上取得了提升。OpenAI团队在此基础上提出预训练模型GPT,把LSTM替换为transformer来训练语言模型,在应用到具体任务时,与之前学习词向量当作特征的方式不同,GPT直接在预训练得到的语言模型最后一层接上softmax作为任务输出层,然后再对模型进行微调,在多项任务上GPT取得了更好的效果。不久之后,Google提出BERT模型,将GPT中的单向语言模型拓展为双向语言模型(Masked Language Model),并在预训练中引入了sentence prediction任务。BERT模型在11个任务中取得了最好的效果,是深度学习在nlp领域又一个里程碑式的工作。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/7922096.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存