DYNAMIC ROW RANKING OF CONNECTED FITNESS CONTENT

Information

  • Patent Application
  • 20240399234
  • Publication Number
    20240399234
  • Date Filed
    May 31, 2024
    a year ago
  • Date Published
    December 05, 2024
    6 months ago
Abstract
Systems and methods that facilitate and/or enable a connected fitness platform to dynamically rank and select rows (or groups) of content to display to a user are described. For example, a platform may dynamically rank and present rows of exercise classes to a user of an exercise machine via a home screen or other portal into the content provided by the platform.
Description
BACKGROUND

The world of connected fitness is an ever-expanding one. This world can include a user taking part in an activity (e.g., running, cycling, lifting weights, and so on), other users also performing the activity, and other users doing other activities. The users may be utilizing a fitness machine (e.g., a treadmill, a stationary bike, a strength machine, a stationary rower, and so on), or may be moving through the world on a bicycle or other equipment.


The users can also be performing other activities that do not include an associated machine, such as running, strength training, yoga, stretching, hiking, climbing, and so on. These users can have wearable devices or mobile devices (e.g., heart rate monitors) that monitor the activity or performance of the users. The users can also perform the activity in front of a user interface (e.g., a display or device) presenting content associated with the activity, or outside of any displayed content.


The user interface, whether a mobile device, a display device, or a display that is part of a machine, can provide or present interactive content to the users. For example, the user interface can present live or recorded classes, video tutorials of activities, leaderboards and other competitive or interactive features, progress indicators (e.g., via time, distance, and other metrics), and so on.





BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the present technology will be described and explained through the use of the accompanying drawings.



FIG. 1 is a block diagram illustrating a suitable network environment for users of an exercise system.



FIG. 2 is a block diagram illustrating modules of a ranking system.



FIGS. 3A-3B are diagrams illustrating example user interfaces (UIs) that depict the presentation of rows of content via a home screen of a connected fitness platform.



FIG. 4 is a block diagram illustrating the ranking of rows of content for a connected fitness platform.



FIG. 5 is a flow diagram illustrating a method of presenting selectable exercise content to a user of an exercise machine.





In the drawings, some components are not drawn to scale, and some components and/or operations can be separated into different blocks or combined into a single block for discussion of some of the implementations of the present technology. Moreover, while the technology is amenable to various modifications and alternative forms, specific implementations have been shown by way of example in the drawings and are described in detail below. The intention, however, is not to limit the technology to the particular implementations described. On the contrary, the technology is intended to cover all modifications, equivalents, and alternatives falling within the scope of the technology as defined by the appended claims.


DETAILED DESCRIPTION
Overview

Various systems and methods that enhance an exercise activity performed by a user are described. In some embodiments, the systems and methods perform dynamic row ranking, where content that is relevant and interesting to the user can be presented or surfaced via a user interface, such as a via a user interface displaying a home screen or other access portal to a connected fitness platform.


For example, the connected fitness platform may present content to a user during an exercise activity, such as an exercise class (e.g., real-time or archived), a guided activity, and so on. The platform, utilizing dynamic row ranking, can provide a targeted and efficient way to provide new, diverse content to the user when they first access the platform (e.g., via a home screen or “homescreen”) or otherwise engage with the platform.


For example, the platform may dynamically rank and/or select various available rows of content, and present one or more rows of content based on the dynamic ranking of the rows of the content. A row of content may be a group of content (e.g., exercise classes or other experiences presented by the platform) that is presented to the user via the platform, such as via the home screen.


Each row may include or contain content related by a certain theme or characteristic. For example, a row of content may include exercise classes having the same instructor, the same types of music, the same effort level of participation, and/or may be grouped by a certain theme, topic, event, and so on. Given that there are many different ways to group content into a row, the platform can have more rows available for display than can be supported or displayed to the user, given the constraints of display size and/or display engagement by a user (e.g., the user may not scroll down to seek out content).


Thus, the platform may employ various ranking techniques to optimize the user's experience, such as by ranking the rows of content based on predictions that the user is likely to select one or more pieces of content (e.g., classes or experiences) within a given row (e.g., a top-most row of a home screen).


Various embodiments of the system and methods will now be described. The following description provides specific details for a thorough understanding and an enabling description of these embodiments. One skilled in the art will understand, however, that these embodiments may be practiced without many of these details. Additionally, some well-known structures or functions may not be shown or described in detail, so as to avoid unnecessarily obscuring the relevant description of the various embodiments. The terminology used in the description presented below is intended to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific embodiments.


Examples of a Suitable Exercise Platform

The technology described herein is directed, in some embodiments, to providing a user with an enhanced user experience (e.g., a personalize experience) when performing an exercise activity, such as an exercise activity as part of a connected fitness system or other exercise system. FIG. 1 is a block diagram illustrating a suitable network environment 100 for users of an exercise system.


The network environment 100 includes an activity environment 102, where a user 105 is performing an exercise activity, such as a cycling activity. In some cases, the user 105 can perform the activity with an exercise machine 110, such as exercise bicycle, a treadmill, a rowing machine, a stair climber, and so on. Further, the exercise activity performed by the user 105 can include a variety of different workouts, activities, actions, and/or movements not associated with a machine, such as movements associated with lifting weights 112 (as shown), stretching, doing yoga, pilates, rowing, running, cycling, jumping, sports movements (e.g., throwing a ball, pitching a ball, hitting, swinging a racket, swinging a golf club, kicking a ball, hitting a puck), and so on.


The exercise machine 110 can assist or facilitate the user 105 to perform the movements and/or can present interactive content to the user 105 when the user 105 performs the activity. For example, the exercise machine 110 can be a stationary bicycle, a stationary rower, a treadmill, a weight machine, or other machines. As another example, the exercise machine 110 can be a display device that presents content (e.g., streamed classes, dynamically changing video, audio, video games, instructional content, and so on) to the user 105 during an activity or workout.


The exercise machine 110 includes a media hub 120 and a user interface 125. The media hub 120, in some cases, captures images and/or video of the user 105, such as images of the user 105 performing different movements, or poses, during an activity. The media hub 120 can include a camera or cameras, a camera sensor or sensors, or other optical sensors configured to capture the images or video of the user 105.


In some cases, the media hub 120 includes components configured to present or display information to the user 105. For example, the media hub 120 can be part of a set-top box or other similar device that outputs signals to a display, such as the user interface 125. Thus, the media hub 120 can operate to both capture images of the user 105 during an activity, while also presenting content (e.g., time-based or distance-based experiences, streamed classes, workout statistics, and so on) to the user 105 during the activity.


The user interface 125 provides the user 105 with an interactive experience during the activity. For example, the user interface 125 can present user-selectable options that identify live classes available to the user 105, pre-recorded classes available to the user 105, historical activity information for the user 105, progress information for the user 105, instructional or tutorial information for the user 105, and other content (e.g., video, audio, images, text, and so on), that is associated with the user 105 and/or activities performed (or to be performed) by the user 105. In some cases, the user interface 125 can present a home screen, as described herein.


In some cases, a heart rate monitor (HRM) 127 or other wearable device (e.g., smart watch, headphones, fitness trackers, and so on) can capture biometric information about the user 105, such as heart rate, movement information, sleep information, and so on. The HRM 127 can capture the user's heart rate and other information during machine-based activities and/or other activities, such as offline or class-based activities that do not utilize the exercise machine 110. In some cases, the exercise machine can include components configured to capture biometric information for the user 105, such as heart rate information. Further, the HRM 127 or smart watch may also provide a user interface (e.g., the user interface 125) to the user.


The exercise machine 110, the media hub 120, and/or the user interface 125 can send or receive information over a network 130, such as a wireless network. Thus, in some cases, the user interface 125 is a display device (e.g., attached to the exercise machine 110), that receives content from (and sends information, such as user selections) an exercise content system 140 over the network 130. In other cases, the media hub 120 controls the communication of content to/from the exercise content system 140 over the network 130 and presents the content to the user via the user interface 125.


The exercise content system 140, located at one or more servers remote from the user 105, can include various content libraries (e.g., classes, movements, tutorials, and so on) and perform functions to stream or otherwise send content to the machine 110, the media hub 120, and/or the user interface 125 over the network 130.


A content database 150 stores content 155 (e.g., video files) that presents a pre-recorded class to a user. The content can include images, video, and other visual information that present the class, music and other audio information to be played during the activity, and various overlay or augmentation information that is presented along with the audio/video content. Further, the database 150 can include various content libraries (e.g., classes, movements, tutorials, and so on) associated with the content presented to the user during a selected experience.


As described herein, a ranking system 145 can include various components configured to rank and display content via the user interface, such as by performing dynamic row ranking, as described herein. The ranking system 145 may include a row management system (RMS) 160 that manages the display of rows of content to a user, such as via the UI 125. Further details regarding the functionality and/or operation of the ranking system 145 and/or dynamic row ranking will be described in the following sections.



FIG. 1 and the components, systems, servers, and devices depicted herein provide a general computing environment and network within which the technology described herein can be implemented. Further, the systems, methods, and techniques introduced here can be implemented as special-purpose hardware (for example, circuitry), as programmable circuitry appropriately programmed with software and/or firmware, or as a combination of special-purpose and programmable circuitry. Hence, implementations can include a machine-readable medium having stored thereon instructions which can be used to program a computer (or other electronic devices) to perform a process. The machine-readable medium can include, but is not limited to, floppy diskettes, optical discs, compact disc read-only memories (CD-ROMs), magneto-optical disks, ROMs, random access memories (RAMs), erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, flash memory, or other types of media/machine-readable medium suitable for storing electronic instructions.


The network or cloud 130 can be any network, ranging from a wired or wireless local area network (LAN), to a wired or wireless wide area network (WAN), to the Internet or some other public or private network, to a cellular (e.g., 4G, LTE, or 5G network), and so on. While the connections between the various devices and the network 130 and are shown as separate connections, these connections can be any kind of local, wide area, wired, or wireless network, public or private.


Further, any or all components depicted in the Figures described herein can be supported and/or implemented via one or more computing systems, services (e.g., cloud instances), or servers. Although not required, aspects of the various components or systems are described in the general context of computer-executable instructions, such as routines executed by a general-purpose computer, e.g., mobile device, a server computer, or personal computer. The system can be practiced with other communications, data processing, or computer system configurations, including: Internet appliances, hand-held devices, wearable devices, or mobile devices (e.g., smart phones, tablets, laptops, smart watches), all manner of cellular or mobile phones, multi-processor systems, microprocessor-based or programmable consumer electronics, set-top boxes, network PCs, mini-computers, mainframe computers, AR/VR devices, gaming devices, and the like. Indeed, the terms “computer,” “host,” and “host computer,” and “mobile device” and “handset” are generally used interchangeably herein and refer to any of the above devices and systems, as well as any data processor.


Aspects of the system can be embodied in a special purpose computing device or data processor that is specifically programmed, configured, or constructed to perform one or more of the computer-executable instructions explained in detail herein. Aspects of the system may also be practiced in distributed computing environments where tasks or modules are performed by remote processing devices, which are linked through a communications network, such as a Local Area Network (LAN), Wide Area Network (WAN), or the Internet. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.


Aspects of the system may be stored or distributed on computer-readable media (e.g., physical and/or tangible non-transitory computer-readable storage media), including magnetically or optically readable computer discs, hard-wired or preprogrammed chips (e.g., EEPROM semiconductor chips), nanotechnology memory, or other data storage media. Indeed, computer implemented instructions, data structures, screen displays, and other data under aspects of the system may be distributed over the Internet or over other networks (including wireless networks), or they may be provided on any analog or digital network (packet switched, circuit switched, or other scheme). Portions of the system may reside on a server computer, while corresponding portions may reside on a client computer such as an exercise machine, display device, or mobile or portable device, and thus, while certain hardware platforms are described herein, aspects of the system are equally applicable to nodes on a network. In some cases, the mobile device or portable device may represent the server portion, while the server may represent the client portion.


Examples of Dynamic Row Ranking

As described herein, in some embodiments, the systems and methods perform various methods or operations to dynamically present content to a user of a connected fitness platform, such as via a home screen or other user interface. As described herein, the connected fitness platform may store and manage a large and ever-expanding corpus of content available to its users. For example, a user that engages with the platform via an exercise machine (e.g., an exercise bicycle or treadmill) may have access to thousands of different exercise classes, including instructor-led live classes, instructor-led archived classes, special edition or topical classes, gaming activities, entertainment experiences, and so on.


The user 105 may access content via a landing page or home screen and/or via a rich catalog of an on-demand library (e.g., 80K+ classes across 80+ class types, 50+ instructors and 20+ fitness disciplines). The landing page or home screen may be the first thing the user sees when accessing the platform. The home screen can display a range of content the user might want to interact with, such as upcoming live classes, user workout milestones, promotional banners, social experiences, and so on. Thus, the home screen can surface relevant and desirable content to the user, such as by showcasing classes to the users, in order to enhance their experience, among other benefits.


As described herein, the home screen may be split into several rows, with each row providing a different kind of content. For example, the home screen may display content based on the following:

    • Identify themes for rows that capture the multi-faceted interests of a user. Examples of valuable rows mirror popular filters that are available in an on-demand library: classes based on a favorite instructor, music genre, or difficulty level. In some cases, row content may be manually curated or personalized for a user or group of users;
    • Determine an ordering of the rows that is based on the user's interests and balances these interests with the exploration, discovery, and/or surfacing of other areas of the library of content.


Thus, the system can enhance the user's experience and increase overall engagement by dynamically surfacing material that is relevant and likely to be selected by the user, while reducing the reliance of a user to scroll through the home screen or opt into the on-demand library to find content that resonates with their typical or topical interests.


As described herein, in some embodiments, the platform includes the ranking system 145 (e.g., one or more hardware-implemented modules) for creating and ranking rows of content. The ranking system 145 may enable the platform to provide straightforward row management for content and algorithm experimentation for personalization.



FIG. 2 is a block diagram illustrating the modules of the ranking system 145. The modules or components of the ranking system 145 can be implemented with a combination of software (e.g., executable instructions, or computer code) and hardware (e.g., at least a memory and processor). Accordingly, as used herein, in some embodiments, a component/module is a processor-implemented component/module and represents a computing device having a processor that is at least temporarily configured and/or programmed by executable instructions stored in memory to perform one or more of the functions that are described herein. The ranking system 145, which may be part of a connected fitness system or platform, includes a content module 210, a row ranking module 220, and a presentation module 230.


In some embodiments, the content module 210 is configured and/or programmed to access a database that stores available rows of content to be displayed to a user associated with an exercise machine. For example, the content module 210 may be access, obtain, and/or retrieve content 155 from the content database 150. The content 155 may be grouped into one or more rows of content, such as groups of content that share a common characteristic, attribute, parameter, theme, and so on. The content may include exercise classes selectable by the user and associated with exercise activities performed by the user via the exercise machine (e.g., bike classes for a user of an exercise bicycle).


In some embodiments, the row ranking module 220 is configured and/or programmed to determine, for each available row of content to be displayed to the user associated with the exercise machine, a likelihood that the user of the exercise machine selects content from the available row of content and assign a ranking to the available row based on the determined likelihood for the available row of content.


For example, the row ranking module 220 may determine a counterfactual estimate of conversion of the available row of content and assign the rankings to the available rows of content based on the counterfactual estimates of conversion. Further, the row ranking module 220 may rank the rows of content by applying a bandit model based on Thompson sampling to the rankings assigned to the available rows of content, as is described in further detail herein.


In some cases, each of the available rows (e.g., 10 or more) may be associated with a unique row type. Example row types may include rows defined as follows: for_your_usual, for_something_new, for_a_quick_workout, popular_sessions, most_popular_right_now, get_started, class_type_based_recs, daily_picks, instructor_based_recs, music_genre_based_recs, and many others.


In some embodiments, the presentation module 230 is configured and/or programmed to present a subset of the available rows of content to the user based on the rankings assigned to the available rows of content. For example, the presentation module 230, via the RMS 160, may cause the exercise machine to present a highest ranked row (or rows) of available content at a top portion of a user interface associated with the exercise machine, such as via a home screen or other portal into the connected fitness platform.


In some cases, the ranking system 145 may rank, or re-rank, rows of content based on an occurrence of an event at a user interface associated with the exercise machine. For example, the ranking system 145 may receive an indication that a user has logged into the platform and/or navigated to the home screen and initiate a dynamic ranking of rows of content in response to the navigation event.


In some cases, the ranking system 145, via the row ranking module 220, may generate new or modified rows of content based on determining that two or more rows of content received high rankings. For example, the ranking system 145 may determine that a user is likely to be interested in a few different rows of content, dynamically generate a unique row of content that includes content selected from two or more rows, and present that rows of content to the user at the top of the home screen.



FIGS. 3A-3B are example UIs that depict a dynamically changing home screen 300 of a connected fitness platform. In FIG. 3A the home screen 300 displays a first row of content 310, which includes classes 315 in a group called “Your Favorite Instructors” and a second row of content 320, which includes classes 325 in a group called “New Classes You May Enjoy.”


In FIG. 3B, the home screen 300 depicts the operation of dynamic row ranking, where the first row of content 310 is replayed by a higher ranked third row of content 330, which includes classes 335 in a group called “Classes Spotlighting EDM.” For example, the ranking system 145 receives an indication that the user of the home screen 300 has navigated back to the home screen 330 on their treadmill, and dynamically ranks available rows of content, determining that the row of content 330 is the highest ranked row of content.


The home screen 330, in response to instructions received from the RMS 160, presents the new row of content in the top position of the home screen 300. For example, the RMS 160, as described herein, manages static rows assembled by content teams and/or services, as well as personalized rows associated with the user. This RMS 160 facilitates the selection and/or rearrangement of pinned rows—rows that are manually fixed on the home screen—to reflect newly created content and/or content of focus for a time period, event, group of users, region, and so on.


As described herein, the row ranking module 220 may utilize various machine learning/artificial intelligence (ML/AI) techniques when determining and/or assigning ranks to rows of content, such as determining information to provide to the RMS 160. FIG. 4 is a block diagram 400 illustrating the ranking of rows of content for a connected fitness platform.


User interaction event logs 410, such as logs of data generated by events or user interactions (e.g., users starting a workout, users viewing a row, users scrolling the home screen, and so on) are provided to a microservice 405, such as a service that implements aspects of the ranking system 145 described herein. The microservice 405 includes various row ranking algorithms and/or processes (e.g., implemented in Spark) that output the ranking for the rows of the content to an RMS 440.


An initial Spark job (e.g., Thompson sampling parameters update 420) updates Beta distribution parameters 425 using the user interactions, and another Spark job (e.g., row score generation 430) ranks the rows, based on the Thompson sampling, stores its results (e.g., the rankings) into a row scores database 435 (e.g., a DynamoDB table). The RMS 440 receives or accesses the row scores or rankings and transmits row display instructors to a display associated with a user, such as a UI (e.g., the UI 125) associated with the exercise machine 110. In some cases, some or all jobs may be performed as batch jobs, such as batches run on a periodic (e.g., daily) basis.


For example, the ranking system 145 may employ a bandit model based on Thompson sampling for row ranking, where the reward is conversion (e.g., a user starts a workout from the home screen). The system 145 seeks or operates to maximize the conversion.


In some cases, the overall conversion rate from a home screen depends on how the rows are ranked, because higher ranked rows often get more attention from users and prioritizing rows that resonate with users will improve overall conversions. In order to solve the ranking problem, the system 145 utilizes a counterfactual question, such as: “What is the conversion rate for each user and row pair (u,r) when the row r is shown to the user u as the top row?”. The answer is a counterfactual estimate, because, realistically, not all rows can be shown as a top row and observed conversion rates depend on the home screen position where the row was displayed.


Using an unbiased estimate of the counterfactual conversion rate, the ranking system 145 may simply rank the rows in decreasing order of the likelihood. However, utilizing the bandit model, the system 145 can predict or estimate a prior distribution of the conversion rates and employ Thompson sampling to rank the rows, improving the conversion from the home screen over time, among other benefits.


For example, the ranking system 145 models the stochastic process of a user u converting on row r, when the row is displayed as the top row, by a Binomial distribution with a Beta prior. In doing so, the system 145 may utilize the observed data to estimate the posterior distribution and learn or estimate preferences. However, since observed data is biased because conversion rates depend on the position of the row, the system 145 may only include observations when the row r was actually shown as the top row to the user u. However, such a technique is inefficient.


Instead, the system 145 may log or track when a user viewed rows shown at different positions and estimate the likelihood of a user scrolling down to view rows. If user attention is driver or motivated by a likelihood of seeing a certain row, the system 145 may correct for the bias of position by associating weights to observations that are inversely proportional to the likelihood of the user scrolling down to the actual position shown. In some cases, the system 145 may utilize information about the user associated with the user performing exercise activities (e.g., performance data, heart rate data, and so on), and log or track the data for estimating the likelihood of the user viewing a row or class within the row.


Let αur(t) and βur(t) be the pseudocounts of the Beta distribution at time t describing the prior distribution of the conversion rate for the pair (u,r), when row r is shown as the top row to user u. Let curk(t) be the observed number of workouts or classes started from the row at time t when the row was shown at position k, and let {circumflex over (p)}k(t) be an estimate of the likelihood of the user scrolling down to position k. To produce an unbiased posterior distribution, the system 145 updates the pseudocounts of the Beta distribution as follows:











α

u

r


(

t
+
1

)

=



α

u

r


(
t
)

+



Σ



k
=
1


N
r




1



p
ˆ

k

(
t
)


×


c

u

r

k


(
t
)







(
1
)












β

u

r


(

t
+
1

)

=
1

,



β

u

r


(
t
)

+


n

u

r


(
t
)

-




k
=
1


N
r




1



p
ˆ

k

(
t
)


×


c

u

r

k


(
t
)








where nur(t) is the number of sessions the user started and viewed the home screen.


In some cases, the logic may be somewhat unstable during the initial time steps, especially with smaller values of the pseudocounts. The system 145, therefore, may add some intuitive guardrails to the parameter update logic, as follows:











α

u

r


(

t
+
1

)

=



α

u

r


(
t
)

+



Σ



k
=
1


N
r


[


min
(

100
,

1



p
ˆ

k

(
t
)



)

*


c

u

r

k


(
t
)


]






(
2
)











β

u

r


(

t
+
1

)

=

Max

(

1
,



β

u

r


(
t
)

+


n

u

r


(
t
)

-




k
=
1


N
r




[


min
(

100
,

1



p
ˆ

k

(
t
)



)

*


c

u

r

k


(
t
)


]




)





To generate a stable scrolling probability {circumflex over (p)}k(t), the system 145 may employ exponential smoothing with a suitable initial value, where a scrolling probability roughly scales as







1
k

.




Thus,











p
ˆ

k

(
0
)

=

1
k





(
3
)







and subsequent values are computed as












p
ˆ

k

(
t
)

=



(

1
-
ρ

)

×



p
ˆ

k

(

t
-
1

)


+

ρ
×




Σ



u
,
r






s

u

r

k


(
t
)





Σ



u
,
r






s

ur

0


(
t
)









(
4
)









    • where surk(t) is the number of times the user u viewed row r at position k at time t. In some cases, the system 145 assumes that the first row is always visible to the users. For the smoother parameter, ρ=0.8.





Next, the system 145 selects suitable initial values for the pseudocounts defining the Beta distributions. The system 145 may employ data collected during initial testing of the row types, where each row type was introduced as the top row for a fixed period of time and the home screen conversion rate was compared to a control home screen without the new row at the top position. The system 145 may estimate a lift in conversion rates for each row type as







α
r

=


conversion


rate


wifh


row


r


at


the


top


conversion


rate


for


control






and the pseudo counts are initialized to be the same for all users as follows:











α

u

r


(
0
)

=

cvr
×

α
r

×

I
0






(
5
)











β

u

r


(
0
)

=


(

1
-

c

v

r
×

α
r



)

×

I
0








    • where I0=500 sets the overall scale and cur is a recent measurement of the control home screen's conversion rate. The system 145 uses the conversion lift instead of the actual conversion rate for the row type because the conversion rates change over time. However, the lift estimates are immune to time dependent common factors affecting both the control and the row type and are more generalizable across time.





An example algorithm (e.g., Thompson Sampling with Scrolling Probability) is as follows:

    • Initialize parameters αur(0) and βur(0) according to Eq. 5 and scrolling probability {circumflex over (p)}k(0) according to Eq. 3,
    • for t=1, . . . , T do
    • Observe conversions curk(t), impressions surk(t) and session counts nur(t)
    • Update scrolling probability {circumflex over (p)}x(t) according to Eq. 4
    • Update Beta distribution parameters αur(t+1), βur(t+1) according to Eq. 2
    • Sample row score Θur(t) from Beta(αur(t+1), βur(t+1)) end for.


In some embodiments, such as to improve the efficiency of system learning, the system 145 may employ a collaborative filtering technique for Thompson sampling to the row ranking processes. The system 145, via Word2Vec, learns a representation of the workout or content library and generate user embeddings from user workout histories. The system 145 then employs a clustering algorithm before updating the parameters to reduce the number of user pairwise calculations to be performed. Using a similarity search algorithm, the system 145 cluster the users and only consider users within the same cluster, uc, when performing the parameter update.


With the collaborative filtering approach, the parameter update becomes:











α
ur


(

t
+
1

)

=



Σ



u
c



γ



α

u

c
r



(
t
)

×

s

u


u
c








(
6
)











β
ur


(

t
+
1

)

=




u
c



γ



β

u

c
r



(
t
)

×

s

u


u
c











    • where αucr(t) and βucr(t) are calculated as shown in Eq. 2 and suuc is the cosine similarity between the embeddings for user u and user uc. Thus, in some cases, the system implements a combined collaborative filtering and scrolling probability approach.





As described herein, the ranking system 145 may perform various methods or processes when presenting content to users of a connected fitness platform. FIG. 5 is a flow diagram illustrating a method 500 of presenting selectable exercise content to a user of an exercise machine. The method 500 may be performed by the ranking system 145 and, accordingly, is described herein merely by way of reference thereto. It will be appreciated that the method 500 may be performed on any suitable hardware.


In operation 510, the ranking system 145 determines, for each group of multiple different groups of exercise classes selectable by a user of an exercise machine, a likelihood that the user of the exercise machine selects an exercise class from that group of exercise classes. For example, the row ranking module 220 determines a counterfactual estimate of conversion of the group of exercise classes. Example groups of exercise classes may include a group of exercise classes associated with instructors previously selected by the user, a group of exercise classes associated with instructors new to the user, a group of exercise classes associated with musical types previously selected by the user, a group of exercise classes popular across all users of a connected fitness platform associated with the exercise machine, and others described herein.


In operation 520, the ranking system 145 assigns a ranking to the group of exercise classes based on the determined likelihood. For example, the row ranking module 220 applies a bandit model based on Thompson sampling to the rankings assigned to the groups of exercise classes.


In operation 530, the ranking system 145 presents the multiple different groups of exercise classes for selection to the user based on the assigned rankings. For example, the presentation module 230, via the RMS 160, may cause the exercise machine to present a highest ranked row (or rows) of available content at a top portion of a user interface associated with the exercise machine, such as via a home screen or other portal into the connected fitness platform.


Thus, in some embodiments, the systems and methods described herein may receive an indication that a user of an exercise machine has accesses a home screen into a connected fitness platform, dynamically rank a list of rows of content available to the user of the exercise machine, and present the rows of content available to the user via the home screen and based on the dynamic ranking of the list of the rows of content.


In some cases, the system dynamically ranks the rows of content by determining counterfactual estimates of conversion for the rows of content, assigning rankings to the rows of content based on the counterfactual estimate of conversion, and applying a bandit model based on Thompson sampling to the rankings assigned to the rows of content.


Thus, in various embodiments, the systems and methods described herein facilitate and/or enable a connected fitness platform to dynamically rank and select rows (or groups) of content to display to a user, such as to a user of an exercise machine via a home screen or other portal into the content provided by the platform.


CONCLUSION

Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense, as opposed to an exclusive or exhaustive sense; that is to say, in the sense of “including, but not limited to.” As used herein, the terms “connected,” “coupled,” or any variant thereof, means any connection or coupling, either direct or indirect, between two or more elements; the coupling of connection between the elements can be physical, logical, or a combination thereof. Additionally, the words “herein,” “above,” “below,” and words of similar import, when used in this application, shall refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word “or”, in reference to a list of two or more items, covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.


The above detailed description of embodiments of the disclosure is not intended to be exhaustive or to limit the teachings to the precise form disclosed above. While specific embodiments of, and examples for, the disclosure are described above for illustrative purposes, various equivalent modifications are possible within the scope of the disclosure, as those skilled in the relevant art will recognize.


The teachings of the disclosure provided herein can be applied to other systems, not necessarily the system described above. The elements and acts of the various embodiments described above can be combined to provide further embodiments.


Any patents and applications and other references noted above, including any that may be listed in accompanying filing papers, are incorporated herein by reference. Aspects of the disclosure can be modified, if necessary, to employ the systems, functions, and concepts of the various references described above to provide yet further embodiments of the disclosure.


These and other changes can be made to the disclosure in light of the above Detailed Description. While the above description describes certain embodiments of the disclosure, and describes the best mode contemplated, no matter how detailed the above appears in text, the teachings can be practiced in many ways. Details of the technology may vary considerably in its implementation details, while still being encompassed by the subject matter disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the disclosure should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the disclosure with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the disclosure to the specific embodiments disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the disclosure encompasses not only the disclosed embodiments, but also all equivalent ways of practicing or implementing the disclosure under the claims.


From the foregoing, it will be appreciated that specific embodiments have been described herein for purposes of illustration, but that various modifications may be made without deviating from the spirit and scope of the embodiments. Accordingly, the embodiments are not limited except as by the appended claims.

Claims
  • 1. A connected fitness system, comprising: a content module that is configured to access a database that stores available rows of content to be displayed to a user associated with an exercise machine;a row ranking module that is configured to: determine, for each available row of content to be displayed to the user associated with the exercise machine, a likelihood that the user of the exercise machine selects content from the available row of content; andassign a ranking to the available row based on the determined likelihood for the available row of content; anda presentation module that is configured to present a subset of the available rows of content to the user based on the rankings assigned to the available rows of content.
  • 2. The connected fitness system of claim 1, wherein the row ranking module determines the likelihood that the user of the exercise machine selects content from the available row of content by: determine a counterfactual estimate of conversion of the available row of content; andassign the rankings to the available rows of content based on the counterfactual estimates of conversion.
  • 3. The connected fitness system of claim 2, wherein the row ranking module is further configured to apply a bandit model based on Thompson sampling to the rankings assigned to the available rows of content.
  • 4. The connected fitness system of claim 1, wherein each of the available rows of content are associated with a unique row type.
  • 5. The connected fitness system of claim 1, wherein the presentation module is configured to present a highest ranked row of available content at a top portion of a user interface associated with the exercise machine.
  • 6. The connected fitness system of claim 1, wherein the presentation module presents the subset of the available rows of content to the user based on the rankings assigned to the available rows of content in response to an occurrence of an event at a user interface associated with the exercise machine.
  • 7. The connected fitness system of claim 1, wherein the presentation module presents the subset of the available rows of content to the user based on the rankings assigned to the available rows via a home screen associated with the connected fitness system.
  • 8. The connected fitness system of claim 1, wherein the presentation module presents the subset of the available rows of content to the user based on the rankings assigned to the available rows via a display of the exercise machine.
  • 9. The connected fitness system of claim 1, wherein the presentation module presents the subset of the available rows of content to the user based on the rankings assigned to the available rows via a mobile device associated with the user.
  • 10. The connected fitness system of claim 1, wherein the row ranking module is further configured to generate a new row of content based on two or more available rows of content that are assigned high rankings.
  • 11. The connected fitness system of claim 1, wherein the content within each of the available rows of content include exercise classes selectable by the user and associated with exercise activities performed by the user via the exercise machine.
  • 12. A method, comprising: determining, for each group of multiple different groups of exercise classes selectable by a user of an exercise machine, a likelihood that the user of the exercise machine selects an exercise class from that group of exercise classes;assigning a ranking to the group of exercise classes based on the determined likelihood; andpresenting the multiple different groups of exercise classes for selection to the user based on the assigned rankings.
  • 13. The method of claim 12, wherein the likelihood of selection for each group of exercise classes is determined by: determining a counterfactual estimate of conversion of the group of exercise classes; andassigning the ranking to the groups of exercise classes based on the counterfactual estimate of conversion.
  • 14. The method of claim 13, further comprising: applying a bandit model based on Thompson sampling to the rankings assigned to the groups of exercise classes.
  • 15. The method of claim 12, wherein the multiple different groups of exercise classes include: a group of exercise classes associated with instructors previously selected by the user;a group of exercise classes associated with instructors new to the user;a group of exercise classes associated with musical types previously selected by the user; anda group of exercise classes popular across all users of a connected fitness platform associated with the exercise machine.
  • 16. The method of claim 12, wherein presenting the multiple different groups of exercise classes for selection to the user based on the assigned rankings includes presenting a highest ranked group of exercise classes at a top portion of a user interface associated with the exercise machine.
  • 17. The method of claim 12, wherein presenting the multiple different groups of exercise classes for selection to the user based on the assigned rankings includes presenting a highest ranked group of exercise classes within a home screen displayed by a user interface associated with the exercise machine.
  • 18. A non-transitory computer-readable medium whose contents, when executed by a computing system, cause the computing system to perform a method, the method comprising: receiving an indication that a user of an exercise machine has accesses a home screen into a connected fitness platform;dynamically ranking a list of rows of content available to the user of the exercise machine; andpresenting the rows of content available to the user via the home screen and based on the dynamic ranking of the list of the rows of content.
  • 19. The non-transitory computer-readable medium of claim 18, wherein the rows of content include groupings of exercise content available to the user and associated with exercise activities performed by the user via the exercise machine.
  • 20. The non-transitory computer-readable medium of claim 18, wherein dynamically ranking a list of rows of content available to the user of the exercise machine includes: determining counterfactual estimates of conversion for the rows of content;assigning rankings to the rows of content based on the counterfactual estimate of conversion; andapplying a bandit model based on Thompson sampling to the rankings assigned to the rows of content.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent Application No. 63/505,513, filed on Jun. 1, 2023, entitled DYNAMIC ROW RANKING, which is hereby incorporated by reference in its entirety.

Provisional Applications (1)
Number Date Country
63505513 Jun 2023 US