Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Sitecore: Session recommendation engine

81 views

Published on

A real world application built by integrating multi channel content with ML and Sitecore and it’s called Symposium Session Recommendation Engine or MYSYM for short and the word cloud shows everything we used to put it together.

  • Be the first to comment

  • Be the first to like this

Sitecore: Session recommendation engine

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×