[NLP] ERNIE-GeoL 包含地理信息的预训练模型

1. 简介

  • ERNIE-GeoL由百度地图团队发表在KDD2022上,是一种融合了地理位置信息的预训练模型。ERNIE-GeoL模型的预训练数据来自于事先构建好的异构图(heterogeneous graph),异构图包含了丰富的地理信息。并且在2021年ERNIE-GeoL模型已经部署在百度地图服务中。
时空数据用于训练PTMs.png

2. ERNIE-GeoL 训练数据构建

  • 首先建立一个异构图G=(V, E, O_V, R_E)
    1)V表示结点的集合;
    2)E表示边的集合;
    3)O_V 表示结点结点类型的集合,主要包括两类结点:Query, POI
    4)R_E 表示边类型的集合,包含三种关系:Query与POI之间点击关系、POI起终点共现关系、POI位置近邻关系

2.1 POI结点和Query结点

  • Query结点,主要由文本信息组成;
  • POI结点,包含以下几种信息:1)POI名称;2)POI地址;3)POI类别。 通过分隔符[SEP]将几种信息隔离开来, 类似BERT模型中使用的方法,只是包含三种类型的信息。
POI结点信息.png

2.2 异构图边关系

  • 异构图边关系包含三种:1)Query与POI之间点击关系;2)POI起终点共现关系;3)POI位置近邻关系;
  • Query与POI之间点击关系: 通过搜索日志获取Query-POI之间的点击关系,每个POI取Top4搜索Query,并连接Query-POI之间的边;
  • POI起终点共现关系: 用户移动信息产生POI到访的搜索日志,那么起点POI和终点POI可以用于构建起终点共现关系。使用一个2-gram滑动窗口,在用户到访序列中滑动构建POI之间的起终点关系;
  • POI位置近邻关系: POI之间如果空间位置很近的话,会存在一定的关联。因此论文中将地球表面划分成网格,如果两个POI落在同一个网格中则建立他们之间的近邻关系。论文中使用S2 geometry库构建网格,选择S2库是因为它使用球面投影来避免平面投影带来的失真,从而保持地球的正确拓扑结构。S2库支持31个level构建网格,文中在构建近邻关系的时候选择level=15,大概覆盖的范围是200mx200m。
异构图构建.png

2.3 随机游走采样

  • 通过随机游走算法进行采样生成ERNIE-GeoL的训练样本,假设游走的长度为n,则一条训练样本为:
    D = (v_1, v_2, ..., v_n ),对于三种不同类型的边使用不同的随机游走概率。其中,|N(e_{v,u})| 表示结点u相邻结点中相应边的数量。\lambda_i 表示不同边对应的权重。
随机游走概率.png

3. ERNIE-GeoL 模型结构

  • ERNIE-GeoL模型结构中,主要包括两个组件:多层双向transformer encoder层和基于transformer的聚合层(TranSAGE)。TranSAGE聚合层其实就是一个mult-head attention层,输入是每个结点通过transformer encdoer层生成的CLS token对应的隐向量。
ERNIE-GeoL 模型结构.png
  • 下述公式中,j表示第j个head,Q-Linear, K-Linear表示线性投影层。最终输出层h_{CLS}隐向量用于geocoding任务,h_{context}隐向量用于MLM任务。
    TranSAGE聚合层计算过程.png

    CLS隐向量集合.png

4. ERNIE-GeoL 预训练任务

  • ERNIE-Geol预训练任务包含两个:MLM任务和Geocoding任务。
  • MLM任务: 采用的是一个whole word mask策略。使用百度地图成分分析模块,对句子进行分析识别出地理实体词。文档中的15%的地理实体词会被mask掉,其中70%的概率会被替换成[MASK] token,10%的概率会被替换成一个拼写错误的词(论文认为query中的词未在poi名称中出现是一个拼写错误的词),10%的概率保持该词不做任何变化。
  • Geocoding任务: 主要用于学习poi文本和地理坐标之间的关系。geocoding任务是预测最终poi是属于哪个S2网格,任务设置level=22此时覆盖的范围是2mx2m的网格。此时S2网格的数据非常的巨大,直接预测网格id是不现实的。所以论文采用一种方式对S2网格进行编码,如下图所示偶数level和奇数level之间的长度是一样的,只是最后一个字母有差别。所以最终,问题转化成预测三个label的问题:即偶数level最后一个字符、奇数level最后一个字符、和他们倒数第二个字符。
Geocoding网格token表示.png
Geocoding任务目标.png

5. 下游任务

5个下游任务.png

5.1 Query意图分类任务

  • Query意图分类任务在POI搜索中扮演中重要的角色,文中定义了四种搜索意图:1)搜索特定的POI;2)搜索特定类型的POI;3)搜索地址;4)公交路线规划;
  • 抽取线上6000条真实地Query数据并进行人工标注。Query意图分类任务使用h_{CLS}向量接一个全连接层做分类任务,评估指标采用的是准确率。

5.2 Query-POI匹配任务

  • Query-POI匹配任务,主要用于识别POI列表中哪个POI与当前Query更加相关。文中定义了四种相关性:1)POI与Query精确匹配;2)高度相关;3)弱相关;4)不相关。 为了构建相关的数据集,随机抽取一些搜索Query,对于每一个Query从Top10排序结果中随机选取6个相关POI,另外随机抽取4个不相关POI。然后让人工给这10个POI打上相关性匹配标签。也是使用h_{CLS}向量用于Query-POI匹配任务。

5.3 地址成分分析任务

  • 地址成分分析任务主要是对地址进行解析,打上对应的成分标签。百度地图设计了22个成分类型:9个是不同级别的地理区域,2个用于区分道路,3个用于区分不同类型POI,5个用于表示POI详细位置,另外3个附加词。在百度地图,基于规则的Geocoding系统和POI搜索中Query理解模块,都依赖于地址成分分析模块。
  • 为了构建该任务的数据集,文中使用了两个数据源:一个来自于百度地图geocoding服务每天处理的送货数据,另外一个来自于搜索日志中的Query数据,之后让标注人员对这两部分数据进行标注。
  • 该任务使用的是ERNIE-GeoL + CRF的结构,评估指标选用的是F1 score。

5.4 Geocoding任务

  • Geocoding任务的主要目标是给定一个地理文本输出其地理坐标。Geocoding任务是地图的一个基础服务,geocoding的输出结果能够给POI搜索服务提供重要特征。我们将百度地图geocoding服务处理处理的地址作为我们的训练集,通过geocoding服务处理得到坐标之后,就可以得到这个地址对应的S2 token。
  • 通过上述的方式可以构造大量的训练样本,因为geocoding服务不能做到100%正确,因此标注了2000条数据作为验证集和测试集。文中使用Accuracy@Nkm作为评估指标,意思是计算预测误差在N km之内的占比。

5.5 POI推荐任务

  • POI推荐任务,主要是给定用户历史访问的POI,推荐一个用户下一次可能访问的POI列表。文中使用了6个月百度地图北京的POI访问数据。使用一个滑动窗口在POI序列滑动,随机生成长度为3-6的子序列。子序列中最后一个POI作为label,其他POI作为历史POI。ERNIE-GeoL作为特征编码器,上层也是使用一个双塔模型。

6. 实验设置及结果分析

  • 数据集:文中使用了3个月的百度地图搜索日志,异构图包含4千万POI结点,1.2亿Query结点,1.75亿Query-POI点击关系,15.74亿POI起终点关系,3.63亿POI位置近邻关系。使用随机游走算法在异构图随机游走生成训练集,共包含8亿的训练数据,大约包含4千亿单词。每个训练样本包含10个结点。
  • baseline模型:BERT, RoBERTa,ERNIE
实验结果.png

7. 可视化分析

POI t-SNE降维分析.png
image.png

image.png

参考资料

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,142评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,298评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,068评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,081评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,099评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,071评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,990评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,832评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,274评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,488评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,649评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,378评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,979评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,625评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,643评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,545评论 2 352

推荐阅读更多精彩内容