<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Earth Sci.</journal-id>
<journal-title>Frontiers in Earth Science</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Earth Sci.</abbrev-journal-title>
<issn pub-type="epub">2296-6463</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1101601</article-id>
<article-id pub-id-type="doi">10.3389/feart.2023.1101601</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Earth Science</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Shear wave velocity prediction using bidirectional recurrent gated graph convolutional network with total information embeddings</article-title>
<alt-title alt-title-type="left-running-head">Cova and Liu</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/feart.2023.1101601">10.3389/feart.2023.1101601</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Cova</surname>
<given-names>David</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<uri xlink:href="https://loop.frontiersin.org/people/2016140/overview"/>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Liu</surname>
<given-names>Yang</given-names>
</name>
<xref ref-type="aff" rid="aff1">
<sup>1</sup>
</xref>
<xref ref-type="aff" rid="aff2">
<sup>2</sup>
</xref>
<xref ref-type="aff" rid="aff3">
<sup>3</sup>
</xref>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1937981/overview"/>
</contrib>
</contrib-group>
<aff id="aff1">
<sup>1</sup>
<institution>State Key Laboratory of Petroleum Resources and Prospecting</institution>, <institution>China University of Petroleum (Beijing)</institution>, <addr-line>Beijing</addr-line>, <country>China</country>
</aff>
<aff id="aff2">
<sup>2</sup>
<institution>CNPC Key Laboratory of Geophysical Exploration</institution>, <institution>China University of Petroleum (Beijing)</institution>, <addr-line>Beijing</addr-line>, <country>China</country>
</aff>
<aff id="aff3">
<sup>3</sup>
<institution>China University of Petroleum (Beijing) Karamay Campus</institution>, <addr-line>Karamay</addr-line>, <country>China</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1894508/overview">Peng Zhenming</ext-link>, University of Electronic Science and Technology of China, China</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1591013/overview">Cai Hanpeng</ext-link>, University of Electronic Science and Technology of China, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/2162923/overview">Hao Wu</ext-link>, Chengdu University of Technology, China</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Yang Liu, <email>wliuyang@vip.sina.com</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Environmental Informatics and Remote Sensing, a section of the journal Frontiers in Earth Science</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>23</day>
<month>02</month>
<year>2023</year>
</pub-date>
<pub-date pub-type="collection">
<year>2023</year>
</pub-date>
<volume>11</volume>
<elocation-id>1101601</elocation-id>
<history>
<date date-type="received">
<day>18</day>
<month>11</month>
<year>2022</year>
</date>
<date date-type="accepted">
<day>13</day>
<month>02</month>
<year>2023</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2023 Cova and Liu.</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Cova and Liu</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p>
</license>
</permissions>
<abstract>
<p>Shear wave velocity is an essential elastic rock parameter for reservoir characterization, fluid identification, and rock physics model building. However, S-wave velocity logging data are often missing due to economic reason. Machine learning approaches have been successfully adopted to overcome this limitation. However, they have shortcomings in extracting meaningful spatial and temporal relationships. We propose a supervised data-driven method to predict S-wave velocity using a graph convolutional network with a bidirectional gated recurrent unit (GCN-BiGRU). This method adopts the total information coefficient to capture non-linear dependencies among well-log data and uses graph embeddings to extract spatial dependencies. Additionally, the method employs a bidirectional gated mechanism to map depth relationships in both upward and backward directions. Furthermore, the prediction performance is increased by an unsupervised graph neural network to handle outliers and the generation of additional features by the complete ensemble empirical mode decomposition with additive noise method. Finally, the GCN-BiGRU network is compared with Castagna&#x2019;s empirical velocity formula, support vector regression, long-short-term memory (LSTM), GRU, and BiGRU methods over the North Sea open dataset. The results show that the proposed method performs better predicting S-wave velocity than the other ML and empirical methods.</p>
</abstract>
<kwd-group>
<kwd>shear wave velocity prediction</kwd>
<kwd>graph convolutional network</kwd>
<kwd>bidirectional gated recurrent unit</kwd>
<kwd>total information coefficient</kwd>
<kwd>graph neural network</kwd>
<kwd>outlier removal</kwd>
<kwd>ensemble empirical mode decomposition with additive noise</kwd>
</kwd-group>
<contract-num rid="cn001">42274147</contract-num>
<contract-sponsor id="cn001">National Natural Science Foundation of China<named-content content-type="fundref-id">10.13039/501100001809</named-content>
</contract-sponsor>
</article-meta>
</front>
<body>
<sec id="s1">
<title>Introduction</title>
<p>In reservoir characterization, shear wave (S-wave) velocity is an essential elastic property for building accurate rock physics models and discriminating fluid content in geologic formations (<xref ref-type="bibr" rid="B47">Xu and White, 1995</xref>; <xref ref-type="bibr" rid="B44">Vernik and Kachanov, 2010</xref>; <xref ref-type="bibr" rid="B33">Refunjol et al., 2022</xref>). However, the availability of measured S-wave velocity logs in exploration projects is frequently scarce for an economic reason (<xref ref-type="bibr" rid="B3">Anemangely et al., 2019</xref>). Statistical and empirical methods address this problem using compressional wave velocity correlations (<xref ref-type="bibr" rid="B7">Castagna et al., 1985</xref>; <xref ref-type="bibr" rid="B16">Greenberg and Castagna, 1992</xref>). Nevertheless, statistical methods, such as linear regression (LR), often have low accuracy and fail to capture the complex relationships among the data. Moreover, empirical methods require additional information, such as mineral composition, pore aspect ratio, fluid saturation, total organic carbon content, or formation pressure, for proper calibration and accurate results (<xref ref-type="bibr" rid="B43">Vernik et al., 2018</xref>; <xref ref-type="bibr" rid="B31">Omovie and Castagna, 2021</xref>). In contrast, machine learning (ML) methods discover intrinsic relationships, make accurate predictions, and overcome data scarcity efficiently (<xref ref-type="bibr" rid="B1">Ali et al., 2021</xref>). ML methods have been applied for predicting S-wave velocity using well-log data, such as support vector regression (SVR) (<xref ref-type="bibr" rid="B30">Ni et al., 2017</xref>), long-short-term memory (LSTM) (<xref ref-type="bibr" rid="B53">Zhang et al., 2020</xref>), gated recurrent units (GRUs) (<xref ref-type="bibr" rid="B41">Sun and Liu, 2020</xref>), and gradient boosting (<xref ref-type="bibr" rid="B55">Zhong et al., 2021</xref>).</p>
<p>The S-wave velocity prediction is frequently addressed as a multivariate time series problem by assuming independence among variables and calculating a single depth point without further considerations (<xref ref-type="bibr" rid="B22">Jiang et al., 2018</xref>). Alternatively, the S-wave velocity prediction can be reframed as a supervised data-driven learning problem with recursive neural networks (RNNs) by considering the trend variations in the rock properties with depth (<xref ref-type="bibr" rid="B19">Hopfield, 1982</xref>). GRU is an improved RNN, less complex, and easier to train than LSTM (<xref ref-type="bibr" rid="B9">Cho et al., 2014</xref>). GRU dynamically extracts patterns from previous depth points to forecast rock properties in the following depth points (<xref ref-type="bibr" rid="B8">Chen et al., 2020</xref>). Bidirectional gated recurrent units (BiGRUs) with attention consist of two synchronous GRU to increase the prediction performance. The input sequence starts from the top to the bottom for the first unit and from the bottom to the top for the second unit. At the same time, the attention mechanism selects the most important features contributing to the prediction (<xref ref-type="bibr" rid="B52">Zeng et al., 2020</xref>). However, GRU has limitations in extracting local spatial characteristics from data (<xref ref-type="bibr" rid="B21">Jiang et al., 2021</xref>). Therefore, recent models combine convolutional neural network (CNN) layers to extract local and global features (<xref ref-type="bibr" rid="B45">Wang and Cao, 2021</xref>).</p>
<p>Graph theory receives particular attention for representing complex models surpassing the limitations of Euclidean space (<xref ref-type="bibr" rid="B56">Zhou F. et al., 2019a</xref>). A graph is a collection of vertices and edges that shares a relationship, represented by a Laplacian matrix (<xref ref-type="bibr" rid="B38">Scarselli et al., 2009</xref>). A graph embedding translates the latent dependencies from the graph into a low-dimensional space while preserving the original features, structure, and information (<xref ref-type="bibr" rid="B17">Hamilton et al., 2017</xref>). In this context, graph neural networks (GNNs) are a learning algorithm that handles graphs and resembles RNNs (<xref ref-type="bibr" rid="B15">Gori et al., 2005</xref>; <xref ref-type="bibr" rid="B12">Di Massa et al., 2006</xref>; <xref ref-type="bibr" rid="B46">Xu et al., 2019</xref>). Graph convolutional networks (GCNs) are first-order approximations of local spectral filters on graphs that perform convolution operations with linear computational complexity (<xref ref-type="bibr" rid="B11">Defferrard et al., 2016</xref>; <xref ref-type="bibr" rid="B24">Kipf and Welling, 2017</xref>). Furthermore, GCN-GRU has been successfully used for time-series prediction by exploiting the advantages of both graph and recurrent network architectures (<xref ref-type="bibr" rid="B54">Zhao et al., 2020</xref>).</p>
<p>We propose a graph recurrent gated method to predict S-wave velocity and compare it with other ML methods. For added value, the proposed method includes unsupervised distance-based outlier elimination with GNN, empirical mode decomposition (EMD) as feature engineering, and non-linear graph embedding with the total information coefficient (TIC) for more meaningful results. The workflow contains four steps:<list list-type="simple">
<list-item>
<p>1) An unsupervised GNN is used to detect outliers by learning the information from the nearest neighbor samples (<xref ref-type="bibr" rid="B14">Goodge et al., 2022</xref>). The goal is to remove the extreme values in the well-logging data resulting from human, environmental, or instrumental errors that impact the final prediction.</p>
</list-item>
<list-item>
<p>2) The well-logging data are decomposed into intrinsic mode functions (IMFs) by the complete ensemble EMD with additive noise (CEEMDAN) algorithm. The IMFs represent features from the local oscillation frequency with a physical meaning similar to Fourier domain spectral decomposition (<xref ref-type="bibr" rid="B20">Huang et al., 1998</xref>; <xref ref-type="bibr" rid="B13">Gao et al., 2022</xref>). Furthermore, they are concatenated with the well-logging data to form sequences for the network input.</p>
</list-item>
<list-item>
<p>3) The well-logging data are converted into the graph domain by mapping their dependencies with the TIC. TIC is a noise-robust correlation coefficient representing intrinsic non-linear dependencies among variables (<xref ref-type="bibr" rid="B35">Reshef et al., 2018</xref>).</p>
</list-item>
<list-item>
<p>4) A modified GCN-GRU network with bi-recurrent units and an attention mechanism predicts the S-wave velocity (<xref ref-type="bibr" rid="B54">Zhao et al., 2020</xref>). The GCN captures the spatial dependencies among the well-logging data. At the same time, the bidirectional GCN-GRU maps the sequence of previous and subsequent depth points for the S-wave velocity prediction (<xref ref-type="bibr" rid="B50">Yu et al., 2018</xref>).</p>
</list-item>
</list>
</p>
<p>Finally, the GCN-BiGRU network is compared with other ML methods, including SVR, LSTM, GRU, BiGRU, Castagna&#x2019;s empirical formula, and LR. The root mean square error (RMSE), mean absolute error (MAE), mean absolute percentage error (MAPE), and <italic>R</italic>
<sup>2</sup> metrics are used to evaluate the performance of the models. The results show that the proposed method has a lower error in predicting the S-wave velocity than the other ML and empirical methods.</p>
</sec>
<sec sec-type="methods" id="s2">
<title>Methodology</title>
<sec id="s2-1">
<title>Local outlier removal with graph neural networks</title>
<p>Identifying and eliminating potential outliers is an essential step in S-wave velocity prediction. Among different methods, local outliers are widely adopted to detect anomalies in multivariate data by measuring the distance between neighbor points (<xref ref-type="bibr" rid="B6">Breunig et al., 2000</xref>; <xref ref-type="bibr" rid="B2">Amarbayasgalan et al., 2018</xref>). However, they lack trainable parameters to adapt to particular datasets. In contrast, the message-passing abilities of GNNs can detect anomalies and outperform local outlier methods by learning the information from the nearest samples without supervision (<xref ref-type="bibr" rid="B14">Goodge et al., 2022</xref>).</p>
<p>The GNN uses the message-passing abilities of a direct graph for detecting outliers. In general, a graph <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is defined by a set of <italic>N</italic> vertices or nodes, <inline-formula id="inf2">
<mml:math id="m2">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c5;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c5;</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c5;</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, with <italic>N</italic> nodes features, <inline-formula id="inf3">
<mml:math id="m3">
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>N</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, a set of <italic>M</italic> edges, <inline-formula id="inf4">
<mml:math id="m4">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="}" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>M</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, with edge features defined as <inline-formula id="inf5">
<mml:math id="m5">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf6">
<mml:math id="m6">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>&#x3c5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> (<xref ref-type="bibr" rid="B56">Zhou F. et al., 2019a</xref>). The message-passing characteristic allows the graph to send and receive information through its connections with its neighbors in one direction. The message-passing workflow involves a message function, an aggregation function, and an update function. Then, the hidden representation of a node is calculated by<disp-formula id="e1">
<mml:math id="m7">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>where <inline-formula id="inf7">
<mml:math id="m8">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the feature of the source node <inline-formula id="inf8">
<mml:math id="m9">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf9">
<mml:math id="m10">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the feature of the adjacent <inline-formula id="inf10">
<mml:math id="m11">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf11">
<mml:math id="m12">
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the message function that sends the information to each neighbor node, <inline-formula id="inf12">
<mml:math id="m13">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the aggregation function that summarizes the incoming messages from <italic>k</italic> adjacent nodes of <inline-formula id="inf13">
<mml:math id="m14">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf14">
<mml:math id="m15">
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf15">
<mml:math id="m16">
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the number of adjacent nodes to <inline-formula id="inf16">
<mml:math id="m17">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3c5;</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf17">
<mml:math id="m18">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the aggregation of the messages from its neighbors. Finally, the update function computes the following hidden representation by using the aggregated messages and the current state of the node by<disp-formula id="e2">
<mml:math id="m19">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>u</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
</p>
<p>Then, the well-log data are represented as a graph for the outlier removal method using GNN, where each sample is equivalent to a node, and the value of each sample is the node feature. The edge connects the nearest neighbor samples to a given sample, and the network learns their distance as the anomaly score. Therefore, the edge feature <inline-formula id="inf18">
<mml:math id="m20">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is defined by<disp-formula id="e3">
<mml:math id="m21">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi mathvariant="italic">d</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>&#x2209;</mml:mo>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>where <italic>d</italic> is the Euclidean distance between two point samples, <inline-formula id="inf19">
<mml:math id="m22">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the source sample, <inline-formula id="inf20">
<mml:math id="m23">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the adjacent sample, and <italic>k</italic> is the nearest neighbor sample set. The distance information is the message transmitted from the source sample to the adjacent sample, <inline-formula id="inf21">
<mml:math id="m24">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>j</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. In addition, the aggregation function concatenates the distance of all neighbors of the source sample by<disp-formula id="e4">
<mml:math id="m25">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>e</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mi>k</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>Next, Eq. <xref ref-type="disp-formula" rid="e1">1</xref> can be rewritten as a neural network <inline-formula id="inf22">
<mml:math id="m26">
<mml:mrow>
<mml:mi mathvariant="script">F</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf23">
<mml:math id="m27">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> represents the hidden representation <inline-formula id="inf24">
<mml:math id="m28">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> through the learnable weights <inline-formula id="inf25">
<mml:math id="m29">
<mml:mrow>
<mml:mi mathvariant="normal">&#x398;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> by<disp-formula id="e5">
<mml:math id="m30">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="script">F</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>a</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">&#x398;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>Then, the update function in Eq. <xref ref-type="disp-formula" rid="e2">2</xref> is rewritten as the learned aggregated message <inline-formula id="inf26">
<mml:math id="m31">
<mml:mrow>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> by<disp-formula id="e6">
<mml:math id="m32">
<mml:mrow>
<mml:mi>u</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi>h</mml:mi>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
</p>
<p>The GNN performance is compared with the isolation forest (IF) (<xref ref-type="bibr" rid="B26">Liu et al., 2008</xref>) and the local outlier factor (LOF) (<xref ref-type="bibr" rid="B6">Breunig et al., 2000</xref>). IF is an unsupervised ensemble method to separate anomalies from normal data. Based on the principle that a normal sample requires more partitions to be isolated, an anomaly sample requires fewer partitions. Then, the IF constructs a tree representing the number of divisions to isolate a sample. Normal samples have a path length that equals the distance from the root node to the terminating node. Anomalous samples have a shorten path length than normal samples. On the other hand, LOF is an unsupervised proximity algorithm for anomaly detection that calculates the local density deviation of a sample within its neighbors. The local density is calculated by comparing the distance between the neighboring samples. Normal samples have similar densities to their neighbors, while the samples with less density are considered outliers.</p>
</sec>
<sec id="s2-2">
<title>Feature engineering with empirical mode decomposition</title>
<p>The EMD is an adaptative and data-driven decomposition method suitable for non-stationary and non-linear data (Huang et <italic>al.</italic>, 1998). In contrast with the wavelet transformation, a wavelet definition is unnecessary for EMD (<xref ref-type="bibr" rid="B57">Zhou Y. et al., 2019b</xref>). EMD calculates IMFs with several frequency bands highlighting distinct stratigraphical and geological information that increases the network performance (<xref ref-type="bibr" rid="B48">Xue et al., 2016</xref>). IMFs are computed using the CEEMDAN algorithm, reducing model mixing and data loss (<xref ref-type="bibr" rid="B10">Colominas et al., 2014</xref>). This computation involves four steps. First, several types of Gaussian white noise <italic>w</italic> are added to the original data <italic>x</italic> as follows,<disp-formula id="e7">
<mml:math id="m33">
<mml:mrow>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>0</mml:mn>
</mml:msub>
<mml:mi>w</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(7)</label>
</disp-formula>where <inline-formula id="inf27">
<mml:math id="m34">
<mml:mrow>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> is the data after adding white noise for an <italic>i</italic>-th time, and <italic>i</italic> denotes the number of modes (i.e., <italic>i</italic> &#x3d; 1, &#x2026; , <italic>I</italic>), and <inline-formula id="inf28">
<mml:math id="m35">
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the fixed coefficient that regulates the signal-to-noise ratio at each <italic>k</italic> stage. Second, the adjoined noise data <inline-formula id="inf29">
<mml:math id="m36">
<mml:mrow>
<mml:msup>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> are decomposed using the EMD. The fundamental EMD mode <inline-formula id="inf30">
<mml:math id="m37">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is averaged, and the first CEEMDAN mode <inline-formula id="inf31">
<mml:math id="m38">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is calculated by<disp-formula id="e8">
<mml:math id="m39">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:munderover>
<mml:msubsup>
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mn>1</mml:mn>
<mml:mi>i</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(8)</label>
</disp-formula>
</p>
<p>The first residual is calculated by subtracting <inline-formula id="inf32">
<mml:math id="m40">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> from <italic>x</italic>,<disp-formula id="e9">
<mml:math id="m41">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mn>1</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(9)</label>
</disp-formula>
</p>
<p>Third, the second CEEMDAN mode <inline-formula id="inf33">
<mml:math id="m42">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mn>2</mml:mn>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is calculated, where <inline-formula id="inf34">
<mml:math id="m43">
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the <italic>k</italic>-th mode decomposed by the EMD algorithm,<disp-formula id="e10">
<mml:math id="m44">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mi>w</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>Fourth, the process is repeated until the residual is unable to be further decomposed,<disp-formula id="e11">
<mml:math id="m45">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>K</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(11)</label>
</disp-formula>Then, the final residual is calculated by<disp-formula id="e12">
<mml:math id="m46">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>I</mml:mi>
</mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mn>1</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:msub>
<mml:mi>&#x3b5;</mml:mi>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mi>w</mml:mi>
</mml:mrow>
<mml:mi>i</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(12)</label>
</disp-formula>and the representation of the original data are defined by<disp-formula id="e13">
<mml:math id="m47">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>K</mml:mi>
</mml:munderover>
<mml:msub>
<mml:mover accent="true">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>M</mml:mi>
<mml:mi>F</mml:mi>
</mml:mrow>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi>k</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(13)</label>
</disp-formula>
</p>
<p>The IMF approach is compared with the depth gradient and the spectral band methods. The gradient measures the rate of change of a well-log property in depth to map subtle changes in the subsurface. The spectral method decomposes the well-logging data into frequency bands to capture unseen relationships. In <xref ref-type="fig" rid="F1">Figure 1</xref>, the IMF engineering features <inline-formula id="inf35">
<mml:math id="m48">
<mml:mrow>
<mml:msub>
<mml:mi>f</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are concatenated with the node features <inline-formula id="inf36">
<mml:math id="m49">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> of each node <inline-formula id="inf37">
<mml:math id="m50">
<mml:mrow>
<mml:msub>
<mml:mi>v</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> at each depth point <inline-formula id="inf38">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mi>z</mml:mi>
<mml:mi>i</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The result is an augmented feature matrix <inline-formula id="inf39">
<mml:math id="m52">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, which serves as the input sequences for the GCN-BiGRU. Additionally, the logarithmic transformation is applied to the resistivity log to center the distribution. And the input sequences are normalized with the Minmax function for stable training by<disp-formula id="e14">
<mml:math id="m53">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="italic">min</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="italic">min</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(14)</label>
</disp-formula>where <inline-formula id="inf40">
<mml:math id="m54">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the well-log data, <inline-formula id="inf41">
<mml:math id="m55">
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the minimum value of the dataset, <inline-formula id="inf42">
<mml:math id="m56">
<mml:mrow>
<mml:mi mathvariant="italic">max</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the maximum value of the dataset, and <inline-formula id="inf43">
<mml:math id="m57">
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>c</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>l</mml:mi>
<mml:mi>e</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the normalized well-log data.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Sequence construction with the IMF features for the proposed model.</p>
</caption>
<graphic xlink:href="feart-11-1101601-g001.tif"/>
</fig>
</sec>
<sec id="s2-3">
<title>Graph construction</title>
<p>The S-wave velocity prediction is defined in the graph domain as follows. Given a certain number of training wells, expressed as an undirect graph <inline-formula id="inf44">
<mml:math id="m58">
<mml:mrow>
<mml:mi>G</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf45">
<mml:math id="m59">
<mml:mrow>
<mml:mi>V</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are the well-logs, <inline-formula id="inf46">
<mml:math id="m60">
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are their complex dependencies, and <inline-formula id="inf47">
<mml:math id="m61">
<mml:mrow>
<mml:mi mathvariant="bold-italic">X</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are the values of the well-log curves. The goal is to learn the intrinsic relationships and predict the S-wave velocity <inline-formula id="inf48">
<mml:math id="m62">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The graph construction workflow calculates the edge weights and the graph convolution (Gconv) operator. Then, the node features are fed to the GCN-BiGRU network to output the S-wave velocity, as shown in <xref ref-type="fig" rid="F2">Figure 2</xref>. Transforming well-log data into the graph domain is crucial since the Gconv operator requires reliable estimation of the graph interdependencies for an accurate prediction. Although there are no optimal methods to generate a graph from tabular data (<xref ref-type="bibr" rid="B29">Narayanan et al., 2017</xref>), we proposed a knowledge-based approach to aggregate information from the external domain. The edge features are calculated with the TIC to represent the complex intrinsic relationships between the physical rock properties measured by the well logs and highlight the most significant dependencies.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Graph construction workflow.</p>
</caption>
<graphic xlink:href="feart-11-1101601-g002.tif"/>
</fig>
<p>TIC is a variation of the maximal information coefficient (MIC) that integrates power, equitability, and performance to extract the potentially diverse relationships among well-log data (<xref ref-type="bibr" rid="B35">Reshef et al., 2018</xref>). MIC is a coefficient that detects non-linear dependencies by applying information theory and probability concepts and is robust to noise regardless of the relationship type (<xref ref-type="bibr" rid="B34">Reshef et al., 2011</xref>; <xref ref-type="bibr" rid="B36">Reshef et al., 2015</xref>). Mutual information (MI) is defined by the Kullback-Leibler divergence between two well logs joint and marginal distributions; the higher the variance, the higher the MI (<xref ref-type="bibr" rid="B37">Reshef et al., 2016</xref>). MIC is calculated by drawing a grid over a scatter plot to partition the data and embed the relationship. The well-log data distributions are discretized into bins, and the MI values are compared and divided by the theoretical maximum for a particular combination of bins. Then, MIC is defined as the highest normalized MI between two well-logs by<disp-formula id="e15">
<mml:math id="m63">
<mml:mrow>
<mml:mi mathvariant="normal">M</mml:mi>
<mml:mi mathvariant="normal">I</mml:mi>
<mml:mi mathvariant="normal">C</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="italic">log</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(15)</label>
</disp-formula>where <inline-formula id="inf49">
<mml:math id="m64">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is the MI between the well-logs <italic>x</italic> and <italic>y</italic>, <inline-formula id="inf50">
<mml:math id="m65">
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the number of bins where <italic>x</italic> and <italic>y</italic> are partitioned. The MIC calculation becomes computationally expensive in large datasets. Therefore, the maximal grid size for simplification and optimization is defined by<disp-formula id="e16">
<mml:math id="m66">
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mi>n</mml:mi>
<mml:mn>6</mml:mn>
</mml:msup>
</mml:mrow>
</mml:math>
<label>(16)</label>
</disp-formula>where <italic>n</italic> is the sample size. If <inline-formula id="inf51">
<mml:math id="m67">
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is significantly low, MIC searches only simple patterns, weakening the generality of MIC. If <inline-formula id="inf52">
<mml:math id="m68">
<mml:mrow>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> is extremely high, MIC searches non-trivial coefficients for independent paired variables under finite samples. Therefore, MIC is redefined as<disp-formula id="e17">
<mml:math id="m69">
<mml:mrow>
<mml:mi mathvariant="normal">M</mml:mi>
<mml:mi mathvariant="normal">I</mml:mi>
<mml:mi mathvariant="normal">C</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:munder>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mfrac>
<mml:mrow>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="italic">log</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<p>MIC measures equitability rather than the power to reject a null hypothesis of independence. Therefore, TIC is introduced to address this issue. Instead of choosing the maximal MI value, all entries are summed,<disp-formula id="e18">
<mml:math id="m70">
<mml:mrow>
<mml:mi mathvariant="normal">T</mml:mi>
<mml:mi mathvariant="normal">I</mml:mi>
<mml:mi mathvariant="normal">C</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:munder>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:munder>
<mml:mfrac>
<mml:mrow>
<mml:mi>max</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">x</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">y</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="italic">log</mml:mi>
<mml:mn>2</mml:mn>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="italic">min</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>x</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>y</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(18)</label>
</disp-formula>
</p>
<p>Finally, the prediction performance of the graph embeddings using TIC and MIC are compared with other linear and non-linear correlation coefficients. The Pearson product-moment correlation coefficient (PC) (<xref ref-type="bibr" rid="B42">Szabo and Dobroka, 2017</xref>) quantifies linear relationships. And the Spearman rank correlation coefficient (SC) (<xref ref-type="bibr" rid="B32">Pilikos and Faul, 2019</xref>) and distance correlation coefficient (DC) (<xref ref-type="bibr" rid="B39">Skekely et al., 2007</xref>) measure non-linear relationships.</p>
</sec>
<sec id="s2-4">
<title>Network architecture</title>
<p>The GCN-BiGRU, GCN-GRU, and GCN network structures are shown in <xref ref-type="fig" rid="F3">Figure 3</xref>. In <xref ref-type="fig" rid="F3">Figure 3A</xref>, the input <inline-formula id="inf53">
<mml:math id="m71">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> &#x2208; <inline-formula id="inf54">
<mml:math id="m72">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>Z</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> of the GCN-BiGRU is the feature matrix defined by well-logging data concatenated with the engineering features, where <italic>N</italic> is the number of well-log curves, and <italic>Z</italic> is the number of depth samples. The GCN-GRU predicts the spatial-temporal relationships in the forward and backward direction and transmits their final state <inline-formula id="inf55">
<mml:math id="m73">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to the next GCN-GRU. The final output <inline-formula id="inf56">
<mml:math id="m74">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the predicted S-wave velocity at each depth point. In <xref ref-type="fig" rid="F3">Figure 3B</xref>, the GCN-GRU consists of a reset gate <inline-formula id="inf57">
<mml:math id="m75">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, an update gate <inline-formula id="inf58">
<mml:math id="m76">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, a candidate memory <inline-formula id="inf59">
<mml:math id="m77">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and a GCN to extract the most relevant information between depth points and output the state <inline-formula id="inf60">
<mml:math id="m78">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. In <xref ref-type="fig" rid="F3">Figure 3C</xref>, the GCN concatenates the input node features with a hidden state, followed by the Gconv, an activation function, and a dropout layer. The Gconv captures the spatial relationships between the well-logs and hidden states within a first-order neighborhood radius. The GCN extracts spatial dependencies among nodes at each depth point, and the GCN-GRU extracts depth dependencies along depth points.</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>
<bold>(A)</bold> GCN-BiGRU structure. <bold>(B)</bold> GCN-GRU structure. <bold>(C)</bold> GCN structure.</p>
</caption>
<graphic xlink:href="feart-11-1101601-g003.tif"/>
</fig>
<p>The Gconv uses the adjacency matrix <bold>
<italic>A</italic>
</bold>, degree matrix <inline-formula id="inf61">
<mml:math id="m79">
<mml:mrow>
<mml:mi mathvariant="bold-italic">D</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, and feature matrix <inline-formula id="inf62">
<mml:math id="m80">
<mml:mrow>
<mml:mi mathvariant="bold-italic">X</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> to construct a normalized spectral filter in the Fourier domain (<xref ref-type="bibr" rid="B24">Kipf and Welling, 2017</xref>). The adjacency matrix <bold>
<italic>A</italic>
</bold> &#x2208; <inline-formula id="inf63">
<mml:math id="m81">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> describes the edge weights between <italic>N</italic> well-logs, defined by the calculated correlation coefficient. The diagonal matrix <bold>
<italic>D</italic> </bold>&#x2208; <inline-formula id="inf64">
<mml:math id="m82">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="double-struck">R</mml:mi>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula> describes the number of edges at each node, computed from <bold>
<italic>A</italic>
</bold>. Then, a single-layer Gconv operator is defined by<disp-formula id="e19">
<mml:math id="m83">
<mml:mrow>
<mml:mtext>Gconv</mml:mtext>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>,</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mtext mathvariant="italic">drop</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi mathvariant="normal">&#x3c3;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mover accent="true">
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi mathvariant="bold">W</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(19)</label>
</disp-formula>where <inline-formula id="inf65">
<mml:math id="m84">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is the normalized self-connected adjacency matrix defined as <inline-formula id="inf66">
<mml:math id="m85">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:msup>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf67">
<mml:math id="m86">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> denotes the adjacency matrix with self-connections, defined as <inline-formula id="inf68">
<mml:math id="m87">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">I</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf69">
<mml:math id="m88">
<mml:mrow>
<mml:mi mathvariant="bold-italic">I</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the identity matrix, <inline-formula id="inf70">
<mml:math id="m89">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is the degree matrix of the adjacency matrix with self-connections <inline-formula id="inf71">
<mml:math id="m90">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula>, defined as <inline-formula id="inf72">
<mml:math id="m91">
<mml:mrow>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">D</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mo>&#x2211;</mml:mo>
<mml:mi>j</mml:mi>
</mml:msub>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">A</mml:mi>
<mml:mo>&#x223c;</mml:mo>
</mml:mover>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> where <italic>i</italic> is the number of nodes, <italic>j</italic> is the number of edges, <inline-formula id="inf73">
<mml:math id="m92">
<mml:mrow>
<mml:mi mathvariant="bold-italic">W</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> are the trainable weights, whose size is determined by the number of hidden units, <inline-formula id="inf74">
<mml:math id="m93">
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>(&#x22c5;) is the Mish activation function for non-linearity, and <italic>f<sub>drop</sub>
</italic> is a dropout layer with a given probability, activated during the training phase, to reduce overfitting. Mish is a novel self-regularized non-monotonic activation function that surpasses ReLU and Swish performances (<xref ref-type="bibr" rid="B28">Misra, 2019</xref>). Mish is defined by<disp-formula id="e20">
<mml:math id="m94">
<mml:mrow>
<mml:mi mathvariant="normal">M</mml:mi>
<mml:mi mathvariant="normal">i</mml:mi>
<mml:mi mathvariant="normal">s</mml:mi>
<mml:mi mathvariant="normal">h</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>x</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>tanh</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>ln</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mi>e</mml:mi>
<mml:mi>x</mml:mi>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
<p>The GCN-BiGRU network comprises two GCN-GRUs for a forward and backward prediction. Each GCN-GRU has a two-gated mechanism to adaptively capture patterns from different depth points (<xref ref-type="bibr" rid="B9">Cho et al., 2014</xref>), as shown in <xref ref-type="fig" rid="F3">Figure 3B</xref>. The activation gates are the reset gate <inline-formula id="inf75">
<mml:math id="m95">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and the updated gate <inline-formula id="inf76">
<mml:math id="m96">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The GCN-GRU requires two inputs, the feature matrix <inline-formula id="inf77">
<mml:math id="m97">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> at depth <italic>z</italic> and the previous hidden cell state <inline-formula id="inf78">
<mml:math id="m98">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. First, the reset gate <inline-formula id="inf79">
<mml:math id="m99">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> controls the amount of information to preserve from the previous depth point to transmit to the memory candidate state <inline-formula id="inf80">
<mml:math id="m100">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>. The reset gate <inline-formula id="inf81">
<mml:math id="m101">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> combines the previous memory information <inline-formula id="inf82">
<mml:math id="m102">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> with the current information <inline-formula id="inf83">
<mml:math id="m103">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> by<disp-formula id="e21">
<mml:math id="m104">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mi>r</mml:mi>
</mml:msub>
<mml:mi mathvariant="normal">G</mml:mi>
<mml:mi mathvariant="normal">c</mml:mi>
<mml:mi mathvariant="normal">o</mml:mi>
<mml:mi mathvariant="normal">n</mml:mi>
<mml:mi mathvariant="normal">v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">A</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(21)</label>
</disp-formula>where <inline-formula id="inf84">
<mml:math id="m105">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mi>r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf85">
<mml:math id="m106">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>r</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the trainable parameters of the reset gate, <inline-formula id="inf86">
<mml:math id="m107">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the current state input, <inline-formula id="inf87">
<mml:math id="m108">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the hidden state from the previous depth point, [<inline-formula id="inf88">
<mml:math id="m109">
<mml:mrow>
<mml:mo>&#x22c5;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>] represents the concatenation, <inline-formula id="inf89">
<mml:math id="m110">
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>(&#x22c5;) is the logistic sigmoid function that forces the output range between [0,1], <inline-formula id="inf90">
<mml:math id="m111">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> output is a scalar, <inline-formula id="inf91">
<mml:math id="m112">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> [0,1], when <inline-formula id="inf92">
<mml:math id="m113">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> the memory is preserved, when <inline-formula id="inf93">
<mml:math id="m114">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> the memory is discarded. Second, the update gate <inline-formula id="inf94">
<mml:math id="m115">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> determines the amount of information to preserve from the previous depth point and the amount of current information to include from the current depth point, similar to the reset gate,<disp-formula id="e22">
<mml:math id="m116">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mi>u</mml:mi>
</mml:msub>
<mml:mi mathvariant="normal">G</mml:mi>
<mml:mi mathvariant="normal">c</mml:mi>
<mml:mi mathvariant="normal">o</mml:mi>
<mml:mi mathvariant="normal">n</mml:mi>
<mml:mi mathvariant="normal">v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">A</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi mathvariant="bold-italic">b</mml:mi>
</mml:mrow>
<mml:mi>u</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(22)</label>
</disp-formula>where <inline-formula id="inf95">
<mml:math id="m117">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mi>u</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf96">
<mml:math id="m118">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>u</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the trainable parameters of the update gate. Third, the memory candidate <inline-formula id="inf97">
<mml:math id="m119">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is the present moment state at the depth point <italic>z</italic> and is defined by<disp-formula id="e23">
<mml:math id="m120">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>tanh</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
<mml:mi mathvariant="normal">G</mml:mi>
<mml:mi mathvariant="normal">c</mml:mi>
<mml:mi mathvariant="normal">o</mml:mi>
<mml:mi mathvariant="normal">n</mml:mi>
<mml:mi mathvariant="normal">v</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="[" close="]" separators="|">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">x</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">r</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2299;</mml:mo>
<mml:mi mathvariant="bold-italic">h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="bold-italic">A</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(23)</label>
</disp-formula>where <inline-formula id="inf98">
<mml:math id="m121">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, <inline-formula id="inf99">
<mml:math id="m122">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>c</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the trainable parameters of the candidate memory, <inline-formula id="inf100">
<mml:math id="m123">
<mml:mrow>
<mml:mo>&#x2299;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> is the Hadamard product (<italic>i.e.</italic>, element-wise multiplication), and <inline-formula id="inf101">
<mml:math id="m124">
<mml:mrow>
<mml:mi>tanh</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is the hyperbolic tangent function. Finally, the output state <inline-formula id="inf102">
<mml:math id="m125">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> at depth <italic>z</italic> is defined by<disp-formula id="e24">
<mml:math id="m126">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2299;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2299;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
<label>(24)</label>
</disp-formula>
</p>
<p>The update gate selectively stores or forgets memory information. The update gate acts as a forget gate when <inline-formula id="inf103">
<mml:math id="m127">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2299;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> ignores unimportant information from the previous depth point. The update gate acts as a memory gate when <inline-formula id="inf104">
<mml:math id="m128">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2299;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">c</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> preserves relevant information in memory for the next depth point. Additionally, a dropout layer is added at the end of each GCN-GRU to increase the network generalization ability and reduce overfitting. Next, the output state <inline-formula id="inf105">
<mml:math id="m129">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is fed into a hierarchical attention mechanism to highlight the essential features and attenuate the less significative information contributing to the S-wave velocity prediction (<xref ref-type="bibr" rid="B4">Bahdanau et al., 2014</xref>; <xref ref-type="bibr" rid="B49">Yang et al., 2016</xref>). The output state <inline-formula id="inf106">
<mml:math id="m130">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is fed into a fully connected (FC) layer, followed by an activation function to obtain a hidden representation <inline-formula id="inf107">
<mml:math id="m131">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> defined by<disp-formula id="e25">
<mml:math id="m132">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>tanh</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(25)</label>
</disp-formula>where <inline-formula id="inf108">
<mml:math id="m133">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf109">
<mml:math id="m134">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>a</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the trainable parameters of the FC layer. Next, the feature importance is measured between the hidden representation <inline-formula id="inf110">
<mml:math id="m135">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and a trainable context vector <inline-formula id="inf111">
<mml:math id="m136">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>w</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> that is a high-level representation of a static query of the features (<xref ref-type="bibr" rid="B40">Sukhbaatar et al., 2015</xref>; <xref ref-type="bibr" rid="B25">Kumar et al., 2016</xref>). Then, importance weights are normalized through a softmax function <inline-formula id="inf112">
<mml:math id="m137">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> by<disp-formula id="e26">
<mml:math id="m138">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>exp</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>w</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:munder>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mi>z</mml:mi>
</mml:munder>
<mml:mrow>
<mml:mi>exp</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">u</mml:mi>
<mml:mi>w</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(26)</label>
</disp-formula>Then, the weighted sum of the hidden states is the new high-level presentation of the output state <inline-formula id="inf113">
<mml:math id="m139">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and is defined by<disp-formula id="e27">
<mml:math id="m140">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:munder>
<mml:mstyle displaystyle="true">
<mml:mo>&#x2211;</mml:mo>
</mml:mstyle>
<mml:mi>z</mml:mi>
</mml:munder>
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">&#x3b1;</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(27)</label>
</disp-formula>and the new output state <inline-formula id="inf114">
<mml:math id="m141">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is fed to a fully connected (FC) layer with a Mish activation function and a dropout layer to predict the S-wave velocity by<disp-formula id="e28">
<mml:math id="m142">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mi mathvariant="italic">f</mml:mi>
<mml:mtext mathvariant="italic">drop</mml:mtext>
</mml:msub>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mi>&#x3c3;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
<mml:msub>
<mml:mover accent="true">
<mml:mi mathvariant="bold-italic">h</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(28)</label>
</disp-formula>where <inline-formula id="inf115">
<mml:math id="m143">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">W</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf116">
<mml:math id="m144">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="bold-italic">b</mml:mi>
<mml:mi>f</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are the trainable parameters of the final FC layer. Lastly, the training dataset is rearranged into sequences in the supervised training process and matched with the labels. The Huber loss function is implemented to minimize the difference between the predicted S-wave velocity <inline-formula id="inf117">
<mml:math id="m145">
<mml:mrow>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and the actual S-wave velocity <inline-formula id="inf118">
<mml:math id="m146">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> at depth <italic>z</italic>. The Huber loss is less sensitive to outliers and noise by combining L1 and L2 norms (<xref ref-type="bibr" rid="B51">Yu et al., 2016</xref>) and is defined by<disp-formula id="e29">
<mml:math id="m147">
<mml:mrow>
<mml:mi mathvariant="script">L</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mfenced open="{" close="" separators="|">
<mml:mrow>
<mml:mtable columnalign="center">
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x3e;</mml:mo>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(29)</label>
</disp-formula>where <inline-formula id="inf119">
<mml:math id="m148">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> is the threshold parameter for the L1/L2 norm. The adaptive movement estimation algorithm (Adam) is used for network optimization with a learning rate of 0.001 (<xref ref-type="bibr" rid="B23">Kingma and Ba, 2015</xref>). The grid search strategy is applied to optimize the network parameters selection and a 10-fold cross-validation method to evaluate the accuracy and generalization ability of the model while reducing randomness impact (<xref ref-type="bibr" rid="B18">Hampson et al., 2001</xref>). Finally, the metrics to evaluate the difference between the actual S-wave velocity and the predicted S-wave velocity are RMSE, MAE, MAPE, and <italic>R</italic>
<sup>2</sup>. RMSE measures the average weighted performance of the model. MAE estimates the average error of the model for the prediction. MAPE measures the percentage of the average difference between the actual and the predicted value. The coefficient of determination measures the performance of the model over a regressor that outputs the mean value of the label that is used in training. The error metrics are defined as follows,<disp-formula id="e30">
<mml:math id="m149">
<mml:mrow>
<mml:mi mathvariant="normal">R</mml:mi>
<mml:mi mathvariant="normal">M</mml:mi>
<mml:mi mathvariant="normal">S</mml:mi>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msqrt>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
</mml:math>
<label>(30)</label>
</disp-formula>
<disp-formula id="e31">
<mml:math id="m150">
<mml:mrow>
<mml:mi mathvariant="normal">M</mml:mi>
<mml:mi mathvariant="normal">A</mml:mi>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mrow>
</mml:math>
<label>(31)</label>
</disp-formula>
<disp-formula id="e32">
<mml:math id="m151">
<mml:mrow>
<mml:mi mathvariant="normal">M</mml:mi>
<mml:mi mathvariant="normal">A</mml:mi>
<mml:mi mathvariant="normal">P</mml:mi>
<mml:mi mathvariant="normal">E</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:mfrac>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="|" close="|" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#xd7;</mml:mo>
<mml:mn>100</mml:mn>
</mml:mrow>
</mml:math>
<label>(32)</label>
</disp-formula>
<disp-formula id="e33">
<mml:math id="m152">
<mml:mrow>
<mml:msup>
<mml:mi mathvariant="normal">R</mml:mi>
<mml:mn>2</mml:mn>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#x5e;</mml:mo>
</mml:mover>
<mml:mi>z</mml:mi>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mo>&#x2211;</mml:mo>
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mi>N</mml:mi>
</mml:msubsup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")" separators="|">
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>z</mml:mi>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mn>2</mml:mn>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(33)</label>
</disp-formula>where <inline-formula id="inf120">
<mml:math id="m153">
<mml:mrow>
<mml:mover accent="true">
<mml:mi>y</mml:mi>
<mml:mo>&#xaf;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> is the mean of the actual S-wave velocity, and <italic>N</italic> is the number of samples.</p>
</sec>
</sec>
<sec id="s2-5">
<title>Field data example</title>
<p>The study comprises a selection of 30 wells from the North Sea area (<xref ref-type="bibr" rid="B5">Bormann et al., 2020</xref>). The training dataset consists of 21 wells, the validation dataset includes 5 wells, and the testing dataset consists of 4 blind wells. Each well has 6 well-log curves: Gamma-ray (GR), compressional wave transit-time (DTC), shear wave transit-time (DTS), bulk density (RHOB), neutron porosity (NPHI), and deep resistivity (RDEP). The original sampling interval is 0.152 m, and the range of the training dataset is constrained for stability purposes, as shown in <xref ref-type="table" rid="T1">Table 1</xref>. The GCN-BiGRU employs a prediction window of 1 sample, a sequence length of 8 samples, and 8 hidden units for the dimension of the hidden state. The training time is 20&#xa0;min for 50 epochs and a batch size of 128 samples in an Nvidia GeForce GTX 960M.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>Well-log data range for the training dataset.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Well-logs</th>
<th align="center">Data range</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">GR</td>
<td align="left">0&#x2013;200&#xa0;api</td>
</tr>
<tr>
<td align="left">DTC</td>
<td align="left">50&#x2013;200&#xa0;us/ft</td>
</tr>
<tr>
<td align="left">DTS</td>
<td align="left">80&#x2013;500&#xa0;us/ft</td>
</tr>
<tr>
<td align="left">RHOB</td>
<td align="left">1.8&#x2013;3.0&#xa0;g/cc</td>
</tr>
<tr>
<td align="left">NPHI</td>
<td align="left">0&#x2013;1 dec</td>
</tr>
<tr>
<td align="left">RDEP</td>
<td align="left">0&#x2013;20&#xa0;&#x2126;m</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Additionally, the robustness of the proposed method is evaluated by measuring the impact of the proportion of the training dataset and the sensitivity to Gaussian noise. First, the training dataset is divided into ten groups based on the number of wells (i.e., 4, 7, 9, 10, 12, 15, 16, 17, 20, and 21), corresponding to a ratio of 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, and 1 of the training dataset, respectively. Second, the noise resistance is analyzed by adding Gaussian noise with mean zero and standard deviation of the training dataset (i.e., &#x3c3;<sub>GR</sub> &#x3d; 40.96&#xa0;api, &#x3c3;<sub>DTC</sub> &#x3d; 20.09&#xa0;us/ft, &#x3c3;<sub>DTS</sub> &#x3d; 79.20&#xa0;us/ft, &#x3c3;<sub>RHOB</sub> &#x3d; 0.17&#xa0;g/cc, &#x3c3;<sub>NPHI</sub> &#x3d; 0.10&#xa0;dec, &#x3c3;<sub>RDEP</sub> &#x3d; 21.07&#xa0;&#x2126;m) to each sample. Then, the performance is evaluated by examining ten fraction levels of the defined noise (i.e., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, and 1). Finally, the RMSE on the validation and testing datasets is calculated for both analyses.</p>
<p>The effects of the GNN, LOF, and IF methods are shown in <xref ref-type="fig" rid="F4">Figure 4</xref>. GNN uses 13 samples as neighbors, LOF 50 nodes as neighbors, and IF 100 estimators. Additionally, a contamination value of 0.1 is employed for the three methods. The GNN handles the spikes located on the RHOB log below the 2,200&#xa0;m better than the alternative outlier removal methods and other abrupt values on the rest of the well-logs below the 2,400&#xa0;m while preserving the essential well-log information, as shown in <xref ref-type="fig" rid="F4">Figure 4</xref>. In the prediction performance, the GNN surpasses LOF and IF methods, with lower RMSE error for the predicted DTS log, as shown in <xref ref-type="fig" rid="F5">Figure 5</xref>. The RMSE for the training, validation and testing dataset with the GNN are 21.0482 us/ft, 22.7562 us/ft, and 23.5854 us/ft, respectively. Compared with the LOF and IF methods, the main drawback of GNN is the higher computation time.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Comparison of the three methods for outlier removal at well W3.</p>
</caption>
<graphic xlink:href="feart-11-1101601-g004.tif"/>
</fig>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>RMSE of predicted DTS for the three outlier removal methods.</p>
</caption>
<graphic xlink:href="feart-11-1101601-g005.tif"/>
</fig>
<p>The cross-plot between the DTS and the well-log curves is shown in <xref ref-type="fig" rid="F6">Figure 6</xref>. The color represents the distribution density of the samples. The higher the density, the higher the color intensity. And the line represents the minimum squares regression line. The RHOB and NPHI show a good linear trend, the DTC behaves linearly for low values, and the relationship changes for higher values. The DEPT and RDEP trend is logarithmic, while the GR is unclear due to the bimodal distribution between sand and shales. The cross-plot shows that a linear correlation coefficient is insufficient to capture the intrinsic relationships of the rock properties and to build a meaningful graph structure. Therefore, a non-linear correlation coefficient is more suitable for this task.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Cross plots between DTS and the well-logs. <bold>(A)</bold> DEPT. <bold>(B)</bold> GR. <bold>(C)</bold> DTC. <bold>(D)</bold> RHOB. <bold>(E)</bold> NPHI. <bold>(F)</bold>. RDEP.</p>
</caption>
<graphic xlink:href="feart-11-1101601-g006.tif"/>
</fig>
<p>The relationship strength between the DTS log and the other well logs curves with the six correlation coefficients is shown in <xref ref-type="fig" rid="F7">Figure 7</xref>. The hexagons range from 0 to 1, with an increment of 0.2. The closer to the center, the lower the correlation; the closer to the edges, the higher the correlation. On average, the DTC, NPHI, and RHOB logs show a high correlation, consistent with the definition of S-wave velocity. The DTC correlation is higher because it shares the shear modulus and density parameters. The density is a very sensitive parameter for rock velocity, and the porosity directly impacts the rigidity of the rock and reduces its value. The DEPT shows a moderate correlation due to the dependency on changes in pressure and temperature that affect the rock properties. RDEP has an average correlation linked to the lithology characteristics of the layer. In contrast, the low correlation in GR is probably due to averaging effect between sand and shale lithologies. These results constitute the building block to constructing a graph with meaningful physical rock relationships, proven by external knowledge.</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>The correlation coefficients between DTS and the others well-log curves.</p>
</caption>
<graphic xlink:href="feart-11-1101601-g007.tif"/>
</fig>
<p>The evaluation of the prediction results for the six correlation coefficients is shown in <xref ref-type="fig" rid="F8">Figure 8</xref>. TIC accuracy is higher than other approaches, with an RMSE value of 22.1603 us/ft, 23.3468 us/ft, and 24.2019 us/ft for the training, validation, and testing datasets, respectively. TIC is more reliable for embedding the non-linear physical correlation between the rock properties and the well-logs into the graph edges. However, MI approaches have a high computational cost for extensive datasets than other correlation coefficients. The TIC matrix used as the adjacency matrix to represent the edge features in the proposed method is shown in <xref ref-type="fig" rid="F9">Figure 9</xref>. The DTC and DTS are the only pair that achieves a high correlation, with a value of 0.57, which is consistent with the theoretical and empirical results for S-wave velocity prediction.</p>
<fig id="F8" position="float">
<label>FIGURE 8</label>
<caption>
<p>RMSE of predicted DTS of the six correlation coefficients.</p>
</caption>
<graphic xlink:href="feart-11-1101601-g008.tif"/>
</fig>
<fig id="F9" position="float">
<label>FIGURE 9</label>
<caption>
<p>TIC for the training dataset.</p>
</caption>
<graphic xlink:href="feart-11-1101601-g009.tif"/>
</fig>
<p>The evaluation of the three feature engineering methods for the DTS log prediction is shown in <xref ref-type="fig" rid="F10">Figure 10</xref>. The gradient method adds the first derivative as a component. The frequency band method uses three components. The low-frequency band (i.e., 20&#xa0;Hz) isolates the significant geological trend changes. The middle-frequency band (i.e., 40&#xa0;Hz) is related to third-order sequence events, while the high-frequency band (i.e., 200&#xa0;Hz) focuses on the local changes inside the geological formations. After experimentation with the training dataset, the CEEMDAN method decomposes the data into 7 IMFs. This number preserves the uniformity size in all the IMFs for the sequence aggregation step and reduces overfitting by avoiding high-order IMFs without a reliable meaning. Results show that the feature engineering method can improve the prediction accuracy of the GCN-BiGRU network. The gradient shows the lowest performance because the contribution of its high frequency is less significant for the prediction. Although the computational time for the IMFs is longer than other methods, the RMSE is lower, with 20.3805 us/ft, 23.1001 us/ft, and 23.3531 us/ft, for the training, validation, and testing datasets, respectively.</p>
<fig id="F10" position="float">
<label>FIGURE 10</label>
<caption>
<p>RMSE of predicted DTS for the three feature engineering methods.</p>
</caption>
<graphic xlink:href="feart-11-1101601-g010.tif"/>
</fig>
<p>The results for the DTS log prediction during the network optimization are shown in <xref ref-type="fig" rid="F11">Figure 11</xref>. The RMSE of the GCN-BiGRU network is 19.6581 us/ft, 23.5363 us/ft, and 24.3045 us/ft for the training, validation, and testing datasets, respectively, improving the performance compared with the original GCN-GRU network (<xref ref-type="bibr" rid="B54">Zhao et al., 2020</xref>), as shown in <xref ref-type="fig" rid="F11">Figure 11A</xref>. The Mish activation function shows superior regularization and overfitting reduction abilities than other state-of-the-art activation functions, such as Leaky ReLU, GELU, SELU, and Swish. The RMSE with the Mish activation function is 21.3972 us/ft, 23.1146 us/ft, and 23.6318 us/ft for the testing, validation, and testing datasets, respectively, as shown in <xref ref-type="fig" rid="F11">Figure 11B</xref>.</p>
<fig id="F11" position="float">
<label>FIGURE 11</label>
<caption>
<p>Proposed method optimization. <bold>(A)</bold>. Network structure. <bold>(B)</bold> Activation Function, <bold>(C)</bold> Nodes number, <bold>(D)</bold> Attention mechanism, <bold>(E)</bold> Training ratio test, <bold>(F)</bold> Noise sensitivity test.</p>
</caption>
<graphic xlink:href="feart-11-1101601-g011.tif"/>
</fig>
<p>The prediction performance by the number of well-logs is shown in <xref ref-type="fig" rid="F11">Figure 11C</xref>. The node configurations are tested based on their coefficient ranking. Thus, the GR log is excluded. The node configurations are defined as follows: The 3 nodes include the DTC, NPHI, and RHOB logs. The 4 nodes include the DTC, NPHI, RHOB, and RDEP logs. The 5 nodes include the DTC, NPHI, RHOB, RDEP, and DEPT logs. The 6 nodes include all logs. Although the RMSE error decreases with 5 nodes for the training and validation datasets, the overall performance of the GCN-BiGRU decreases for the testing dataset. The RMSE for 6 nodes is 20.6117 us/ft, 22.8539 us/ft, and 22.9764 us/ft for the training, validation, and testing datasets, respectively. The 6 nodes are used since the GCN extracts meaningful embeddings based on the number of adjacent nodes for aggregation. When the number of nodes is reduced, the GCN embeddings are shallower, and the ability to map complex physical relationships among the input data is also reduced. Then, the prediction is compared with two attention mechanisms. The hierarchical attention shows a lower RMSE than soft attention, with a value of 19.7153 us/ft, 22.9858 us/ft, and 23.1156 us/ft, for the training, validation, and testing datasets, respectively, as shown in <xref ref-type="fig" rid="F11">Figure 11D</xref>. However, the attention mechanism occasionally creates spike artifacts.</p>
<p>The impact of the proportion of the training dataset ratio is shown in <xref ref-type="fig" rid="F11">Figure 11E</xref>. The RMSE is higher for a ratio of 0.1, with a value of 35.8539 us/ft for the validation dataset and 36.8711 us/ft for the testing dataset. The RMSE reduces between a ratio of 0.2&#x2013;0.5, reaching a value of 32.4315 us/ft for the validation dataset and 32.7639 us/ft for the testing dataset at a ratio of 0.5. The RMSE shows a stability plateau between a ratio of 0.7&#x2013;1, achieving a value of 22.2465 us/ft for the validation dataset and 22.9672 us/ft for the testing dataset at a ratio of 1.</p>
<p>The prediction performance in the presence of Gaussian noise is shown in <xref ref-type="fig" rid="F11">Figure 11F</xref>. The RMSE is high when the added noise is equal to the standard deviation of the training dataset (i.e., a noise fraction of 1) with a value of 28.6670 us/ft for the validation dataset and 42.8739 us/ft for the testing dataset. The RMSE gradually decreases until a noise fraction of 0.5 with a value of 24.9382 us/ft for the validation dataset and 28.5342 us/ft for the testing dataset. The RMSE is stable when the noise fraction is lower than 0.2, with a value of 22.9373 us/ft for the validation dataset and 23.5910 us/ft for a noise fraction of 0.1.</p>
<p>Finally, the DTS log prediction results for all the models are shown in <xref ref-type="fig" rid="F12">Figure 12</xref>. The GCN-BiGRU shows lower error in the training, validation, and testing dataset with an RMSE of 19.3260 us/ft, 22.4905 us/ft, and 22.7120 us/ft, respectively. The evaluation for the testing dataset is shown in <xref ref-type="table" rid="T2">Table 2</xref>. The GCN-BiGRU shows an MAE of 17.2842 us/ft, MAPE of 6.7880%, and <italic>R</italic>
<sup>2</sup> of 0.9470. The GCN-BiGRU performs better than other ML baseline models and empirical equations without adding mineral components, fluid properties, pore aspect ratio, or thermal maturity information. Some discrepancies in the predicted DTS log and the actual DTS log value are due to the presence of fluids, unbalanced lithologies samples, or the inherent covariance shift problem.</p>
<fig id="F12" position="float">
<label>FIGURE 12</label>
<caption>
<p>RMSE of the predicted DTS for all the compared methods.</p>
</caption>
<graphic xlink:href="feart-11-1101601-g012.tif"/>
</fig>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>DTS prediction results for the testing dataset.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">Model</th>
<th align="center">RMSE (us/ft)</th>
<th align="center">MAE (us/ft)</th>
<th align="center">MAPE (%)</th>
<th align="center">
<italic>R</italic>
<sup>2</sup>
</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">Castagna</td>
<td align="center">44.7420</td>
<td align="center">32.8800</td>
<td align="center">12.4500</td>
<td align="center">0.9374</td>
</tr>
<tr>
<td align="center">LR</td>
<td align="center">26.0257</td>
<td align="center">21.1107</td>
<td align="center">10.4064</td>
<td align="center">0.9315</td>
</tr>
<tr>
<td align="center">SVR</td>
<td align="center">24.9529</td>
<td align="center">19.9018</td>
<td align="center">8.9553</td>
<td align="center">0.9403</td>
</tr>
<tr>
<td align="center">LSTM</td>
<td align="center">38.4902</td>
<td align="center">32.6003</td>
<td align="center">14.7848</td>
<td align="center">0.9079</td>
</tr>
<tr>
<td align="center">GRU</td>
<td align="center">32.6786</td>
<td align="center">26.6913</td>
<td align="center">11.2101</td>
<td align="center">0.9201</td>
</tr>
<tr>
<td align="center">BiGRU</td>
<td align="center">30.0930</td>
<td align="center">24.8923</td>
<td align="center">11.0732</td>
<td align="center">0.9313</td>
</tr>
<tr>
<td align="center">GCN-BiGRU</td>
<td align="center">22.7120</td>
<td align="center">17.2842</td>
<td align="center">6.7880</td>
<td align="center">0.9470</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The results for the testing well B9 are shown in <xref ref-type="fig" rid="F13">Figure 13</xref>. The predicted DTS log is consistent with the actual DTS log, as shown in <xref ref-type="fig" rid="F13">Figure 13A</xref>. The model performs satisfactorily when constant or missing values are present, such as the depths 2,900&#xa0;m, 3,100&#xa0;m, and 3,400&#xa0;m. The distribution of the predicted DTS and the true DTS are consistent, as shown in <xref ref-type="fig" rid="F13">Figure 13B</xref>. The range of the predicted DTS for higher values is reduced due to the constraints established during the training phase. The <italic>R</italic>
<sup>2</sup> coefficient between the true and predicted DTS is 0.9593, as shown in Figure 163. The high coefficient indicates that the proposed model can explain a significant variation in the actual DTS log. Moreover, the homoscedasticity analysis shows that the variance of the residuals is homogeneous, thus increasing the robustness and feasibility of the method, as shown in <xref ref-type="fig" rid="F13">Figure 13D</xref>.</p>
<fig id="F13" position="float">
<label>FIGURE 13</label>
<caption>
<p>DTS prediction results on testing well B9. <bold>(A)</bold> DTS log curve, <bold>(B)</bold> True and predicted DTS distribution, <bold>(C)</bold> <italic>R</italic>
<sup>2</sup> analysis, <bold>(D)</bold> Homoscedasticity analysis.</p>
</caption>
<graphic xlink:href="feart-11-1101601-g013.tif"/>
</fig>
</sec>
<sec sec-type="discussion" id="s3">
<title>Discussion</title>
<p>The proposed GCN-BiGRU method predicts the S-wave velocity by extracting the spatial and depth relationships among well-log data. The model combines GCN into GRU to create a GCN-GRU network, which is implemented to predict the S-wave velocity in two directions, forming the GCN-BiGRU network. The performance of the method is evaluated with a training dataset ratio test and a noise sensitivity test. The GCN-BiGRU has a lower error than Castagna&#x2019;s equation, LR, SVR, LSTM, GRU, and BiGRU baseline methods using the well-logs from the North Sea area. The approach is feasible and could be further extended for reservoir properties prediction using inverted seismic data as input and output maps and volumes of rock properties.</p>
<p>The GCN embeds the topological information, the intrinsic relationships, and the measured physical properties of the geological formations by an external-knowledge approach. The Gconv aggregates nearby information from the nodes, resembling a spectral Fourier filter. The number of nodes in the graph impacts the quality of the embeddings. Fewer nodes create shallow embeddings that reduce the representation ability.</p>
<p>Although 1-layer GCN is adopted due to the current graph topology, the GCN can extract deeper patterns from the well-log data with multiple GCN layers (<xref ref-type="bibr" rid="B27">Magner et al., 2022</xref>). Further research could reframe the graph creation process and add more hierarchy nodes (<italic>i.e.</italic>, nodes connected below the first-level nodes) for a meaningful aggregation during the graph embeddings.</p>
<p>The GCN-GRU extracts patterns over previous data windows to map the changes in rock properties with depth. The number of hidden units inside the GCN-GRU impacts the ability to memorize the most important information for the S-wave velocity prediction. Moreover, the dimension of the hidden states balances the generalization and overfitting of the GCN-GRU.</p>
<p>GNNs are a versatile approach to solving problems by the intrinsic message-passing characteristic. As an unsupervised outlier removal method, GNN shows promising results in handling anomalous values based on the sample distance between neighbor samples. GNN adapts to particular datasets by fine-tuning the number of nearest neighbor samples, which is essential for the detection performance. GNN for local outlier removal increases the accuracy of the model at the expense of a higher computational cost than IF and LOF.</p>
<p>The feature engineering process improves the prediction ability of the GCN-BiGRU. The prediction error is reduced with the IMFs. However, the network complexity and the training time increase with a higher number of features. The frequency bands are an alternative trade-off between accuracy and efficiency.</p>
<p>The construction of the graph is an essential step for the success of graph embedding. The proposed approach constructs the adjacency matrix from the correlation coefficients among well-log data. This supervised external-knowledge approach links the relationships between the measured rock properties and the wave propagation parameters into the network. Linear coefficients have limitations for capturing intrinsic rock dependencies and are more sensitive to their variation with depth. Non-linear coefficients extract suitable representations of the complex relationships between rocks and measured physical properties and are more robust to well-log data variance, preserving the intrinsic dependencies that govern depth.</p>
<p>Depth changes are affected by temperature, pressure, fluid, and lithology, among other factors. Difficulties arise with a fixed adjacency matrix in complex geological scenarios by approximating the global properties variation with depth. Specifically, the GCN has limitations for predicting local minima and maxima due to the smooth moving average filter in the Fourier domain. Therefore, further research towards a dynamic graph representation to recreate more realistic models and map depth-dependent representations is encouraged.</p>
<p>The GCN-BiGRU uses point-wise activation functions as a non-linear operator. Nevertheless, further research is required to adapt non-linearities directly into the graph domain and increase the generalization of the model. The contribution of conventional attention mechanisms for the S-wave velocity prediction should be further explored. Graph attention networks or graph transformers have the potential to improve the ability of the network in abrupt lithology changes.</p>
</sec>
<sec sec-type="conclusion" id="s4">
<title>Conclusion</title>
<p>This study introduces a novel method for predicting S-wave velocity with a GCN-BiGRU network. GCN captures the spatial dependencies from the well-log data, while bidirectional GCN-GRU maps the changes in the rock properties with depth in both upward and backward directions. The well-log data are transformed into the graph domain by integrating external knowledge into the model. The well-logs are the graph nodes, well-logging data are the node features, and their intrinsic non-linear relationships are the edges features defined by TIC. Moreover, an unsupervised GNN is implemented for outlier removal to increase the network performance. And IMFs are aggregated to the node features, improving the prediction accuracy. The proposed method performs better than LR, SVR, LSTM, GRU, BiGRU methods, and Castagna&#x2019;s empirical equation. Finally, this method shows promising applications for predicting reservoir properties using inverted seismic data.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s5">
<title>Data availability statement</title>
<p>The original contributions presented in the study are included in the article/Supplementary Material, further inquiries can be directed to the corresponding author. The North Sea dataset can be downloaded through the dGB Earth Sciences Open Seismic Repository <ext-link ext-link-type="uri" xlink:href="https://terranubis.com/datainfo/FORCE-ML-Competition-2020-Synthetic-Models-and-Wells">https://terranubis.com/datainfo/FORCE-ML-Competition-2020-Synthetic-Models-and-Wells</ext-link>.</p>
</sec>
<sec id="s6">
<title>Author contributions</title>
<p>DC and YL contributed to the idea and methodology. DC was responsible for the field data training and testing and the writing of the manuscript, and YL checked and polished the manuscript. All authors have read the manuscript and agreed to publish it.</p>
</sec>
<sec id="s7">
<title>Funding</title>
<p>National Natural Science Foundation of China (NSFC) under contract no. 42274147.</p>
</sec>
<ack>
<p>We want to thank the Editor, Zhenming Peng, and the two external peer reviewers for their insightful comments and suggestions, which helped improve the quality of our manuscript. We also thank Gui Cheng for his helpful discussion and valuable recommendations. We are particularly grateful to China&#x2019;s National Natural Science Foundation for its founding and support.</p>
</ack>
<sec sec-type="COI-statement" id="s8">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s9">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ali</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Pan</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Abbas</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Ashraf</surname>
<given-names>U.</given-names>
</name>
<etal/>
</person-group> (<year>2021</year>). <article-title>Machine learning &#x2013; a novel approach of well logs similarity based on synchronization measures to predict shear sonic logs</article-title>. <source>J. Pet. Sci. Eng.</source> <volume>203</volume>, <fpage>108602</fpage>. <pub-id pub-id-type="doi">10.1016/j.petrol.2021.108602</pub-id>
</citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Amarbayasgalan</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Jargalsaikhan</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Ryu</surname>
<given-names>K. H.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Unsupervised novelty detection using deep autoencoders with density based clustering</article-title>. <source>Appl. Sci.</source> <volume>8</volume> (<issue>9</issue>), <fpage>1468</fpage>. <pub-id pub-id-type="doi">10.3390/app8091468</pub-id>
</citation>
</ref>
<ref id="B3">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Anemangely</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Ramezanzadeh</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Amiri</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Hoseinpour</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Machine learning technique for the prediction of shear wave velocity using petrophysical logs</article-title>. <source>J. Pet. Sci. Eng.</source> <volume>174</volume>, <fpage>306</fpage>&#x2013;<lpage>327</lpage>. <pub-id pub-id-type="doi">10.1016/j.petrol.2018.11.032</pub-id>
</citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bahdanau</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Cho</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Bengio</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Neural machine translation by jointly learning to align and translate</article-title>. <comment>ArXiv abs/1409.0473</comment>.</citation>
</ref>
<ref id="B5">
<citation citation-type="web">
<person-group person-group-type="author">
<name>
<surname>Bormann</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Aursand</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Dilib</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Dischington</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Manral</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>FORCE Mach. Learn contest</article-title>. <comment>Avaliable At: <ext-link ext-link-type="uri" xlink:href="https://github.com/bolgebrygg/Force-2020-Machine-Learning-competition">https://github.com/bolgebrygg/Force-2020-Machine-Learning-competition</ext-link>
</comment>.</citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Breunig</surname>
<given-names>M. M.</given-names>
</name>
<name>
<surname>Kriegel</surname>
<given-names>H. P.</given-names>
</name>
<name>
<surname>Ng</surname>
<given-names>R. T.</given-names>
</name>
<name>
<surname>Sander</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2000</year>). <article-title>Lof: Identifying density-based local outliers</article-title>. <source>ACM SIGMOD Rec.</source> <volume>29</volume> (<issue>2</issue>), <fpage>93</fpage>&#x2013;<lpage>104</lpage>. <pub-id pub-id-type="doi">10.1145/342009.335388</pub-id>
</citation>
</ref>
<ref id="B7">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Castagna</surname>
<given-names>J. P.</given-names>
</name>
<name>
<surname>Batzle</surname>
<given-names>M. L.</given-names>
</name>
<name>
<surname>Eastwood</surname>
<given-names>R. L.</given-names>
</name>
</person-group> (<year>1985</year>). <article-title>Relationships between compressional-wave and shear-wave velocities in clastic silicate rocks</article-title>. <source>Geophysics</source> <volume>50</volume> (<issue>4</issue>), <fpage>571</fpage>&#x2013;<lpage>581</lpage>. <pub-id pub-id-type="doi">10.1190/1.1441933</pub-id>
</citation>
</ref>
<ref id="B8">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Zha</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Deep learning reservoir porosity prediction based on multilayer long short-term memory network</article-title>. <source>Geophysics</source> <volume>85</volume> (<issue>4</issue>), <fpage>WA213</fpage>&#x2013;<lpage>WA225</lpage>. <pub-id pub-id-type="doi">10.1190/geo2019-0261.1</pub-id>
</citation>
</ref>
<ref id="B9">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Cho</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Merrienboer</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Bahdanau</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Bengio</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2014</year>). &#x201c;<article-title>On the properties of neural machine translation: Encoder-decoder approaches</article-title>,&#x201d; in <source>Proc. Syntax semant. Struct. Stat. Transl</source> (<publisher-loc>Doha, Qatar</publisher-loc>: <publisher-name>Association for Computational Linguistics</publisher-name>), <fpage>103</fpage>&#x2013;<lpage>111</lpage>. <pub-id pub-id-type="doi">10.3115/v1/W14-4012</pub-id>
</citation>
</ref>
<ref id="B10">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Colominas</surname>
<given-names>M. A.</given-names>
</name>
<name>
<surname>Schlotthauer</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Torres</surname>
<given-names>M. E.</given-names>
</name>
</person-group> (<year>2014</year>). <article-title>Improved complete ensemble EMD: A suitable tool for biomedical signal processing</article-title>. <source>Biomed. Signal Process. Control.</source> <volume>14</volume> (<issue>1</issue>), <fpage>19</fpage>&#x2013;<lpage>29</lpage>. <pub-id pub-id-type="doi">10.1016/j.bspc.2014.06.009</pub-id>
</citation>
</ref>
<ref id="B11">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Defferrard</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Bresson</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Vandergheynst</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>Convolutional neural networks on graphs with fast localized spectral filtering</article-title>,&#x201d; in <conf-name>Proc. Int. Conf. Neural inf. Process. Syst</conf-name>, <conf-loc>Barcelona, Spain</conf-loc>, <conf-date>December 5&#x2013;10, 2016</conf-date> (<publisher-name>Neural Information Processing Systems (NIPS)</publisher-name>), <fpage>3844</fpage>&#x2013;<lpage>3852</lpage>. <pub-id pub-id-type="doi">10.5555/3157382.3157527</pub-id>
</citation>
</ref>
<ref id="B12">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Di Massa</surname>
<given-names>V.</given-names>
</name>
<name>
<surname>Monfardini</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Sarti</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Scarselli</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Maggini</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Gori</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2006</year>). &#x201c;<article-title>A comparison between recursive neural networks and graph neural networks</article-title>,&#x201d; in <conf-name>Proc. Int. Jt. Conf. Neural Netw</conf-name>, <conf-loc>Vancouver, BC, Canada</conf-loc>, <conf-date>16-21 July 2006</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>778</fpage>&#x2013;<lpage>785</lpage>. <pub-id pub-id-type="doi">10.1109/IJCNN.2006.246763</pub-id>
</citation>
</ref>
<ref id="B13">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gao</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Jia</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>An improved CEEMDAN-FE-TCN model for highway traffic flow prediction</article-title>. <source>J. Adv. Transp.</source> <volume>2022</volume>, <fpage>1</fpage>&#x2013;<lpage>20</lpage>. <pub-id pub-id-type="doi">10.1155/2022/2265000</pub-id>
</citation>
</ref>
<ref id="B14">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Goodge</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Hooi</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Ng</surname>
<given-names>S. K.</given-names>
</name>
<name>
<surname>Ng</surname>
<given-names>W. S.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Lunar: Unifying local outlier detection methods via graph neural networks</article-title>. <source>Proc. AAAI Conf. Artif. Intell.</source> <volume>36</volume> (<issue>6</issue>), <fpage>6737</fpage>&#x2013;<lpage>6745</lpage>. <pub-id pub-id-type="doi">10.1609/aaai.v36i6.20629</pub-id>
</citation>
</ref>
<ref id="B15">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gori</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Monfardini</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Scarselli</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2005</year>). <article-title>A new model for learning in graph domains</article-title>. <source>Proc. Int. Jt. Conf. Neural. Netw.</source> <volume>2</volume>, <fpage>729</fpage>&#x2013;<lpage>734</lpage>. <pub-id pub-id-type="doi">10.1109/IJCNN.2005.1555942</pub-id>
</citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Greenberg</surname>
<given-names>M. L.</given-names>
</name>
<name>
<surname>Castagna</surname>
<given-names>J. P.</given-names>
</name>
</person-group> (<year>1992</year>). <article-title>Shear-wave velocity estimation in porous rocks: Theoretical formulation, preliminary verification and applications</article-title>. <source>Geophys. Prospect</source> <volume>40</volume> (<issue>2</issue>), <fpage>195</fpage>&#x2013;<lpage>209</lpage>. <pub-id pub-id-type="doi">10.1111/j.1365-2478.1992.tb00371.x</pub-id>
</citation>
</ref>
<ref id="B17">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Hamilton</surname>
<given-names>W. L.</given-names>
</name>
<name>
<surname>Ying</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Leskovec</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2017</year>). &#x201c;<article-title>Inductive representation learning on large graphs</article-title>,&#x201d; in <conf-name>Proc. Int. Conf. Neural syst</conf-name>, <conf-loc>Long Beach, California, United States</conf-loc>, <conf-date>December 4&#x2013;9, 2017</conf-date> (<publisher-name>Neural Information Processing Systems (NIPS)</publisher-name>), <fpage>1025</fpage>&#x2013;<lpage>1035</lpage>. <pub-id pub-id-type="doi">10.5555/3294771.3294869</pub-id>
</citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hampson</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Schuelke</surname>
<given-names>J. S.</given-names>
</name>
<name>
<surname>Quirein</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2001</year>). <article-title>Use of multiattribute transforms to predict log properties from seismic data</article-title>. <source>Geophysics</source> <volume>66</volume> (<issue>1</issue>), <fpage>220</fpage>&#x2013;<lpage>236</lpage>. <pub-id pub-id-type="doi">10.1190/1.1444899</pub-id>
</citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hopfield</surname>
<given-names>J. J.</given-names>
</name>
</person-group> (<year>1982</year>). <article-title>Neural networks and physical systems with emergent collective computational abilities</article-title>. <source>Proc. Natl. Acad. Sci. USA.</source> <volume>79</volume> (<issue>8</issue>), <fpage>2554</fpage>&#x2013;<lpage>2558</lpage>. <pub-id pub-id-type="doi">10.1073/PNAS.79.8.2554</pub-id>
</citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huang</surname>
<given-names>N. E.</given-names>
</name>
<name>
<surname>Shen</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Long</surname>
<given-names>S. R.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>M. L. C.</given-names>
</name>
<name>
<surname>Shih</surname>
<given-names>H. H.</given-names>
</name>
<name>
<surname>Zheng</surname>
<given-names>Q.</given-names>
</name>
<etal/>
</person-group> (<year>1998</year>). <article-title>The empirical mode decomposition and the Hilbert spectrum for non-linear and non-stationary time series analysis</article-title>. <source>Proc. R. Soc. Lond.</source> <volume>454</volume>, <fpage>903</fpage>&#x2013;<lpage>995</lpage>. <pub-id pub-id-type="doi">10.1098/rspa.1998.0193</pub-id>
</citation>
</ref>
<ref id="B21">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jiang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Lithology identification from well-log curves via neural networks with additional geologic constraint</article-title>. <source>Geophysics</source> <volume>86</volume> (<issue>5</issue>), <fpage>IM85</fpage>&#x2013;<lpage>IM100</lpage>. <pub-id pub-id-type="doi">10.1190/geo2020-0676.1</pub-id>
</citation>
</ref>
<ref id="B22">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Jiang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Xing</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Liang</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>Study of S-wave velocity prediction model in shale formations</article-title>,&#x201d; in <source>SEG global meeting abstr</source> (<publisher-loc>Beijing, China</publisher-loc>: <publisher-name>SEG Global Meeting</publisher-name>), <fpage>1343</fpage>&#x2013;<lpage>1345</lpage>. <pub-id pub-id-type="doi">10.1190/IGC2018-329</pub-id>
</citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kingma</surname>
<given-names>D. P.</given-names>
</name>
<name>
<surname>Ba</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Adam: A method for stochastic optimization</article-title>. <comment>ArXiv abs/1412.6980</comment>.</citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kipf</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Welling</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Semi-supervised classification with graph convolutional networks</article-title>. <comment>ArXiv abs/1609.02907</comment>.</citation>
</ref>
<ref id="B25">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kumar</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Irsoy</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>Su</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Bradbury</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>English</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Pierce</surname>
<given-names>B.</given-names>
</name>
<etal/>
</person-group> (<year>2016</year>). <article-title>Ask me anything: Dynamic memory networks for natural language processing</article-title>. <source>Proc. Int. Conf. Neural Inf. Process. Syst.</source> <volume>48</volume>, <fpage>1378</fpage>&#x2013;<lpage>1387</lpage>. <pub-id pub-id-type="doi">10.5555/3045390.3045536</pub-id>
</citation>
</ref>
<ref id="B26">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Liu</surname>
<given-names>F. T.</given-names>
</name>
<name>
<surname>Ting</surname>
<given-names>K. M.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>Z. H.</given-names>
</name>
</person-group> (<year>2008</year>). &#x201c;<article-title>Isolation forest</article-title>,&#x201d; in <conf-name>IEEE Int. Conf. Data Min</conf-name>, <conf-loc>Pisa, Italy</conf-loc>, <conf-date>15-19 December 2008</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>413</fpage>&#x2013;<lpage>422</lpage>. <pub-id pub-id-type="doi">10.1109/ICDM.2008.17</pub-id>
</citation>
</ref>
<ref id="B27">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Magner</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Baranwal</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Hero</surname>
<given-names>A. O.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Fundamental limits of deep graph convolutional networks for graph classification</article-title>. <source>IEEE Trans. Inf. Theory</source> <volume>68</volume> (<issue>5</issue>), <fpage>3218</fpage>&#x2013;<lpage>3233</lpage>. <pub-id pub-id-type="doi">10.1109/TIT.2022.3145847</pub-id>
</citation>
</ref>
<ref id="B28">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Misra</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Mish: A self regularized non-monotonic activation function</article-title>. <comment>ArXiv abs/1908.08681</comment>.</citation>
</ref>
<ref id="B29">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Narayanan</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Chandramohan</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Venkatesan</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Jaiswal</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Graph2vec: Learning distributed representations of graphs</article-title>. <comment>ArXiv abs/1707.05005</comment>.</citation>
</ref>
<ref id="B30">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Ni</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Qi</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Tao</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2017</year>). &#x201c;<article-title>Prediction of shear wave velocity in shale reservoir based on logging data and machine learning</article-title>,&#x201d; in <conf-name>Proc. Int. Conf. Softw. Eng. Knowl. Eng</conf-name>, <conf-loc>London, UK</conf-loc>, <conf-date>21-23 October 2017</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>231</fpage>&#x2013;<lpage>234</lpage>. <pub-id pub-id-type="doi">10.1109/ICKEA.2017.8169935</pub-id>
</citation>
</ref>
<ref id="B31">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Omovie</surname>
<given-names>S. J.</given-names>
</name>
<name>
<surname>Castagna</surname>
<given-names>J. P.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Estimation of shear&#x2010;wave velocities in unconventional shale reservoirs</article-title>. <source>Geophys. Prospect.</source> <volume>69</volume> (<issue>6</issue>), <fpage>1316</fpage>&#x2013;<lpage>1335</lpage>. <pub-id pub-id-type="doi">10.1111/1365-2478.13096</pub-id>
</citation>
</ref>
<ref id="B32">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Pilikos</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Faul</surname>
<given-names>A. C.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Bayesian modeling for uncertainty quantification in seismic compressive sensing</article-title>. <source>Geophysics</source> <volume>84</volume> (<issue>2</issue>), <fpage>P15</fpage>&#x2013;<lpage>P25</lpage>. <pub-id pub-id-type="doi">10.1190/geo2018-0145.1</pub-id>
</citation>
</ref>
<ref id="B33">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Refunjol</surname>
<given-names>X. E.</given-names>
</name>
<name>
<surname>Wallet</surname>
<given-names>B. C.</given-names>
</name>
<name>
<surname>Castagna</surname>
<given-names>J. P.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Fluid discrimination using detrended seismic impedance</article-title>. <source>Interpretation</source> <volume>10</volume> (<issue>1</issue>), <fpage>SA15</fpage>&#x2013;<lpage>SA24</lpage>. <pub-id pub-id-type="doi">10.1190/INT-2020-0219.1</pub-id>
</citation>
</ref>
<ref id="B34">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Reshef</surname>
<given-names>D. N.</given-names>
</name>
<name>
<surname>Reshef</surname>
<given-names>Y. A.</given-names>
</name>
<name>
<surname>Finucane</surname>
<given-names>H. K.</given-names>
</name>
<name>
<surname>Grossman</surname>
<given-names>S. R.</given-names>
</name>
<name>
<surname>Mcvean</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Turnbaugh</surname>
<given-names>P. J.</given-names>
</name>
<etal/>
</person-group> (<year>2011</year>). <article-title>Detecting novel associations in large data sets</article-title>. <source>Science</source> <volume>334</volume> (<issue>6062</issue>), <fpage>1518</fpage>&#x2013;<lpage>1524</lpage>. <pub-id pub-id-type="doi">10.1126/science.1205438</pub-id>
</citation>
</ref>
<ref id="B35">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Reshef</surname>
<given-names>D. N.</given-names>
</name>
<name>
<surname>Reshef</surname>
<given-names>Y. A.</given-names>
</name>
<name>
<surname>Sabeti</surname>
<given-names>P. C.</given-names>
</name>
<name>
<surname>Mitzenmacher</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>An empirical study of the maximal and total information coefficients and leading measures of dependence</article-title>. <source>Ann. Appl. Stat.</source> <volume>12</volume> (<issue>1</issue>), <fpage>123</fpage>&#x2013;<lpage>155</lpage>. <pub-id pub-id-type="doi">10.1214/17-AOAS1093</pub-id>
</citation>
</ref>
<ref id="B36">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Reshef</surname>
<given-names>Y. A.</given-names>
</name>
<name>
<surname>Reshef</surname>
<given-names>D. N.</given-names>
</name>
<name>
<surname>Sabeti</surname>
<given-names>P. C.</given-names>
</name>
<name>
<surname>Mitzenmacher</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>Equitability, interval estimation, and statistical power</article-title>. <comment>ArXiv abs/1505.022122015</comment>.</citation>
</ref>
<ref id="B37">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Reshef</surname>
<given-names>Y. A.</given-names>
</name>
<name>
<surname>Reshef</surname>
<given-names>D. N.</given-names>
</name>
<name>
<surname>Sabeti</surname>
<given-names>P. C.</given-names>
</name>
<name>
<surname>Mitzenmacher</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Measuring dependence powerfully and equitably</article-title>. <source>J. Mach. Learn. Res.</source> <volume>17</volume> (<issue>1</issue>), <fpage>7406</fpage>&#x2013;<lpage>7468</lpage>. <pub-id pub-id-type="doi">10.5555/2946645.3053493</pub-id>
</citation>
</ref>
<ref id="B38">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Scarselli</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Gori</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Tsoi</surname>
<given-names>A. C.</given-names>
</name>
<name>
<surname>Hagenbuchner</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Monfardini</surname>
<given-names>G.</given-names>
</name>
</person-group> (<year>2009</year>). <article-title>The graph neural network model</article-title>. <source>IEEE Trans. Neural Netw.</source> <volume>20</volume> (<issue>1</issue>), <fpage>61</fpage>&#x2013;<lpage>80</lpage>. <pub-id pub-id-type="doi">10.1109/TNN.2008.2005605</pub-id>
</citation>
</ref>
<ref id="B39">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Skekely</surname>
<given-names>G. J.</given-names>
</name>
<name>
<surname>Rizzo</surname>
<given-names>M. L.</given-names>
</name>
<name>
<surname>Bakirov</surname>
<given-names>N. K.</given-names>
</name>
</person-group> (<year>2007</year>). <article-title>Measuring and testing dependence by correlation of distances</article-title>. <source>Ann. Stat.</source> <volume>35</volume> (<issue>6</issue>), <fpage>2769</fpage>&#x2013;<lpage>2794</lpage>. <pub-id pub-id-type="doi">10.1214/009053607000000505</pub-id>
</citation>
</ref>
<ref id="B40">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sukhbaatar</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Szlam</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Weston</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Fergus</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2015</year>). <article-title>End-to-end memory networks</article-title>. <source>Proc. Int. Conf. Neural Inf. Process. Syst.</source> <volume>2</volume>, <fpage>2440</fpage>&#x2013;<lpage>2448</lpage>. <pub-id pub-id-type="doi">10.5555/2969442.2969512</pub-id>
</citation>
</ref>
<ref id="B41">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sun</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Prediction of S-wave velocity based on GRU neural network</article-title>. <source>Oil Geophys. Prospect.</source> <volume>55</volume> (<issue>3</issue>), <fpage>484</fpage>&#x2013;<lpage>492</lpage>. <pub-id pub-id-type="doi">10.13810/j.cnki.issn.1000-7210.2020.03.001-en</pub-id>
</citation>
</ref>
<ref id="B42">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Szab&#xf3;</surname>
<given-names>N. P.</given-names>
</name>
<name>
<surname>Dobroka</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Robust estimation of reservoir shaliness by iteratively reweighted factor analysis</article-title>. <source>Geophysics</source> <volume>82</volume> (<issue>2</issue>), <fpage>D69</fpage>&#x2013;<lpage>D83</lpage>. <pub-id pub-id-type="doi">10.1190/geo2016-0393.1</pub-id>
</citation>
</ref>
<ref id="B43">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Vernik</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Castagna</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Omovie</surname>
<given-names>S. J.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>S-wave velocity prediction in unconventional shale reservoirs</article-title>. <source>Geophysics</source> <volume>83</volume> (<issue>1</issue>), <fpage>MR35</fpage>&#x2013;<lpage>MR45</lpage>. <pub-id pub-id-type="doi">10.1190/geo2017-0349.1</pub-id>
</citation>
</ref>
<ref id="B44">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Vernik</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Kachanov</surname>
<given-names>L. M.</given-names>
</name>
</person-group> (<year>2010</year>). <article-title>Modeling elastic properties of siliciclastic rocks</article-title>. <source>Geophysics</source> <volume>75</volume> (<issue>6</issue>), <fpage>E171</fpage>&#x2013;<lpage>E182</lpage>. <pub-id pub-id-type="doi">10.1190/1.3494031</pub-id>
</citation>
</ref>
<ref id="B45">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Data-driven S-wave velocity prediction method via a deep-learning-based deep convolutional gated recurrent unit fusion network</article-title>. <source>Geophysics</source> <volume>86</volume> (<issue>6</issue>), <fpage>M185</fpage>&#x2013;<lpage>M196</lpage>. <pub-id pub-id-type="doi">10.1190/geo2020-0886.1</pub-id>
</citation>
</ref>
<ref id="B46">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Leskovec</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Jegelka</surname>
<given-names>S.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>How powerful are graph neural networks?</article-title> <comment>ArXiv abs/1810.00826</comment>.</citation>
</ref>
<ref id="B47">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>White</surname>
<given-names>R. E.</given-names>
</name>
</person-group> (<year>1995</year>). <article-title>A new velocity model for clay-sand mixtures</article-title>. <source>Geophys. Prosp.</source> <volume>43</volume> (<issue>1</issue>), <fpage>91</fpage>&#x2013;<lpage>118</lpage>. <pub-id pub-id-type="doi">10.1111/j.1365-2478.1995.tb00126.x</pub-id>
</citation>
</ref>
<ref id="B48">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xue</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Du</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Yao</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2016</year>). <article-title>Seismic attenuation estimation using a complete ensemble empirical mode decomposition-based method</article-title>. <source>Mar. Pet. Geol.</source> <volume>71</volume>, <fpage>296</fpage>&#x2013;<lpage>309</lpage>. <pub-id pub-id-type="doi">10.1016/J.MARPETGEO.2016.01.011</pub-id>
</citation>
</ref>
<ref id="B49">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Dyer</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>He</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Smola</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Hovy</surname>
<given-names>E.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>Hierarchical attention networks for document classification</article-title>,&#x201d; in <source>Proc. North ame. Chapter assoc. Comput. Ling</source> (<publisher-loc>San Diego, California</publisher-loc>: <publisher-name>Association for Computational Linguistics</publisher-name>). <pub-id pub-id-type="doi">10.18653/v1/N16-1174</pub-id>
</citation>
</ref>
<ref id="B50">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Yu</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Yin</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>Spatio-temporal graph convolutional networks: A deep learning framework for traffic forecasting</article-title>,&#x201d; in <conf-name>Proc. Int. J. Artif. Intell</conf-name>, <conf-loc>Stockholm, Sweden</conf-loc>, <conf-date>July 13&#x2013;19, 2018</conf-date> (<publisher-name>International Joint Conferences on Artificial Intelligence Organization (IJCAI)</publisher-name>), <fpage>3634</fpage>&#x2013;<lpage>3640</lpage>. <pub-id pub-id-type="doi">10.24963/ijcai.2018/505</pub-id>
</citation>
</ref>
<ref id="B51">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Yu</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Yan</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>F.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>Robust L1-norm matrixed locality preserving projection for discriminative subspace learning</article-title>,&#x201d; in <conf-name>Proc. Int. Jt. Conf. Neural Netw</conf-name>, <conf-loc>Vancouver, BC, Canada</conf-loc>, <conf-date>24-29 July 2016</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>4199</fpage>&#x2013;<lpage>4204</lpage>. <pub-id pub-id-type="doi">10.1109/IJCNN.2016.7727747</pub-id>
</citation>
</ref>
<ref id="B52">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zeng</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Shan</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Attention-based bidirectional gated recurrent unit neural networks for well logs prediction and lithology identification</article-title>. <source>Neurocomputing</source> <volume>414</volume> (<issue>13</issue>), <fpage>153</fpage>&#x2013;<lpage>171</lpage>. <pub-id pub-id-type="doi">10.1016/j.neucom.2020.07.026</pub-id>
</citation>
</ref>
<ref id="B53">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhong</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Zhou</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Ma</surname>
<given-names>Q.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>Improvement of petrophysical workflow for shear wave velocity prediction based on machine learning methods for complex carbonate reservoirs</article-title>. <source>J. Pet. Sci. Eng.</source> <volume>192</volume>, <fpage>107234</fpage>. <pub-id pub-id-type="doi">10.1016/j.petrol.2020.107234</pub-id>
</citation>
</ref>
<ref id="B54">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhao</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>T.</given-names>
</name>
<etal/>
</person-group> (<year>2020</year>). <article-title>T-GCN: A temporal graph convolutional network for traffic prediction</article-title>. <source>IEEE Trans. Intell. Transp. Syst.</source> <volume>21</volume> (<issue>9</issue>), <fpage>3848</fpage>&#x2013;<lpage>3858</lpage>. <pub-id pub-id-type="doi">10.1109/TITS.2019.2935152</pub-id>
</citation>
</ref>
<ref id="B55">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Zhong</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Geng</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>Shear wave velocity prediction of carbonate reservoirs based on CatBoost</article-title>,&#x201d; in <conf-name>Int. Conf. Artif. Intell. Big Data,</conf-name> <conf-loc>Chengdu, China</conf-loc>, <conf-date>28-31 May 2021</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>622</fpage>&#x2013;<lpage>626</lpage>. <pub-id pub-id-type="doi">10.1109/ICAIBD51990.2021.9459061</pub-id>
</citation>
</ref>
<ref id="B56">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>F.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Trajcevski</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Zhong</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Geng</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2019a</year>). &#x201c;<article-title>Meta-GNN: On few-shot node classification in graph meta-learning</article-title>,&#x201d; in <source>Proc. Int. Conf. Inf. Knowl. Manag</source> (<publisher-loc>Washington, DC, USA</publisher-loc>: <publisher-name>ACM</publisher-name>), <fpage>2357</fpage>&#x2013;<lpage>2360</lpage>. <pub-id pub-id-type="doi">10.1145/3357384.3358106</pub-id>
</citation>
</ref>
<ref id="B57">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhou</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>J. Y.</given-names>
</name>
<name>
<surname>Qian</surname>
<given-names>Z.</given-names>
</name>
</person-group> (<year>2019b</year>). <article-title>A CEEMDAN and XGBOOST-based approach to forecast crude oil prices</article-title>. <source>Complex</source> <volume>2019</volume>, <fpage>1</fpage>&#x2013;<lpage>15</lpage>. <pub-id pub-id-type="doi">10.1155/2019/4392785</pub-id>
</citation>
</ref>
</ref-list>
</back>
</article>