SlideShare a Scribd company logo
#SitecoreSYM#SitecoreSYM © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
1
Symposium Session
Recommendation
Engine #mysym
Varun Nehra
Dmytro Shevchenko
#SitecoreSYM 2
• SitecoreTechnology MVP
(2016–2018)
• 7+ years of Sitecore experience
• 10+ Sitecore deliveries/15+ client
engagements
• Live/work in Germany
Introduction
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
DMYTRO SHEVCHENKO
Sitecore Solutions Architect @ EPAM
dmytro_shevchenko_de@epam.com
@shedal
www.structuredcode.com
VARUN NEHRA
Sr. Sitecore Solutions Architect @ EPAM
• 7+ years of Sitecore experience
• 13+ Sitecore deliveries/30+
client engagements
• Live/work in Atlanta, GA
varun_nehra@epam.com
@sitecorevarun
www.sitecorevarun.com
#SitecoreSYM 3
EPAM’s Sitecore Practice
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
100+ Projects 50+ Customers
12
SITECORE
MVPS
7
SITECORE SITE OF
THE YEAR AWARDS
50+
CERTIFIED SITECORE
DEVELOPERS
450+
EXPERIENCED
PROFESSIONALS
PLATINUM
PARTNER WITH
10+
YEARS OF
EXPERIENCE
DELIVERED FOR
#SitecoreSYM
Agenda
Machine Learning
1. Overview
2. How it works
3. Demo
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
4
Sitecore xConnect
1. Overview
2. How it works
3. Demo
What’s Next with Sitecore Cortex
Q&A
#SitecoreSYM
UserStory
AS A Sitecore Symposium attendee, I WOULD LIKETO get
recommendations for sessions I should attend, SOTHAT I don’t
need to review every breakout session and do a coin toss to resolve
conflicting sessions in my agenda.
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
5
#SitecoreSYM 6
PreparingThe Solution
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
ONE AMAZING
EVENT
VIBRANT COMMUNITY
OF DEVELOPERS &
MARKETERS
MULTI-CHANNEL
CONTENT
EXPERIENCE
PLATFORM
BYOML (BRING
YOUR OWN ML)+ + + +
Recipe
MULTI-CHANNEL
CONTENT
MACHINE
LEARNING
PERSONALIZED
AGENDA
#mysym
SITECORE
XP
+ + =
Key Ingredients
#SitecoreSYM 7
Sitecore Experience Platform 9
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
One platform to rule them all, one
event to find them, many channels to
bring them all and in the ML bind them.
#SitecoreSYM 8
Our Solution
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
Sitecore XP 9 Experience management & personalization
Sitecore xConnect Creates contact profile with social media interactions
Azure ML Supervised machine learning
SymposiumTracks &Topics Labeled dataset for model training in supervised learning
Symposium Session Content Personalized agenda for attendees
I N G R E D I E N T W H AT I S D O E S
#SitecoreSYM 9
Symposium Session Recommendation Engine
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
#SitecoreSYM
Demo – Session Recommendation Engine
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
10
#SitecoreSYM
How ItWorks – Machine Learning
• Supervised Learning
• Azure MLTemplate
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
11
#SitecoreSYM 12
How ItWorks - Machine Learning
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
MACHINE LEARNING
A u t o m a t ic t e x t
c l a s s i f i c a t i o n b e l o n g s t o
t h e t e x t m i n i n g o r t e x t
a n a l y t i c s d o m a i n o f
m a c h i n e l e a r n i n g
C l a s s i f y i n g t e x t
i n p u t i n t o a s e t o f
p r e d e f i n e d
c a t e g o r i e s
A z u r e M L o f f e r s
t e m p l a t e t o
b u i l d t e x t
a n a l y t i c s
s o l u t i o n
SUPERVISED UNSUPERVISED
CLUSTERINGCLASSIFICATION RE GRE SSION
TEXT
CLASSIFICATION
#SitecoreSYM 13
How ItWorks – Supervised Learning
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
T R A I N I N G , T E X T,
D O C U M E N T S , I M A G E S ,
E T C .
L A B E L S
N E W T E X T,
D O C U M E N T,
I M A G E , E T C
M A C H I N E L E A R N I N G
A LG O R I T H M
E X P E C T E D L A B E L
FEATUREVECTORSFEATUREVECTORS
P R E D I C AT E M O D E L
#SitecoreSYM 14
Microsoft’s ML Products
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
Microsoft
ML Server
(Microsoft
R Server)
Azure
ML
Microsoft
Azure
Cognitive
Services
Microsoft
R
Microsoft
Cognitive
Toolkit
Batch AI
Training
Service
Spark MLLib
(HDInsight)
SQL ML
Services
#SitecoreSYM 15
Azure MLTemplate
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
START
STEP#1
DATA
PREPARATION
STEP#2
TEXT
PRE-
PROCESSING
STEP#3A
N-GRAMS TF
FEATURE
EXTRACTION
STEP#3B
UNIGRAMS
TF-IDF
FEATURE
EXTRACTION
STEP#4
TRAIN AND
EVALUATE
MODELS
STEP#5A
DEPLOY WEB
SERVICES WITH
N-GRAMS TF
MODEL
STEP#5B
DEPLOY WEB
SERVICES WITH
UNIGRAMS
TF-IDF MODEL
#SitecoreSYM
Demo –Azure ML
• Azure ML Studio
• Azure MLWeb Services
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
16
#SitecoreSYM
SitecorexConnect –SolutionOverview
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
17
#SitecoreSYM 18
How ItWorks – Sitecore xConnect API
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
S I T E C O R E I N G R E D I E N T S W H AT I T ’ S U S E D F O R
Collection Model The complete attendee profile is represented as an xConnect collection model
Contacts An xConnect contact is created as a representation of every attendee
Facets Extended information about the attendee is stored in custom contact facets
Channels Every social media platform is represented as a marketing channel
Interactions
Actions and activities of an attendee (e.g. tweets, posts, comments) are stored
via xConnect interactions
#SitecoreSYM 19
How ItWorks – Social Media + xConnect
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
S O C I A L M E D I A
I M P O R T E R
X C O N N E C T
C O L L E C T I O N
C O L L E C T I O N
D ATA B A S E
#SitecoreSYM 20
How ItWorks – Generating Recommendations
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
C O L L E C T I O N
D ATA B A S E
X C O N N E C T
C O L L E C T I O N
S E R V E R
S I T E C O R E
W I T H M L
C O M P O N E N T S
A Z U R E M L
W E B
S E R V I C E S
S Y M P O S I U M
A G E N D A
R E C O M M E N D A T I O N
#SitecoreSYM
How ItWorks –Sitecore xConnect
• Our data model: custom xConnect facets
• Social media integration
• Azure ML – web services integration
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
21
#SitecoreSYM
Behind the Scenes
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
22
#SitecoreSYM 23
Step 1: Define Custom Facets
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
[Serializable]
[FacetKey(FacetKeys.AttendeeProfile)]
public class AttendeeProfile : Facet
{
public string TwitterHandle { get; set; }
public Dictionary<string, double> TrackScores { get; } = new Dictionary<string, double>();
public Dictionary<string, double> TopicScores { get; } = new Dictionary<string, double>();
public int PostsProcessed { get; set; }
}
#SitecoreSYM 24
Step 1: Define Custom Facets
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
[Serializable]
[FacetKey(FacetKeys.SocialPostInfo)]
public class SocialPostInfo : Facet
{
public string Text { get; set; }
public DateTime CreatedAt { get; set; }
}
#SitecoreSYM 25
Step 2: Register the Facets in xConnect Model Configuration
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
public class CustomDataModel
{
public static XdbModel Model { get; } = BuildModel();
private static XdbModel BuildModel()
{
XdbModelBuilder xdbModelBuilder =
new XdbModelBuilder("Recommender", new XdbModelVersion(1, 1));
xdbModelBuilder.ReferenceModel(CollectionModel.Model);
xdbModelBuilder.DefineFacet<Contact, AttendeeProfile>("AttendeeProfile");
xdbModelBuilder.DefineFacet<Interaction, SocialPostInfo>("SocialPostInfo");
return xdbModelBuilder.BuildModel();
}
}
#SitecoreSYM 26
Step 2.5:Try to Save Data
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
The type of this instance does not correspond to any type in the model
#SitecoreSYM 27
Step 2.75: Register the Facets in xConnect Model Configuration
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
...
<schemas hint="list:AddModelConfiguration">
<schema name="customDataModel" type="Sitecore.XConnect.Client.Configuration.StaticModelConfiguration">
<param desc="modeltype">Recommender.Foundation.CollectionModel.CustomDataModel</param>
</schema>
</schemas>
...
#SitecoreSYM 28
Step 2.99:Try to Save Data
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
'CustomDataModel, 1.0' does not match the remote version
#SitecoreSYM 29
Step 3: Export the Model to Json
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
class Program
{
static void Main()
{
var json = XdbModelWriter.Serialize(CustomDataModel.Model);
File.WriteAllText(CustomDataModel.Model.FullName + ".json", json);
}
}
#SitecoreSYM 30
Step 3: Export the Model to Json
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
{
...
"Types": {
"Recommender.Foundation.CollectionModel.Facets.SocialPostInfo": {
...
"Type": "Facet",
"BaseType": "Sitecore.XConnect.Facet",
"Properties": {
"Text": {
"Type": "String"
},
"CreatedAt": {
"Type": "DateTime"
}
}
}
},
"Facets": [
...
{
"Target": "Interaction",
"Name": "SocialPostInfo",
"Type": "Recommender.Foundation.CollectionModel.Facets.SocialPostInfo"
}
]
}
#SitecoreSYM 31
Sitecore Forms Submit Action
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
#SitecoreSYM 32
Identify and Save the Contact
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
Tracker.Current.Session.IdentifyAs("twitter", twitterHandle);
contactManager.SaveContactToCollectionDb(Tracker.Current.Contact);
#SitecoreSYM 33
Load the Contact with Social Media Facets
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
ContactExpandOptions expandOptions = new ContactExpandOptions(
FacetKeys.AttendeeProfile,
FacetKeys.SocialImportInfo,
PersonalInformation.DefaultFacetKey);
IEntityReference<Contact> twitterContactReference =
new IdentifiedContactReference("twitter", twitterHandle);
Contact contact = client.Get(twitterContactReference, expandOptions);
#SitecoreSYM 34
Initialize Custom Attendee Facet
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
AttendeeProfile attendeeProfile =
contact.GetFacet<AttendeeProfile>() ?? new AttendeeProfile();
attendeeProfile.TwitterHandle = twitterHandle;
attendeeProfile.TrackScores.Clear();
attendeeProfile.TopicScores.Clear();
client.SetFacet<AttendeeProfile>(contact, attendeeProfile);
#SitecoreSYM 35
ImportTweets as Interactions
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
List<Status> results = TwitterHelper.GetUserTweets(context, twitterHandle);
foreach (Status tweet in results)
{
var interaction =
new Interaction(contact, InteractionInitiator.Contact);
var postInfo = new SocialPostInfo
{
CreatedAt = tweet.CreatedAt,
Text = tweet.FullText
};
client.SetFacet<SocialPostInfo>(interaction, postInfo);
client.AddInteraction(interaction);
}
#SitecoreSYM 36
ScoreAll Interactions Using Azure ML
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
public class AttendeeScorer
{
private readonly CognitiveServicesClient _services;
public AttendeeScorer(CognitiveServicesClient services)
{
_services = services;
}
public async Task ScoreAttendee(IXdbContext client, Contact contact)
{
try
{
const int batchSize = 10;
string text = string.Empty;
int i = 0;
List<SocialPostInfo> posts =
contact.Interactions
.Select(interaction => interaction.GetFacet<SocialPostInfo>())
.Where(p => p != null)
.ToList();
int maxi = posts.Count - 1;
AttendeeProfile profile = contact.GetFacet<AttendeeProfile>();
Dictionary<string, double> scores;
foreach (SocialPostInfo post in posts)
{
text += " " + post.Text;
if (++i % batchSize == 0 || i == maxi)
{
profile.PostsProcessed += i % batchSize == 0 ? batchSize : i % batchSize;
scores = await _services.InvokeTracksService(text);
foreach (string key in scores.Keys)
{
if (!profile.TrackScores.ContainsKey(key))
{
profile.TrackScores[key] = scores[key];
}
else
{
profile.TrackScores[key] += scores[key];
}
}
scores = await _services.InvokeTopicsService(text);
foreach (string key in scores.Keys)
{
if (!profile.TopicScores.ContainsKey(key))
{
profile.TopicScores[key] = scores[key];
}
else
{
profile.TopicScores[key] += scores[key];
}
}
text = String.Empty;
}
}
client.SetFacet(contact, profile);
}
catch (Exception ex)
{
Log.Error(ex.Message,ex, typeof(AttendeeScorer));
throw;
}
}
}
public class CognitiveServicesClient
{
public class StringTable
{
public string[] ColumnNames { get; set; }
public string[,] Values { get; set; }
}
public class ServiceOutput
{
public string Type { get; set; }
public ServiceOuputValue Value { get; set; }
}
public class ServiceOuputValue
{
public string[] ColumnNames { get; set; }
public string[] ColumnTypes { get; set; }
public string[][] Values { get; set; }
}
private static readonly Regex ClassRegex = new Regex(".+"(?<className>.+)".*");
public async System.Threading.Tasks.Task<Dictionary<string, double>> InvokeTracksService(string text)
{
ISitecoreContext context = SitecoreContextFactory.Default.GetSitecoreContext();
var endpoint = context.GetItem<CognitiveServicesEndpoint>("/sitecore/content/CognitiveServices/Tracks");
return await InvokeScoringService(text, endpoint);
}
public async System.Threading.Tasks.Task<Dictionary<string, double>> InvokeTopicsService(string text)
{
ISitecoreContext context = SitecoreContextFactory.Default.GetSitecoreContext();
var endpoint = context.GetItem<CognitiveServicesEndpoint>("/sitecore/content/CognitiveServices/Topics");
return await InvokeScoringService(text, endpoint);
}
public async System.Threading.Tasks.Task<Dictionary<string, double>> InvokeScoringService(string text, CognitiveServicesEndpoint endpoint)
{
using (var client = new HttpClient())
{
var scoreRequest = new
{
Inputs = new Dictionary<string, StringTable>() {
{
"Unigrams Web Service Input",
new StringTable()
{
ColumnNames = new[] {"text_column"},
Values = new[,]
{
{
text
}
}
}
},
},
GlobalParameters = new Dictionary<string, string>()
{
}
};
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", endpoint.ApiKey);
client.BaseAddress = new Uri(endpoint.EndpointUrl.Url);
HttpResponseMessage response = await client.PostAsJsonAsync("", scoreRequest).ConfigureAwait(false);
if (response.IsSuccessStatusCode)
{
string output = await response.Content.ReadAsStringAsync();
var result = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, ServiceOutput>>>(output);
string[] columnNames = result["Results"].First().Value.Value.ColumnNames;
string[] values = result["Results"].First().Value.Value.Values[0];
Array.Resize(ref columnNames, columnNames.Length - 1);
Array.Resize(ref values, values.Length - 1);
return Enumerable.Range(0, columnNames.Length)
.ToDictionary(
i => ClassRegex.Match(columnNames[i]).Groups["className"].Value,
i => Convert.ToDouble(values[i], CultureInfo.InvariantCulture));
}
else
{
string responseContent = await response.Content.ReadAsStringAsync();
var ex = new Exception($"The request failed with status code: {response.StatusCode}. Full response: {responseContent}");
throw ex;
}
}
}
}
#SitecoreSYM
Experience Profile Demo
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
37
#SitecoreSYM
Let’s summarize…
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
38
#SitecoreSYM 39
Create a labeled dataset
Session titles + abstracts = training text
Session tracks & topics = Labels
Extract features using feature extraction algorithm
Train models in Azure ML
Deploy theTracks web service
Repeat steps 1-4 using session topics as labels and deploy theTopics web service
Step by Step – ML Solution
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
1
1
2
2
3
4
5
#SitecoreSYM 40
FetchTwitter posts using LinqToTwitter
Implement a custom xConnect model using contact and interaction facets
Use the xConnect Collection service to populate contacts and save social media interactions
Use theTracks andTopics Azure ML web services to batch-process social media interactions
Save label scores to a custom contact facet
Step by Step – Sitecore Solution: xConnect
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
2
3
4
5
1
#SitecoreSYM 41
Create a web form to get user input using Experience Forms
Import content using SPE by parsing JSON feed
Implement a calendar rendering to show full agenda
Use the highest-scoring track to generate initial agenda
This leaves us with conflicts or gaps in agenda
Resolve conflicts using topic scores (highest scoring topic wins)
Fill gaps using the secondary track along with the highest-scoring topics
Step by Step - Sitecore Solution - UI
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
1
1
2
3
4
2
3
#SitecoreSYM
What’s Next …?
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
42
#SitecoreSYM 43
Scalable Data-Processing platform designed to integrate with xDB
and Machine Learning workers
SitecoreCortex Launched
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
Provides default integration with Microsoft’s ML Server
BYOML (Bring your own ML)
#SitecoreSYM 44
SitecoreCortex Processing Engine
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
STEP#1
DATA
PREPARATION
Cortex Processing Engine
Task Agent
Worker
Data Source
Task Executor Storage
Model
Task Agent
Task Agent External
Service
MESSAGE
BUS
Event
Microsoft Machine
Learning Server
#SitecoreSYM 45
Remember Supervised Learning?
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
STEP#1
DATA
PREPARATION
T R A I N I N G , T E X T,
D O C U M E N T S ,
I M A G E S , E T C .
L A B E L S
M A C H I N E
L E A R N I N G
A LG O R I T H M
FEATUREVECTORS
P R E D I C AT E
M O D E L
#SitecoreSYM 46
With SitecoreCortex
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
BYOMLDATA PREPARATION
Distributed Task
WorkerData Source
Model
External
Service
#SitecoreSYM 47
SolutionWith Cortex Processing Engine
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
CONTINOUS SOCIAL
SYNC
SCORING LABELS USING
ML
INTERACTION FACETS CONTACT FACETS
ML MODEL TRAINING
Distributed Task
WorkerData Source
Model
MODEL FOR ML
Distributed Task
Worker
Data Source
Model
#SitecoreSYM © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks
of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
48
Q&A
#SitecoreSYM
FOR DISCUSSION PURPOSESONLY. Sitecore Confidential
and Proprietary. © 2018 Sitecore Corporation A/S. All rights
reserved. Sitecore® and Own the Experience® are registered
trademarks of Sitecore Corporation A/S. All other brand and
product names are the property of their respective owners.
© 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered
trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
49

More Related Content

What's hot

API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
CA API Management
 
What is CloudSpokes?
What is CloudSpokes?What is CloudSpokes?
What is CloudSpokes?
Raymond Gao
 
Practical strategies to innovate faster and meet business goals
Practical strategies to innovate faster and meet business goalsPractical strategies to innovate faster and meet business goals
Practical strategies to innovate faster and meet business goals
WaveMaker, Inc.
 
agados app engine platform Intro
agados app engine platform Introagados app engine platform Intro
agados app engine platform Intro
Yongkyoo Park
 
Adobe Experience Manager Vision and Roadmap
Adobe Experience Manager Vision and RoadmapAdobe Experience Manager Vision and Roadmap
Adobe Experience Manager Vision and Roadmap
Loni Stark
 
Your New Digital Business & APIs
Your New Digital Business & APIs Your New Digital Business & APIs
Your New Digital Business & APIs
CA API Management
 
Accelerate Enterprise Mobile Application Development
Accelerate Enterprise Mobile Application DevelopmentAccelerate Enterprise Mobile Application Development
Accelerate Enterprise Mobile Application Development
WaveMaker, Inc.
 
SAP TechEd 2017 Fiori and SAP Screen Personas NET 52541
SAP TechEd 2017 Fiori and SAP Screen Personas NET 52541SAP TechEd 2017 Fiori and SAP Screen Personas NET 52541
SAP TechEd 2017 Fiori and SAP Screen Personas NET 52541
Peter Spielvogel
 
SAPPHIRE NOW 2018 ASUG 11652 SAP Screen Personas as part of the SAP Fiori UX
SAPPHIRE NOW 2018 ASUG 11652 SAP Screen Personas as part of the SAP Fiori UXSAPPHIRE NOW 2018 ASUG 11652 SAP Screen Personas as part of the SAP Fiori UX
SAPPHIRE NOW 2018 ASUG 11652 SAP Screen Personas as part of the SAP Fiori UX
Peter Spielvogel
 
Sap fiori tutorial
Sap fiori tutorialSap fiori tutorial
Sap fiori tutorial
Nagendra Babu
 
SAP Fiori Cloud Service webinar - June 10, 2016
SAP Fiori Cloud Service webinar - June 10, 2016SAP Fiori Cloud Service webinar - June 10, 2016
SAP Fiori Cloud Service webinar - June 10, 2016
Laurent Rieu
 
SAP Screen Personas ASUG83737 ASUG Annual Conference 2019
SAP Screen Personas ASUG83737 ASUG Annual Conference 2019SAP Screen Personas ASUG83737 ASUG Annual Conference 2019
SAP Screen Personas ASUG83737 ASUG Annual Conference 2019
Peter Spielvogel
 
ASUG webcast - going mobile with Slipstream Engine March 2018
ASUG webcast - going mobile with Slipstream Engine March 2018ASUG webcast - going mobile with Slipstream Engine March 2018
ASUG webcast - going mobile with Slipstream Engine March 2018
Peter Spielvogel
 
Create Kpi fiori apps
Create Kpi fiori appsCreate Kpi fiori apps
Create Kpi fiori apps
Ajay593954
 
Architecting in the Cloud: Choosing the Right Technologies for your Solution
Architecting in the Cloud: Choosing the Right Technologies for your SolutionArchitecting in the Cloud: Choosing the Right Technologies for your Solution
Architecting in the Cloud: Choosing the Right Technologies for your Solution
Jeff Douglas
 
SAP Screen Personas - ASUG Northern CA chapter meeting March 2019
SAP Screen Personas - ASUG Northern CA chapter meeting March 2019SAP Screen Personas - ASUG Northern CA chapter meeting March 2019
SAP Screen Personas - ASUG Northern CA chapter meeting March 2019
Peter Spielvogel
 
SAP Screen Personas at SAP TechEd 2018
SAP Screen Personas at SAP TechEd 2018SAP Screen Personas at SAP TechEd 2018
SAP Screen Personas at SAP TechEd 2018
Peter Spielvogel
 
Neha_Thapa_Resume
Neha_Thapa_ResumeNeha_Thapa_Resume
Neha_Thapa_Resume
Neha Thapa
 
Enterprise App Dev Platform to keep your "Developers, Architects and CIO" Happy
Enterprise App Dev Platform to keep your "Developers, Architects and CIO" HappyEnterprise App Dev Platform to keep your "Developers, Architects and CIO" Happy
Enterprise App Dev Platform to keep your "Developers, Architects and CIO" Happy
WaveMaker, Inc.
 
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve The Adobe Digital Marketing Community
 

What's hot (20)

API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
API360 – A How-To Guide for Enterprise APIs - Learn how to position your ente...
 
What is CloudSpokes?
What is CloudSpokes?What is CloudSpokes?
What is CloudSpokes?
 
Practical strategies to innovate faster and meet business goals
Practical strategies to innovate faster and meet business goalsPractical strategies to innovate faster and meet business goals
Practical strategies to innovate faster and meet business goals
 
agados app engine platform Intro
agados app engine platform Introagados app engine platform Intro
agados app engine platform Intro
 
Adobe Experience Manager Vision and Roadmap
Adobe Experience Manager Vision and RoadmapAdobe Experience Manager Vision and Roadmap
Adobe Experience Manager Vision and Roadmap
 
Your New Digital Business & APIs
Your New Digital Business & APIs Your New Digital Business & APIs
Your New Digital Business & APIs
 
Accelerate Enterprise Mobile Application Development
Accelerate Enterprise Mobile Application DevelopmentAccelerate Enterprise Mobile Application Development
Accelerate Enterprise Mobile Application Development
 
SAP TechEd 2017 Fiori and SAP Screen Personas NET 52541
SAP TechEd 2017 Fiori and SAP Screen Personas NET 52541SAP TechEd 2017 Fiori and SAP Screen Personas NET 52541
SAP TechEd 2017 Fiori and SAP Screen Personas NET 52541
 
SAPPHIRE NOW 2018 ASUG 11652 SAP Screen Personas as part of the SAP Fiori UX
SAPPHIRE NOW 2018 ASUG 11652 SAP Screen Personas as part of the SAP Fiori UXSAPPHIRE NOW 2018 ASUG 11652 SAP Screen Personas as part of the SAP Fiori UX
SAPPHIRE NOW 2018 ASUG 11652 SAP Screen Personas as part of the SAP Fiori UX
 
Sap fiori tutorial
Sap fiori tutorialSap fiori tutorial
Sap fiori tutorial
 
SAP Fiori Cloud Service webinar - June 10, 2016
SAP Fiori Cloud Service webinar - June 10, 2016SAP Fiori Cloud Service webinar - June 10, 2016
SAP Fiori Cloud Service webinar - June 10, 2016
 
SAP Screen Personas ASUG83737 ASUG Annual Conference 2019
SAP Screen Personas ASUG83737 ASUG Annual Conference 2019SAP Screen Personas ASUG83737 ASUG Annual Conference 2019
SAP Screen Personas ASUG83737 ASUG Annual Conference 2019
 
ASUG webcast - going mobile with Slipstream Engine March 2018
ASUG webcast - going mobile with Slipstream Engine March 2018ASUG webcast - going mobile with Slipstream Engine March 2018
ASUG webcast - going mobile with Slipstream Engine March 2018
 
Create Kpi fiori apps
Create Kpi fiori appsCreate Kpi fiori apps
Create Kpi fiori apps
 
Architecting in the Cloud: Choosing the Right Technologies for your Solution
Architecting in the Cloud: Choosing the Right Technologies for your SolutionArchitecting in the Cloud: Choosing the Right Technologies for your Solution
Architecting in the Cloud: Choosing the Right Technologies for your Solution
 
SAP Screen Personas - ASUG Northern CA chapter meeting March 2019
SAP Screen Personas - ASUG Northern CA chapter meeting March 2019SAP Screen Personas - ASUG Northern CA chapter meeting March 2019
SAP Screen Personas - ASUG Northern CA chapter meeting March 2019
 
SAP Screen Personas at SAP TechEd 2018
SAP Screen Personas at SAP TechEd 2018SAP Screen Personas at SAP TechEd 2018
SAP Screen Personas at SAP TechEd 2018
 
Neha_Thapa_Resume
Neha_Thapa_ResumeNeha_Thapa_Resume
Neha_Thapa_Resume
 
Enterprise App Dev Platform to keep your "Developers, Architects and CIO" Happy
Enterprise App Dev Platform to keep your "Developers, Architects and CIO" HappyEnterprise App Dev Platform to keep your "Developers, Architects and CIO" Happy
Enterprise App Dev Platform to keep your "Developers, Architects and CIO" Happy
 
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
Evolve 19 | Sarah Xu & Kanika Gera | Adobe I/O - Why You Need it to Execute o...
 

Similar to Sitecore: Session recommendation engine

Empowering Your Users: Maximizing the Content Management Experience
Empowering Your Users: Maximizing the Content Management ExperienceEmpowering Your Users: Maximizing the Content Management Experience
Empowering Your Users: Maximizing the Content Management Experience
Jeffrey Rondeau
 
Ten Sitecore 9 Form Features to Increase Conversions
Ten Sitecore 9 Form Features to Increase ConversionsTen Sitecore 9 Form Features to Increase Conversions
Ten Sitecore 9 Form Features to Increase Conversions
Jaina Baumgartner
 
world's fastest delivery pipeline for Sitecore on Azure
world's fastest delivery pipeline for Sitecore on Azureworld's fastest delivery pipeline for Sitecore on Azure
world's fastest delivery pipeline for Sitecore on Azure
Bas Lijten
 
Automate Everything!
Automate Everything!Automate Everything!
Automate Everything!
Andy Parry
 
Getting Started: Personalization
Getting Started: PersonalizationGetting Started: Personalization
Getting Started: Personalization
Sitecore
 
Sitecore Symposium 2018 - Getting Value Out of Your Data
Sitecore Symposium 2018 - Getting Value Out of Your DataSitecore Symposium 2018 - Getting Value Out of Your Data
Sitecore Symposium 2018 - Getting Value Out of Your Data
Michael Shaw
 
Finding Value in Your Data: Sitecore Analytics
Finding Value in Your Data: Sitecore AnalyticsFinding Value in Your Data: Sitecore Analytics
Finding Value in Your Data: Sitecore Analytics
Jacqueline Baxter
 
Destination Dollywood! Optimizing the Digital Experience
Destination Dollywood! Optimizing the Digital ExperienceDestination Dollywood! Optimizing the Digital Experience
Destination Dollywood! Optimizing the Digital Experience
Sitecore
 
Data Mining with Sitecore xDB
Data Mining with Sitecore xDBData Mining with Sitecore xDB
Data Mining with Sitecore xDB
ashiga
 
Meet your new best friend: The Sitecore rules engine
Meet your new best friend: The Sitecore rules engineMeet your new best friend: The Sitecore rules engine
Meet your new best friend: The Sitecore rules engine
Jeffrey Rondeau
 
Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...
Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...
Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...
John Montes
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
Daniel Foo
 
Romancing the Customer Experience | Sitecore Symposium 2016
Romancing the Customer Experience | Sitecore Symposium 2016Romancing the Customer Experience | Sitecore Symposium 2016
Romancing the Customer Experience | Sitecore Symposium 2016
Delphic Digital
 
Keeping hackers out release to public
Keeping hackers out   release to publicKeeping hackers out   release to public
Keeping hackers out release to public
Bas Lijten
 
What’s the Deal with Profiles, Personas, and Patterns?
What’s the Deal with Profiles, Personas, and Patterns?What’s the Deal with Profiles, Personas, and Patterns?
What’s the Deal with Profiles, Personas, and Patterns?
Sitecore
 
Sitecore Experience Commerce Architecture
Sitecore Experience Commerce ArchitectureSitecore Experience Commerce Architecture
Sitecore Experience Commerce Architecture
Rob Earlam
 
Sitecores' Cortex
Sitecores' CortexSitecores' Cortex
Sitecores' Cortex
Sagittarius
 
Track 4 - How the avalanche of available customer data can help create more e...
Track 4 - How the avalanche of available customer data can help create more e...Track 4 - How the avalanche of available customer data can help create more e...
Track 4 - How the avalanche of available customer data can help create more e...
edynamic
 
What is digital personalisation in Travel and why should I care? Travel Techn...
What is digital personalisation in Travel and why should I care? Travel Techn...What is digital personalisation in Travel and why should I care? Travel Techn...
What is digital personalisation in Travel and why should I care? Travel Techn...
Sagittarius
 
Introducing the Sitecore Commerce 9 Connector for Microsoft D365
Introducing the Sitecore Commerce 9 Connector for Microsoft D365Introducing the Sitecore Commerce 9 Connector for Microsoft D365
Introducing the Sitecore Commerce 9 Connector for Microsoft D365
Dean Thrasher
 

Similar to Sitecore: Session recommendation engine (20)

Empowering Your Users: Maximizing the Content Management Experience
Empowering Your Users: Maximizing the Content Management ExperienceEmpowering Your Users: Maximizing the Content Management Experience
Empowering Your Users: Maximizing the Content Management Experience
 
Ten Sitecore 9 Form Features to Increase Conversions
Ten Sitecore 9 Form Features to Increase ConversionsTen Sitecore 9 Form Features to Increase Conversions
Ten Sitecore 9 Form Features to Increase Conversions
 
world's fastest delivery pipeline for Sitecore on Azure
world's fastest delivery pipeline for Sitecore on Azureworld's fastest delivery pipeline for Sitecore on Azure
world's fastest delivery pipeline for Sitecore on Azure
 
Automate Everything!
Automate Everything!Automate Everything!
Automate Everything!
 
Getting Started: Personalization
Getting Started: PersonalizationGetting Started: Personalization
Getting Started: Personalization
 
Sitecore Symposium 2018 - Getting Value Out of Your Data
Sitecore Symposium 2018 - Getting Value Out of Your DataSitecore Symposium 2018 - Getting Value Out of Your Data
Sitecore Symposium 2018 - Getting Value Out of Your Data
 
Finding Value in Your Data: Sitecore Analytics
Finding Value in Your Data: Sitecore AnalyticsFinding Value in Your Data: Sitecore Analytics
Finding Value in Your Data: Sitecore Analytics
 
Destination Dollywood! Optimizing the Digital Experience
Destination Dollywood! Optimizing the Digital ExperienceDestination Dollywood! Optimizing the Digital Experience
Destination Dollywood! Optimizing the Digital Experience
 
Data Mining with Sitecore xDB
Data Mining with Sitecore xDBData Mining with Sitecore xDB
Data Mining with Sitecore xDB
 
Meet your new best friend: The Sitecore rules engine
Meet your new best friend: The Sitecore rules engineMeet your new best friend: The Sitecore rules engine
Meet your new best friend: The Sitecore rules engine
 
Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...
Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...
Sitecore Symposium 2018 - Cooking Up Smart Product Recommendations for Siteco...
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Romancing the Customer Experience | Sitecore Symposium 2016
Romancing the Customer Experience | Sitecore Symposium 2016Romancing the Customer Experience | Sitecore Symposium 2016
Romancing the Customer Experience | Sitecore Symposium 2016
 
Keeping hackers out release to public
Keeping hackers out   release to publicKeeping hackers out   release to public
Keeping hackers out release to public
 
What’s the Deal with Profiles, Personas, and Patterns?
What’s the Deal with Profiles, Personas, and Patterns?What’s the Deal with Profiles, Personas, and Patterns?
What’s the Deal with Profiles, Personas, and Patterns?
 
Sitecore Experience Commerce Architecture
Sitecore Experience Commerce ArchitectureSitecore Experience Commerce Architecture
Sitecore Experience Commerce Architecture
 
Sitecores' Cortex
Sitecores' CortexSitecores' Cortex
Sitecores' Cortex
 
Track 4 - How the avalanche of available customer data can help create more e...
Track 4 - How the avalanche of available customer data can help create more e...Track 4 - How the avalanche of available customer data can help create more e...
Track 4 - How the avalanche of available customer data can help create more e...
 
What is digital personalisation in Travel and why should I care? Travel Techn...
What is digital personalisation in Travel and why should I care? Travel Techn...What is digital personalisation in Travel and why should I care? Travel Techn...
What is digital personalisation in Travel and why should I care? Travel Techn...
 
Introducing the Sitecore Commerce 9 Connector for Microsoft D365
Introducing the Sitecore Commerce 9 Connector for Microsoft D365Introducing the Sitecore Commerce 9 Connector for Microsoft D365
Introducing the Sitecore Commerce 9 Connector for Microsoft D365
 

More from VarunNehra

Sitecore Product Updates from Minneapolis DX Summit
Sitecore Product Updates from Minneapolis DX SummitSitecore Product Updates from Minneapolis DX Summit
Sitecore Product Updates from Minneapolis DX Summit
VarunNehra
 
Blazing fast web experience at your fingertips with Experience Edge, JSS for ...
Blazing fast web experience at your fingertips with Experience Edge, JSS for ...Blazing fast web experience at your fingertips with Experience Edge, JSS for ...
Blazing fast web experience at your fingertips with Experience Edge, JSS for ...
VarunNehra
 
OneWeb: Unifying multi-brand experience management and digital operations wit...
OneWeb: Unifying multi-brand experience management and digital operations wit...OneWeb: Unifying multi-brand experience management and digital operations wit...
OneWeb: Unifying multi-brand experience management and digital operations wit...
VarunNehra
 
Migrating from Azure Search to SearcStax
Migrating from Azure Search to SearcStaxMigrating from Azure Search to SearcStax
Migrating from Azure Search to SearcStax
VarunNehra
 
Get ready for Jamstack with Sitecore Experience Edge
Get ready for Jamstack with Sitecore Experience EdgeGet ready for Jamstack with Sitecore Experience Edge
Get ready for Jamstack with Sitecore Experience Edge
VarunNehra
 
Sitecore Experience Edge, A short story (Intro to Sitecore Experience Edge)
Sitecore Experience Edge, A short story (Intro to Sitecore Experience Edge)Sitecore Experience Edge, A short story (Intro to Sitecore Experience Edge)
Sitecore Experience Edge, A short story (Intro to Sitecore Experience Edge)
VarunNehra
 
Enterprise Marketplace Powered by Sitecore Experience Cloud
Enterprise Marketplace Powered by Sitecore Experience CloudEnterprise Marketplace Powered by Sitecore Experience Cloud
Enterprise Marketplace Powered by Sitecore Experience Cloud
VarunNehra
 
Accelerating Time To Market with Sitecore & Helix
Accelerating Time To Market with Sitecore & HelixAccelerating Time To Market with Sitecore & Helix
Accelerating Time To Market with Sitecore & Helix
VarunNehra
 

More from VarunNehra (8)

Sitecore Product Updates from Minneapolis DX Summit
Sitecore Product Updates from Minneapolis DX SummitSitecore Product Updates from Minneapolis DX Summit
Sitecore Product Updates from Minneapolis DX Summit
 
Blazing fast web experience at your fingertips with Experience Edge, JSS for ...
Blazing fast web experience at your fingertips with Experience Edge, JSS for ...Blazing fast web experience at your fingertips with Experience Edge, JSS for ...
Blazing fast web experience at your fingertips with Experience Edge, JSS for ...
 
OneWeb: Unifying multi-brand experience management and digital operations wit...
OneWeb: Unifying multi-brand experience management and digital operations wit...OneWeb: Unifying multi-brand experience management and digital operations wit...
OneWeb: Unifying multi-brand experience management and digital operations wit...
 
Migrating from Azure Search to SearcStax
Migrating from Azure Search to SearcStaxMigrating from Azure Search to SearcStax
Migrating from Azure Search to SearcStax
 
Get ready for Jamstack with Sitecore Experience Edge
Get ready for Jamstack with Sitecore Experience EdgeGet ready for Jamstack with Sitecore Experience Edge
Get ready for Jamstack with Sitecore Experience Edge
 
Sitecore Experience Edge, A short story (Intro to Sitecore Experience Edge)
Sitecore Experience Edge, A short story (Intro to Sitecore Experience Edge)Sitecore Experience Edge, A short story (Intro to Sitecore Experience Edge)
Sitecore Experience Edge, A short story (Intro to Sitecore Experience Edge)
 
Enterprise Marketplace Powered by Sitecore Experience Cloud
Enterprise Marketplace Powered by Sitecore Experience CloudEnterprise Marketplace Powered by Sitecore Experience Cloud
Enterprise Marketplace Powered by Sitecore Experience Cloud
 
Accelerating Time To Market with Sitecore & Helix
Accelerating Time To Market with Sitecore & HelixAccelerating Time To Market with Sitecore & Helix
Accelerating Time To Market with Sitecore & Helix
 

Recently uploaded

Varanasi Girls Call Varanasi 0X0000000X Payment On Delevery Cash Hot Premium ...
Varanasi Girls Call Varanasi 0X0000000X Payment On Delevery Cash Hot Premium ...Varanasi Girls Call Varanasi 0X0000000X Payment On Delevery Cash Hot Premium ...
Varanasi Girls Call Varanasi 0X0000000X Payment On Delevery Cash Hot Premium ...
parichopra4
 
Integrated and localized Approach in Development Communication.pptx
Integrated and localized Approach in Development Communication.pptxIntegrated and localized Approach in Development Communication.pptx
Integrated and localized Approach in Development Communication.pptx
Sayan Bachaspati
 
Colorfcul Presentation - Public Relations
Colorfcul Presentation - Public RelationsColorfcul Presentation - Public Relations
Colorfcul Presentation - Public Relations
StephanieFeliciano8
 
PSUG 3 - 2024-07-15 - Splunk & AI with Philipp Drieger
PSUG 3 - 2024-07-15 - Splunk & AI with Philipp DriegerPSUG 3 - 2024-07-15 - Splunk & AI with Philipp Drieger
PSUG 3 - 2024-07-15 - Splunk & AI with Philipp Drieger
Tomas Moser
 
Flinders Cert degree offer diploma
Flinders Cert degree offer diploma Flinders Cert degree offer diploma
Flinders Cert degree offer diploma
popecap
 
Chapter 1 - Comparsion of Dispute Resolution Technique - Reading Material.pdf
Chapter 1 - Comparsion of Dispute Resolution Technique - Reading Material.pdfChapter 1 - Comparsion of Dispute Resolution Technique - Reading Material.pdf
Chapter 1 - Comparsion of Dispute Resolution Technique - Reading Material.pdf
Adroit PMC
 
Hyderabad Girls Call Hyderabad 0X0000000X Unlimited Short Providing Girls Ser...
Hyderabad Girls Call Hyderabad 0X0000000X Unlimited Short Providing Girls Ser...Hyderabad Girls Call Hyderabad 0X0000000X Unlimited Short Providing Girls Ser...
Hyderabad Girls Call Hyderabad 0X0000000X Unlimited Short Providing Girls Ser...
rashmikasinghdelhiro
 
CULTURE-The way of life for entire society.
CULTURE-The way of life for entire society.CULTURE-The way of life for entire society.
CULTURE-The way of life for entire society.
RIYAPAWASHE
 
Trapbone Routing Plan created by Marcus Davis Jr
Trapbone Routing Plan created by Marcus Davis JrTrapbone Routing Plan created by Marcus Davis Jr
Trapbone Routing Plan created by Marcus Davis Jr
MarcusDavisJr1
 
Dehradun Girls Call Dehradun 0X0000000X Unlimited Short Providing Girls Servi...
Dehradun Girls Call Dehradun 0X0000000X Unlimited Short Providing Girls Servi...Dehradun Girls Call Dehradun 0X0000000X Unlimited Short Providing Girls Servi...
Dehradun Girls Call Dehradun 0X0000000X Unlimited Short Providing Girls Servi...
sankisogandhi
 
Conflict resolution in corporate worlds
Conflict resolution in corporate  worldsConflict resolution in corporate  worlds
Conflict resolution in corporate worlds
artemacademy2
 
VIP Mysore Girls Call Mysore 0X0000000X Doorstep High-Profile Girl Service Ca...
VIP Mysore Girls Call Mysore 0X0000000X Doorstep High-Profile Girl Service Ca...VIP Mysore Girls Call Mysore 0X0000000X Doorstep High-Profile Girl Service Ca...
VIP Mysore Girls Call Mysore 0X0000000X Doorstep High-Profile Girl Service Ca...
satpalsheravatmumbai
 
Chapter 1 A - Introduction to Arbitration
Chapter 1 A - Introduction to ArbitrationChapter 1 A - Introduction to Arbitration
Chapter 1 A - Introduction to Arbitration
Adroit PMC
 
VIP Ahmedabad Girls Call Ahmedabad 0X0000000X Doorstep High-Profile Girl Serv...
VIP Ahmedabad Girls Call Ahmedabad 0X0000000X Doorstep High-Profile Girl Serv...VIP Ahmedabad Girls Call Ahmedabad 0X0000000X Doorstep High-Profile Girl Serv...
VIP Ahmedabad Girls Call Ahmedabad 0X0000000X Doorstep High-Profile Girl Serv...
satpalsheravatmumbai
 
NAAC REFORMS IN ACCREDITATION 2024.pptx
NAAC REFORMS IN ACCREDITATION  2024.pptxNAAC REFORMS IN ACCREDITATION  2024.pptx
NAAC REFORMS IN ACCREDITATION 2024.pptx
VeluSureshKumar
 
Pass AWS Certified Developer Associate with new exam dumps 2024
Pass AWS Certified Developer Associate  with new exam dumps 2024Pass AWS Certified Developer Associate  with new exam dumps 2024
Pass AWS Certified Developer Associate with new exam dumps 2024
SkillCertProExams
 
2024-07-14 Transformed 07 (shared slides).pptx
2024-07-14 Transformed 07 (shared slides).pptx2024-07-14 Transformed 07 (shared slides).pptx
2024-07-14 Transformed 07 (shared slides).pptx
Dale Wells
 
ulcerative colitis case presentation
ulcerative colitis case presentation ulcerative colitis case presentation
ulcerative colitis case presentation
anshu reddy
 
VIP Nashik Girls Call Nashik 0X0000000X Doorstep High-Profile Girl Service Ca...
VIP Nashik Girls Call Nashik 0X0000000X Doorstep High-Profile Girl Service Ca...VIP Nashik Girls Call Nashik 0X0000000X Doorstep High-Profile Girl Service Ca...
VIP Nashik Girls Call Nashik 0X0000000X Doorstep High-Profile Girl Service Ca...
saroohilakhatariroy
 
VIP Kolkata Girls Call Kolkata 0X0000000X Doorstep High-Profile Girl Service ...
VIP Kolkata Girls Call Kolkata 0X0000000X Doorstep High-Profile Girl Service ...VIP Kolkata Girls Call Kolkata 0X0000000X Doorstep High-Profile Girl Service ...
VIP Kolkata Girls Call Kolkata 0X0000000X Doorstep High-Profile Girl Service ...
shalvikaprincessparv
 

Recently uploaded (20)

Varanasi Girls Call Varanasi 0X0000000X Payment On Delevery Cash Hot Premium ...
Varanasi Girls Call Varanasi 0X0000000X Payment On Delevery Cash Hot Premium ...Varanasi Girls Call Varanasi 0X0000000X Payment On Delevery Cash Hot Premium ...
Varanasi Girls Call Varanasi 0X0000000X Payment On Delevery Cash Hot Premium ...
 
Integrated and localized Approach in Development Communication.pptx
Integrated and localized Approach in Development Communication.pptxIntegrated and localized Approach in Development Communication.pptx
Integrated and localized Approach in Development Communication.pptx
 
Colorfcul Presentation - Public Relations
Colorfcul Presentation - Public RelationsColorfcul Presentation - Public Relations
Colorfcul Presentation - Public Relations
 
PSUG 3 - 2024-07-15 - Splunk & AI with Philipp Drieger
PSUG 3 - 2024-07-15 - Splunk & AI with Philipp DriegerPSUG 3 - 2024-07-15 - Splunk & AI with Philipp Drieger
PSUG 3 - 2024-07-15 - Splunk & AI with Philipp Drieger
 
Flinders Cert degree offer diploma
Flinders Cert degree offer diploma Flinders Cert degree offer diploma
Flinders Cert degree offer diploma
 
Chapter 1 - Comparsion of Dispute Resolution Technique - Reading Material.pdf
Chapter 1 - Comparsion of Dispute Resolution Technique - Reading Material.pdfChapter 1 - Comparsion of Dispute Resolution Technique - Reading Material.pdf
Chapter 1 - Comparsion of Dispute Resolution Technique - Reading Material.pdf
 
Hyderabad Girls Call Hyderabad 0X0000000X Unlimited Short Providing Girls Ser...
Hyderabad Girls Call Hyderabad 0X0000000X Unlimited Short Providing Girls Ser...Hyderabad Girls Call Hyderabad 0X0000000X Unlimited Short Providing Girls Ser...
Hyderabad Girls Call Hyderabad 0X0000000X Unlimited Short Providing Girls Ser...
 
CULTURE-The way of life for entire society.
CULTURE-The way of life for entire society.CULTURE-The way of life for entire society.
CULTURE-The way of life for entire society.
 
Trapbone Routing Plan created by Marcus Davis Jr
Trapbone Routing Plan created by Marcus Davis JrTrapbone Routing Plan created by Marcus Davis Jr
Trapbone Routing Plan created by Marcus Davis Jr
 
Dehradun Girls Call Dehradun 0X0000000X Unlimited Short Providing Girls Servi...
Dehradun Girls Call Dehradun 0X0000000X Unlimited Short Providing Girls Servi...Dehradun Girls Call Dehradun 0X0000000X Unlimited Short Providing Girls Servi...
Dehradun Girls Call Dehradun 0X0000000X Unlimited Short Providing Girls Servi...
 
Conflict resolution in corporate worlds
Conflict resolution in corporate  worldsConflict resolution in corporate  worlds
Conflict resolution in corporate worlds
 
VIP Mysore Girls Call Mysore 0X0000000X Doorstep High-Profile Girl Service Ca...
VIP Mysore Girls Call Mysore 0X0000000X Doorstep High-Profile Girl Service Ca...VIP Mysore Girls Call Mysore 0X0000000X Doorstep High-Profile Girl Service Ca...
VIP Mysore Girls Call Mysore 0X0000000X Doorstep High-Profile Girl Service Ca...
 
Chapter 1 A - Introduction to Arbitration
Chapter 1 A - Introduction to ArbitrationChapter 1 A - Introduction to Arbitration
Chapter 1 A - Introduction to Arbitration
 
VIP Ahmedabad Girls Call Ahmedabad 0X0000000X Doorstep High-Profile Girl Serv...
VIP Ahmedabad Girls Call Ahmedabad 0X0000000X Doorstep High-Profile Girl Serv...VIP Ahmedabad Girls Call Ahmedabad 0X0000000X Doorstep High-Profile Girl Serv...
VIP Ahmedabad Girls Call Ahmedabad 0X0000000X Doorstep High-Profile Girl Serv...
 
NAAC REFORMS IN ACCREDITATION 2024.pptx
NAAC REFORMS IN ACCREDITATION  2024.pptxNAAC REFORMS IN ACCREDITATION  2024.pptx
NAAC REFORMS IN ACCREDITATION 2024.pptx
 
Pass AWS Certified Developer Associate with new exam dumps 2024
Pass AWS Certified Developer Associate  with new exam dumps 2024Pass AWS Certified Developer Associate  with new exam dumps 2024
Pass AWS Certified Developer Associate with new exam dumps 2024
 
2024-07-14 Transformed 07 (shared slides).pptx
2024-07-14 Transformed 07 (shared slides).pptx2024-07-14 Transformed 07 (shared slides).pptx
2024-07-14 Transformed 07 (shared slides).pptx
 
ulcerative colitis case presentation
ulcerative colitis case presentation ulcerative colitis case presentation
ulcerative colitis case presentation
 
VIP Nashik Girls Call Nashik 0X0000000X Doorstep High-Profile Girl Service Ca...
VIP Nashik Girls Call Nashik 0X0000000X Doorstep High-Profile Girl Service Ca...VIP Nashik Girls Call Nashik 0X0000000X Doorstep High-Profile Girl Service Ca...
VIP Nashik Girls Call Nashik 0X0000000X Doorstep High-Profile Girl Service Ca...
 
VIP Kolkata Girls Call Kolkata 0X0000000X Doorstep High-Profile Girl Service ...
VIP Kolkata Girls Call Kolkata 0X0000000X Doorstep High-Profile Girl Service ...VIP Kolkata Girls Call Kolkata 0X0000000X Doorstep High-Profile Girl Service ...
VIP Kolkata Girls Call Kolkata 0X0000000X Doorstep High-Profile Girl Service ...
 

Sitecore: Session recommendation engine

  • 1. #SitecoreSYM#SitecoreSYM © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 1 Symposium Session Recommendation Engine #mysym Varun Nehra Dmytro Shevchenko
  • 2. #SitecoreSYM 2 • SitecoreTechnology MVP (2016–2018) • 7+ years of Sitecore experience • 10+ Sitecore deliveries/15+ client engagements • Live/work in Germany Introduction © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. DMYTRO SHEVCHENKO Sitecore Solutions Architect @ EPAM dmytro_shevchenko_de@epam.com @shedal www.structuredcode.com VARUN NEHRA Sr. Sitecore Solutions Architect @ EPAM • 7+ years of Sitecore experience • 13+ Sitecore deliveries/30+ client engagements • Live/work in Atlanta, GA varun_nehra@epam.com @sitecorevarun www.sitecorevarun.com
  • 3. #SitecoreSYM 3 EPAM’s Sitecore Practice © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 100+ Projects 50+ Customers 12 SITECORE MVPS 7 SITECORE SITE OF THE YEAR AWARDS 50+ CERTIFIED SITECORE DEVELOPERS 450+ EXPERIENCED PROFESSIONALS PLATINUM PARTNER WITH 10+ YEARS OF EXPERIENCE DELIVERED FOR
  • 4. #SitecoreSYM Agenda Machine Learning 1. Overview 2. How it works 3. Demo © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 4 Sitecore xConnect 1. Overview 2. How it works 3. Demo What’s Next with Sitecore Cortex Q&A
  • 5. #SitecoreSYM UserStory AS A Sitecore Symposium attendee, I WOULD LIKETO get recommendations for sessions I should attend, SOTHAT I don’t need to review every breakout session and do a coin toss to resolve conflicting sessions in my agenda. © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 5
  • 6. #SitecoreSYM 6 PreparingThe Solution © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. ONE AMAZING EVENT VIBRANT COMMUNITY OF DEVELOPERS & MARKETERS MULTI-CHANNEL CONTENT EXPERIENCE PLATFORM BYOML (BRING YOUR OWN ML)+ + + + Recipe MULTI-CHANNEL CONTENT MACHINE LEARNING PERSONALIZED AGENDA #mysym SITECORE XP + + = Key Ingredients
  • 7. #SitecoreSYM 7 Sitecore Experience Platform 9 © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. One platform to rule them all, one event to find them, many channels to bring them all and in the ML bind them.
  • 8. #SitecoreSYM 8 Our Solution © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. Sitecore XP 9 Experience management & personalization Sitecore xConnect Creates contact profile with social media interactions Azure ML Supervised machine learning SymposiumTracks &Topics Labeled dataset for model training in supervised learning Symposium Session Content Personalized agenda for attendees I N G R E D I E N T W H AT I S D O E S
  • 9. #SitecoreSYM 9 Symposium Session Recommendation Engine © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
  • 10. #SitecoreSYM Demo – Session Recommendation Engine © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 10
  • 11. #SitecoreSYM How ItWorks – Machine Learning • Supervised Learning • Azure MLTemplate © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 11
  • 12. #SitecoreSYM 12 How ItWorks - Machine Learning © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. MACHINE LEARNING A u t o m a t ic t e x t c l a s s i f i c a t i o n b e l o n g s t o t h e t e x t m i n i n g o r t e x t a n a l y t i c s d o m a i n o f m a c h i n e l e a r n i n g C l a s s i f y i n g t e x t i n p u t i n t o a s e t o f p r e d e f i n e d c a t e g o r i e s A z u r e M L o f f e r s t e m p l a t e t o b u i l d t e x t a n a l y t i c s s o l u t i o n SUPERVISED UNSUPERVISED CLUSTERINGCLASSIFICATION RE GRE SSION TEXT CLASSIFICATION
  • 13. #SitecoreSYM 13 How ItWorks – Supervised Learning © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. T R A I N I N G , T E X T, D O C U M E N T S , I M A G E S , E T C . L A B E L S N E W T E X T, D O C U M E N T, I M A G E , E T C M A C H I N E L E A R N I N G A LG O R I T H M E X P E C T E D L A B E L FEATUREVECTORSFEATUREVECTORS P R E D I C AT E M O D E L
  • 14. #SitecoreSYM 14 Microsoft’s ML Products © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. Microsoft ML Server (Microsoft R Server) Azure ML Microsoft Azure Cognitive Services Microsoft R Microsoft Cognitive Toolkit Batch AI Training Service Spark MLLib (HDInsight) SQL ML Services
  • 15. #SitecoreSYM 15 Azure MLTemplate © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. START STEP#1 DATA PREPARATION STEP#2 TEXT PRE- PROCESSING STEP#3A N-GRAMS TF FEATURE EXTRACTION STEP#3B UNIGRAMS TF-IDF FEATURE EXTRACTION STEP#4 TRAIN AND EVALUATE MODELS STEP#5A DEPLOY WEB SERVICES WITH N-GRAMS TF MODEL STEP#5B DEPLOY WEB SERVICES WITH UNIGRAMS TF-IDF MODEL
  • 16. #SitecoreSYM Demo –Azure ML • Azure ML Studio • Azure MLWeb Services © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 16
  • 17. #SitecoreSYM SitecorexConnect –SolutionOverview © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 17
  • 18. #SitecoreSYM 18 How ItWorks – Sitecore xConnect API © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. S I T E C O R E I N G R E D I E N T S W H AT I T ’ S U S E D F O R Collection Model The complete attendee profile is represented as an xConnect collection model Contacts An xConnect contact is created as a representation of every attendee Facets Extended information about the attendee is stored in custom contact facets Channels Every social media platform is represented as a marketing channel Interactions Actions and activities of an attendee (e.g. tweets, posts, comments) are stored via xConnect interactions
  • 19. #SitecoreSYM 19 How ItWorks – Social Media + xConnect © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. S O C I A L M E D I A I M P O R T E R X C O N N E C T C O L L E C T I O N C O L L E C T I O N D ATA B A S E
  • 20. #SitecoreSYM 20 How ItWorks – Generating Recommendations © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. C O L L E C T I O N D ATA B A S E X C O N N E C T C O L L E C T I O N S E R V E R S I T E C O R E W I T H M L C O M P O N E N T S A Z U R E M L W E B S E R V I C E S S Y M P O S I U M A G E N D A R E C O M M E N D A T I O N
  • 21. #SitecoreSYM How ItWorks –Sitecore xConnect • Our data model: custom xConnect facets • Social media integration • Azure ML – web services integration © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 21
  • 22. #SitecoreSYM Behind the Scenes © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 22
  • 23. #SitecoreSYM 23 Step 1: Define Custom Facets © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. [Serializable] [FacetKey(FacetKeys.AttendeeProfile)] public class AttendeeProfile : Facet { public string TwitterHandle { get; set; } public Dictionary<string, double> TrackScores { get; } = new Dictionary<string, double>(); public Dictionary<string, double> TopicScores { get; } = new Dictionary<string, double>(); public int PostsProcessed { get; set; } }
  • 24. #SitecoreSYM 24 Step 1: Define Custom Facets © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. [Serializable] [FacetKey(FacetKeys.SocialPostInfo)] public class SocialPostInfo : Facet { public string Text { get; set; } public DateTime CreatedAt { get; set; } }
  • 25. #SitecoreSYM 25 Step 2: Register the Facets in xConnect Model Configuration © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. public class CustomDataModel { public static XdbModel Model { get; } = BuildModel(); private static XdbModel BuildModel() { XdbModelBuilder xdbModelBuilder = new XdbModelBuilder("Recommender", new XdbModelVersion(1, 1)); xdbModelBuilder.ReferenceModel(CollectionModel.Model); xdbModelBuilder.DefineFacet<Contact, AttendeeProfile>("AttendeeProfile"); xdbModelBuilder.DefineFacet<Interaction, SocialPostInfo>("SocialPostInfo"); return xdbModelBuilder.BuildModel(); } }
  • 26. #SitecoreSYM 26 Step 2.5:Try to Save Data © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. The type of this instance does not correspond to any type in the model
  • 27. #SitecoreSYM 27 Step 2.75: Register the Facets in xConnect Model Configuration © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. ... <schemas hint="list:AddModelConfiguration"> <schema name="customDataModel" type="Sitecore.XConnect.Client.Configuration.StaticModelConfiguration"> <param desc="modeltype">Recommender.Foundation.CollectionModel.CustomDataModel</param> </schema> </schemas> ...
  • 28. #SitecoreSYM 28 Step 2.99:Try to Save Data © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 'CustomDataModel, 1.0' does not match the remote version
  • 29. #SitecoreSYM 29 Step 3: Export the Model to Json © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. class Program { static void Main() { var json = XdbModelWriter.Serialize(CustomDataModel.Model); File.WriteAllText(CustomDataModel.Model.FullName + ".json", json); } }
  • 30. #SitecoreSYM 30 Step 3: Export the Model to Json © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. { ... "Types": { "Recommender.Foundation.CollectionModel.Facets.SocialPostInfo": { ... "Type": "Facet", "BaseType": "Sitecore.XConnect.Facet", "Properties": { "Text": { "Type": "String" }, "CreatedAt": { "Type": "DateTime" } } } }, "Facets": [ ... { "Target": "Interaction", "Name": "SocialPostInfo", "Type": "Recommender.Foundation.CollectionModel.Facets.SocialPostInfo" } ] }
  • 31. #SitecoreSYM 31 Sitecore Forms Submit Action © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners.
  • 32. #SitecoreSYM 32 Identify and Save the Contact © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. Tracker.Current.Session.IdentifyAs("twitter", twitterHandle); contactManager.SaveContactToCollectionDb(Tracker.Current.Contact);
  • 33. #SitecoreSYM 33 Load the Contact with Social Media Facets © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. ContactExpandOptions expandOptions = new ContactExpandOptions( FacetKeys.AttendeeProfile, FacetKeys.SocialImportInfo, PersonalInformation.DefaultFacetKey); IEntityReference<Contact> twitterContactReference = new IdentifiedContactReference("twitter", twitterHandle); Contact contact = client.Get(twitterContactReference, expandOptions);
  • 34. #SitecoreSYM 34 Initialize Custom Attendee Facet © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. AttendeeProfile attendeeProfile = contact.GetFacet<AttendeeProfile>() ?? new AttendeeProfile(); attendeeProfile.TwitterHandle = twitterHandle; attendeeProfile.TrackScores.Clear(); attendeeProfile.TopicScores.Clear(); client.SetFacet<AttendeeProfile>(contact, attendeeProfile);
  • 35. #SitecoreSYM 35 ImportTweets as Interactions © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. List<Status> results = TwitterHelper.GetUserTweets(context, twitterHandle); foreach (Status tweet in results) { var interaction = new Interaction(contact, InteractionInitiator.Contact); var postInfo = new SocialPostInfo { CreatedAt = tweet.CreatedAt, Text = tweet.FullText }; client.SetFacet<SocialPostInfo>(interaction, postInfo); client.AddInteraction(interaction); }
  • 36. #SitecoreSYM 36 ScoreAll Interactions Using Azure ML © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. public class AttendeeScorer { private readonly CognitiveServicesClient _services; public AttendeeScorer(CognitiveServicesClient services) { _services = services; } public async Task ScoreAttendee(IXdbContext client, Contact contact) { try { const int batchSize = 10; string text = string.Empty; int i = 0; List<SocialPostInfo> posts = contact.Interactions .Select(interaction => interaction.GetFacet<SocialPostInfo>()) .Where(p => p != null) .ToList(); int maxi = posts.Count - 1; AttendeeProfile profile = contact.GetFacet<AttendeeProfile>(); Dictionary<string, double> scores; foreach (SocialPostInfo post in posts) { text += " " + post.Text; if (++i % batchSize == 0 || i == maxi) { profile.PostsProcessed += i % batchSize == 0 ? batchSize : i % batchSize; scores = await _services.InvokeTracksService(text); foreach (string key in scores.Keys) { if (!profile.TrackScores.ContainsKey(key)) { profile.TrackScores[key] = scores[key]; } else { profile.TrackScores[key] += scores[key]; } } scores = await _services.InvokeTopicsService(text); foreach (string key in scores.Keys) { if (!profile.TopicScores.ContainsKey(key)) { profile.TopicScores[key] = scores[key]; } else { profile.TopicScores[key] += scores[key]; } } text = String.Empty; } } client.SetFacet(contact, profile); } catch (Exception ex) { Log.Error(ex.Message,ex, typeof(AttendeeScorer)); throw; } } } public class CognitiveServicesClient { public class StringTable { public string[] ColumnNames { get; set; } public string[,] Values { get; set; } } public class ServiceOutput { public string Type { get; set; } public ServiceOuputValue Value { get; set; } } public class ServiceOuputValue { public string[] ColumnNames { get; set; } public string[] ColumnTypes { get; set; } public string[][] Values { get; set; } } private static readonly Regex ClassRegex = new Regex(".+"(?<className>.+)".*"); public async System.Threading.Tasks.Task<Dictionary<string, double>> InvokeTracksService(string text) { ISitecoreContext context = SitecoreContextFactory.Default.GetSitecoreContext(); var endpoint = context.GetItem<CognitiveServicesEndpoint>("/sitecore/content/CognitiveServices/Tracks"); return await InvokeScoringService(text, endpoint); } public async System.Threading.Tasks.Task<Dictionary<string, double>> InvokeTopicsService(string text) { ISitecoreContext context = SitecoreContextFactory.Default.GetSitecoreContext(); var endpoint = context.GetItem<CognitiveServicesEndpoint>("/sitecore/content/CognitiveServices/Topics"); return await InvokeScoringService(text, endpoint); } public async System.Threading.Tasks.Task<Dictionary<string, double>> InvokeScoringService(string text, CognitiveServicesEndpoint endpoint) { using (var client = new HttpClient()) { var scoreRequest = new { Inputs = new Dictionary<string, StringTable>() { { "Unigrams Web Service Input", new StringTable() { ColumnNames = new[] {"text_column"}, Values = new[,] { { text } } } }, }, GlobalParameters = new Dictionary<string, string>() { } }; client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", endpoint.ApiKey); client.BaseAddress = new Uri(endpoint.EndpointUrl.Url); HttpResponseMessage response = await client.PostAsJsonAsync("", scoreRequest).ConfigureAwait(false); if (response.IsSuccessStatusCode) { string output = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, ServiceOutput>>>(output); string[] columnNames = result["Results"].First().Value.Value.ColumnNames; string[] values = result["Results"].First().Value.Value.Values[0]; Array.Resize(ref columnNames, columnNames.Length - 1); Array.Resize(ref values, values.Length - 1); return Enumerable.Range(0, columnNames.Length) .ToDictionary( i => ClassRegex.Match(columnNames[i]).Groups["className"].Value, i => Convert.ToDouble(values[i], CultureInfo.InvariantCulture)); } else { string responseContent = await response.Content.ReadAsStringAsync(); var ex = new Exception($"The request failed with status code: {response.StatusCode}. Full response: {responseContent}"); throw ex; } } } }
  • 37. #SitecoreSYM Experience Profile Demo © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 37
  • 38. #SitecoreSYM Let’s summarize… © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 38
  • 39. #SitecoreSYM 39 Create a labeled dataset Session titles + abstracts = training text Session tracks & topics = Labels Extract features using feature extraction algorithm Train models in Azure ML Deploy theTracks web service Repeat steps 1-4 using session topics as labels and deploy theTopics web service Step by Step – ML Solution © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 1 1 2 2 3 4 5
  • 40. #SitecoreSYM 40 FetchTwitter posts using LinqToTwitter Implement a custom xConnect model using contact and interaction facets Use the xConnect Collection service to populate contacts and save social media interactions Use theTracks andTopics Azure ML web services to batch-process social media interactions Save label scores to a custom contact facet Step by Step – Sitecore Solution: xConnect © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 2 3 4 5 1
  • 41. #SitecoreSYM 41 Create a web form to get user input using Experience Forms Import content using SPE by parsing JSON feed Implement a calendar rendering to show full agenda Use the highest-scoring track to generate initial agenda This leaves us with conflicts or gaps in agenda Resolve conflicts using topic scores (highest scoring topic wins) Fill gaps using the secondary track along with the highest-scoring topics Step by Step - Sitecore Solution - UI © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 1 1 2 3 4 2 3
  • 42. #SitecoreSYM What’s Next …? © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 42
  • 43. #SitecoreSYM 43 Scalable Data-Processing platform designed to integrate with xDB and Machine Learning workers SitecoreCortex Launched © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. Provides default integration with Microsoft’s ML Server BYOML (Bring your own ML)
  • 44. #SitecoreSYM 44 SitecoreCortex Processing Engine © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. STEP#1 DATA PREPARATION Cortex Processing Engine Task Agent Worker Data Source Task Executor Storage Model Task Agent Task Agent External Service MESSAGE BUS Event Microsoft Machine Learning Server
  • 45. #SitecoreSYM 45 Remember Supervised Learning? © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. STEP#1 DATA PREPARATION T R A I N I N G , T E X T, D O C U M E N T S , I M A G E S , E T C . L A B E L S M A C H I N E L E A R N I N G A LG O R I T H M FEATUREVECTORS P R E D I C AT E M O D E L
  • 46. #SitecoreSYM 46 With SitecoreCortex © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. BYOMLDATA PREPARATION Distributed Task WorkerData Source Model External Service
  • 47. #SitecoreSYM 47 SolutionWith Cortex Processing Engine © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. CONTINOUS SOCIAL SYNC SCORING LABELS USING ML INTERACTION FACETS CONTACT FACETS ML MODEL TRAINING Distributed Task WorkerData Source Model MODEL FOR ML Distributed Task Worker Data Source Model
  • 48. #SitecoreSYM © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 48 Q&A
  • 49. #SitecoreSYM FOR DISCUSSION PURPOSESONLY. Sitecore Confidential and Proprietary. © 2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. © 2001-2018 Sitecore Corporation A/S. All rights reserved. Sitecore® and Own the Experience® are registered trademarks of Sitecore Corporation A/S. All other brand and product names are the property of their respective owners. 49