SlideShare a Scribd company logo
1 of 49
Download to read offline
#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 goalsWaveMaker, Inc.
 
agados app engine platform Intro
agados app engine platform Introagados app engine platform Intro
agados app engine platform IntroYongkyoo Park
 
Adobe Experience Manager Vision and Roadmap
Adobe Experience Manager Vision and RoadmapAdobe Experience Manager Vision and Roadmap
Adobe Experience Manager Vision and RoadmapLoni 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 DevelopmentWaveMaker, 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 52541Peter 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 UXPeter Spielvogel
 
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, 2016Laurent 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 2019Peter 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 2018Peter Spielvogel
 
Create Kpi fiori apps
Create Kpi fiori appsCreate Kpi fiori apps
Create Kpi fiori appsAjay593954
 
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 SolutionJeff 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 2019Peter 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 2018Peter Spielvogel
 
Neha_Thapa_Resume
Neha_Thapa_ResumeNeha_Thapa_Resume
Neha_Thapa_ResumeNeha 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" HappyWaveMaker, Inc.
 

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 Symposium 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 ExperienceJeffrey 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 ConversionsJaina 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 AzureBas Lijten
 
Automate Everything!
Automate Everything!Automate Everything!
Automate Everything!Andy Parry
 
Getting Started: Personalization
Getting Started: PersonalizationGetting Started: Personalization
Getting Started: PersonalizationSitecore
 
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 DataMichael 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 AnalyticsJacqueline Baxter
 
Destination Dollywood! Optimizing the Digital Experience
Destination Dollywood! Optimizing the Digital ExperienceDestination Dollywood! Optimizing the Digital Experience
Destination Dollywood! Optimizing the Digital ExperienceSitecore
 
Data Mining with Sitecore xDB
Data Mining with Sitecore xDBData Mining with Sitecore xDB
Data Mining with Sitecore xDBashiga
 
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 engineJeffrey 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 architectureDaniel 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 2016Delphic Digital
 
Keeping hackers out release to public
Keeping hackers out   release to publicKeeping hackers out   release to public
Keeping hackers out release to publicBas 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 ArchitectureRob Earlam
 
Sitecores' Cortex
Sitecores' CortexSitecores' Cortex
Sitecores' CortexSagittarius
 
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 D365Dean Thrasher
 

Similar to Sitecore Symposium 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 SummitVarunNehra
 
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 SearcStaxVarunNehra
 
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 EdgeVarunNehra
 
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 CloudVarunNehra
 
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 & HelixVarunNehra
 

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

Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptssuser319dad
 
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...NETWAYS
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxmavinoikein
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@vikas rana
 
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS  AND MONUMENTS IN NIGERIA.pptxLANDMARKS  AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptxBasil Achie
 
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...NETWAYS
 
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...NETWAYS
 
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSebastiano Panichella
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringSebastiano Panichella
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSebastiano Panichella
 
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)Basil Achie
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AITatiana Gurgel
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...henrik385807
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )Pooja Nehwal
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝soniya singh
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfhenrik385807
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Salam Al-Karadaghi
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxFamilyWorshipCenterD
 

Recently uploaded (20)

Philippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.pptPhilippine History cavite Mutiny Report.ppt
Philippine History cavite Mutiny Report.ppt
 
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
OSCamp Kubernetes 2024 | Zero-Touch OS-Infrastruktur für Container und Kubern...
 
Work Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptxWork Remotely with Confluence ACE 2.pptx
Work Remotely with Confluence ACE 2.pptx
 
call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@call girls in delhi malviya nagar @9811711561@
call girls in delhi malviya nagar @9811711561@
 
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
LANDMARKS  AND MONUMENTS IN NIGERIA.pptxLANDMARKS  AND MONUMENTS IN NIGERIA.pptx
LANDMARKS AND MONUMENTS IN NIGERIA.pptx
 
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
Open Source Camp Kubernetes 2024 | Running WebAssembly on Kubernetes by Alex ...
 
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
Open Source Camp Kubernetes 2024 | Monitoring Kubernetes With Icinga by Eric ...
 
SBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation TrackSBFT Tool Competition 2024 -- Python Test Case Generation Track
SBFT Tool Competition 2024 -- Python Test Case Generation Track
 
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Rohini Delhi 💯Call Us 🔝8264348440🔝
 
The 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software EngineeringThe 3rd Intl. Workshop on NL-based Software Engineering
The 3rd Intl. Workshop on NL-based Software Engineering
 
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with AerialistSimulation-based Testing of Unmanned Aerial Vehicles with Aerialist
Simulation-based Testing of Unmanned Aerial Vehicles with Aerialist
 
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
NATIONAL ANTHEMS OF AFRICA (National Anthems of Africa)
 
Microsoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AIMicrosoft Copilot AI for Everyone - created by AI
Microsoft Copilot AI for Everyone - created by AI
 
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
CTAC 2024 Valencia - Sven Zoelle - Most Crucial Invest to Digitalisation_slid...
 
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
WhatsApp 📞 9892124323 ✅Call Girls In Juhu ( Mumbai )
 
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Vaishnavi 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Vaishnavi 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
Call Girls in Sarojini Nagar Market Delhi 💯 Call Us 🔝8264348440🔝
 
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdfCTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
CTAC 2024 Valencia - Henrik Hanke - Reduce to the max - slideshare.pdf
 
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
Exploring protein-protein interactions by Weak Affinity Chromatography (WAC) ...
 
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptxGenesis part 2 Isaiah Scudder 04-24-2024.pptx
Genesis part 2 Isaiah Scudder 04-24-2024.pptx
 

Sitecore Symposium 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