A marketing call intelligent identification method based on random forest

CN122933818APending Publication Date: 2026-10-16CHONGJIN (HANGZHOU) TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202611085171.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-07-21
Publication Date
2026-10-16

AI Technical Summary

Benefits of technology

本发明通过连续通话关系图对运营通话记录进行时间窗口收束,将电话号码归为号码节点,将呼入呼出过程整理为有向通话边,能够在号码之间保留外呼方向、触达范围和通话持续特征。与仅依赖单号码频次、时长或黑名单的识别方式相比,本发明能够从通话关系变化中捕捉营销电话的群体化外呼特征,降低新号码识别滞后和正常高频号码误判风险。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122933818A_ABST
    Figure CN122933818A_ABST
Patent Text Reader

Abstract

The application discloses a marketing telephone intelligent identification method based on a random forest, relates to the technical field of communication data intelligent identification, and comprises the following steps: S1, converging operation call records according to a time window, and assembling a continuous call relationship graph; S2, checking outgoing call acceptance changes between windows, and pressing into a relay breakpoint time marker; S3, accessing an improved space-time graph ordinary differential equation network model; S4, continuously advancing a channel in an ODEG module of an STGCN block by an ODEblock truncated fixed integration interval, and intercepting a hidden state tensor; S5, writing back an x zero state benchmark by an ODEFunc, and advancing the hidden state tensor after the relay; S6, reading out a number pool relay outgoing call state; S7, packaging a marketing telephone identification feature vector and accessing a random forest, and outputting a marketing telephone identification result. The application realizes marketing telephone intelligent identification in a number pool relay outgoing call scene.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of intelligent identification technology for communication data, and in particular to an intelligent identification method for marketing calls based on random forest. Background Technology

[0002] Existing methods for identifying marketing calls typically rely on user tagging, blacklists, keyword matching, or rule thresholds to determine the number. These methods require historical feedback or interception records as a basis, and are slow to identify new numbers that are not on blacklists or have not been extensively tagged, making it difficult to promptly detect continuously changing marketing numbers.

[0003] With the development of machine learning technology, number identification methods based on random forests are gradually being applied to communication data analysis. However, existing methods mostly extract static statistical features such as outbound call frequency, call duration, and call time periods for individual numbers, failing to fully utilize the inbound and outbound call relationships between numbers and making it difficult to distinguish between normal high-frequency service numbers and bulk marketing numbers.

[0004] In addition, while some graph neural network methods can utilize call relationship graphs, the models are complex, the deployment costs are high, and the recognition criteria are not easy to interpret. At the same time, existing call graph recognition methods mostly focus on static topological features, making it difficult to identify relay outbound call behaviors formed by number pool rotation, outbound call intensity dilution, and the continuation of called groups.

[0005] Therefore, how to provide a marketing call intelligent identification method based on random forest is a problem that urgently needs to be solved by those skilled in the art. Summary of the Invention

[0006] One objective of this invention is to propose an intelligent identification method for marketing calls based on random forests. This invention employs a combination of continuous call relationship graphs, an improved spatiotemporal graph ordinary differential equation network model, and random forests. By converging operational call records through time windows, it constructs number nodes and directed call edges, and identifies the relay breakpoint time markers formed by caller switching and callee group continuation. Based on this, the hidden state advancement path is rewritten within the ODEG module of the STGCN block. The continuous advancement path is stopped by the ODEblock within the fixed integral interval, and the zero-state baseline is reconstructed by ODEFunc. The relay outbound call status of the number pool is extracted, and then combined with node inbound / outbound relationships, reach range, outbound call tendency, and call duration features to complete random forest identification. This method has the advantages of low identification lag, strong relay outbound call identification capability, lightweight design, and good interpretability.

[0007] A marketing call intelligent identification method based on random forest according to an embodiment of the present invention includes the following steps: S1. Aggregate operational call records according to time windows, classify phone numbers as number nodes, organize inbound and outbound call processes into directed call edges, and assemble a continuous call relationship graph. S2. Check the changes in outbound call acceptance between windows in the continuous call relationship diagram, and press the boundary of the caller switching and the continued callee group into a relay breakpoint time mark. S3. Integrate the continuous call relationship graph and relay breakpoint time markers into the improved spatiotemporal graph ordinary differential equation network model, and rewrite the hidden state advancement path in the ODEG module of the STGCN block. S4. The ODEblock in the ODEG module truncates the continuous advancement path of the fixed integration interval. The ODE solver advances the hidden state tensor of the call graph along the time window dimension and stops the hidden state tensor at the relay breakpoint. S5, ODE unc writes the truncated hidden state tensor back to the x zero state reference. The x zero state reference is at the external call attenuation position before the node dimension bearing relay and at the time dimension bearing relay breakpoint. The ODE solver continues to advance the hidden state tensor after the relay. S6. The model reads out the hidden state tensor after the relay and merges the outbound call intermittent state and the called group acceptance state into the number pool relay outbound call state. S7. Encapsulate the features of the number pool relay outbound call status, node inbound / outbound relationship, reach range, outbound call tendency, and call duration into a marketing call identification feature vector, and output the marketing call identification result after connecting to a random forest.

[0008] Optionally, S1 specifically includes: S11. Cut the operation call records into the corresponding time window according to the time of the call, and remove the operation call records with missing time and missing calling and calling directions to form window call records; S12. Verify the calling and called numbers in the call log in the window, and merge the same phone numbers into the same number node in each time window; S13. Using the node to which the calling number belongs as the starting point of the edge and the node to which the called number belongs as the ending point of the edge, the inbound and outbound call processes are directed as directed call edges. S14. Merge directed call edges with the same starting point and ending point within the same time window, and incorporate the cumulative number of calls and the cumulative call duration into the merged directed call edge. S15. Sequence the number nodes retained in each time window and the merged directed call edges according to the order of occurrence of the time window, maintain the continuous attribution of the number nodes corresponding to the same phone number in adjacent time windows, and assemble the continuous call relationship diagram.

[0009] Optionally, S2 specifically includes: S21. Read adjacent time windows in the order of the continuous call relationship diagram, and assign the outbound calling side of the calling party in the previous time window and the outbound calling side of the calling party in the next time window to the corresponding calling party number node respectively. S22. Check the changes in the calling side number nodes in adjacent time windows. Mark the calling side number nodes that retain the outbound calling side in the previous time window and shrink the outbound calling side in the next time window as the calling side node before the relay. Mark the calling side number nodes that add or expand the outbound calling side in the next time window as the calling side node after the relay. S23. Read the called side number node along the directed call side connected by the calling node before the relay and the calling node after the relay, and retain the time window boundary where the called side number nodes on both sides overlap or belong to the same called group as the outbound call acceptance boundary. S24. Verify the changes in the directional call sides on both sides of the outbound call acceptance boundary, and press the outbound call acceptance boundary where the calling node shrinks before the handover, the calling node expands after the handover, and the called group is still reached into a handover breakpoint time marker.

[0010] Optionally, the improved spatiotemporal graph ordinary differential equation network model includes spatial graph tiles, semantic graph tiles, STGCN blocks, and prediction layers. The STGCN block includes a first temporal dilated convolutional network, an ODEG module, and a second temporal dilated convolutional network. The ODEG module includes ODEblock, ODEFunc, and an ODE solver. ODEblock calls the ODE solver to advance the hidden states of the call graph along the state changes given by ODEFunc.

[0011] Optionally, S4 specifically includes: S41. The ODEblock in the ODEG module receives the hidden state tensor of the call graph output by the first time-dilated convolutional network, maps the number node to the node dimension, maps the time window to the time window dimension, maps the outbound call changes to the feature channel, and extracts the benchmark integral time series corresponding to the fixed integral interval from the time window dimension. S42, ODEblock embeds the relay breakpoint time marker into the window boundary of the reference integration time series, cuts the reference integration time series along the time window dimension, retains the part between the integration start point and the relay breakpoint time marker as the integration segment before the breakpoint, and marks the part that crosses the relay breakpoint time marker as the integration segment across the breakpoint. S43, ODEblock cancels the continuous solution call of cross-breakpoint integration segments within the current fixed integration interval, and only opens the integration segment before the breakpoint to the ODE solver. The baseline integration time series without embedded relay breakpoint time markers maintains the call of the complete fixed integration interval. S44, the ODE solver advances the hidden state tensor of the call graph along the integral segment before the breakpoint. ODEFunc reads the directed call edge propagation matrix and feature channel change at each solution position. The rows of the directed call edge propagation matrix correspond to the called side number node, and the columns correspond to the calling side number node. The matrix position carries the outbound call acceptance amount of the directed call edge of the window. S45, ODEFunc will apply the directed call edge propagation matrix to the node dimension of the current hidden state tensor, apply the feature channel change to the feature channel of the current hidden state tensor, and backfill it to the current solution position along the time window dimension. If the node dimension does not hit the directed call edge, the propagation amount will be supplemented by the corresponding node value of the current hidden state tensor. S46. When the ODE solver reaches the window boundary where the relay breakpoint time marker is located, the ODEblock locks the termination position of the integral segment before the breakpoint, and extracts the node dimension value, time window dimension value and feature channel value at the window boundary to form the truncated hidden state tensor.

[0012] Optionally, S5 specifically includes: S51, ODEFunc reads the truncated hidden state tensor output by ODEblock, extracts the node dimension value, time window dimension value and feature channel value at the window boundary where the relay breakpoint time marker is located, and organizes them into the breakpoint start state. S52, ODEFunc removes the x zero-state reference of the fixed integration interval starting point in the current solution call, writes the breakpoint calculation state into the x zero-state baseline, retains the outbound call attenuation value of the calling node before the relay in the node dimension, locks the relay breakpoint time mark in the time window dimension, and retains the outbound call change before the breakpoint in the feature channel. S53, ODEFunc: The node position of the calling node after the relay is in the tensor of the intercepted hidden state along the node dimension core. When the node position is hit, the value of the calling node after the relay is merged into the node dimension of the x zero state reference. When the node position is not hit, the value of the called side number node is read along the called group receiving direction and added to the x zero state reference. S54, ODEFunc replaces the initial hidden state corresponding to the starting point of the fixed integration interval with the reconstructed x-zero state baseline, disconnects the start reference between the starting point of the fixed integration interval and the relay breakpoint time mark, and changes the starting position of the ODE solver to the time window after the relay breakpoint time mark. S55, ODE solver advances the hidden state tensor from the starting position after the reconnection. ODEFunc reads the forward call side propagation matrix after the relay at the solution position after the breakpoint. The rows of the forward call side propagation matrix after the relay correspond to the called side number node, the columns correspond to the calling side node after the relay, and the outbound call acceptance amount after the relay is written into the matrix position. S56, ODEFunc will apply the propagation matrix of the directed call side after the relay to the value of the x zero-state benchmark in the node dimension, overlay the change of outbound call after the breakpoint into the feature channel, and backfill it along the time window dimension to the current solution position. When there is no directed call side after the relay in the node dimension, the corresponding node value in the x zero-state benchmark is retained. S57. The ODE solver restarts the calculation along the time window after the relay breakpoint time mark, and merges the node dimension values, time window dimension values ​​and feature channel values ​​at each solution location to form the hidden state tensor after the relay.

[0013] Optionally, S6 specifically includes: S61. The prediction layer reads the hidden state tensor after the relay, locks the time window dimension value before and after the relay breakpoint time mark, and aligns the node dimension value of the corresponding number node with the feature channel value where the outbound call change is located as the readout object. S62. Read out the outbound call change values ​​of the calling node before and after the relay in the object by comparison along the time window, and merge the outbound call attenuation of the calling node before the relay and the outbound call continuation of the calling node after the relay into the outbound call discontinuous state. S63. Read the values ​​of the called side number nodes before and after the relay breakpoint in the read object along the node dimension, and merge the values ​​of the called side number nodes that are still reached before and after the relay breakpoint or continue along the same called group into the called group acceptance state. S64. When the calling node is not found in the node dimension after the relay, the value of the connected calling side node is retrieved by looking back along the called group's acceptance state, and the retrieved value of the calling side node is added to the outbound call discontinuity state. S65. Merge the outbound call intermittent state and the called group acceptance state in the readout channel to form the number pool relay outbound call state.

[0014] Optionally, S7 specifically includes: S71. Read the outbound call status of the number pool relay, and assign the outbound call intermittent status and the called group acceptance status to the corresponding number node to form the number node relay characteristics. S72. Statistically analyze the inbound and outbound edge distribution, contact reach range, outbound call direction bias, and call duration of the corresponding number nodes along the continuous call relationship graph, and summarize them into the behavioral statistical features of the number nodes. S73. Merge the number node relay features and number node behavior statistics features according to the same number node. When the number node relay features are missing, retain the number node behavior statistics features and encapsulate them into a marketing call identification feature vector. S74. The marketing call identification feature vector is connected to the random forest. Each decision tree in the random forest performs a split judgment on the marketing call identification feature vector along the feature splitting path to form a single tree identification result. S75. Merge the single-tree recognition results output by each decision tree, and label the voting merged result as the marketing call recognition result.

[0015] The beneficial effects of this invention are: This invention uses a continuous call relationship graph to converge time windows in operational call records, grouping phone numbers into number nodes and organizing inbound and outbound call processes into directed call edges. This preserves outbound call direction, reach, and call duration characteristics between numbers. Compared to identification methods that rely solely on single-number frequency, duration, or blacklists, this invention can capture the grouped outbound call characteristics of marketing calls from changes in call relationships, reducing the lag in new number identification and the risk of misjudging normal high-frequency numbers.

[0016] Furthermore, this invention introduces an improved spatiotemporal graph ordinary differential equation network model, rewriting the hidden state advancement path within the ODEG module of the STGCN block. By truncating the continuous advancement path within a fixed integration interval using ODEblock, and having ODEFunc write back the truncated hidden state tensor as the x-zero state baseline, it is possible to preserve the breakpoint information formed by the caller-side switching and the continuation of the called group in the number pool relay outbound call, avoiding the smoothing out of relay outbound call traces by the ordinary continuous advancement process.

[0017] This invention also encapsulates the characteristics of number pool relay outbound call status, node inbound / outbound relationships, reach range, outbound call tendency, and call duration into a marketing call identification feature vector, and integrates it with a random forest to complete the identification. This method retains the lightweight, interpretable, and easy-to-deploy characteristics of random forests, while enhancing the ability to identify number pool rotation, outbound call intensity dilution, and relay reach behavior, making it suitable for intelligent identification of marketing calls in large-scale communication scenarios. Attached Figure Description

[0018] The accompanying drawings are provided to further illustrate the invention and form part of the specification. They are used in conjunction with embodiments of the invention to explain the invention and do not constitute a limitation thereof. In the drawings: Figure 1 This is an overall flowchart of a marketing call intelligent identification method based on random forest proposed in this invention; Figure 2 This is a schematic diagram of the improved spatiotemporal graph ordinary differential equation network model in the intelligent identification method for marketing calls based on random forest proposed in this invention. Figure 3 This is a schematic diagram of the relay breakpoint interception and x-zero state baseline reconstruction within the ODEG module of the intelligent marketing call identification method based on random forest proposed in this invention. Detailed Implementation

[0019] The present invention will now be described in further detail with reference to the accompanying drawings. These drawings are simplified schematic diagrams, illustrating only the basic structure of the invention, and therefore only show the components relevant to the invention.

[0020] refer to Figures 1-3A marketing call intelligent identification method based on random forest includes the following steps: S1. Aggregate operational call records according to time windows, classify phone numbers as number nodes, organize inbound and outbound call processes into directed call edges, and assemble a continuous call relationship graph. S2. Check the changes in outbound call acceptance between windows in the continuous call relationship diagram, and press the boundary of the caller switching and the continued callee group into a relay breakpoint time mark. S3. Integrate the continuous call relationship graph and relay breakpoint time markers into the improved spatiotemporal graph ordinary differential equation network model, and rewrite the hidden state advancement path in the ODEG module of the STGCN block. S4. The ODEblock in the ODEG module truncates the continuous advancement path of the fixed integration interval. The ODE solver advances the hidden state tensor of the call graph along the time window dimension and stops the hidden state tensor at the relay breakpoint. S5, ODE unc writes the truncated hidden state tensor back to the x zero state reference. The x zero state reference is at the external call attenuation position before the node dimension bearing relay and at the time dimension bearing relay breakpoint. The ODE solver continues to advance the hidden state tensor after the relay. S6. The model reads out the hidden state tensor after the relay and merges the outbound call intermittent state and the called group acceptance state into the number pool relay outbound call state. S7. Encapsulate the features of the number pool relay outbound call status, node inbound / outbound relationship, reach range, outbound call tendency, and call duration into a marketing call identification feature vector, and output the marketing call identification result after connecting to a random forest.

[0021] In this embodiment, S1 specifically includes: S11. Cut the operation call records into the corresponding time window according to the time of the call, and remove the operation call records with missing time and missing calling and calling directions to form window call records; S12. Verify the calling and called numbers in the call log in the window, and merge the same phone numbers into the same number node in each time window; S13. Using the node to which the calling number belongs as the starting point of the edge and the node to which the called number belongs as the ending point of the edge, the inbound and outbound call processes are directed as directed call edges. S14. Merge directed call edges with the same starting point and ending point within the same time window, and incorporate the cumulative number of calls and the cumulative call duration into the merged directed call edge. S15. Sequence the number nodes retained in each time window and the merged directed call edges according to the order of occurrence of the time window, maintain the continuous attribution of the number nodes corresponding to the same phone number in adjacent time windows, and assemble the continuous call relationship diagram.

[0022] In the specific implementation process, the processing object of time window convergence is the operational call record, which includes the calling number, called number, call time, call direction, and call duration. Time window segmentation uses the call time as the positioning object, continuously dividing windows from the start to the end of the statistical period, with the window length remaining consistent within the statistical period; in one implementation, the window length is 30 minutes. When the call time is empty, the time format cannot be converted to a unified timeline, the calling number is empty, the called number is empty, or the call direction cannot distinguish between the calling and called sides, the corresponding operational call record is moved to the abnormal record set. The abnormal record set stores the original record number, missing type, and entry time, and excludes it from the assembly of the continuous call relationship diagram. Records with duplicate timestamps and identical calling number, called number, and call duration are retained; records with duplicate timestamps but different call durations retain the record with the larger call duration, and the source of the conflict is written into the abnormal record set.

[0023] After a call record is generated, the calling and called numbers undergo number normalization. Normalization first removes separators and spaces, then standardizes the country code, local number prefix, and full number format to obtain the number string. Each identical number string corresponds to a number node, which stores the node number, the number string, and the occurrence window index. The node number is formed by mapping the number string, and the mapping table remains unique throughout the statistical period. When the same phone number appears in adjacent time windows, no new number node is created; instead, the window position is appended to the occurrence window index of the corresponding number node. Records whose number format cannot be normalized are moved to the abnormal record set; numbers in the same call record that have already been successfully normalized retain their original correspondence, and the reason for the abnormality is saved along with the record number.

[0024] The direction of a directed call edge is determined by the call direction. The node to which the calling number belongs serves as the edge's starting point, and the node to which the called number belongs serves as the edge's ending point. The starting and ending points together determine a directed call edge. When the call direction is outbound, the calling number in the record is directly used as the edge's starting point. When the call direction is inbound, the actual calling number is first determined using the platform's call direction field, and then the edge's starting and ending points are determined. If either the edge's starting or ending point is missing, the call record is moved to the abnormal record set. If the edge's starting and ending points are the same, it is retained as a self-pointing edge and written to the self-pointing edge set. Self-pointing edges participate in call duration verification but are not included in outbound call spread statistics.

[0025] Within the same time window, directed call edges with the same starting and ending points are merged. For each merged call record, the cumulative call count is incremented by one, and the cumulative call duration is added to the current call duration. The average call duration is obtained by dividing the cumulative call duration by the cumulative call count, and the result is written to the merged directed call edge. Records with a call duration of 0 or less than the platform's minimum billing interval are retained as short-connection records and included in the cumulative call count. Records with a call duration exceeding the platform's single-call limit are moved to the abnormal record set, and the abnormal duration value is retained for review. Each directed call edge saves its first and last occurrence times. The first occurrence time is the earliest call occurrence time before merging within the same edge, and the last occurrence time is the latest call occurrence time before merging within the same edge. The first and last occurrence times together define the actual duration boundary of the merged directed call edge within the current time window, for verification of outbound call acceptance changes in adjacent time windows.

[0026] The continuous call relationship graph consists of a time window index, a number node table, and a directed edge table. The time window index records the start and end boundaries of each time window. The number node table records the node number, number string, and occurrence window index. The directed edge table records the edge start point, edge end point, cumulative call count, cumulative call duration, average call duration, first occurrence time, and last occurrence time within each time window. After merging number nodes and directed call edges in each time window, the connections are made sequentially along the time window occurrence order. The node number of the same number node remains unchanged in adjacent time windows. Number nodes not appearing in the current time window are marked as inactive nodes and retained in the number node table. The resulting continuous call relationship graph simultaneously preserves the inbound and outbound call processes within a single time window and the continuous assignment of number nodes across windows, providing graph objects for verifying changes in outbound call acceptance between windows.

[0027] In this embodiment, S2 specifically includes: S21. Read adjacent time windows in the order of the time windows in the continuous call relationship diagram, and assign the outbound calling side of the calling party in the previous time window and the outbound calling side of the calling party in the next time window to the corresponding calling party number node respectively. S22. Check the changes in the calling side number nodes in adjacent time windows. Mark the calling side number nodes that retain the outbound calling side in the previous time window and shrink the outbound calling side in the next time window as the calling side node before the relay. Mark the calling side number nodes that add or expand the outbound calling side in the next time window as the calling side node after the relay. S23. Read the called side number node along the directed call side connected by the calling node before the relay and the calling node after the relay, and retain the time window boundary where the called side number nodes on both sides overlap or belong to the same called group as the outbound call acceptance boundary. S24. Verify the changes in the directional call sides on both sides of the outbound call acceptance boundary, and press the outbound call acceptance boundary where the calling node shrinks before the handover, the calling node expands after the handover, and the called group is still reached into a handover breakpoint time marker.

[0028] In the specific implementation process, the verification of outbound call acceptance changes between windows uses the time window index and the directed edge table of the window in the continuous call relationship graph as the processing objects. During processing, two adjacent time windows are selected according to the occurrence order of the time window index. The previous time window is used as the starting window of the outbound call change, and the next time window is used as the accepting window of the outbound call change. After each window pair is formed, the directed call edges of the calling side number node at the starting point of the two time windows are read, and all directed call edges issued by the same calling side number node are classified into the same calling side outbound call edge set. The calling side outbound call edge set records the calling side number node number, the called side number node set, the number of outbound call edges, the cumulative number of calls, the cumulative call duration, and the last occurrence time, forming an adjacent window outbound call comparison object used to verify the calling side handover.

[0029] The caller-side handover verification is performed within the adjacent window outbound call comparison objects. For the same caller-side number node, the outbound call shrinkage amount is obtained by subtracting the number of outbound calls in the next time window from the number of outbound calls in the previous time window, and then dividing by the number of outbound calls in the previous time window. When the number of outbound calls in the previous time window is 0, the corresponding caller-side number node does not participate in the outbound call shrinkage amount calculation and is included in the new outbound call verification scope. The decrease in call duration is obtained by subtracting the cumulative call duration in the next time window from the cumulative call duration in the previous time window, and then dividing by the cumulative call duration in the previous time window. In one embodiment, when the outbound call shrinkage amount reaches 60% and the decrease in call duration reaches 50%, the corresponding caller-side number node is marked as the previous caller node.

[0030] The handover process involves identifying the calling node and verifying the handover results. For newly appearing calling number nodes in the next time window, they are directly identified as new outbound call candidate nodes. For calling number nodes appearing in both the preceding and following time windows, the outbound call expansion is calculated by subtracting the number of outbound calls in the previous time window from the number of outbound calls in the following time window, and then dividing by the number of outbound calls in the previous time window. When the number of outbound calls in the previous time window is 0, the outbound call expansion is not calculated by division and is treated as a new outbound call candidate node. In one implementation, when the outbound call expansion reaches 60% and the cumulative call duration increases to 50%, the corresponding calling number node is identified as the post-handover calling node. The pre-handover and post-handover calling nodes are written into the outbound call acceptance candidate table according to their window numbers. When only the pre-handover calling node exists, the candidate content is moved to the outbound call interruption set; when only the post-handover calling node exists, the candidate content is moved to the new outbound call set.

[0031] The called party continuation check uses the outbound call acceptance candidate list as the processing object. During processing, the called party number node set of the previous time window is read along the directed call side of the calling node before the handover, and the called party number node set of the next time window is read along the directed call side of the calling node after the handover. The number of overlapping called party number nodes is obtained by counting the same number nodes in the two sets, and the called party overlap ratio is obtained by dividing the number of overlapping called party number nodes by the set with the smaller number of nodes. In one embodiment, when the called party overlap ratio reaches 30%, the corresponding window boundary is retained as the called party number node overlap boundary. When the called party overlap ratio is less than 30%, the continuation check of the same called party group continues.

[0032] The continuous verification of the same called party group focuses on the historical call source distribution, number segment affiliation, and call time distribution of the called party's number nodes. The historical call source distribution is formed by the set of calling party's number nodes that reached the same called party's number node within the statistical period. The overlap rate of historical call sources between two called party's number nodes is obtained by dividing the number of overlapping historical call sources by the union of the two historical call source sets. In one implementation, a historical call source overlap rate of 40% is considered consistent. Number segment affiliation is formed by mapping the prefix of the number string. When the prefixes of the number strings of two called party's number nodes fall into the same operating number segment or the same service number segment, the number segment affiliation is considered consistent. The call time distribution is formed by arranging the number of times the called party's number node was reached within each time window. The two call time distribution vectors are first divided by the sum of their respective number of times they were reached, and then the cosine similarity of the normalized vectors is calculated. In one implementation, a cosine similarity of 0.7 is considered close. If any two of the following conditions are met: consistent historical call sources, consistent number segment affiliation, and similar call time distribution, the corresponding called party number node will be assigned to the same called party group; if any two conditions are not met, the corresponding called party number node will be moved to the unassigned called party set, and the unassigned called party set will be saved in a window with the number and the called party number node number.

[0033] Outbound call acceptance boundaries confirm the results of caller-side handover verification and called group continuation verification. When candidate content in the outbound call acceptance candidate table simultaneously has overlapping results for the pre-handover caller node, post-handover caller node, and called-side number node, or the same called group continuation result, it is retained as the outbound call acceptance boundary. The outbound call acceptance boundary saves the end time of the previous time window, the start time of the next time window, the pre-handover caller node number, the post-handover caller node number, the set of overlapping called-side number nodes, and the continuing called group number. Candidate content that does not form a called-side continuation result is moved to the ordinary outbound call change set. The ordinary outbound call change set saves the window pair number, the caller-side number node number, and the outbound side change amount, and is reserved for the calculation of number node behavior statistical characteristics.

[0034] The relay breakpoint time marker is formed by pressing the outbound call acceptance boundary. The time boundary is the window intersection between the end time of the previous time window and the start time of the next time window. The node points to record the calling node number before and after the relay, and the called party points to record the set of overlapping called party numbers or the continuing called party group number. The relay breakpoint time marker synchronously records the outbound call side contraction, outbound call side expansion, and called party overlap ratio. When the calling node before the relay is missing, the candidate content is moved to the newly added outbound call set; when the calling node after the relay is missing, the candidate content is moved to the outbound call interruption set; when all called party number nodes are missing, the candidate content is moved to the called party missing set and the original window boundary is retained. The relay breakpoint time stamp serves as a boundary record for changes in outbound call acceptance between windows and is stored in the relay breakpoint time stamp table. The relay breakpoint time stamp table and the continuous call relationship diagram use the same time window index and number node number, enabling the relay breakpoint time stamp to be used to look up the corresponding window boundary, the calling node before the relay, the calling node after the relay, and the called group.

[0035] In this embodiment, the improved spatiotemporal graph ordinary differential equation network model includes spatial graph tiles, semantic graph tiles, STGCN blocks, and prediction layers. The STGCN block includes a first temporal dilated convolutional network, an ODEG module, and a second temporal dilated convolutional network. The ODEG module includes ODEblock, ODEFunc, and an ODE solver. ODEblock calls the ODE solver to advance the hidden states of the graph along the state changes given by ODEFunc. In practical implementation, the ordinary spatiotemporal graph ordinary differential equation network model includes spatial graph tiles, semantic graph tiles, STGCN blocks, and prediction layers. The STGCN block contains a first temporal dilated convolutional network, an ODEG module, and a second temporal dilated convolutional network. The ODEG module contains ODEblock, ODEFunc, and an ODE solver. In the ordinary model, the fixed integration interval is completely handed over to the ODE solver within the ODEG module. ODEFunc reads the zero state of x along the starting point of the fixed integration interval as the starting point for calculation. When facing relay outbound calls from the number pool, the calling party's number node switches at the window boundary, but the called group continues to be reached. Ordinary continuous advancement can easily weaken the traces of relay outbound calls.

[0036] The improved spatiotemporal graph ordinary differential equation network model retains the spatial graph tiles, semantic graph tiles, STGCN blocks, and prediction layer connections of the ordinary model, and preserves the sequential order of the first temporal dilated convolutional network, the ODEG module, and the second temporal dilated convolutional network within the STGCN block. The improvements are placed within the ODEG module: ODEblock no longer delivers the complete fixed integration interval to the ODE solver all at once, but instead truncates the fixed integration interval at the window boundary where the relay breakpoint time marker is located; ODEFunc no longer reads the x-zero state only along the starting point of the fixed integration interval, but allows truncation of the hidden state tensor to reconstruct the x-zero state baseline. The improved model still transmits data hierarchically along the ordinary spatiotemporal graph ordinary differential equation network model; what changes is the hidden state propagation path within the ODEG module.

[0037] The spatial plot precedes the STGCN block, and its input consists of a node adjacency tensor and a node initial feature tensor. The rows of the node adjacency tensor correspond to the called party's number nodes, and the columns correspond to the calling party's number nodes. The matrix position reflects the outbound call acceptance volume of the directed call edges within the window. The node initial feature tensor is arranged according to the batch size multiplied by the number of number nodes, the number of time windows, and the number of feature channels. The feature channels reflect the node's inbound and outbound edge distribution, contact reach range, outbound call direction bias, and call duration. The spatial plot performs a matrix multiplication of the node adjacency tensor and the node initial feature tensor in the node dimension, and accumulates the result to the node dimension position corresponding to the called party's number node. When a node does not match a directed call edge, the corresponding node value in the node initial feature tensor is retained, forming a spatial propagation feature.

[0038] Semantic and spatial blocks are set up in parallel, with inputs being a called group similarity tensor and a node initial feature tensor. The rows and columns of the called group similarity tensor correspond to number nodes, and the matrix positions are written with the continuation score for the same called group. The continuation score is obtained by weighting the called group overlap ratio, the historical call source consistency result, and the call time distribution similarity result; in one implementation, the called group overlap ratio has a weight of 0.5, the historical call source consistency result has a weight of 0.3, and the call time distribution similarity result has a weight of 0.2. The semantic block performs matrix multiplication of the called group similarity tensor and the node initial feature tensor in the node dimension, and accumulates the multiplication result corresponding to the continuation score for the same called group to the corresponding number node; for number nodes with missing called group affiliation, the corresponding node value in the node initial feature tensor is retained, forming semantic propagation features.

[0039] The STGCN block receives the input tensor after merging spatial and semantic propagation features in the feature channel dimension. The first temporally dilated convolutional network performs convolution along the time window dimension, with the convolution kernel sliding only within the time window dimension while the node arrangement remains unchanged. The convolution output forms the call graph hidden state tensor and enters the ODEG module. Within the ODEG module, ODEblock, ODEFunc, and the ODE solver jointly process the call graph hidden state tensor, specifically performing fixed integration interval pruning, truncation of the hidden state tensor formation, x-zero state baseline reconstruction, and restarting after the breakpoint. The second temporally dilated convolutional network receives the hidden states output by the ODEG module, organizes the state changes after the relay along the time window dimension, and the prediction layer reads the outbound call status of the number pool relay from the organized hidden states.

[0040] Model parameters were obtained through training on anonymized operational call samples with annotations. The training samples consisted of a continuous call relationship graph, relay breakpoint time markers, and manually verified number labels. The manually verified number labels were categorized as marketing numbers and non-marketing numbers. Relay breakpoint labels were compiled from manually verified outbound call batches from the number pool, the calling node before the relay, the calling node after the relay, and the continued records of the called group. During training, the propagation parameters of spatial and semantic graph tiles, the convolution parameters of the first and second temporal dilated convolutional networks, the state change parameters in ODEFunc, and the readout parameters of the prediction layer were all updated. Random forests were not involved in the backpropagation training of the improved spatiotemporal graph ordinary differential equation network model; instead, they were trained separately using the statistical features of the number pool relay outbound call state and number node behavior.

[0041] The loss function consists of number classification loss, relay breakpoint readout loss, and hidden state smoothing penalty term. Number classification loss is calculated using cross-entropy, and the calculation objects are the relay outbound call status of the number pool read from the prediction layer and the manually verified number tags. Relay breakpoint readout loss is calculated using binary cross-entropy, and the calculation objects are the readout results near the relay breakpoint time marker and the relay breakpoint tag. The hidden state smoothing penalty term calculates the sum of squares of the hidden state differences between adjacent time windows, and reduces the penalty weight at the window boundary where the relay breakpoint time marker is located, to prevent the relay breakpoint from being continuously pushed forward and erased. In one embodiment, the weight of number classification loss is 0.6, the weight of relay breakpoint readout loss is 0.3, and the weight of hidden state smoothing penalty term is 0.1.

[0042] The model training employs a mini-batch iterative approach. Each batch reads a window segment of the continuous call relationship graph, first generating spatial propagation features through spatial tiles, then semantic propagation features through semantic tiles, followed by STGCN blocks to advance the hidden state, and finally the prediction layer reads the outbound call status from the number pool and calculates the loss function. In one implementation, the optimizer uses AdamW, with an initial learning rate of 0.001, a weight decay of 0.0001, a batch size of 32 windows, and a maximum of 100 training epochs. Training stops when the validation set loss decreases by less than 0.1% for five consecutive epochs; if the validation set recall is more than 10 percentage points lower than the training set recall, the learning rate is halved and training is rolled back to the parameters of the previous epoch. After training, the model parameters of the spatial tiles, semantic tiles, STGCN blocks, and prediction layer are saved and loaded into the intelligent marketing call recognition process.

[0043] In this embodiment, S4 specifically includes: S41. The ODEblock in the ODEG module receives the hidden state tensor of the call graph output by the first time-dilated convolutional network, maps the number node to the node dimension, maps the time window to the time window dimension, maps the outbound call changes to the feature channel, and extracts the benchmark integral time series corresponding to the fixed integral interval from the time window dimension. S42, ODEblock embeds the relay breakpoint time marker into the window boundary of the reference integration time series, cuts the reference integration time series along the time window dimension, retains the part between the integration start point and the relay breakpoint time marker as the integration segment before the breakpoint, and marks the part that crosses the relay breakpoint time marker as the integration segment across the breakpoint. S43, ODEblock cancels the continuous solution call of cross-breakpoint integration segments within the current fixed integration interval, and only opens the integration segment before the breakpoint to the ODE solver. The baseline integration time series without embedded relay breakpoint time markers maintains the call of the complete fixed integration interval. S44, the ODE solver advances the hidden state tensor of the call graph along the integral segment before the breakpoint. ODEFunc reads the directed call edge propagation matrix and feature channel change at each solution position. The rows of the directed call edge propagation matrix correspond to the called side number node, and the columns correspond to the calling side number node. The matrix position carries the outbound call acceptance amount of the directed call edge of the window. S45, ODEFunc will apply the directed call edge propagation matrix to the node dimension of the current hidden state tensor, apply the feature channel change to the feature channel of the current hidden state tensor, and backfill it to the current solution position along the time window dimension. If the node dimension does not hit the directed call edge, the propagation amount will be supplemented by the corresponding node value of the current hidden state tensor. S46. When the ODE solver reaches the window boundary where the relay breakpoint time marker is located, the ODEblock locks the termination position of the integral segment before the breakpoint, and extracts the node dimension value, time window dimension value and feature channel value at the window boundary to form the truncated hidden state tensor.

[0044] In the specific implementation, the ODEblock within the ODEG module processes the hidden state tensor of the call graph output by the first-time dilated convolutional network. The ODEblock internally sets up time-series reading positions, breakpoint marker writing positions, solution entry opening positions, and stop-state saving positions. The call graph hidden state tensor is arranged according to the batch size multiplied by the number of number nodes, the number of time windows, and the number of feature channels. Each position in the node dimension corresponds to a number node in the continuous call relationship graph, and each position in the time window dimension corresponds to a time window. The feature channels carry outgoing call changes, call continuity changes, and hidden features after being processed by spatial and semantic graph tiles. In one implementation, the number of feature channels is 32; outgoing call changes and call continuity changes occupy the first few channels, and graph propagation hidden features occupy the remaining channels.

[0045] Fixed integration interval reading is performed within ODEblock. ODEblock continuously reads a window index from the time window dimension of the call graph hidden state tensor to obtain the baseline integration time series. The starting point of the baseline integration time series is taken as the first time window of the current window segment, and the ending point is taken as the last time window of the current window segment. The window boundary is taken as the connection point between the end boundary and the start boundary of the adjacent time window. In one embodiment, a single baseline integration time series contains 12 consecutive time windows, and the time step is obtained by normalizing the interval between adjacent window boundaries. After the fixed integration interval reading is completed, ODEblock retains the baseline integration time series, the time step, and the call graph hidden state reference within the current window segment as candidate solution call objects for the ODE solver.

[0046] The relay breakpoint time stamp is embedded within the ODEblock. The ODEblock reads the time boundaries from the relay breakpoint time stamp table and searches for the corresponding window boundary positions in the baseline integration time series. When the time boundary matches a window boundary position, the relay breakpoint time stamp is written to the corresponding window boundary position; when the time boundary falls between two window boundary positions, the relay breakpoint time stamp is registered at the nearest window boundary position; if the distances are the same, it is registered at the later window boundary position; if there is no matching window boundary position in the current baseline integration time series, the relay breakpoint time stamp is moved to the set of missed breakpoints, and the current baseline integration time series maintains a complete fixed integration interval. After the relay breakpoint time stamp is embedded, the baseline integration time series carries the truncated window boundary positions.

[0047] The culling of the pre-breakpoint integration segment and the cross-breakpoint integration segment is performed within the ODEblock. The ODEblock uses the window boundary where the relay breakpoint time marker is located as the culling point. It retains the time index between the integration start point and the culling point as the pre-breakpoint integration segment, and labels the time index extending beyond the culling point as the cross-breakpoint integration segment. The culling of the pre-breakpoint integration segment and the cross-breakpoint integration segment does not delete the time window or modify the continuous call graph; instead, it changes the continuous solution call range of the ODE solver within the current fixed integration interval. The ODEblock only exposes the start and end times, time step, and hidden state references of the pre-breakpoint integration segment to the ODE solver; the solution entry point for the cross-breakpoint integration segment is removed from the current solution call object, and the start and end positions and corresponding window numbers of the cross-breakpoint integration segment are saved, preventing the current fixed integration interval from being continuously advanced at once.

[0048] The ODE solver advances the hidden state tensor of the call graph along the integral segment before the breakpoint. During advancement, starting from the beginning of the integral segment before the breakpoint, ODEFunc is called sequentially within each time window to calculate the state change at the current solution position. ODEFunc reads the directed call edge propagation matrix and feature channel changes at the current solution position. The rows of the directed call edge propagation matrix correspond to the called party's number nodes, and the columns correspond to the calling party's number nodes. The matrix position is written with the outbound call acceptance count of the directed call edge within the window. The outbound call acceptance count is obtained by combining the percentage of call counts and the percentage of call duration. The percentage of call counts is the cumulative number of calls made by the current directed call edge divided by the total number of outbound calls made by the current calling party's number node within the same time window. The percentage of call duration is the cumulative call duration of the current directed call edge divided by the total outbound call duration made by the current calling party's number node within the same time window. The average of these two percentages is then written to the matrix position. When either the total number of outbound calls or the total outbound call duration is 0, the corresponding matrix position is set to 0, and the corresponding number node is recorded in the no-outbound-call propagation set.

[0049] The internal state change calculation of ODEFunc is performed simultaneously along the node dimension and feature channels. The directed call side propagation matrix is ​​multiplied with the current hidden state tensor in the node dimension. The hidden state values ​​of the calling side number node are read column by column and accumulated row by row to the corresponding positions of the called side number node to obtain the node propagation result. The feature channel change is obtained by subtracting the feature channel value of the previous solution position from the feature channel value of the current solution position; when the current solution position is the starting point of the integral segment before the breakpoint, the feature channel change is taken as the feature channel value of the current solution position. The node propagation result is multiplied with the node propagation weight, and the feature channel change is multiplied with the channel weight. The two multiplication results are accumulated and superimposed with the bias vector, and then processed by a nonlinear compression function to obtain the state change of the current solution position. In one embodiment, the nonlinear compression function is the tanh function, and the output value of the tanh function is limited to between -1 and +1 to limit the state change amplitude of a single solution position.

[0050] ODEFunc backfills the state change at the current solution location along the time window dimension. In one implementation, the ODE solver uses the Euler solution method, adding the product of the time step and the state change to the current hidden state tensor to obtain the hidden state tensor for the next solution location. When a directed call edge is not hit in the node dimension, the corresponding number node has not entered the valid rows or columns of the directed call edge propagation matrix. ODEFunc does not clear the hidden state of the corresponding number node, but instead copies the corresponding node value from the current hidden state tensor as propagation supplementary content and writes the supplementary content back to the current solution location. Number nodes in the non-outbound call propagation set retain their current node values ​​in the same way, ensuring that the ODE solver's progress within the integration segment before the breakpoint is not interrupted.

[0051] The truncated hidden state tensor is formed when the ODE solver reaches the window boundary where the relay breakpoint time marker is located. ODEblock locks the termination position of the integration segment before the breakpoint and simultaneously extracts the node dimension value, time window dimension value, and all feature channel values ​​from the window boundary. The node dimension value covers all number nodes within the current window segment, the time window dimension value records the window boundary where the relay breakpoint time marker is located, and the feature channel values ​​retain outbound call changes, call continuity changes, and hidden propagation features. After extraction, ODEblock organizes the node dimension value, time window dimension value, and feature channel values ​​into the truncated hidden state tensor and establishes a correspondence between the start and end positions of the integration segment before the breakpoint, the relay breakpoint time marker, and the truncated hidden state tensor.

[0052] The baseline integral time series without embedded relay breakpoint time markers is accessed within the complete fixed integration interval in ODEblock. ODEblock exposes the complete baseline integral time series to the ODE solver, which advances the hidden state tensor of the call graph along the complete fixed integration interval to obtain a normal continuous advancement result. The normal continuous advancement result and the truncated hidden state tensor are stored separately; the former corresponds to the window segment without relay breakpoints, and the latter corresponds to the window segment with hit relay breakpoints. The truncated hidden state tensor serves as the boundary state at the relay breakpoint, preserving the complete values ​​of the node dimension, time window dimension, and feature channels, providing a starting object for the x-zero state baseline reconstruction.

[0053] Compared to the ordinary spatiotemporal graph ordinary differential equation network model, this improvement occurs within the ODEG module at the boundary of integration calls and the boundary of hidden state calculation. The ordinary model treats fixed integration intervals as uninterrupted continuous time trajectories, and the ODE solver pushes changes in number nodes before and after the relay breakpoint into the same smooth integration path. This improvement transforms the relay breakpoint into a solution boundary within the ODE block, ensuring that the integration segment across the breakpoint no longer covers the termination state of the integration segment before the breakpoint, and retains the truncated hidden state tensor composed of the node dimension, time window dimension, and feature channel. Therefore, caller-side handover, called party continuation, and outbound call changes can be preserved as state sections at the window boundaries, providing a clear starting object for the reconstruction of the x-zero state baseline and preventing the traces of number pool relay outbound calls from being smoothed out during continuous integration.

[0054] In this embodiment, S5 specifically includes: S51, ODEFunc reads the truncated hidden state tensor output by ODEblock, extracts the node dimension value, time window dimension value and feature channel value at the window boundary where the relay breakpoint time marker is located, and organizes them into the breakpoint start state. S52, ODEFunc removes the x zero-state reference of the fixed integration interval starting point in the current solution call, writes the breakpoint calculation state into the x zero-state baseline, retains the outbound call attenuation value of the calling node before the relay in the node dimension, locks the relay breakpoint time mark in the time window dimension, and retains the outbound call change before the breakpoint in the feature channel. S53, ODEFunc: The node position of the calling node after the relay is in the tensor of the intercepted hidden state along the node dimension core. When the node position is hit, the value of the calling node after the relay is merged into the node dimension of the x zero state reference. When the node position is not hit, the value of the called side number node is read along the called group receiving direction and added to the x zero state reference. S54, ODEFunc replaces the initial hidden state corresponding to the starting point of the fixed integration interval with the reconstructed x-zero state baseline, disconnects the start reference between the starting point of the fixed integration interval and the relay breakpoint time mark, and changes the starting position of the ODE solver to the time window after the relay breakpoint time mark. S55, ODE solver advances the hidden state tensor from the starting position after the reconnection. ODEFunc reads the forward call side propagation matrix after the relay at the solution position after the breakpoint. The rows of the forward call side propagation matrix after the relay correspond to the called side number node, the columns correspond to the calling side node after the relay, and the outbound call acceptance amount after the relay is written into the matrix position. S56, ODEFunc will apply the propagation matrix of the directed call side after the relay to the value of the x zero-state benchmark in the node dimension, overlay the change of outbound call after the breakpoint into the feature channel, and backfill it along the time window dimension to the current solution position. When there is no directed call side after the relay in the node dimension, the corresponding node value in the x zero-state benchmark is retained. S57. The ODE solver restarts the calculation along the time window after the relay breakpoint time mark, and merges the node dimension values, time window dimension values ​​and feature channel values ​​at each solution location to form the hidden state tensor after the relay.

[0055] In its implementation, ODEFunc takes over the truncated hidden state tensor formed by ODEblock and changes the starting source of the x-zero state baseline within the ODEG module. Internally, ODEFunc includes an x-zero state reference reading end, a breakpoint starting state organization end, a node dimension backfilling end, a solution starting point reconnection end, and a state change calculation end. The x-zero state reference reading end handles the stripping of the starting point reference for the fixed integration interval; the breakpoint starting state organization end handles the truncating of the truncated hidden state tensor; the node dimension backfilling end handles the addition of the calling node after the relay; the solution starting point reconnection end handles the switching of the ODE solver's starting position; and the state change calculation end handles the calculation of hidden state changes after the breakpoint.

[0056] The process of reading the hidden state tensor is performed within the breakpoint initiation state processing end. This end first reads the time window dimension index at the window boundary where the relay breakpoint timestamp is located. Then, using this time window dimension index as the positioning object, it extracts all node dimension values ​​and all feature channel values ​​at the same position. Node dimension values ​​cover the number nodes within the current window segment, and feature channel values ​​cover outbound call changes, call continuity changes, and hidden propagation features. The breakpoint initiation state processing end maintains the original order of node dimensions, time window dimensions, and feature channels, and processes the extracted results into the breakpoint initiation state. If the hidden state tensor lacks a time window dimension index, the hidden state tensor is moved to the breakpoint state exception set, and no breakpoint initiation state is generated.

[0057] The x-zero-state reference stripping is performed within the x-zero-state reference reading end. The x-zero-state reference reading end first closes the read entry point for the fixed integration interval starting point in the current solution call, and then writes the breakpoint start state into the x-zero-state baseline. The x-zero-state baseline is stored in the state cache of ODEFunc, jointly stored as a node-dimensional array, a time window index, and a feature channel array. The node-dimensional array retains the outbound call attenuation value of the calling node before the relay, the time window index locks the window boundary position corresponding to the relay breakpoint time marker, and the feature channel array retains the outbound call change and call duration change before the breakpoint. The outbound call attenuation value of the calling node before the relay is determined by the outbound call edge contraction and the decrease in call duration of the calling node before the relay breakpoint. These two changes are first normalized to the range of 0 to 1, and then the average value is written into the node-dimensional array.

[0058] When the breakpoint initiation state is written to the x-zero state baseline, ODEFunc first checks the node dimension position using the number node ID, and then checks the time window index using the relay breakpoint time marker. If the node ID matches, the corresponding node dimension value is directly written to the x-zero state baseline; if the node ID does not match, the corresponding node value is added to the node supplement queue. If the time window index matches, the breakpoint initiation state is written to the boundary position of that window; if the time window index does not match, the breakpoint initiation state is moved to the breakpoint state exception set. The writing order of the feature channel array is consistent with the interception hidden state tensor. Outbound call changes are written to the outbound call change channel, call duration changes are written to the call duration channel, and hidden propagation features are written to the remaining channels.

[0059] The process of filling in the calling node after a relay is executed within the node dimension backfilling end. The node dimension backfilling end searches for the calling node number after the relay along the node dimension of the truncated hidden state tensor. If a corresponding node position is found, the value of the calling node after the relay is merged into the node dimension array of the x-zero state baseline. If no corresponding node position is found, the node dimension backfilling end reads the called side number node value along the called group acceptance direction. The called group acceptance direction is determined by the set of overlapping called side number nodes in the relay breakpoint timestamp or by the continuing called group number. After reading the called side number node value, the node dimension backfilling end maps this value to the node dimension position corresponding to the calling node after the relay, using it as the fill-in value when the calling node after the relay is missing. When the called side number node value is missing, the x-zero state baseline retains the original value at the same node dimension position and writes the calling node number after the relay into the node fill-in exception set.

[0060] The ODE solver's starting position relocation is performed within the solution starting point relocation endpoint. The endpoint replaces the initial hidden state corresponding to the fixed integration interval's starting point with the reconstructed x-zero state baseline and disconnects the starting reference between the fixed integration interval's starting point and the relay breakpoint time marker. After disconnection, the ODE solver no longer reads the hidden state from the fixed integration interval's starting point; instead, it reads the time window after the relay breakpoint time marker as the new starting position. After the starting position relocation is complete, the ODE solver reads the x-zero state baseline as the starting state after the breakpoint and advances the hidden state tensor along the time window dimension from the time window after the relay breakpoint. If the time window after the relay breakpoint does not exist, the x-zero state baseline is stored in the starting cache after the breakpoint, and no relay-after hidden state tensor is generated.

[0061] The calculation of state changes after a breakpoint is performed within the state change calculation terminal. As the ODE solver progresses from the starting position after the reconnection, the state change calculation terminal reads the directed call side propagation matrix and the outbound call change after each breakpoint at the solution position. The rows of the directed call side propagation matrix correspond to the called party's number node, the columns correspond to the calling party's node after the relay, and the matrix position is written with the outbound call acceptance amount after the relay. The outbound call acceptance amount is obtained by averaging the percentage of call counts and call durations of the current directed call side. The percentage of call counts is the cumulative number of calls made by the current directed call side divided by the total number of outbound calls made by the calling party's node within the same time window after the relay. The percentage of call durations is the cumulative call duration of the current directed call side divided by the total outbound call duration of the calling party's node within the same time window after the relay. When the total number of outbound calls or the total outbound call duration is 0, the corresponding matrix position is set to 0, and the corresponding node is written into the set without relay propagation.

[0062] The effect of the post-relay directed call side propagation matrix on the x-zero state baseline is completed within the state change calculation terminal. The state change calculation terminal performs matrix multiplication by multiplying the post-relay directed call side propagation matrix with the x-zero state baseline's node dimension values, reads the node dimension values ​​of the calling node post-relay by column, and accumulates them row-wise to the corresponding positions of the called side number nodes to obtain the post-breakpoint node propagation result. The post-breakpoint outbound call change is written into the feature channel. The writing method is to subtract the pre-breakpoint outbound call change value in the feature channel of the x-zero state baseline from the outbound call change value of the current solution position, and then superimpose the difference into the feature channel of the current solution position. The post-breakpoint node propagation result and the post-breakpoint outbound call change are accumulated and superimposed with a bias vector, and then compressed using the tanh function to obtain the state change amount of the current solution position; in one embodiment, the tanh function output value is limited to between -1 and +1.

[0063] When there is no relay-through directed call edge in the node dimension, ODEFunc retains the corresponding node value in the x-zero state baseline within the state change calculation terminal. The corresponding node is neither deleted from the node dimension nor set to null; instead, the value at the same node dimension position in the x-zero state baseline is copied to the current solution position as the node value when there is no relay propagation. Number nodes in the no-relay propagation set are processed in the same way, and the node number, time window number, and retention reason are retained at the current solution position. This process ensures that the solution process will not be interrupted due to local edgelessness after a breakpoint, while maintaining the node dimension arrangement of the hidden state tensor after the relay is consistent with the number node arrangement in the continuous call relationship graph.

[0064] The hidden state tensor after the relay is formed after the ODE solver restarts the calculation after completing the breakpoint. The ODE solver advances along the time window after the relay breakpoint time marker. After completing each solution position, it writes the node dimension value, time window dimension value, and feature channel value into the post-breakpoint state buffer. After all the time windows after the breakpoint are solved, ODEFunc merges the solution positions in the post-breakpoint state buffer according to the time window order to form the hidden state tensor after the relay. The hidden state tensor after the relay retains the same node dimension and feature channel arrangement as the hidden state tensor of the call graph. The time window dimension is recorded starting from the time window after the relay breakpoint and serves as the processing object for the prediction layer to read the relay outbound call status from the number pool.

[0065] Compared to the ordinary spatiotemporal graph ordinary differential equation network model, this improvement occurs in the starting point of the calculation within ODEFunc and the time starting point of the ODE solver. The ordinary model uses the fixed integration interval starting point as the source of the x-zero state; the attenuation of calling nodes before the breakpoint and the takeover of calling nodes after the breakpoint are continuously extrapolated along the same integration trajectory. This improvement changes the x-zero state reference from the fixed integration starting point to the state section at the relay breakpoint, and changes the starting position of the ODE solver from the fixed integration interval starting point to the time window after the relay breakpoint. As a result, the reference frame for the advancement of the hidden state within the model changes from a fixed time starting point to the relay boundary state. Number pool switching behavior is no longer treated as a normal smooth change; calling-side handover, called-party continuation, and outbound call takeover volume can continue to be retained in the state after the breakpoint, providing a clearer internal state basis for reading outbound call states from the number pool relay.

[0066] In this embodiment, S6 specifically includes: S61. The prediction layer reads the hidden state tensor after the relay, locks the time window dimension value before and after the relay breakpoint time mark, and aligns the node dimension value of the corresponding number node with the feature channel value where the outbound call change is located as the readout object. S62. Read out the outbound call change values ​​of the calling node before and after the relay in the object by comparison along the time window, and merge the outbound call attenuation of the calling node before the relay and the outbound call continuation of the calling node after the relay into the outbound call discontinuous state. S63. Read the values ​​of the called side number nodes before and after the relay breakpoint in the read object along the node dimension, and merge the values ​​of the called side number nodes that are still reached before and after the relay breakpoint or continue along the same called group into the called group acceptance state. S64. When the calling node is not found in the node dimension after the relay, the value of the connected calling side node is retrieved by looking back along the called group's acceptance state, and the retrieved value of the calling side node is added to the outbound call discontinuity state. S65. Merge the outbound call intermittent state and the called group acceptance state in the readout channel to form the number pool relay outbound call state.

[0067] In the specific implementation process, when the prediction layer reads the hidden state tensor after the relay, it directly processes the time window dimension, node dimension, and feature channel. The prediction layer internally sets up a time window readout channel, a node correspondence readout channel, an outbound call change readout channel, a called party acceptance readout channel, and a state merging readout channel. The time window readout channel locks the window index before and after the relay breakpoint time marker; the node correspondence readout channel aligns the calling node before the relay, the calling node after the relay, and the called party's number node; the outbound call change readout channel reads the feature channel where the outbound call change occurs; the called party acceptance readout channel reads the hidden state values ​​of the called party's number node before and after the breakpoint; and the state merging readout channel organizes the aforementioned readout results into the outbound call state of the number pool relay. The linear readout weights and biases in the prediction layer come from the prediction layer parameters saved during the model training phase.

[0068] The hidden state tensor after the relay is read out using the relay breakpoint timestamp as the positioning object. The time window readout channel reads the window boundary position corresponding to the relay breakpoint timestamp, taking the adjacent time window before the window boundary position as the pre-breakpoint readout window, and the adjacent time window after the window boundary position as the post-breakpoint readout window. If the pre-breakpoint readout window does not exist, the readout object is moved into the readout exception set; if the post-breakpoint readout window does not exist, the hidden state tensor after the relay is retained but no number pool relay outbound call state is formed. After the time window dimension is locked, the node-corresponding readout channel locates the pre-relay calling node, post-relay calling node, and called-side number node in the two readout windows according to the number node number, and aligns the corresponding node dimension values ​​with the feature channel values ​​where the outbound call change occurs as the readout object.

[0069] The outbound call interruption status is formed within the outbound call change readout channel. The outbound call change readout channel reads the outbound call change values ​​of the calling node before the breakpoint in the readout window before and after the breakpoint. It subtracts the outbound call change value of the readingout window after the breakpoint from the outbound call change value of the readingout window before the breakpoint to obtain the outbound call attenuation amount of the calling node before the breakpoint. When the outbound call change value of the readingout window before the breakpoint is 0, the outbound call attenuation amount of the calling node before the breakpoint is recorded as 0, and the corresponding calling node before the breakpoint is added to the insufficient attenuation set. The outbound call change readout channel continues to read the outbound call change values ​​of the calling node after the breakpoint in the readout window after the breakpoint, and subtracts the values ​​of the same node in the readout window before the breakpoint to obtain the outbound call continuation amount of the calling node after the breakpoint. When there is no calling node with the same connection after the breakpoint in the readout window before the breakpoint, the outbound call change value in the readout window after the breakpoint is used as the outbound call continuation amount of the calling node after the breakpoint. The outbound call attenuation of the calling node before the relay and the outbound call continuation of the calling node after the relay are merged into the outbound call discontinuity state in the readout channel.

[0070] The called party's acceptance status is formed within the called party acceptance reading channel. This channel first reads the set of overlapping called party numbers and the continuing called party group number recorded in the relay breakpoint timestamp. Then, it reads the node dimension values ​​of the corresponding called party number nodes in the pre-breakpoint and post-breakpoint reading windows. If a called party number node has a directed call edge both before and after the breakpoint, it is determined that it is still reached; if a directed call edge is missing but the node dimension hidden state values ​​are all non-zero, it proceeds to the same called party group continuation check. If other called party number nodes in the same called party group have node dimension values ​​in the post-breakpoint reading window, they are included in the called party group continuation value set. If both the called party number node and other called party number nodes in the same called party group are missing, the corresponding relay breakpoint timestamp is moved to the called party reading anomaly set. The called party acceptance reading channel accumulates the values ​​of the still-reached called party number nodes and the values ​​of the same called party group, and then divides the sum by the number of valid called party number nodes to obtain the called party group acceptance status.

[0071] If the calling node is not found in the node dimension after the relay, the corresponding read channel of the node will look up the value of the connected calling side node along the called group's call acceptance status. During the lookup, first read the set of nodes pointing to the overlapping called side numbers in the read window after the breakpoint or the directed call edge continuing the called group, and then locate the starting point of the directed call edge as the candidate calling side node. If there are multiple candidate calling side nodes, they are read from high to low according to the outbound call acceptance volume. If the outbound call acceptance volume is the same, the candidate calling side node with the larger cumulative call duration is read. After obtaining the value of the calling side node through the lookup, the lookup result is added to the outbound call discontinuity status. If the calling side node cannot be found through the lookup, the existing value in the outbound call discontinuity status is retained, and the corresponding relay breakpoint time stamp is written to the calling side lookup anomaly set.

[0072] The outbound call status of the number pool is formed within the status merging and reading channel. This channel reads the outbound call interruption status and the called group acceptance status, aligning the two types of statuses according to the relay breakpoint time marker, the calling node number before the relay, the calling node number after the relay, and the called group number. After alignment, the outbound call interruption status is multiplied by linear readout weights and the bias is accumulated; the called group acceptance status is multiplied by another set of linear readout weights and the bias is accumulated. The two sets of results are added together and compressed to the range of 0 to 1 using a sigmoid function to obtain the number pool outbound call strength. The number pool outbound call status stores the relay breakpoint time marker, the calling node number before the relay, the calling node number after the relay, the called group number, the outbound call interruption status, the called group acceptance status, and the number pool outbound call strength, and serves as the input object for the marketing call identification feature vector encapsulation.

[0073] In this embodiment, S7 specifically includes: S71. Read the outbound call status of the number pool relay, and assign the outbound call intermittent status and the called group acceptance status to the corresponding number node to form the number node relay characteristics. S72. Statistically analyze the inbound and outbound edge distribution, contact reach range, outbound call direction bias, and call duration of the corresponding number nodes along the continuous call relationship graph, and summarize them into the behavioral statistical features of the number nodes. S73. Merge the number node relay features and number node behavior statistics features according to the same number node. When the number node relay features are missing, retain the number node behavior statistics features and encapsulate them into a marketing call identification feature vector. S74. The marketing call identification feature vector is connected to the random forest. Each decision tree in the random forest performs a split judgment on the marketing call identification feature vector along the feature splitting path to form a single tree identification result. S75. Merge the single-tree recognition results output by each decision tree, and label the voting merged result as the marketing call recognition result.

[0074] In the specific implementation process, the number node relay feature allocation is processed using the number node table in the number pool relay outbound call status and continuous call relationship diagram. The number pool relay outbound call status already stores the relay breakpoint time stamp, the calling node number before the relay, the calling node number after the relay, the called group number, the outbound call discontinuity status, the called group acceptance status, and the number pool relay outbound call strength. During allocation, the corresponding number node is first searched in the number node table according to the calling node number before and after the relay. Then, the outbound call discontinuity status is written to the relay discontinuity field of the corresponding number node, the called group acceptance status is written to the group acceptance field of the corresponding number node, and the number pool relay outbound call strength is written to the relay strength field of the corresponding number node. If the calling node number before or after the relay does not match the number node table, the corresponding number pool relay outbound call status is moved to the relay allocation anomaly set, while the number node that has already matched retains the relay field value.

[0075] The values ​​for outbound call discontinuity and called group acceptance status are derived from the original readout path maintained in the number node relay feature location. The outbound call discontinuity status comes from the prediction layer's readout results of the outbound call attenuation of the calling node before relay and the outbound call continuation of the calling node after relay. The called group acceptance status comes from the prediction layer's readout results of the overlapping called side number node sets or the continuation of the called group number. When writing to the number node, the calling node before relay mainly carries the outbound call attenuation value, and the calling node after relay mainly carries the outbound call continuation value. The called group number is retained as the acceptance pointer between the two calling side number nodes. When a number node hits multiple relay breakpoint timestamps, the relay strengths are arranged in order of time window, the maximum relay strength is taken as the main value of the number node's relay feature, and all relay breakpoint numbers are retained as a tracing index.

[0076] The statistical characteristics of number node behavior are calculated from the directed edge table of the window in the continuous call relationship graph. The inbound and outbound edge distribution includes the number of inbound edges and the number of outbound edges. The number of inbound edges is the number of merged directed call edges with the current number node as the endpoint, and the number of outbound edges is the number of merged directed call edges with the current number node as the starting point. The contact reach range is obtained from the number of adjacent number nodes after deduplication. During processing, called-side number nodes reached by the current number node as the starting point and called-side number nodes connected as the endpoint are merged; duplicate number nodes are only counted once. The outbound call direction bias is obtained by dividing the number of outbound edges by the number of inbound edges. When the number of inbound edges is 0 and the number of outbound edges is greater than 0, the outbound call direction bias is calculated from the number of outbound edges; when both the number of inbound and outbound edges are 0, the outbound call direction bias is 0. The call duration is obtained by adding the cumulative call duration of all directed call edges associated with the current number node and then dividing by the cumulative number of corresponding calls.

[0077] After the statistical features of number node behavior are calculated, they are first scaled and then merged with the number node relay features. The number of incoming edges, outgoing edges, and contact reach are logarithmically compressed by adding 1 to the original count and taking the natural logarithm. Outbound call direction bias is truncated with an upper limit; in one implementation, the upper limit is 20, and values ​​exceeding 20 are written as 20. Call duration is limited by quantiles; values ​​below the first percentile of the training sample are written to the first percentile, and values ​​above the ninety-ninth percentile are written to the ninety-ninth percentile. The scaled number node behavior statistical features and number node relay features are merged according to the same number node number. When number node relay features are missing, the relay discontinuity field, group acceptance field, and relay strength field are all written as 0, while the number node behavior statistical features are retained. When number node behavior statistical features are missing, the corresponding number node is moved to the feature missing set and is not included in the random forest recognition input.

[0078] The encapsulation of marketing call identification feature vectors is performed on a per-number-node basis. The encapsulation order is as follows: relay interruption field, group acceptance field, relay strength field, adjusted values ​​for incoming edge count, outgoing edge count, contact reach range, outbound call direction bias, and call duration. Each number node corresponds to one marketing call identification feature vector, with the vector length matching the number of encapsulated fields. In one implementation, the length of the marketing call identification feature vector for a single number node is 8. The feature vector synchronously stores the number node ID and the feature generation window range. The number node ID is not used in random forest splitting decisions but is only used for lookup of identification results.

[0079] The training samples for the random forest come from a set of number nodes with manual verification labels. The input to the training samples is a marketing call identification feature vector. The training labels are divided into marketing numbers and non-marketing numbers. The manual verification labels come from historical complaint verification, business whitelist verification, marketing task verification records, and manual sampling results. Before training, the marketing number samples and non-marketing number samples are sorted according to their class ratio. In one implementation, the ratio of marketing number samples to non-marketing number samples is sorted to 1:3. When the original sample ratio exceeds the 1:3 sorting range, samples are drawn from the majority class samples according to the number node appearance window distribution to maintain sample coverage for different time periods. During random forest training, each decision tree draws samples with replacement from the training samples and extracts some features from the marketing call identification feature vector to participate in splitting.

[0080] The feature splitting path of the decision tree is formed within the random forest. Each tree node reads the sample set entering the current tree node, traverses candidate features and candidate splitting values, calculates the decrease in Gini impurity before and after splitting, and selects the feature and splitting value with the largest decrease as the splitting action for the current tree node. Candidate features are derived from the relay strength, inbound and outbound edge distribution, contact reach range, outbound call direction bias, and call duration in the marketing call identification feature vector. When the number of samples in a tree node is lower than the minimum number of leaf nodes, the decrease in Gini impurity is 0, or the tree depth reaches the training limit, the current tree node stops splitting and forms a leaf node. In one embodiment, the random forest contains 100 decision trees, the maximum depth of a single decision tree is 12, and the minimum number of samples in a leaf node is 10.

[0081] The single-tree recognition result is given by the leaf nodes of the decision tree. The marketing call identification feature vector starts from the root node of the decision tree and is compared layer by layer along the feature splitting path. If the feature value falls within the range of the left branch, it enters the left child node; if it falls within the range of the right branch, it enters the right child node, until it reaches the leaf node. The leaf node stores the number of marketing number samples and the number of non-marketing number samples that entered the leaf node during the training phase. The single-tree recognition result is determined by the category with the larger number of samples. When the two categories have the same number of samples, the percentage of marketing number samples within the leaf node is read. If the percentage of marketing number samples reaches 0.5, a marketing number is output; otherwise, a non-marketing number is output.

[0082] Voting and merging are performed after all decision trees have completed individual tree identification. The random forest calculates the number of votes for marketing numbers and non-marketing numbers output by each decision tree. If the number of votes for a marketing number is greater than the number of votes for a non-marketing number, the corresponding number node is marked as a marketing number in the marketing call identification result; if the number of votes for a non-marketing number is greater than the number of votes for a marketing number, the corresponding number node is marked as a non-marketing number. If the two types of votes are the same, the average probability of marketing numbers output by all decision trees is read. If the average is 0.5 or higher, it is marked as a marketing number; if the average is lower than 0.5, it is marked as a non-marketing number. The marketing call identification result saves the number node number, identification category, marketing number probability, the name of the feature that contributed the most, and the corresponding feature value, for use in reviewing the identification results and manual verification.

[0083] Compared to random forest identification that relies solely on the static statistical features of individual phone numbers, this implementation incorporates the relay outbound call status of the number pool as a relay dimension feature, which is then applied to the number nodes. This feature is then combined with inbound / outbound edge distribution, contact reach, outbound call direction bias, and call duration into the random forest. While retaining the lightweight characteristics of splitting decisions and voting merging, the splitting path no longer revolves solely around the frequency and duration changes of individual phone numbers. Instead, it utilizes both the statistical features of number node behavior and the relay outbound call traces from the number pool. Therefore, marketing outbound call behaviors resulting from batch number changes, dispersed outbound calls, and the continuation of the called group can be transformed into interpretable tree splitting criteria. The identification results retain the advantages of lightweight deployment while improving the ability to identify newly emerging marketing numbers and number pool rotation behaviors.

[0084] Example 1: To verify the feasibility of this invention in practice, it was applied to a marketing call management platform of a telecommunications operator. The platform accessed anonymized operational call records, which included the caller ID, called number, call time, call direction, and call duration. Previously, the platform primarily relied on user complaints, number tagging, and the frequency of outbound calls from a single number for blocking. However, when faced with frequent number changes, number pool rotations, and dispersed marketing calls, the abnormal characteristics of individual numbers were diluted, leading to some marketing numbers continuing to make outbound calls before being blacklisted. Simultaneously, legitimate customer service and courier service numbers were easily misidentified. Especially in communication scenarios with concentrated promotional activities, frequent customer service follow-ups, or frequent logistics notifications, both legitimate high-frequency numbers and marketing numbers exhibited significant outbound calling activity. Traditional rules struggled to reliably distinguish between them based solely on the number of calls made by a single number, increasing the workload for manual verification.

[0085] When applying this invention, the operational call records are first clustered into a continuous call relationship graph according to time windows, phone numbers are classified as number nodes, and the inbound and outbound call processes are organized into directed call edges. Then, the outbound call acceptance changes in adjacent time windows are checked. When the calling party switches but the called group is still continuously reached, the corresponding window boundary is pressed into a relay breakpoint time marker. After the continuous call relationship graph and the relay breakpoint time marker are connected to the improved spatiotemporal graph ordinary differential equation network model, ODEblock stops the hidden state tensor of the call graph at the relay breakpoint, and ODEFunc rewrites the stopped hidden state tensor as the x-zero state baseline. The ODE solver re-advances the hidden state tensor from the time window after the relay breakpoint, and the prediction layer reads out the relay outbound call status of the number pool. This number pool relay outbound call status is further encapsulated with node inbound and outbound relationships, reach range, outbound call tendency, and call duration features into a marketing call identification feature vector, so that the random forest no longer only judges the static statistical results of a single number, but also receives the relay outbound call traces of the number pool and the statistical features of the call relationship graph.

[0086] To verify the feasibility of this invention in practical communication data governance, 100,000 anonymized operational call samples were selected as test objects, involving 12,000 number nodes, including 1,800 marketing numbers that were manually verified, 2,600 normal customer service and express delivery service numbers, and 7,600 ordinary personal numbers. The method of this invention was compared with the traditional blacklist rule method, the ordinary random forest statistical feature method, and the call relationship graph plus random forest method. The statistical results are shown in Table 1 below: Table 1. Comparison of Marketing Telephone Relay Outbound Call Recognition Performance

[0087] As can be seen from the data in Table 1 above, the method of the present invention outperforms traditional blacklist rule methods, ordinary random forest statistical feature methods, and call relationship graph plus random forest methods in terms of recognition accuracy, recall, false alarm rate, and relay outbound call recognition rate. Traditional blacklist rule methods have an recognition accuracy of 82.6%, a recall rate of 70.8%, and a relay outbound call recognition rate of only 41.3%, indicating that such methods mainly rely on historical markers and existing interception records, and have a weak ability to detect newly appearing numbers or numbers that have changed numbers in a short period. Ordinary random forest statistical feature methods improve the recognition accuracy to 88.4% and the recall rate to 82.5%, but because they still mainly rely on single-number call statistical features, the recognition rate for relay outbound call behavior in the number pool is only 58.6%. The call relationship graph plus random forest method further utilizes number nodes and directed call edges, achieving a recognition accuracy of 91.7% and a relay outbound call recognition rate of 69.4%, but it still lacks a deep expression of the breakpoint changes in the called group after the caller switches. The method of this invention achieves an accuracy rate of 95.3%, a recall rate of 92.8%, and a false positive rate reduced to 3.6%. The relay outbound call recognition rate reaches 86.9%, indicating that it can not only identify more marketing numbers but also reduce the misidentification of high-frequency, legitimate numbers such as customer service and courier service numbers. The batch processing time is 7.8 seconds, which is higher than traditional methods but still within the range suitable for batch processing, maintaining a good balance between recognition effectiveness and deployment efficiency.

[0088] This embodiment aggregates operational call records by time windows, constructing a continuous call relationship graph composed of number nodes and directed call edges. This allows for unified organization of inbound and outbound call directions, reach ranges, and call durations between numbers. Based on this, by verifying changes in outbound call acceptance between windows, the locations where the calling party switches and the called party group continues are compressed into relay breakpoint time markers, thereby explicitly extracting the hidden behaviors caused by the rotation of the marketing number pool and the thinning of outbound call intensity. The improved spatiotemporal graph ordinary differential equation network model further rewrites the hidden state progression path within the ODEG module of the STGCN block. The ODEblock truncates the hidden state tensor at the relay breakpoint, and ODEFunc writes the truncated hidden state tensor back as the x-zero state baseline. The ODE solver then continues progression from the time window after the relay breakpoint, ensuring that relay outbound call traces are preserved during the model's internal state evolution. Finally, the outbound call status of the number pool read by the model, the node inbound and outbound relationship, the reach range, the outbound call tendency and the call duration feature are encapsulated together into a marketing call identification feature vector. Then, the split judgment and voting merging are completed by random forest, which realizes lightweight, interpretable and high-accuracy identification of marketing calls, and is suitable for marketing call governance scenarios in large-scale communication networks.

[0089] The above are merely preferred embodiments of the present invention, but the scope of protection of the present invention is not limited thereto. Any equivalent substitutions or modifications made by those skilled in the art within the scope of the technology disclosed in the present invention, based on the technical solution and inventive concept of the present invention, should be covered within the scope of protection of the present invention.

Claims

1. A marketing call intelligent identification method based on random forest, characterized in that, Includes the following steps: S1. Aggregate operational call records according to time windows, classify phone numbers as number nodes, organize inbound and outbound call processes into directed call edges, and assemble a continuous call relationship graph. S2. Check the changes in outbound call acceptance between windows in the continuous call relationship diagram, and press the boundary of the caller switching and the continued callee group into a relay breakpoint time mark. S3. Integrate the continuous call relationship graph and relay breakpoint time markers into the improved spatiotemporal graph ordinary differential equation network model, and rewrite the hidden state advancement path in the ODEG module of the STGCN block. S4. The ODEblock in the ODEG module truncates the continuous advancement path of the fixed integration interval. The ODE solver advances the hidden state tensor of the call graph along the time window dimension and stops the hidden state tensor at the relay breakpoint. S5, ODE unc will write back the truncated hidden state tensor as the x zero state reference. The x zero state reference is at the external call attenuation position before the node dimension bearing relay and at the time dimension bearing relay breakpoint. The ODE solver continues to advance the hidden state tensor after the relay. S6. The model reads out the hidden state tensor after the relay and merges the outbound call intermittent state and the called group acceptance state into the number pool relay outbound call state. S7. Encapsulate the features of the number pool relay outbound call status, node inbound / outbound relationship, reach range, outbound call tendency, and call duration into a marketing call identification feature vector, and output the marketing call identification result after connecting to a random forest.

2. The intelligent identification method for marketing calls based on random forest according to claim 1, characterized in that, S1 specifically includes: S11. Cut the operation call records into the corresponding time window according to the time of the call, and remove the operation call records with missing time and missing calling and calling directions to form window call records; S12. Verify the calling and called numbers in the call log in the window, and merge the same phone numbers into the same number node in each time window; S13. Using the node to which the calling number belongs as the starting point of the edge and the node to which the called number belongs as the ending point of the edge, the inbound and outbound call processes are directed as directed call edges. S14. Merge directed call edges with the same starting point and ending point within the same time window, and incorporate the cumulative number of calls and the cumulative call duration into the merged directed call edge. S15. Sequence the number nodes retained in each time window and the merged directed call edges according to the order of occurrence of the time window, maintain the continuous attribution of the number nodes corresponding to the same phone number in adjacent time windows, and assemble the continuous call relationship diagram.

3. The intelligent identification method for marketing calls based on random forest according to claim 1, characterized in that, S2 specifically includes: S21. Read adjacent time windows in the order of the time windows in the continuous call relationship diagram, and assign the outbound calling side of the calling party in the previous time window and the outbound calling side of the calling party in the next time window to the corresponding calling party number node respectively. S22. Check the changes in the calling side number nodes in adjacent time windows. Mark the calling side number nodes that retain the outbound calling side in the previous time window and shrink the outbound calling side in the next time window as the calling side node before the relay. Mark the calling side number nodes that add or expand the outbound calling side in the next time window as the calling side node after the relay. S23. Read the called side number node along the directed call side connected by the calling node before the relay and the calling node after the relay, and retain the time window boundary where the called side number nodes on both sides overlap or belong to the same called group as the outbound call acceptance boundary. S24. Verify the changes in the directional call sides on both sides of the outbound call acceptance boundary, and press the outbound call acceptance boundary where the calling node shrinks before the handover, the calling node expands after the handover, and the called group is still reached into a handover breakpoint time marker.

4. The intelligent identification method for marketing calls based on random forest according to claim 1, characterized in that, The improved spatiotemporal graph ordinary differential equation network model includes spatial graph tiles, semantic graph tiles, STGCN blocks, and prediction layers. The STGCN block includes a first temporal dilated convolutional network, an ODEG module, and a second temporal dilated convolutional network. The ODEG module includes ODEblock, ODEFunc, and an ODE solver. ODEblock calls the ODE solver to advance the hidden states of the call graph along the state changes given by ODEFunc.

5. The intelligent identification method for marketing calls based on random forest according to claim 1, characterized in that, S4 specifically includes: S41. The ODEblock in the ODEG module receives the hidden state tensor of the call graph output by the first time-dilated convolutional network, maps the number node to the node dimension, maps the time window to the time window dimension, maps the outbound call changes to the feature channel, and extracts the benchmark integral time series corresponding to the fixed integral interval from the time window dimension. S42, ODEblock embeds the relay breakpoint time marker into the window boundary of the reference integration time series, cuts the reference integration time series along the time window dimension, retains the part between the integration start point and the relay breakpoint time marker as the integration segment before the breakpoint, and marks the part that crosses the relay breakpoint time marker as the integration segment across the breakpoint. S43, ODEblock cancels the continuous solution call of cross-breakpoint integration segments within the current fixed integration interval, and only opens the integration segment before the breakpoint to the ODE solver. The baseline integration time series without embedded relay breakpoint time markers maintains the call of the complete fixed integration interval. S44, the ODE solver advances the hidden state tensor of the call graph along the integral segment before the breakpoint. ODEFunc reads the directed call edge propagation matrix and feature channel change at each solution position. The rows of the directed call edge propagation matrix correspond to the called side number node, and the columns correspond to the calling side number node. The matrix position carries the outbound call acceptance amount of the directed call edge of the window. S45, ODEFunc will apply the directed call edge propagation matrix to the node dimension of the current hidden state tensor, apply the feature channel change to the feature channel of the current hidden state tensor, and backfill it to the current solution position along the time window dimension. If the node dimension does not hit the directed call edge, the propagation amount will be supplemented by the corresponding node value of the current hidden state tensor. S46. When the ODE solver reaches the window boundary where the relay breakpoint time marker is located, the ODEblock locks the termination position of the integral segment before the breakpoint, and extracts the node dimension value, time window dimension value and feature channel value at the window boundary to form the truncated hidden state tensor.

6. The intelligent identification method for marketing calls based on random forest according to claim 1, characterized in that, S5 specifically includes: S51, ODEFunc reads the truncated hidden state tensor output by ODEblock, extracts the node dimension value, time window dimension value and feature channel value at the window boundary where the relay breakpoint time marker is located, and organizes them into the breakpoint start state. S52, ODEFunc removes the x zero-state reference of the fixed integration interval starting point in the current solution call, writes the breakpoint calculation state into the x zero-state baseline, retains the outbound call attenuation value of the calling node before the relay in the node dimension, locks the relay breakpoint time mark in the time window dimension, and retains the outbound call change before the breakpoint in the feature channel. S53, ODEFunc: The node position of the calling node after the relay is in the tensor of the intercepted hidden state along the node dimension core. When the node position is hit, the value of the calling node after the relay is merged into the node dimension of the x zero state reference. When the node position is not hit, the value of the called side number node is read along the called group receiving direction and added to the x zero state reference. S54, ODEFunc replaces the initial hidden state corresponding to the starting point of the fixed integration interval with the reconstructed x-zero state baseline, disconnects the start reference between the starting point of the fixed integration interval and the relay breakpoint time mark, and changes the starting position of the ODE solver to the time window after the relay breakpoint time mark. S55, ODE solver advances the hidden state tensor from the starting position after the reconnection. ODEFunc reads the forward call side propagation matrix after the relay at the solution position after the breakpoint. The rows of the forward call side propagation matrix after the relay correspond to the called side number node, the columns correspond to the calling side node after the relay, and the outbound call acceptance amount after the relay is written into the matrix position. S56, ODEFunc will apply the propagation matrix of the directed call side after the relay to the value of the x zero-state benchmark in the node dimension, overlay the change of outbound call after the breakpoint into the feature channel, and backfill it along the time window dimension to the current solution position. When there is no directed call side after the relay in the node dimension, the corresponding node value in the x zero-state benchmark is retained. S57. The ODE solver restarts the calculation along the time window after the relay breakpoint time mark, and merges the node dimension values, time window dimension values ​​and feature channel values ​​at each solution location to form the hidden state tensor after the relay.

7. The intelligent identification method for marketing calls based on random forest according to claim 1, characterized in that, S6 specifically includes: S61. The prediction layer reads the hidden state tensor after the relay, locks the time window dimension value before and after the relay breakpoint time mark, and aligns the node dimension value of the corresponding number node with the feature channel value where the outbound call change is located as the readout object. S62. Read out the outbound call change values ​​of the calling node before and after the relay in the object by comparison along the time window, and merge the outbound call attenuation of the calling node before the relay and the outbound call continuation of the calling node after the relay into the outbound call discontinuous state. S63. Read the values ​​of the called side number nodes before and after the relay breakpoint in the read object along the node dimension, and merge the values ​​of the called side number nodes that are still reached before and after the relay breakpoint or continue along the same called group into the called group acceptance state. S64. When the calling node is not found in the node dimension after the relay, the value of the connected calling side node is retrieved by looking back along the called group's acceptance state, and the retrieved value of the calling side node is added to the outbound call discontinuity state. S65. Merge the outbound call intermittent state and the called group acceptance state in the readout channel to form the number pool relay outbound call state.

8. The intelligent identification method for marketing calls based on random forest according to claim 1, characterized in that, Specifically, S7 includes: S71. Read the outbound call status of the number pool relay, and assign the outbound call intermittent status and the called group acceptance status to the corresponding number node to form the number node relay characteristics. S72. Statistically analyze the inbound and outbound edge distribution, contact reach range, outbound call direction bias, and call duration of the corresponding number nodes along the continuous call relationship graph, and summarize them into the behavioral statistical features of the number nodes. S73. Merge the number node relay features and number node behavior statistics features according to the same number node. When the number node relay features are missing, retain the number node behavior statistics features and encapsulate them into a marketing call identification feature vector. S74. The marketing call identification feature vector is connected to the random forest. Each decision tree in the random forest performs a split judgment on the marketing call identification feature vector along the feature splitting path to form a single tree identification result. S75. Merge the single-tree recognition results output by each decision tree, and label the voting merged result as the marketing call recognition result.