Multi-head convolutional network for average glucose prediction

By analyzing the user's blood glucose and biometric data using multi-head temporal convolutional neural network (MH-TCNN), the problem of diabetic patients being unable to monitor blood glucose when the CGM device fails, and accurate blood glucose prediction and timely notification are achieved, improving user safety.

CN119731745APending Publication Date: 2025-03-28GOOGLE LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280099650.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-09-02
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

Diabetic patients cannot continuously monitor blood glucose levels when the CGM device fails or stops working, resulting in the inability to detect hyperglycemia or hypoglycemia in a timely manner.

Method used

Multi-head temporal convolutional neural network (MH-TCNN) was used to analyze the user's past average blood glucose levels and other biometric data to predict the user's average glucose value and provide notification to the user when the blood glucose value changes.

Benefits of technology

Through MH-TCNN, accurate blood glucose value prediction in the absence of CGM devices is achieved, which improves user safety and ensures timely monitoring and management of blood glucose levels.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119731745A_ABST
    Figure CN119731745A_ABST
Patent Text Reader

Abstract

Systems and methods for determining a glucose value of a user are disclosed herein. The method includes: receiving a plurality of data inputs associated with biometric data of a user, the plurality of data inputs including at least one data input representing past estimated glucose values of the user; and processing the plurality of data inputs with a multi-head temporal convolutional neural network to generate a blood glucose value for the user. The method further includes providing a notification to the user based at least in part on the blood glucose value.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to determining an average glucose value for a user. Specifically, aspects of the present disclosure may include a multi-headed temporal convolutional neural network ("MH-TCNN") that can analyze past average blood glucose levels and other relevant biometric data to predict an estimated average glucose value for a user. Background Art

[0002] People with diabetes may need to wear a continuous glucose monitoring ("CGM") device, which requires the user to insert a needle into their bloodstream in order to monitor the average glucose level in their blood. CGM devices can provide notifications to diabetic users when their average blood glucose level becomes hyperglycemic (too high) or hypoglycemic (too low), and provide notifications about trends related to the average blood glucose level. However, if the device malfunctions, otherwise stops working, or if the user removes the device, the user will not be able to monitor the blood glucose level in a continuous manner. Therefore, a model for estimating a user's blood glucose level is desired. Summary of the invention

[0003] Various aspects and advantages of embodiments of the present disclosure will be set forth in part in the following description, or may be learned from the description, or may be learned through practice of the embodiments.

[0004] One aspect of the present disclosure provides a method for determining a glucose value for a user. The method includes: receiving a plurality of data inputs associated with biometric data of the user, the plurality of data inputs including at least one data input representing a past estimated glucose value of the user; and processing the plurality of data inputs with a multi-headed temporal convolutional neural network to generate a blood glucose value for the user. The method also includes providing a notification to the user based at least in part on the blood glucose value.

[0005] Another aspect of the present disclosure provides a computing device. The computing device includes one or more processors and a non-transitory computer-readable medium, the non-transitory computer-readable medium including instructions that, when executed by the one or more processors, cause the one or more processors to perform a process. The process includes: receiving multiple data inputs associated with biometric data of a user, the multiple data inputs including at least one data input representing a past estimated glucose value of the user; and processing the multiple data inputs with a multi-headed temporal convolutional neural network to generate a blood glucose value for the user. The process also includes providing a notification to the user based at least in part on the blood glucose value.

[0006] A further aspect of the present disclosure provides a non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform a process. The process comprises: receiving a plurality of data inputs associated with biometric data of a user, the plurality of data inputs comprising at least one data input representing a past estimated glucose value of the user; and processing the plurality of data inputs with a multi-headed temporal convolutional neural network to generate a blood glucose value for the user. The process also comprises providing a notification to the user based at least in part on the blood glucose value.

[0007] These and other features, aspects and advantages of various embodiments of the present disclosure will be better understood with reference to the following description and appended claims.The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate example embodiments of the present disclosure and, together with the description, serve to explain the relevant principles. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] A detailed discussion of the embodiments for those skilled in the art is set forth in this specification with reference to the accompanying drawings, in which:

[0009] Figure 1 A multi-headed convolutional neural network for predicting an estimated mean glucose value according to one aspect of the present disclosure is shown.

[0010] Figure 2 A multi-headed convolutional neural network for predicting an estimated mean glucose value according to one aspect of the present disclosure is shown.

[0011] Figure 3 Buffer normalization for convolutional layers in a multi-headed convolutional neural network according to one aspect of the present disclosure is shown.

[0012] Figure 4 Boosting for non-temporal data input to a convolutional neural network according to one aspect of the present disclosure is shown.

[0013] Figure 5 Shown are patterns noticed in convolutional layers for various data inputs according to one aspect of the present disclosure.

[0014] Figure 6 A method for predicting an estimated glucose value according to one aspect of the present disclosure is shown.

[0015] Figure 7 A wearable computing device according to one aspect of the present disclosure is shown.

[0016] Figure 8 A computing device in communication with a server is shown according to one aspect of the present disclosure. DETAILED DESCRIPTION

[0017] Reference will now be made in detail to embodiments of the present disclosure, one or more examples of which are shown in the accompanying drawings. Each example is provided by way of explanation of the present disclosure rather than by way of limitation. In fact, it will be apparent to those skilled in the art that various modifications and variations may be made in the present disclosure without departing from the scope or spirit of the present disclosure. For example, a feature shown or described as part of one embodiment may be used together with another embodiment to produce yet further embodiments. Therefore, the present invention is intended to encompass such modifications and variations that fall within the scope of the appended claims and their equivalents.

[0018] Aspects of the present disclosure include a multi-headed temporal convolutional neural network ("MH-TCNN") that can analyze past estimated glucose values, such as past average blood glucose levels and other relevant biometric data, to generate or determine a blood glucose value for a user, e.g., predict an estimated average glucose value for the user. For example, the MH-TCNN's future estimated glucose average ("eGA") data can be trained using eGA data associated with a specific user with diabetes or users in general, as well as supplemental physiological or biometric data (such as heart rate) to improve estimate prediction confidence.

[0019] This is achieved using MH-TCNN by assigning a separate "head" or convolutional layer to each data input, which is used to learn the underlying pattern of how the various data inputs affect the output glucose level. The convolutional layers of the MH-TCNN can operate independently of each other. The output of each convolutional layer is then provided to a final convolutional layer, which learns the underlying pattern of the output from each convolutional layer to predict the estimated glucose value of the user's blood without the need for a current glucose value reading.

[0020] The MH-TCNN can be trained for each specific user and can iteratively learn from the user while in use. For example, the MH-TCNN can be operated on a computing device such as a smartwatch that includes one or more biometric sensors that can collect biometric data about the user. In another example, the MH-TCNN can be operated on a computing device such as a smart phone that can receive biometric data from various devices including biometric sensors such as smartwatches, CGM devices, etc. In other embodiments, the MH-TCNN can be operated on a server that is in communication with the computing device.

[0021] The advantages of using MH-TCNN with supplementary data compared to normal convolutional neural networks result in more accurate predictions, such as a much smaller mean squared error ("MSE") from the loss function associated with MH-TCNN. For example, using a convolutional neural network with a single convolutional layer or using other modeling techniques, such as a baseline or polynomial fit model. For example, for a given set of training data samples, the baseline model was found to have an MSE of 260.3, and the polynomial fit model was found to have an MSE of 1181.8. For the same training data set, a one-dimensional (e.g., single-head convolutional neural network) was found to have an MSE of 191.9.

[0022] In contrast, the MH-TCNN has an MSE of 20 for the same dataset. This low MSE value results in more accurate predictions of blood glucose values. Using a multi-head model, where each individual variable receives its own "head" or convolutional layer, results in a model trained to predict a user's blood glucose value that is more accurate. This is because each variable is learned separately from the other variables in the individual convolutional layers, and the resulting learned convolutional layers are then combined at the concatenated convolutional layer, which in turn undergoes learning from each of the convolutional layers. This resulting concatenated convolutional layer can then output a prediction for the user's blood glucose level.

[0023] Figure 1 An MH-TCNN (hereinafter “network”) 100 for predicting estimated mean glucose values ​​according to one aspect of the present disclosure is shown.

[0024] The network 100 may include one or more convolutional layers. For example, in one embodiment, the network 100 may include a first convolutional layer 101, a second convolutional layer 102, and a third convolutional layer 103. In alternative embodiments, the network 100 may include more or fewer convolutional layers.

[0025] In further embodiments, each convolutional layer of network 100 can be associated with a single data input (e.g., a specific parameter, measurement, or other value). Each convolutional layer receives input data and abstracts the input data into a feature map through a convolution process. In further embodiments, each convolutional layer of network 100 can be associated with a specific single type of data. For example, Figure 1As shown, the first convolution layer 101 can be associated with the eGA value of the user, the second convolution layer 102 can be associated with the number of steps taken by the user, and the third convolution layer 103 can be associated with the heart rate of the user. Then, each convolution layer can process individual data inputs to create an output feature map (or activation map) from each convolution layer. The feature map or activation map is the output of the layer after a specific weight filter has been applied to the layer. The filter can be dragged on the layer, and each position on the filter causes the activation of the "neuron" or node in the layer. The resulting output is collected in the feature map. The process can be repeated on the entire layer, resulting in a feature map. In a further embodiment, the output of each convolution layer can be output as a feature map having a shape such as (the number of inputs) x (feature map height) x (feature map width) x (feature map channel) or other suitable output shapes. The convolution layer is split because each input can have a different time correlation principle, but each input has some potential information that affects the eGA value.

[0026] The output of the one or more convolutional layers may be received by one or more pooling layers, such as the first pooling layer 111, the second pooling layer 112, and the third pooling layer 113. The pooling layer may process portions of the output feature maps from the one or more convolutional layers by, for example, selecting a filter and sliding the filter over the output feature map and performing a pooling operation, which results in an output from the pooling layer based on the currently selected value (e.g., currently under the filter) from the output feature map. Examples of pooling operations may include maximum pooling and average pooling.

[0027] The outputs from the pooling layer may then be provided to the concatenation layer 120. The concatenation layer 120 receives the outputs from the pooling layer and concatenates the outputs along a particular dimension. For example, the concatenation layer 120 may receive multiple outputs from multiple pooling layers and combine those inputs along a specified dimension that each of the multiple outputs has in common with the other outputs.

[0028] The concatenation layer 120 may be used as an input to the final convolution layer 130. As with the convolution layers described above, the final convolution layer 130 receives input data and abstracts the input data into a feature map through a convolution process. The output of the final convolution layer 130 is the estimated glucose average (“eGA”) 140.

[0029] The network 100 can be trained using general training data (e.g., a predefined training data set containing individual users and data values) and / or trained for specific users over time. For example, the network 100 can be trained using a general data set and then enhanced over time from specific patterns associated with the user.

[0030] In further embodiments, different convolutional layers may have different input layer sizes. For example, Figure 2 A multi-headed convolutional neural network ("network") 200 for predicting an estimated mean glucose value according to one aspect of the present disclosure is shown. Figure 1 Similar to the described network 100, the network 200 may include two or more convolutional layers, such as convolutional layers 201-204, and one or more pooling layers 210. Then, as shown, different convolutional layers may have different input layers or head sizes. For example, the input head size of convolutional layer 201 may be shorter than the input head size of convolutional layer 202 because the input of convolutional layer 201 is only the blood glucose level (e.g., average) from the past hour, while the input of convolutional layer 202 may be the average heart rate from the past hour and the current heart rate, the heart rate from the past six hours, or any other change in duration.

[0031] In another example, a larger input size may be assigned to non-temporal input data in order to align the non-temporal data with the temporal data. For example, heart rate data may be collected continuously over time and will have different values ​​at different times. However, sleep data is a non-temporal binary value; the user is asleep, or the user is awake. In order to align this non-temporal sleep data with temporal data such as heart rate, a value of 0 may be assigned to the time when the user is awake, and a value of 1 may be assigned to the time when the user is asleep. This allows the non-temporal sleep data to be represented in time as a sequence of 0s and 1s showing when the user fell asleep and when the user woke up. This would require a much longer input duration than, for example, the average blood glucose level over the past hour in convolutional layer 201. Therefore, a convolutional layer such as convolutional layer 204 may have an input size that is much larger than the input of convolutional layer 201 (e.g., a larger number of input data points for convolutional layer 204).

[0032] in addition, Figure 2 The illustrated network 200 shows an example of performing various stages of convolution and pooling (see repeated convolution and pooling step 220). In further embodiments, the network 200 may include additional convolutional layers and / or pooling layers that may perform convolution and / or pooling on a subset of the output of the pooling layer 210. The repeated convolution and pooling steps 220 may be performed any number of times. Then, as with respect to Figure 1 As described with respect to the network 100 in FIG. 1 , the output of the pooling layer may be connected to a convolution layer 230 which is then used as input to a final convolution layer 240. The output of the final convolution layer 250 is an estimated blood glucose value 250.

[0033] Figure 3FIG. 1 shows buffer normalization for a convolutional layer in a multi-head convolutional neural network according to one aspect of the present disclosure. Buffer normalization improves the convergence rate of the MH-TCNN during training, and thus improves the final estimation accuracy of the MH-TCNN for estimating the blood glucose level of a user. Figure 3 As shown, without buffer normalization (310), the MH-TCNN takes longer to converge than per-channel normalization (320) for each head or input convolutional layer of the MH-TCNN. Per-channel buffer normalization is performed by applying function 330 to the output feature map of the convolutional layer 340 to normalize the range of values ​​of the input to each convolutional layer.

[0034] Figure 4 A lift for non-temporal data input for a convolutional neural network according to one aspect of the present disclosure is shown. Figure 2 As noted, non-temporal data (such as sleeping and waking times, meal times, and other instances of events that are not measured over time) can be "boosted" or assigned a value of 0 or 1 based on the time at which the event occurred in order to align the non-temporal data with temporal data (such as heart rate, average blood glucose level, number of steps taken, etc.). For example, in Figure 4 , sleep is tracked as a binary 0 or 1 in curve 405, where 0 indicates the time when the user is awake and 1 indicates the time when the user is asleep. Thus, this "lifting" transforms non-temporal data (e.g., the occurrence of discrete events such as eating, falling asleep, and waking up) into a temporal curve that switches between values ​​0 and 1. By lifting or aligning non-temporal data with temporal data, a convolutional layer can receive inputs with similar dimensions as other convolutional layers, which enables easier alignment when concatenating the outputs of the pooling layer.

[0035] Figure 5Patterns noted in convolutional layers for various data inputs according to one aspect of the present disclosure are shown. As shown, different patterns can appear based on the type of data input into the convolutional layer and the type of filter used by the pooling layer associated with the convolutional layer, as well as an indication of what type of filter is best suited for analyzing the output feature map of the convolutional layer for a particular data type. For example, gradient ascent and descent filters can be useful for general trend data (e.g., blood glucose levels, heart rate, etc.), such as in pattern 510. Low-pass filters, particularly Gaussian low-pass filters, can be useful for data inputs that have highs or lows, such as when an insulin injection or other medication is introduced (as shown in pattern 520). Additionally, for data inputs with rapid fluctuations, such as stress indicators, sugar intake from a diet, etc., high-pass filters can produce good outputs (as shown in example 530).

[0036] Figure 6 A method 600 for determining a glucose value (e.g., predicting an estimated glucose value) for a user according to one aspect of the present disclosure is shown. In further embodiments, the method 600 may be stored as instructions in a non-transitory computer-readable medium such as a memory and may be executed by one or more processors (such as one or more processors of a computing device). Figure 6 The steps are depicted as being performed in a particular order for purposes of illustration and discussion. One of ordinary skill in the art, using the disclosure provided herein, will appreciate that the various steps of method 600 or any of the other methods disclosed herein may be adjusted, modified, rearranged, performed simultaneously, or modified in various ways without departing from the scope of the present disclosure.

[0037] At block 605, method 600 includes receiving data input associated with biometric data of the user and / or other data associated with the user. In further embodiments, the received data input may include past measured eGA values ​​of the user over a period of time, such as the past twenty minutes, the past hour, the past twelve hours, etc.

[0038] In further embodiments, the received data inputs may also include basal insulin data, bolus insulin data, nutritional data (e.g., calories consumed, macronutrients consumed, etc.), sleep data (e.g., the number of hours of sleep per day of the user, the time the user falls asleep, the time the user wakes up, etc.), stressor data, hypoglycemic event data, disease data (type of disease experienced, duration of disease, medication consumed, lifestyle changes, such as additional sleep or hydration performed during the duration of the disease, etc.), exercise data (e.g., type and duration of exercise, varying heart rate data, calories consumed, etc.), heart rate data, air temperature data, skin temperature data, step data (e.g., the number of steps the user has taken in a given time frame), and galvanic skin response data. These data inputs may be obtained in various ways. For example, the user may be required to enter nutritional data into a software application on a computing device, such as entering nutritional data related to a meal that the user has already ingested. As another example, the data may be collected by one or more sensors, such as sensors on a smart wearable device for detecting heartbeat, skin temperature, step count, etc.

[0039] The various time frames for temporal data (e.g., heart rate, skin temperature, step count, pressure data, etc.) can be user-defined and / or determined by other means, such as having a default time frame for a particular temporal data input, a predefined time range for all temporal data input, etc.

[0040] Non-temporal data can be determined via user input (e.g., a user entering nutrition or sleep data) or by one or more sensors, such as a CGM that detects hypoglycemic events, a smart wearable device or smart phone that detects user exercise, a weather software application that provides weather data (e.g., air temperature) as data input, etc.

[0041] At block 610, method 600 includes inputting each received data input into a separate convolutional layer of a multi-headed temporal convolutional neural network. Figure 1 and Figure 2 As described, networks 100 and 200 include an individual convolutional layer for each data input in order to learn how each data input may affect the resulting eGA value.

[0042] In further embodiments, inputting each received data input into a separate convolutional layer may include providing different input layer sizes for different data input types, as described above with respect to Figure 2For example, the input head size of the first convolutional layer can be shorter than the input head size of the second convolutional layer because the input of the first convolutional layer is only the blood glucose level from the past hour (e.g., the average), while the input of the second convolutional layer can be the average heart rate from the past hour and the current heart rate, the heart rate from the past six hours, or any other changes in duration.

[0043] In a further embodiment, buffer normalization may be performed after each data input is assigned to the convolutional layer. Buffer normalization improves the convergence rate of the MH-TCNN during training, and thus improves the final estimation accuracy of the MH-TCNN used to estimate the user's blood glucose level. Figure 3 As shown in Figure 3, without buffer normalization, MH-TCNN takes longer time to converge compared to per-channel normalization for each head or input convolutional layer of MH-TCNN. Per-channel normalization is performed by applying a function to the output feature maps of the convolutional layer.

[0044] At block 615, method 600 includes analyzing each convolutional layer associated with each data input. Figure 1 and Figure 2 As described, each convolutional layer may undergo convolution to output a feature map. The feature map may have n dimensions and represent certain features of the input data. To generate the feature map, during convolution, one or more functions, such as an activation function, may be applied to the specific data input associated with the convolutional layer.

[0045] In a further embodiment, after analyzing each convolutional layer and receiving the output feature map from each convolutional layer, the generated feature map can be provided to the pooling layer. Figure 1 As described, a pooling layer may process portions of an output feature map from one or more convolutional layers by, for example, selecting a filter and sliding the filter over the output feature map and performing a pooling operation, which results in an output from the pooling layer based on the currently selected value (e.g., currently under the filter) from the output feature map. Examples of pooling operations may include maximum pooling and average pooling.

[0046] In further embodiments, the outputs from the pooling layer may then be provided to a concatenation layer. The concatenation layer receives the outputs from the pooling layer and concatenates the outputs along a particular dimension. For example, the concatenation layer may receive multiple outputs from multiple pooling layers and combine those inputs along a specified dimension that each of the multiple outputs has in common with the other outputs.

[0047] At block 620, method 600 includes combining the output of each respective convolutional layer (and / or pooling layer) into a concatenated layer. The concatenated layer may be used as an input to a final convolutional layer. Like the convolutional layers described above, the final convolutional layer receives input data and abstracts the input data into a feature map through a convolution process.

[0048] Based on the output of the final convolutional layer (e.g., glucose value), a prediction of the eGA is determined (at block 625). The eGA may indicate a likely blood glucose average for the user's blood. This is particularly valuable in situations where the user is not currently using a CGM or is experiencing a malfunction of the CGM.

[0049] In a further embodiment, the predicted eGA may include a range of possible eGA values. For example, the predicted eGA value may include an upper limit of possible eGA values ​​and a lower limit of possible eGA values. Although an exact estimate is not available, the range may indicate that the possible values ​​of the eGA of the user's blood are within these known limits. This may allow the user to take action based on this known range.

[0050] At block 630, method 600 includes providing notifications to the user based at least in part on the predicted eGA. For example, the notifications may include a first notification indicating that the user is in hyperglycemia when the user's blood glucose value is above a first threshold. In another example, the notifications may include a second notification indicating that the user is in hypoglycemia when the user's blood glucose value is below a second threshold, the second threshold being lower than the first threshold. In a further example, the notifications may include a third notification indicating that the user is at risk of becoming hypoglycemic when the user's blood glucose value is not above the second threshold by a threshold amount.

[0051] The notification may also include an actionable item for the user. For example, the notification may include instructions to: if the user is exercising, stop exercising; to consume food or beverages to avoid the risk of hypoglycemia; to wake the user; to indicate to the user that the CGM associated with the user is not working; to indicate to the user to seek medical care, etc. In another example, the notification may simply include outputting the determined blood glucose value to the user for the user to observe.

[0052] Figure 7 A wearable computing device 700 according to some implementations of the present disclosure is depicted. As shown, the wearable computing device 700 can be worn, for example, on an arm 702 (e.g., a wrist) of a user. For example, the wearable computing device 700 can include a band 704 and a housing 710. In some implementations, the housing 710 can include a conductive material (e.g., a metal). In alternative implementations, the housing 110 can include a non-conductive material (e.g., a plastic material, a ceramic material).

[0053] The housing 710 can be coupled to the strap 704. In this manner, the strap 704 can be fastened to the user's arm 702 to secure the housing 710 to the user's arm 702.

[0054] In some implementations, the wearable computing device 700 may include a display screen 712. The display screen 712 may display content (e.g., time, date, biometrics, etc.) for a user to view. In some implementations, the display screen 712 may include an interactive display screen (e.g., a touch screen or a touch-free screen). In such implementations, a user may interact with the wearable computing device 700 via the display screen 712 to control the operation of the wearable computing device 700.

[0055] In some implementations, the wearable computing device 700 can include one or more input devices 714 that can be manipulated (e.g., pressed) by a user to interact with the wearable computing device 700. For example, the one or more input devices 714 can include a mechanical button that can be manipulated (e.g., pressed) to interact with the wearable computing device 700. In some implementations, the one or more input devices 714 can be manipulated to control the operation of a backlight (not shown) associated with the display screen 712. It should be understood that the one or more input devices 714 can be configured to allow a user to interact with the wearable computing device 600 in any suitable manner. For example, in some implementations, the one or more input devices 714 can be manipulated by a user to navigate content (e.g., one or more menu screens) displayed on the display screen 712.

[0056] Although wearable computing device 700 is shown as an example computing device, it is contemplated that details of the present disclosure may be implemented on other types of computing devices, such as smart cell phones, personal computers, tablet computers, personal digital assistants, laptop computers, and the like.

[0057] In further embodiments, the wearable computing device 700 may include one or more sensors for collecting biometric data related to the user. For example, the wearable computing device 700 may include a heart rate sensor, an air temperature sensor, a skin temperature sensor, and other sensors for collecting data for use in the network 100 or the network 200.

[0058] Figure 8 A block diagram of an example computing system 800 that performs eGA predictions according to an example embodiment of the present disclosure is depicted. System 800 includes a user computing device 802, a server computing system 830, and a training computing system 850 that are communicatively coupled via a network 880.

[0059] The user computing device 802 can be any type of computing device, such as, for example, a personal computing device (e.g., a laptop or desktop computer), a mobile computing device (e.g., a smart phone or tablet computer), a game console or controller, a wearable computing device, an embedded computing device, or any other type of computing device.

[0060] The user computing device 802 includes one or more processors 812 and memory 814. The one or more processors 812 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.), and can be one processor or multiple processors operatively connected. The memory 814 can include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, disks, etc. and combinations thereof. The memory 814 can store data 816 and instructions 818 executed by the processor 812 to cause the user computing device 802 to perform operations.

[0061] In some implementations, the user computing device 802 may store or include one or more OVERALL models 820. For example, the OVERALL model 820 may be or may otherwise include various machine learning models, such as a neural network (e.g., a deep neural network) or other types of machine learning models, including nonlinear models and / or linear models. The neural network may include a feedforward neural network, a recurrent neural network (e.g., a long short-term memory recurrent neural network), a convolutional neural network, or other forms of neural networks. Some example machine learning models may utilize attention mechanisms, such as self-attention. For example, some example machine learning models may include a multi-head self-attention model (e.g., a transformer model). Reference Figure 1 and Figure 2 An example L model 820 is discussed.

[0062] In some implementations, one or more models 820 may be received from a server computing system 830 via a network 880, stored in a user computing device memory 814, and then used or otherwise implemented by one or more processors 812. In some implementations, a user computing device 802 may implement multiple parallel instances of a single model 820 (e.g., to perform parallel eGA predictions across multiple instances of eGA-related data).

[0063] More specifically, model 820 may include one or more convolutional layers. For example, model 820 may include a first convolutional layer, a second convolutional layer, and a third convolutional layer. It should be understood that there may be more or fewer convolutional layers in the network.

[0064] In further embodiments, each convolutional layer of model 820 can be associated with a single data input (e.g., a specific parameter, measurement, or other value). Each convolutional layer receives input data and abstracts the input data into a feature map through a convolution process. In further embodiments, each convolutional layer of model 820 can be associated with a specific single type of data. For example, Figure 1 As shown, the first convolutional layer can be associated with the user's eGA value, the second convolutional layer can be associated with the number of steps taken by the user, and the third convolutional layer can be associated with the user's heart rate. Each convolutional layer can then process individual data inputs to create outputs from each convolutional layer. In a further embodiment, the output of each convolutional layer can be output as a feature map having a shape such as (number of inputs) x (feature map height) x (feature map width) x (feature map channels) or other suitable output shapes. The convolutional layers are split because each input can have a different temporal correlation principle, but each input has some potential information that affects the eGA value.

[0065] The output of one or more convolutional layers may be received by one or more pooling layers, such as a first pooling layer, a second pooling layer, and a third pooling layer. The pooling layer may process portions of the output feature maps from the one or more convolutional layers by, for example, selecting a filter and sliding the filter over the output feature map and performing a pooling operation, which results in an output from the pooling layer based on the currently selected value (e.g., currently under the filter) from the output feature map. Examples of pooling operations may include maximum pooling and average pooling.

[0066] The outputs from the pooling layer can then be provided to a concatenation layer. The concatenation layer receives the outputs from the pooling layer and concatenates the outputs along a specific dimension. For example, the concatenation layer can receive multiple outputs from multiple pooling layers and combine those inputs along a specified dimension that each of the multiple outputs has in common with the other outputs.

[0067] The concatenated layer can be used as input to the final convolutional layer. Like the convolutional layers described above, the final convolutional layer receives input data and abstracts the input data into a feature map through a convolution process. The output of the final convolutional layer is the estimated average glucose value ("eGA").

[0068] Additionally or alternatively, one or more models 840 may be included in or otherwise stored and implemented by a server computing system 830 that communicates with the user computing device 802 according to a client-server relationship. For example, the models 840 may be implemented by the server computing system 840 as part of a web service (e.g., an eGA prediction service). Thus, one or more models 820 may be stored and implemented at the user computing device 802, and / or one or more models 840 may be stored and implemented at the server computing system 830.

[0069] The user computing device 802 may also include one or more user input components 822 that receive user input. For example, the user input component 822 may be a touch-sensitive component (e.g., a touch-sensitive display screen or touchpad) that is sensitive to the touch of a user input object (e.g., a finger or a stylus). The touch-sensitive component may be used to implement a virtual keyboard. Other example user input components include a microphone, a traditional keyboard, or other devices by which a user can provide user input.

[0070] The server computing system 830 includes one or more processors 832 and memory 834. The one or more processors 832 can be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.), and can be one processor or multiple processors operatively connected. The memory 834 can include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, magnetic disks, etc., and combinations thereof. The memory 834 can store data 836 and instructions 838 executed by the processor 832 to cause the server computing system 830 to perform operations.

[0071] In some implementations, the server computing system 830 includes or is otherwise implemented by one or more server computing devices. Where the server computing system 830 includes multiple server computing devices, such server computing devices may operate according to a sequential computing architecture, a parallel computing architecture, or some combination thereof.

[0072] As described above, the server computing system 830 may store or otherwise include one or more models 840. For example, the model 840 may be or may otherwise include various machine learning models. Example machine learning models include neural networks or other multi-layer nonlinear models. Example neural networks include feedforward neural networks, deep neural networks, recurrent neural networks, and convolutional neural networks. Some example machine learning models may utilize attention mechanisms, such as self-attention. For example, some example machine learning models may include a multi-head self-attention model (e.g., a transformer model). Reference Figure 1 and Figure 2 An example model 840 is discussed.

[0073] User computing device 802 and / or server computing system 830 may train models 820 and / or 840 via interaction with training computing system 850 communicatively coupled via network 880. Training computing system 850 may be separate from server computing system 830 or may be part of server computing system 830.

[0074] The training computing system 850 includes one or more processors 852 and a memory 854. The one or more processors 852 may be any suitable processing device (e.g., a processor core, a microprocessor, an ASIC, an FPGA, a controller, a microcontroller, etc.), and may be one processor or multiple processors operatively connected. The memory 854 may include one or more non-transitory computer-readable storage media, such as RAM, ROM, EEPROM, EPROM, flash memory devices, disks, etc., and combinations thereof. The memory 854 may store data 856 and instructions 858 executed by the processor 852 to cause the training computing system 850 to perform operations. In some implementations, the training computing system 850 includes or is otherwise implemented by one or more server computing devices.

[0075] The training computing system 850 may include a model trainer 860 that trains the machine learning models 820 and / or 840 stored at the user computing device 802 and / or the server computing system 830 using various training or learning techniques such as, for example, error back propagation. For example, a loss function may be back propagated through the model to update one or more parameters of the model (e.g., based on the gradient of the loss function). Various loss functions may be used, such as mean squared error, likelihood loss, cross entropy loss, hinge loss, and / or various other loss functions. Gradient descent techniques may be used to iteratively update the parameters in multiple training iterations.

[0076] In some implementations, performing error back-propagation may include performing truncated back-propagation in time. The model trainer 860 may perform a variety of generalization techniques (eg, weight decay, dropout, etc.) to improve the generalization capabilities of the model being trained.

[0077] Specifically, the model trainer 860 can train the OVERALL models 820 and / or 840 based on a set of training data 862. The training data 862 can include, for example, general training data collected from various users (e.g., each user's typical eGA, typical number of steps per hour, typical heart rate, etc.). The training data 862 can also include user-specific training data (e.g., data from the user's CGM indicating the average eGA of a particular user, etc.).

[0078] In some implementations, where the user has provided consent, the training examples may be provided by the user computing device 802. Thus, in such implementations, the model 820 provided to the user computing device 802 may be trained by the training computing system 850 based on user-specific data received from the user computing device 802. In some cases, this process may be referred to as personalizing the model.

[0079] The model trainer 860 includes computer logic for providing the desired functionality. The model trainer 860 can be implemented in hardware, firmware, and / or software that controls a general purpose processor. For example, in some implementations, the model trainer 860 includes a program file stored on a storage device, loaded into a memory, and executed by one or more processors. In other implementations, the model trainer 860 includes one or more computer executable instruction sets stored in a tangible computer readable storage medium such as RAM, a hard disk, or an optical or magnetic medium.

[0080] The network 880 can be any type of communication network, such as a local area network (e.g., an intranet), a wide area network (e.g., the Internet), or some combination thereof, and can include any number of wired or wireless links. In general, communications through the network 880 can be conducted via any type of wired and / or wireless connection using a variety of communication protocols (e.g., TCP / IP, HTTP, SMTP, FTP), encodings or formats (e.g., HTML, XML), and / or protection schemes (e.g., VPN, secure HTTP, SSL).

[0081] The machine learning models described in this specification can be used for a variety of tasks, applications, and / or use cases.

[0082] In some implementations, the input of the machine learning model of the present disclosure may be text or natural language data. The machine learning model may process the text or natural language data to generate an output. As an example, the machine learning model may process the natural language data to generate a language encoding output. As another example, the machine learning model may process the text or natural language data to generate a potential text embedding output. As another example, the machine learning model may process the text or natural language data to generate a conversion output. As another example, the machine learning model may process the text or natural language data to generate a classification output. As another example, the machine learning model may process the text or natural language data to generate a text segmentation output. As another example, the machine learning model may process the text or natural language data to generate a semantic intent output. As another example, the machine learning model may process the text or natural language data to generate an upgraded (upscale) text or natural language output (e.g., text or natural language data of higher quality than the input text or natural language, etc.). As another example, the machine learning model may process the text or natural language data to generate a prediction output.

[0083] In some implementations, the input to the machine learning model of the present disclosure may be statistical data. Statistical data may be, represent, or otherwise include data calculated and / or computed from some other data source. The machine learning model may process statistical data to generate an output. As an example, the machine learning model may process statistical data to generate an identification output. As another example, the machine learning model may process statistical data to generate a prediction output. As another example, the machine learning model may process statistical data to generate a classification output. As another example, the machine learning model may process statistical data to generate a segmentation output. As another example, the machine learning model may process statistical data to generate a visualization output. As another example, one or more machine learning models may process statistical data to generate a diagnostic output.

[0084] In some implementations, the input to one or more machine learning models of the present disclosure may be sensor data. The machine learning model may process the sensor data to generate an output. As an example, the machine learning model may process the sensor data to generate a recognition output. As another example, the machine learning model may process the sensor data to generate a prediction output. As another example, the machine learning model may process the sensor data to generate a classification output. As another example, the machine learning model may process the sensor data to generate a segmentation output. As another example, the machine learning model may process the sensor data to generate a visualization output. As another example, the machine learning model may process the sensor data to generate a diagnostic output. As another example, the machine learning model may process the sensor data to generate a detection output.

[0085] In some cases, the machine learning model can be configured to perform a task that includes encoding input data for reliable and / or efficient transmission or storage (and / or corresponding decoding). For example, the task can be an audio compression task. The input can include audio data, and the output can include compressed audio data. In another example, the input includes visual data (e.g., one or more images or videos), the output includes compressed visual data, and the task is a visual data compression task. In another example, the task can include generating an embedding for the input data (e.g., input audio or visual data).

[0086] Figure 8 An example computing system that can be used to implement the present disclosure is shown. Other computing systems may also be used. For example, in some implementations, the user computing device 802 may include a model trainer 860 and a training data set 862. In such implementations, the model 820 may be both trained and used locally at the user computing device 802. In some of such implementations, the user computing device 802 may implement the model trainer 860 to personalize the model 820 based on user-specific data.

[0087] In addition to the above description, a user may be provided with a control that allows the user to make a choice of whether and when the system, program or feature described herein may be able to collect user information (e.g., information about the user's social network, social behavior, or activity, occupation, user's preference or user's current location) and whether to send content or communication from the server to the user. In addition, before storing or using certain data, the data may be processed in one or more ways so that personally identifiable information is removed. For example, the user's identity may be processed so that the user's personally identifiable information cannot be determined, or the user's geographic location in which location information is obtained may be generalized (such as to the city, zip code or state level) so that the user's specific location cannot be determined. Therefore, the user may control what information is collected about the user, how the information is used, and what information is provided to the user. For this reason, any information related to the user collected as described herein will remain private and confidential, and will not be improperly used or published.

[0088] Although the present subject matter has been described in detail with respect to various specific example embodiments of the present subject matter, each example is provided by way of explanation rather than limitation of the present disclosure. Those skilled in the art, after understanding the foregoing, may easily produce changes, variations, and equivalents of such embodiments. Therefore, the present disclosure does not exclude such modifications, variations, and / or additions to the present subject matter that would be readily understood by those of ordinary skill in the art. For example, a feature shown or described as part of an embodiment may be used together with another embodiment to produce yet further embodiments. Therefore, the present disclosure is intended to cover such changes, variations, and equivalents.

Claims

1. A method for determining a glucose value of a user, the method comprising: receiving a plurality of data inputs associated with biometric data of the user, the plurality of data inputs including at least one data input representing a past estimated glucose value of the user; processing the plurality of data inputs with a multi-headed temporal convolutional neural network to generate a blood glucose value for the user; as well as A notification is provided to the user based at least in part on the blood glucose value.

2. The method of claim 1, wherein processing the plurality of data inputs with a multi-headed temporal convolutional neural network to generate the user's blood glucose value comprises: Inputting each of the plurality of data inputs into a corresponding convolutional layer of the multi-headed temporal convolutional neural network; analyzing each individual convolutional layer for each of the data inputs separately from other individual convolutional layers; Combine the outputs from the individual convolutional layers being analyzed into a concatenated convolutional layer; as well as The blood glucose value of the user is generated based on the output of the concatenated convolutional layer.

3. A method as claimed in claim 1, wherein the multiple data inputs include at least one data input representing input data selected from a data input group consisting of: basal insulin data, bolus insulin data, nutrition data, sleep data, stressor data, hypoglycemic event data, disease data, exercise data, heart rate data, air temperature data, skin temperature data, step count data and galvanic skin response data.

4. The method of claim 1, wherein analyzing each individual convolutional layer comprises performing per-layer normalization for each convolutional layer. 5 . The method of claim 1 , further comprising performing lifting on a non-temporal data input of the plurality of data inputs to align the non-temporal data input with a temporal data input of the plurality of data inputs.

6. The method of claim 1, wherein at least one individual convolutional layer of the multi-head temporal convolutional neural network has an input layer size different from other individual convolutional layers of the multi-head temporal convolutional neural network.

7. The method of claim 1, wherein the blood glucose value comprises a range of blood glucose values.

8. The method of claim 1, wherein: the notifications comprising a first notification indicating that the user is hyperglycemic when the blood glucose value of the user is above a first threshold; the notifications comprising a second notification indicating that the user is hypoglycemic when the blood glucose value of the user is below a second threshold, the second threshold being lower than the first threshold; as well as The notifications include a third notification indicating that the user is at risk of becoming hypoglycemic when the blood glucose value of the user is not above the second threshold by a threshold amount. 9 . The method of claim 8 , wherein the notifications include a fourth notification instructing the user to stop performing exercise or consuming food.

10. A computing device, comprising: one or more processors; as well as A non-transitory computer-readable medium comprising instructions that, when executed by the one or more processors, cause the one or more processors to perform a process comprising: receiving a plurality of data inputs associated with biometric data of a user, the plurality of data inputs including at least one data input representing a past estimated glucose value of the user; processing the plurality of data inputs with a multi-headed temporal convolutional neural network to generate a blood glucose value for the user; as well as A notification is provided to the user based at least in part on the blood glucose value.

11. The computing device of claim 10, wherein processing the plurality of data inputs with a multi-headed temporal convolutional neural network to generate the user's blood glucose value comprises: Inputting each of the plurality of data inputs into a corresponding convolutional layer of the multi-headed temporal convolutional neural network; analyzing each individual convolutional layer for each of the data inputs separately from other individual convolutional layers; Combine the outputs from the individual convolutional layers being analyzed into a concatenated convolutional layer; as well as The blood glucose value of the user is generated based on the output of the concatenated convolutional layer.

12. The computing device of claim 10, the process further comprising performing lifting on a non-temporal one of the plurality of data inputs to align the non-temporal one of the plurality of data inputs with a temporal one of the plurality of data inputs.

13. The computing device of claim 10, wherein the blood glucose value comprises a range of blood glucose values.

14. The computing device of claim 10, wherein: the notifications comprising a first notification indicating that the user is hyperglycemic when the blood glucose value of the user is above a first threshold; the notifications comprising a second notification indicating that the user is hypoglycemic when the blood glucose value of the user is below a second threshold, the second threshold being lower than the first threshold; as well as The notifications include a third notification indicating that the user is at risk of becoming hypoglycemic when the blood glucose value of the user is not above the second threshold by a threshold amount.

15. A non-transitory computer-readable medium comprising instructions that, when executed by one or more processors, cause the one or more processors to perform a process comprising: receiving a plurality of data inputs associated with biometric data of a user, the plurality of data inputs including at least one data input representing a past estimated glucose value of the user; processing the plurality of data inputs with a multi-headed temporal convolutional neural network to generate a blood glucose value for the user; as well as A notification is provided to the user based at least in part on the blood glucose value.

16. The non-transitory computer-readable medium of claim 15, wherein processing the plurality of data inputs with a multi-headed temporal convolutional neural network to generate the user's blood glucose value comprises: Inputting each of the plurality of data inputs into a corresponding convolutional layer of the multi-headed temporal convolutional neural network; analyzing each individual convolutional layer for each of the data inputs separately from other individual convolutional layers; Combine the outputs from the individual convolutional layers being analyzed into a concatenated convolutional layer; as well as The blood glucose value of the user is generated based on the output of the concatenated convolutional layer.

17. The non-transitory computer-readable medium of claim 15, the process further comprising performing lifting on a non-temporal one of the plurality of data inputs to align the non-temporal one of the plurality of data inputs with a temporal one of the plurality of data inputs.

18. The non-transitory computer readable medium of claim 15, wherein the blood glucose value comprises a range of blood glucose values.

19. The non-transitory computer readable medium of claim 15, wherein: the notifications comprising a first notification indicating that the user is hyperglycemic when the blood glucose value of the user is above a first threshold; the notifications comprising a second notification indicating that the user is hypoglycemic when the blood glucose value of the user is below a second threshold, the second threshold being lower than the first threshold; as well as The notifications include a third notification indicating that the user is at risk of becoming hypoglycemic when the blood glucose value of the user is not above the second threshold by a threshold amount.

20. The non-transitory computer-readable medium of claim 19, wherein the notifications include a fourth notification instructing the user to stop performing exercise or consuming food.