您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
poi是什么(地图POI类别标签体系建设实践)
样本,标签,文本poi是什么(地图POI类别标签体系建设实践)
发布时间:2019-02-08加入收藏来源:互联网点击:
-
word2vec:通过对点击或外部语料学习word粒度的向量表达,对query中的多个word进行maxpooling,得到query的向量表达,再通过query向量去全量集合中搜索向量距离近的其他query。该方法的主要问题是通过word粒度的embedding刻画的query表达,在泛化过程中不太受控,容易引入大量的噪声,清洗难度大,同时存在显著case的漏召。同义词:该方法召回非常受限,且得到的query不一定符合用户的自然表达。Session上下文:地图场景的session普遍较短,召回受限且语义有偏离,准召均不高。推荐方法:继续考虑点击日志的挖掘,将各个query比作user,点击的POI作为item,考虑引入推荐的思想进行相似query挖掘——即点击相同或相似POI的query具有某种程度上的相似性,而query和POI点击关系天然构成一个社交网络,由此参考了两种基于图的推荐方式:SimRank,通过query与POI间的点击关系形成二部图,两个节点间的相似度由他们共同关联的其他所有点加权平均得到,通过反复迭代多轮后,相似度趋于稳定,得到两两query间相似度;
a、b表示图中的两个节点,定义自相关度为1,即s(a, a)=1,I(a)、I(b)表示与ab相连的节点集合,对于不同的a、b,其相似度描述为:
DeepWalk,是一种学习网络中节点的表示的新的方法,是把language modeling的方法用在了网络结构上,从而使用深度学习方式学习网络中节点间的关系表示。类似simrank方式,通过query与POI间的点击关系构成点击网络,在点击网络上进行随机游走,通过对游走片段的学习,得到query的向量表达,再通过向量表达计算query的相似召回。推荐方法的两种方案中,simrank计算量极大,在小数据量上实验经过了较长时间的迭代,而数千万点击数据计算资源和计算时间都将变得极大,成本上不合算;而DeepWalk随机游走方式在实际测试中取得了较好的效果:
比如,原始query为涂料,泛化得到其子分类、品牌等,ETC可以得到一些地方性的命名表达。
不同于将query分词后学习其word粒度embedding表达,DeepWalk在这里直接学习整个query,即Sentence的表达,避免了将query分词为多个word再pooling过程中语义偏移;而且直接query粒度的表示学习,得到的挖掘结果更加符合线上的实际表达,便于我们后续召回点击POI样本的操作;同时粗粒度的学习对网络节点间社会关系会有更优的保留。
整体上,通过query泛化步骤,样本集合的低频表达比例明显提升。
模型设计与迭代
使用分类的方式解决打标问题,是业类相似场景的通用做法。具体到业务角度,我们需要模型解决的打标数据范畴主要分为四类:
高频后缀识别低频后缀识别品牌识别非文本识别(typecode、来源类别等)前三类可以使用纯文本分类模型,但非文本特征无法直接用文本模型进行整合;同时,样本数据在前期具有噪声大、分布不均衡的特点,都需要兼顾。
分层多分类
前期使用多分类模型解决分类问题,对于每一个非叶节点构建一个多分类器,从根部开始构建,分到最后一级输出为叶节点。其特点是直观,和标签体系比较匹配。
这种方式有比较明显的缺陷:方案结构复杂不稳定,维护难,样本组织相当繁杂;上级分类模型的错漏,将层层影响下级的分类效果。
每个标签二分类
业务前期受限于优化前的搜索效果,样本集有一定量的噪声,同时体系在调研期间也会时常迭代,不断优化,需要一个解释性强、兼容变化,同时又能直接支持多标签的模型。
因此,我们尝试了对每个标签训练二分类模型,待识别的POI经过所有的二分类模型预测后结果合并使用,再进行后续的业务逻辑建设,该方式较好地解决了业务多标签的场景,避免同一POI多个标签间的冲突。
在样本方面,使用ovr方式组织样本,样本比例可调整(正负例比例、负例来源比例等),兼容了业务样本不均衡问题。
统一模型
单标签的二分类模型具有良好的解释性,以及每个标签建模带来的灵活性,很好匹配了业务的前期需求,迅速推进标签效果落地,线上恶劣case大量收敛,同时较原来的人工专家规则方式,召回明显提升的同时,效率也提升十倍以上。
前期为了短平快地推进业务,使用简单二分类模型迅速解决了主要问题,随着搜索效果的不断提升,业务上也有了更高的质量要求,而LR二分类模型依然存在一些问题:
使用词袋特征,维度膨胀特征选择造成低频特征损失泛化性能一般,需要大量建设业务规则独立建模,标签间的关系识别不充分(父子、共现、互斥)负样本大量降采样,浪费样本模型数量极多,维护成本高为了达到更好的效果,深度模型的升级有了必要,深度文本分类,常用的模型有cnn、rnn以及基于attention的各种模型,而attention模型主要解决的是长文本的深层语义理解问题,我们业务场景需要解决的是短文本简单语义的泛化问题,同时考虑到需要和非文本特征结合,以及分类效率方面的考虑,我们选择textCNN模型。
而textCNN是一个纯文本的多分类模型,不能解决多标签情况,也无法兼容非文本特征,同时样本不均衡问题也导致小样本类别学习不充分。为了匹配实际的业务,我们对原始的textCNN进行了业务改造,如图:
原始textCNN对文本进行词嵌入、卷积核池化后,直接进行softmax多分类,而在当前业务下:
将文本表示经过池化后,拼接了外部的其他非文本特征,对文本使用深度的特征提取与表示,而简单的非文本特征使用类似wide&deep的方式接入,共同参与预测;softmax只能输出归一化的预测结果,不适用与多标签场景;通过改造输出层,使用多路的sigmoid输出,每一路输出对应一个标签的预测结果;对同一样本多标签的情况进行了压缩,多个label合并为一个向量;重新设计损失函数,多分类交叉熵不适用于多个二分类输出未归一化的场景。如此,解决了多标签场景&非文本特征接入的问题,同时使用深度模型取得更好的泛化效果。
另一方面,所有样本在同一模型中训练,原本样本不均衡问题造成了一些负面影响。比如大类家居建材、服饰鞋包有数十万的样本,而劳保用品、美容美发用品等标签只有几千样本,在训练时很容易直接丢弃对整体准确率影响较小的小样本集。因此对每个样本集计算权重:
k为k类别的样本数,h为平滑超参,效果上类别样本数量越少,权重越大。将类别权重加入到损失函数:
λ1、λ2分别代表对文本特征和非文本特征的正则化约束比重因子。
经过改造和优化后:
以上几个标签间样本数量差距极大,但分类效果都维持在一个比较高的准召率上。此外,我们还根据改造后的模型,开发了模型解释工具。对于一些不符合预期的case,通过解释工具,可以直接观察:
分类时起主要作用的因子,是文本特征,还是非文本特征,以及具体是哪个特征及其value显示;如果是文本特征,显示权重最大的若干个卷积窗口位置,以及具体窗口中每个term的权重通过该工具可以在使用深度模型预测时,保持如同LR一般的解释性,方便定位与迭代。
上一篇:郑渊洁作品(郑渊洁在三十多年前就写出了《异次元杀阵》,成为80后的梦魇)
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |