Wow.
Thank you Pat for that intro.
Um, so as Pat mentioned, we are fromTrue Knowledge, so we're for full
service, uh, agency headquarteredin Toronto, and we've been working
in WordPress for the last 15 years.
Uh, we've had the opportunity to workwith some really great, uh, Canadian
companies like Air Canada, RBC, mapleLeaf Foods clients, you know, all over the
world and in the US including Edutopia.
We need the microphone.
Sorry.
It's not on.
Would you like to use it?
Uh, it is on.
Is it?
It is on.
Yeah.
Hello?
Yeah.
I think it wasn't maybe close.
I move it over just a little bit.
Sure.
Okay.
Is that better?
Uh, so for those not familiar, uh, aboutEdutopia, so Edutopia is part of the
George Lucas Educational Foundation.
Founded in 1991 by filmmaker George Lucas,um, and the Edutopia website reaches
millions of educators worldwide focusingon articles, videos, research, you know,
resources, um, all focused on its missionof sharing what works in education.
George Lucas says that educationis the single most important
endeavor of the human race.
So this mission is deeply rootedinto everything Edutopia does.
So first I wanna talk a littleabout why personalization matters.
So a recent survey from McKinsey showedthat 71% of content consumers, uh,
actually expect that their contentis personalized, and 76% of users
actually get frustrated when it isn't.
Uh, so some really good examples that aredoing personalization well and some of
the applications we might use every day.
One being Netflix, which callsitself a subscription service that
offers personalized recommendationsto help you find shows, movies,
games we think you might enjoy.
So its recommendation system uses thingslike viewing history ratings, how other
members with similar interests areengaging with Netflix and the metadata
of the shows that you're watching.
So genre, actors, categories, et cetera.
And then it promotes thoserecommendations, uh, on rows
like topics for you, becauseyou watched X you may like this.
So not surprisingly, you know,80% of all of Netflix streams
comes from those recommendations.
And the TikTok is another great examplethat does personalization first.
So every interaction from sharing, liking,commenting on videos, watching or even
skipping videos, all kind of feeds theiralgorithm in real time and quickly,
you know, learns your patterns and.
Pretty much curates an endlesslyengaging feed that's truly unique to you.
And, you know, most modern socialplatforms are moving towards this
personalization first approachrather than you know, who you're
friends with or who you follow.
So kind of coming back to Edutopia and,and a bit of where we started with them.
So personalization has existed onEdge Utopia for quite some time.
So when users, uh, create an account onthe site, we, um, ask 'em to fill out some
information such as their grade level.
Uh, educational role, subject matterexpertise like arts, math, computer
science, and as the user is navigatingaround the site, for example, on the
homepage, it has a list of articlesor videos, they'll see an orange check
mark, uh, that indicates how the articleor video matches their preferences.
And, uh, additionally on topic pages likesocial emotional learning, we have a, your
Matches tab that, um, essentially displaysand organizes all the articles within that
category based on those user preferences.
Um, in addition to the website,we'll show, uh, extend kind of
personalization to, uh, newsletters.
So Edutopia has a, uh, weeklynewsletter called The Intercom.
So it's sent out every week.
It's a collection of all thearticles published within
that last, last seven days.
But as we're processing each userwho's going to receive the newsletter,
um, we kind of compare each articlewith the user's preferences and then
we'll re-rank and, and move thosearticles to the top of the newsletter.
And, you know, with this kind ofchange, Edutopia has noticed a huge
increase in click-through rates fromthe newsletters, uh, to their site.
So.
Again, that's been on the site for awhile, and with all of this in place
and AI tools becoming, you know,more available, more accessible,
Edutopia really wanted to seehow it could help educators even
more and evolve this technology.
So they asked the question, youknow, what do educators need?
And came up with a couple of key answers.
So the first.
Is educators want personalized contentand resources that evolve with their
interest and classroom needs, andthey also want opportunities to
engage with the community by sharingideas, discussions, and feedback.
So, you know, teaching thesedays is incredibly difficult.
Teachers often feel isolated, sohaving a trusted community where
you kinda get help and support isreally, really important to them.
So Edge Utopia has about 1 millionusers in their database, many of which
are, you know, current teachers, formerteachers, you know, all willing to share
their experiences with one another.
So we developed, uh,something called the homeroom.
So the homeroom delivers,uh, hyper-personalized
recommendations to a user's feed.
So these recommendations are notonly based on the preferences like
we did before, but now they'rebased on behaviors and interactions
that users are taking on the site.
So, kind of give a couple of examplesof some of the recommendations a user
might receive would be, um, you know,whenever a new article is published.
Uh, we compare it to the user'spreferences and determine
if it matches any of them.
And if it does, you know, we'llrecommend that article to the user.
If an article is receiving a high volumeof comments, we'll recommend, uh, that to
users to kind of join in the conversation.
If an article is gettinga boost in traffic.
All of Veto's content ispretty much evergreen content.
So an article published six months agocould still be relevant today and it could
be making its, uh, rounds on social media.
And we have a, a stats servicethat helps power this, um,
kind of trending, uh, content.
So if an article isgetting a boost in traffic.
Um, the user will be,will get recommended.
That trending article we developedalongside, um, the homeroom, a
section called Ask and Answer.
So it allows educators topost, you know, questions and
get feedback from their peers.
So this can help address theneed of educators wanting to
engage with the community more.
So if a question isgetting a lot of comments.
Um, it matches user preferences.
It's starting to be trending, youknow, we'll recommend those, uh,
those questions to users as well.
Um, so we also have recommendationsthat are powered by ai.
So for example, if a user views anarticle or saves an article, we'll
recommend a similar article basedon what they just viewed or saved.
And if, uh, other userswith similar interests.
Um, our reading articles willrecommend that article to
some of those users as well.
So, um, essentially all theserecommendations, and that was a few of the
recommendations we have, uh, quite a fewmore, but all those recommendation, uh,
cards are fed into the user's homeroom.
And essentially the more theusers, you know, engage with the
site, the more recommendationsthey'll ultimately receive.
But our goal isn't just to kind of, uh.
Give users a bunch of recommendations.
It's really about honing in on, um, kindof what they care about, ensuring we're
delivering the right, um, recommendationsto those users based on those preferences
and their behaviors on the site.
So I'm gonna turn it over to Jeffwho's gonna, uh, show us how this
kind of works, uh, all under the hood.
Cool.
All right.
Awesome.
Thank you so much for theintroduction, Anthony.
Um.
So, yeah.
Uh, next we're going to be talking, uh,like this next portion of the talk is
gonna get a little bit more technical.
However, we definitely want everyonehere to feel involved, so I'm gonna try
and keep it as high level as possible.
Um, but the goal of this portion of thetalk is essentially to show you what
we ended up building for the EdutopiaWordPress site, uh, the technologies
that we use, how we're using it, andhopefully it inspires you all, uh, with
your website and how you can integrate it.
Into your own WordPress site.
Uh, so we're gonna be talkingabout a few different things.
As you can see, we're gonna talk abouthow the homeroom leverage leverages ai.
Uh, we're also gonna talk about how youcan integrate the technology and the tools
that we use into your own WordPress site.
Um, and then finally we're gonnago through a couple of examples.
Um, so I guess before we talk aboutthe homeroom and how it leverages
ai, uh, we should kind of talkabout the technology overall.
Um, and we've prototyped and shippedseveral different AI tools and
features, and there's always onequestion that we ask ourselves.
Uh, and it's, are weusing the right AI model?
And I don't mean like, are we using theright provider, like Open AI or Anthropic?
I mean, the type of model, like all of ushere are used to giving a model text and
it outputs text or, uh, with, um, nanobanana, you give it an image and a bit
of text and it gives you an image, right?
There's a bunch of different models.
Um, and I recommend checkingout, hugging face if you really
want to go down that rabbit hole.
Uh, it's a great resource for ml. Um, butfor our use case in particular because
we want to improve personalization, weended up going with an embedding model.
Um, and this model in particular,it doesn't, it doesn't output text.
It outputs, uh, vector embeddings.
Um, and that's.
The foundation of theHomerooms ai, uh, feature.
Um, and to everyone here that isn'tfamiliar with what a vector embedding
is, it's a numerical representationof the contents semantic meaning.
Um, and I know that that sounds verytechnical and I said I was gonna try
and keep it as high level as possible.
Um, so we have this diagram overhere, and you'll notice that there's
a few, uh, different types of contentyou could give this model an image.
You could give it documents,you could give it audio.
It's completely up to you.
Uh, what's important isthe context of the content.
You feed it.
So you could see that we give thisinformation to the embedding model and
then the embedding model outputs numbers.
And these numbers, thoseare the vector embeddings.
That's the numerical representationthat I was talking about earlier.
And you could think of these numbersas like coordinates on a map.
And that's what's happening at the far.
Far left over there.
You can see there's a bunchof different colored dots.
Some dots are closer to oneanother, some are further.
The closer the.is to, it meansit's more similar and the further
the less similar the content is.
Um, so we're, we're gonna gointo like another example.
'cause this still might seemvery technical to everyone.
Um, but we have three examples here.
We're gonna pretend they're all article.
We have an article about Apple, the fruit.
We have an article about bananasand we have an article about
Apple, the software company.
And if you were to read this article,the content in it and the context
behind all that, uh, is going to bevery different between Apple, the Fruit,
and Apple, A software company, right?
Mm-hmm.
So even though it's the exact sameword, um, they're very different.
The, the content in the article isgonna be very different, whereas.
Apple, the fruit and banana, they'reboth about fruits, so the information
is going to be very similar.
Um, and that's essentially thepower of the vector embeddings
and getting the semantic meaning.
Um, so we're no longerdependent on keyword matches.
Uh, we're able to determine whatthe context itself represents.
Uh, and this embedding model, itcaptures many different things.
It captures many nuances.
So for example, on the Edutopia site, wemight have a bunch of articles about math.
Some of those, uh, articlesmight be about teaching math
to elementary school students.
Some of it might be for like advancedcalculus for high school students.
So even though we have so manyarticles about math, um, the embedding
model that captures the nuances.
So if you're only interested inhigh school math, we're gonna
be able to determine that andonly serve you high school math.
Or if you are teaching abunch of pre-K students.
Like addition and math and all thatfun stuff, then you're gonna get served
this beginner level entry math content.
And yeah, so that's essentially it.
I'm sure you could already start to putthe pieces together and see how we're
gonna use this technology to servepersonalized content to all our users.
Um, and like Anthony mentionedearlier, this isn't necessarily new.
This is like the technology that Netflix.
TikTok, Facebook and all these giantcompanies use to power the recommendation.
Um, so it's actually one ofthe older, uh, AI models.
Um, so it is 2025.
Hopefully you don't haveto train your own AI model.
Um, we didn't, we don't have to.
When we were prototyping,we found that OpenAI had.
A, uh, good enough model, itwas also very cost effective.
So we ended up just sticking with that.
We're also using Neo four J.Um, so this is a database.
A database.
Uh, this is what actually powersour recommendation, uh, engine.
We'll go more detail into it shortly,but for now, the main thing that you
just need to know is this is wherewe store the vector embeddings,
like that map where all those dotsare, we're able to, uh, do that.
Like map coordinates, uh, within, youknow, four J. But again, we're gonna go
more into detail about how we leveragethis as our recommendation engine.
So now that everyone has a goodidea of what veteran beddings are
and how we could leverage it, uh,I'm sure you can, you already put
this piece together in your head.
Uh, we are going to start comparingarticles by their semantic similarity.
So previously we needed usersto actually go on the site and
say, I'm a high school teacher.
I'm interested in computer science, or,you know, I'm an instructional coach.
Um, and that's all great.
Like we were able to provide very valuablerecommendations previously through
the newsletter like Anthony mentioned.
Um, however, now we have like awhole new way to provide these
recommendations and see what'sactually valuable to these users.
Um, so now that we are utilizing thesevector embeddings, we are able to serve.
Similar articles, not by like thecategories they're defined, but by what
the actual content in it represents.
Um, and additionally, we are nowable to determine a user's interest
through a collection of embeddings.
Uh, so we're gonna go through acouple examples of recommendations
that we serve to our users.
One of them it is using like the article,semantic, uh, meaning, however, we are
going to talk about how we're able todetermine what a user is interested in.
Based on the content that they're seeingutilizing these vector embeddings.
Okay.
So that was a lot.
Uh, but hopefully we understandthe technology under the hood.
Um, but again, I'm gonna try andkeep this as high level as possible.
Uh, so we do have a bit of a data flow,um, and we have a lot of different
pipelines that happen, um, for all thesedifferent recommendations and just to,
uh, keep this feature production ready.
Um, but we're gonna talk about themost important one, and that's,
uh, syncing the WordPress contentwith our recommendation engine.
'cause this is a WordPress conference.
Everyone here has a WordPresssite, so I'm assuming you're gonna
want to use this with your site.
Um, so we're gonna take a look atthe very first step, and that's
taking the content from WordPress.
And this pipeline will execute in manydifferent ways whenever the status
of the post changes this executes.
So if it updates, if it getsdrafted, deleted, published.
Whatever happens to it, thispipeline executes, but we're gonna
look at it through the perspectiveof an article getting published.
Um, so when an article getspublished, we end up sending
it to our AWS Lambda function.
Um, and it doesn't have to go to lateAWS, it could go wherever you want.
You could even do thisall within WordPress.
However, the Edutopia site is amicroservice architecture, so we have
a lot of different things, um, thatwe're connecting to, and we do that
all through our AWS Lambda function.
But end of the day, you coulddo this wherever you want.
But what's important here is that we'reprocessing the content from WordPress.
We're formatting it and makingsure it's structured in a
reliable and consistent way.
So when we compare it to the othervector embeddings, uh, it's actually
taking the content itself and notnecessarily being like, this article
was 500 characters, whereas thisone was 2000 characters, right?
Like, now we're actually ableto compare the content itself.
And depending on your site, you mightwanna structure it a different way.
But this is a very important step in orderfor us to use these VE Vector embeddings
to provide valuable recommendations.
So once we've done that, wejust feed it to our AI model.
Again, OpenAI, uh, isour service provider.
They have a pretty good embedding model.
The cost is very low and it's fast.
So we give it to the model and then now weare able to store it in Neo four J. And.
This is super important 'cause nowwe are able to provide and serve
these recommendations in real time.
This database is in sync with ourWordPress content, so if anything changed
in there, if we got a new article, ifmaybe the author updated the article,
all this content is gonna be up to date.
So this is great.
We don't have to run this embeddingmodel over and over again.
We do it the one timeand we're good to go.
So now that it's in ourNeo four J database.
We are able to serve it toour front end and, uh, provide
some valuable recommendations.
So a lot of you here are probably unsureabout what Neo four J is and, uh, I, I'm
not surprised 'cause all I said is we justscore our vector and beddings in there.
Um, so we're gonna talk a little bita, a bit more about what Neil Forte is.
So this is a database designed torepresent and query, uh, by notes,
relationships, and properties.
And to anyone here that is technical, itprobably just sounds like an SQL database.
Um, and you're not wrong, butthere are some key differences.
Um, it's a flexible schema, so itsupports dynamic and evolving data models.
As your application grows andscales, you get new features or
maybe you want to change features.
Uh, you don't have to worryabout complying with a
schema that was predefined.
You could just add whatever metadata,whatever new key value pairs.
So it's very flexible.
We also have the highperformance of connecting data.
We're gonna take a look, uh, deeperinto this in a bit, but all you really
need to know is that it's designedto handle large sets of data, like
billions of nodes and relationships.
It's going to query this informationsuper effectively so we could do
these recommendations in real time.
So, for example, uh, the EdgeUtopia site has about a million
users, but we're able to query themillion users in under 15 seconds.
So the real bottleneckisn't even our database.
It's like our AWS Lambda functionsand, uh, our DynamoDB database
that's hitting these right limits.
So it's very fast, um, as well as you'reable to visualize and analyze data.
Um, so you're able to like audit it.
We're gonna go into some examples.
Um.
But yeah, it's very interestingto actually visualize the data and
not just look at numbers or text.
And finally, as you all know,it supports spectrum embeddings.
So, um, that is one of the mainreasons that we want to use this.
However, uh, when we go intothese examples, you're gonna see
exactly how this graph databasecan power a recommendation engine.
Uh, 'cause that's originally whatthis, uh, technology was designed for.
Okay, so everyone herehas a WordPress site.
It's a WordPress conference.
So we're gonna look at thisthrough the perspective of
like atypical WordPress site.
So WordPress was originallydesigned to develop blogs.
So in this particular scenario,we're gonna assume your site has an
article, and when there's an article,there is generally an author, right?
So you could think of thesetwo dots as the nodes.
In, you know, four J, like earlierI mentioned, there's nodes, there's
relationships, and there's properties.
And we could take advantage of allthese things to essentially extract
the information that we want.
So we have some nodes, right?
We have an article and we have an author.
And in this particular situation, we knowthe author wrote this article, right?
And your site is prob most likelygonna have more than just this.
Hopefully it also has users, right?
And there's many different ways that userscan interact with this article, right?
Like they could save it,they could comment on it.
In this particular case,they viewed it, right?
And of course, your WordPresssite has so many other things
like the taxonomy, right?
Like there are categories and usersmight be interested in categories,
or the article might be categorizedunder a specific category, right?
And depending on your site,there's gonna be more and more
things like comments, right?
And that comment willhave other relationships.
So as we're looking at this, like earlierI mentioned how this database is very
efficient at traversing from node to node.
It's essentially able to go from onenode to another node to another node
instantly, like very fast, right?
So as your application grows and there'smore notes, more users, more comments, and
more relationships, and as time goes onand more people start interacting with it.
Your graph is going to explode.
There's gonna be so much stuff.
However, this database was designedto create these relationships, right?
So you could already see that not onlyare we able to create relationships
based on what, uh, a post is categorizedunder, but we're also able to
determine how a user interacted withit and why they interacted with it.
And we're now able tolike just, uh, extract.
Their behavior based on naturallanguage, which is very powerful.
Okay, so now that we got all thetechnical stuff out of the way,
hopefully I didn't lose anyone.
And now we're going to takea look at a few examples.
So a moment ago, I just gave this examplewhere we were looking at an article node
and it had a bunch of like comments andrelationships connected to it, right?
It had an author.
And this is essentially whatwe're looking at over here.
Um, this is that article node.
Uh, you could see on theleft there's a legend.
I was hoping the screen would be alittle bit bigger, but if you look
at the far left, you'll see thatthere's like an, uh, an article count.
Like there's one article,there's 92 comments.
Um, there's 76 users.
And in this query in particular, uh,what we wanted to do is we wanted to see
all the people that have commented onit, all the people that have saved it.
And we want to see like the authorand the category associated to it.
Um, and because we're actually ableto visualize this, we're able to
extract very valuable information.
Like one of the main goals for thisfeature was to increase user engagement.
Previously, no one reallycommented on posts.
However, you know, we found anexample of a post where a lot of
people were commenting on it, andsurprisingly not just like commenting
on the article, you'll noticethat a bunch of these teal dots.
Connect to other teal dots.
So that doesn't mean thatthey're commenting on the post.
It means they're commentingon other people's comments.
So they're creating this user engagement.
So this is like a perfect exampleof an article that we would wanna
reference and be like, okay, whatdid we do here so we can do the
same thing in these other articlesto try and reproduce this behavior.
Um, and to me, I'm pretty comfortableat looking at this, but don't worry,
you could zoom in and you could also seewhat all these different relationships
mean, who it's connected to and so on.
So, uh, the visual aspectof this is very powerful.
Um, this is just one example.
This is one article I'm sureyou can all start to think
about use cases for yourself.
Again, the whole point of thisconversation is so you can think about.
How you can use this technologyon your own WordPress site.
So because we're still talking aboutWordPress sites, um, I'm sure a bunch
of you also have custom post types and,uh, that's what we're taking a look at.
Over here, we're actually usingthe exact same query that we used
earlier where we found all the usersthat commented and saved the post.
Uh, in this particular case, we'relooking at a custom post type.
It's a question, so.
Even though the layout of this custompost type and the features on it are
completely different, the way that usersinteract with it is the exact same.
Like a user can save it, a user cancomment on it, they could view it.
So we could use the exact same query.
And in this particular case, itlooks very different because there's
a bunch of different categories.
So if we wanted, uh, we could takea look at that, or, uh, we could
like click on one of these nodes.
Or one of these relationships.
'cause earlier I mentioned,we're able to query by node
relationships and properties.
So if you wanted, 'cause like anarticle has a published date, right?
There's like a timestamp.
You could take advantage ofthat and you could use that to
filter it down, for example.
And we're gonna take alook at that in a bit.
But yeah, essentially we are now ableto extract whatever information we want.
So maybe we wanted to get a betterunderstanding of the categories.
That are associated to thispost and the users that are
interested in that category.
Or maybe we just wanted to see allthe people that are making comments
on it and we see like a bunch ofpeople over here are making comments.
Uh, we got some morepeople making comments.
Uh.
It, it's a video recording.
I'm not actually doing anything, but yeah,you know, I'm finding all these users.
I'm like, wow, okay.
Maybe I wanna take alook into this, right?
Like, maybe I wanted tocreate a gamified experience.
We want to like rack up points ormaybe send them a thank you message.
Um, we could utilize thistechnology to see who's providing
value within the community.
You.
So, um, we just looked at anexample of how you could do this
with articles, but you could do itwith whatever node you want, right?
So previously we were looking at thearticle and all the comments and save
relationships that were created by allthe users, whereas this time we're looking
at the user and we're taking a look atall the comments that they've made and
all the articles that they've saved.
Um, and as you can see in the recording,I zoom in and to me, like I'm pretty
comfortable looking at this 'cause.
I've been looking at this stufffor a while, but maybe you don't
want to look at everything, right?
Like maybe you don't care about savedrelationships and all you care about
are the comments that users made.
You could filter it down and searchfor exactly what you wanna find.
So in this particularcase, we're looking at.
All the comments and just rightoff the bat, looking at this, I
could see that this user doesn'treally like to start conversations.
They like to reply to other people.
Um, good or bad.
I, I don't know.
That's, that's up to everyone.
But they like to engage in conversationsmore than start conversations.
Um, or maybe I just care aboutlike the categories, right?
And I wanna see what they've been saving.
I could see that they'rea middle school teacher.
I could see their interestin math and computer science.
But like they don't evensave any math articles.
They don't save anycomputer science stuff.
They're more interestedin middle school stuff.
And this is like the whole reason thatwe wanted to get into vector embeddings
and find another way to serve contentthat's gonna be relevant to the user.
'cause they could have madethis account five years ago.
They might have changed jobs,they have new interests.
So this is like a whole new wayto determine what the user is
actually interested in so wecan provide valuable content.
Okay.
Hopefully I didn't lose anyone yet.
Um, now all these examples that I'veshown everyone, it's cool, but it's only
valuable if you know what article to lookfor or you know which user to look for.
Um, again, NEO four J is like a verypowerful, uh, graph database that allows
you to enhance these recommendations.
And because we have explicitlydefined things like.
This person's a pre-K teacher, they'reinterested in computer science.
We are able to takeadvantage of those things.
So in this next example, we're finding thetop 10 saved articles by pre-K teachers.
So now we are able to find all thearticles that the this specific user group
is interacting with, using the explicitlydefined values that we had previously.
Like all this stuff I'm showing,we're not even using ai.
This is just Neo four J, and this is like.
What it was designed to do.
Um, so let's say, um, you know, we chooseone of these, uh, top 10 saved articles.
We could find all these users thatare pre-K teachers that haven't
interacted with this, and thennow we could serve it to them.
So we know all thesepre-K teachers love this.
All these other pre-K teachers aremost likely gonna love these as well.
Um, and earlier I mentioned you couldtake advantage of properties as well.
So in this next query, becausewhen you publish a post, it
does have a published date.
We are able to filter it down, right?
So Edutopia has been around for 20 plus
many, probably more, yeah, a
long time.
So, uh, even though the content isevergreen, so, um, it's like content from
20 years ago should still be good today.
Um, maybe it's not as popular anymore.
So we could filter it down to whatwas saved the most in the past year.
And again, this is all so you can thinkabout how you can use this in your
own WordPress site and hopefully thegears are turning and you're like, wow,
okay, this could be a great way forme to serve this new content to users.
So, um, it's completely up to you.
Uh, end of the day, as long asyou're very strategic and mindful
of the relationships that you'regonna create around these nodes, the
possibilities are kind of endless.
Okay, so all these examplesthat we've shown, it's just Neo
four J and the graph database.
So we're gonna take a look at a couple ofthe recommendations that we've actually
implemented onto the A Utopia site.
Um, so here we are on the A Utopia siteand we're going to the, my Homeroom.
Um, this has only beenout for like two months.
We're still cleaning it up.
The UI will look better, I promise.
Um, but here is one of the recommendationsthat we're gonna dive deeper into.
You could see that it says, becauseyou recently saved this article, uh,
we're now recommending this articleand many of you have probably already
guessed based on talking about vectorembeddings earlier, we're gonna use a
semantic search to find similar content.
So.
When a user comes to the Edutopiasite, they're gonna read an article.
You know, they're gonna go throughthe entire site, and eventually
they're gonna find some contentthat they're interested in.
So maybe this user, this teacher, they'relike, oh, I got a field trip coming up.
They read this content.
They're like, okay, I'mgonna save this for later.
I'm gonna come back to this another time.
When that happens, boom,like instantly we have that
recommendation generated for them.
Um, it was a UX decision to not makeit appear in their feed immediately.
We didn't wanna distract theuser, um, from like new content.
So when a user refreshes the page,they're gonna see it, but the
recommendation already happened, um,like within a millisecond of that
safe content animation happening.
Um, so this is what it looks like inNeo four J. And, uh, you'll see that
there are some titles on the leftand then there's some numbers on the
right, and the number is the score.
That's kind of telling you how similarthis content is to the other content.
Uh, and all of it's 80% and up.
Um, the previous article, I think it waslike four strategies for field trips and
everything is about field trips over here.
So clearly it's super useful.
Um, and.
So here we are.
The user came back to the site 'causeyou know, they wanted to learn some
more and there's a dot sure enough.
And then when they click on it and scrolldown, they could see that they have this
new recommendation provided for them.
So again, the article they readwas four Strategies to Maximize
the Field Trip Experience and thearticle suggested to 'em is using the
Montessori approach to field trip.
I don't know about you.
That sounds very similar.
Uh, I don't know what the Montessoriapproach to field trips is, but I
definitely want to read about it.
Um, and that's the experience thatwe're trying to provide to these users.
Um, so that was cool.
Um, very, very basic, I guess, giventhe explanation that I've given so far.
But I'm sure you could already thinkabout how you could utilize Neo four J
on top of that semantic search, right?
Like.
Previously we looked at theseexamples and if we wanted, we could
filter this even further, right?
We could only get the articles that theuser hasn't interacted with, or we could
only get the articles that a person intheir same user group is interacting with.
So there's a lot of ways that we couldchoose to filter down the articles
and then find similar content.
So the, again, the possibilitiesare kind of endless.
So we're gonna take a look atanother one, and this recommendation
is a little more complicated.
Um, so again, I'm gonna try and keep itas high level as possible, but, uh, when
a user visits the site and it's a newday, they get several recommendations,
and this is just one of them.
Um, an educator with similarinterests read this article.
And earlier I mentioned how, becausewe are s scoring this, the vector
embeddings, we are now able to determinewhat a user is interested in based on the
content that they're actually viewing.
So you have this user, they come on thesite and they start scrolling around.
They're like, oh, this looks cool.
We just caught that action.
They're gonna click on something else.
We just caught that as well,and we keep seeing everything
that they're interacting with.
And this is all getting addedinto this one big collection.
And we're like, this userwas interested in that.
They were interested in that,and they were interested in that.
Um,
and,
and then they got therecommendation, okay, maybe this
video wasn't supposed to happen.
Okay.
So, uh, essentially theyinteracted with this site.
They clicked on things andwe caught a bunch of action.
Um, and now we're gonna look atwhat's happening behind the scene.
Like when they come back tothe site for the very next day.
So here's my account andhere's my vector embedding.
You're gonna see it's a ton of numbers.
That's what the AI is outputting.
There's no way we'regonna understand that.
But the AI model understands it,and that's like its superpower, but
what ends up happening, I come tothe site, we find who came to the
site, and we're like, oh, okay.
They came back.
I scrap their embeddings.
And then it finds similar users.
'cause every user that's, uh, doingthings on our site, they all have
their own collection of embeddings.
Um, and yeah, so over here on theleft, we could see a bunch of user
IDs that are similar to users.
We could see how similar Iam, like based on the score.
Uh, we do have a lot of users.
So, um, even though you would thinkthat there's a lot of different
routes that someone could take.
Because of how many people areusing the site, you're gonna
find some very similar users.
Um, so everyone's like 98% it looks,and then we have the embedding count
to show how many different pieces ofcontent they've been interacting with.
And that's just to make surethat the, the data is, is good.
And yeah, so once we figureout who interacted with it,
we find one of the users.
And we figure out a similararticle that they just interacted
with, and boom, there it is.
Right?
So again, we can, uh, decide and then,yeah, the person saves the article.
So this just, it happensall over again, right?
They save the article, they get a newrecommendation and just keeps on going.
Um, and again, you could filter.
The recommendations howeverway you want, right?
Like in the example I showed,we just grabbed the five most
recently viewed articles.
'cause when a user views thecontent, we store that timestamp
in the relationship so we could seehow old these relationships are.
Um, but it's completely up to you.
Like you are, you are the decider of howyou want to create these recommendations.
Um, so yeah, again, the.
It was a lot of information.
I'm so sorry.
Um, but hopefully you're all inspirednow and you have an idea of how
you could use this technology toprovide value to all your users.
So we're gonna talk aboutwhat we just covered.
We talked about how you can analyzespecific nodes and connections
and like visualize it and extractinformation that you might want.
You could filter by datapoints, so whether you want to
filter by pre-K groups, right?
Like.
You're a high school teacher, soyou're in this group, um, or you know,
by, uh, filtering it down based onthe date range to only find recent
content, uh, that's also possible.
Uh, you could query by groups and clusterslike that pre-K example or finding
similar users, and you can essentiallyenhance the power of the already
existing Neo four J graph database.
By adding the vector embeddingsand creating a new way to serve
relevant content to the users.
Cool.
Yeah,
that's it.
Hopefully you all like the demo.
Wow.
Very cool.
Um, we're all, we haveone minute left, you said?
Well, we've got like five,
five minutes.
Okay.
Um, okay.
So I'll, I'll, I'll breezethrough kind of this boring bit.
Um, so.
Uh, as Jeff mentioned, it's been five orso weeks since we launched the homeroom.
Uh, we've already seensome pretty good metrics.
Um, a big increase in direct, uh.
Uh, traffic site wide, lots of visits,uh, to people's homeroom pages.
Uh, 3000 new accounts or sohave been created in the first
five weeks since we launched it.
Uh, I think the most interesting stat isthat some of these personalized cards,
um, have a click-through rate as highas 80%, which is significantly higher
than any sort of click through rate on.
Any other card or, or article card or,or anything that we're recommending
to users, uh, throughout the site.
So that was a very kind ofimportant number for us to
say this is actually working.
Um, so yeah, kind of looking at whatnext and how we want to kind of evolve,
uh, this technology bit is reallyrefine some of the recommendations.
Um, gather feedback from educators.
So, as I mentioned, EDU Edutopia hasa very, very, very active and engaged
community of teachers, former teachers.
Uh, so their feedback is alwaysinvaluable to, you know, help us
figure out what they like, dislike,and kind of refine as we go.
We're also gonna look at how we canincorporate richer data points, you know,
how long are people spending on articles?
What are they searching for?
What are they downloading?
Which will then in turn, you know,allow us to experiment with no new cart
types and placements, uh, to reallytry and improve engagement further.
And we really wanna kindascale this technology.
So right now, a lot of theserecommendations, they're all, um.
Just living in with a user's homeroom fee.
But we want to pull those recommendationsto other areas of the site, homepage,
search article pages, et cetera.
And also bring these recommendationsback into, uh, newsletters as well.
We're considering how wecan also reward power users,
think gamification type stuff.
So for the community that's really.
You know, providing a lot of answers toquestions, people post commenting, how
can we reward users for their behavior?
So, uh, a couple of key takeawayswe'll leave you with is, you
know, personalization does matter.
You know, showing users whatthey care about, uh, really
drives engagement and retention.
And it's almost likeobvious at this point.
Um, the best experienceslike Netflix, TikTok.
Other social media platforms arepersonalized first, and really this can
happen, um, across multiple channels.
It doesn't have to be the web, itcould be your newsletters, it could
be a mobile app, uh, et cetera.
So really kind of taking thistechnology, um, kind of anywhere I.
Yeah.
And, uh, from the AI side of everything,um, based on your use case, just make
sure you're using the right AI model.
Again, check out hugging face.
It's a great resource for anything.
Ml. Um, also graph databases, uh, makerelationships between users, content
and topics easy to map and query.
Uh, you're able to createthese relationships in natural
language like we saw earlier.
Uh, and the AI model analyzes.
The behavior and patterns.
So in the example that we showed,we used the vector embeddings
to create the semantic, uh,the semantic vector embeddings.
However, there are many waysthat you could use AI models
within the Neo four J database.
You could even get an LLM to querydata and then extract the information.
That's like a way moreadvanced conversation, but.
I'm happy to talk to anyone about that.
And lastly, you know,WordPress can do this too.
We talked about Neo four Jand a bunch of other stuff.
But if you really break it down, ifyou have a WordPress site and you
have users, um, and if you give usersthe ability to tell you what they're
interested in, you know, whether it'scategories or taxonomies, you can use
that information to serve recommendation.
Is we do a lot of work with theCanadian Olympic Committee and we
built a digital fan called Clubcalled the Canadian Olympic Club.
So when users create accounts there,uh, we ask them what their favorite
athletes are, what are their favoritesports, and so whenever the COC publishes
content that contains those athletes orsports, we'll recommend that to the user.
And it's a pretty simple WP query.
So Nothingly overly complex.
But the re, the recommendationshappen if you can capture behavioral.
Uh, signals like views, likes, comments,you know, every interaction can
really be a data point that drives,uh, and improves recommendations.
There was a, a, a booth here yesterdaycalled Accelerate, uh, by Human Made,
I dunno if anyone checked it out, butit is a, a, a WordPress plugin uses
kind of core Gutenberg, and they offerpersonalization just based on, you know,
geolocation, UTM parameters, all that.
So again, WordPress can do this too,outside of what we showed, so we.
Don't think we have any othertime, so thank you so much.
Don't have time for questions.
It's very much we're here at the afterparty and stuff, so thank you so much.