Conversational Context

What is it?

  • NeuralSeek maintains context during each user interaction (conversation). When initiating a conversation, a session token is generated. Using this token and several Natural Language Processing (NLP) models, NeuralSeek tracks the topic of conversation to keep interactions focused and structured, allowing it to follow-up on questions that do not directly refer to the topic. In addition, these NLP models enable NeuralSeek to filter corporate knowledge topically by date to ensure that the information being returned is focused on the time period of the question.

Why is it important?

  • Conversational Context allows for NeuralSeek to answer questions without users being specific about their language for every turn of the conversation. This enables higher containment rates in customer-facing conversations.

How does it work?

  • NeuralSeek employs several NLP models to identify and extract meaning, intent, and main subject from user questions and generated responses. These then inform later turns of the conversation so that the proper context can be brought forward from the KnowledgeBase and used for answer formation. It also weighs heavily on caching and how the data can be cached. For example - The answer to a user question like "how does it work" depends heavily on the previous statements from a user. NeuralSeek requires that you pass an ID that can uniquely identify a user's session to enable this conversational context. The can be either or both the user_id and the session_id properties on the seek request. You do not need to maintain consistent id's over time for a specific actual person - the id must just be constant for the session that you wish to maintain context for.

Curation of Answers

What is it?

  • NeuralSeek is directly trained off of the documentation loaded into the KnowledgeBase. If there are undesired answers from NeuralSeek, the first step is to review the documentation within the KnowledgeBase, and effectively curate the answer which can then be used by NeuralSeek to train itself better the next time it answers.

Why is it important?

  • One of the key factors in reducing costs is the utilization of curated answers sourced from a pool of responses, which proves to be more economical. Also, when the collection of answers becomes stagnant, potentially leading to outdated information, this feature will be able to detect it and refresh those with less manual process.

How does it work?

  • To tackle this challenge, NeuralSeek provides a solution by automatically monitoring the sources of information. It continuously tracks and compares the generated responses with the source documents to determine if any changes have occurred. By doing so, NeuralSeek ensures that the answers remain up-to-date and relevant. This eliminates the need for manual intervention and the potential for outdated information, allowing users to trust the accuracy and currency of the answers provided.

Curating Intents and Answers

curate

Let's first visit the UI page for curating intents and answers. Click the Curate tab on the top menu.

The UI is composed of the following columns:

Intent:

  • Intents are a collection of questions that may be related to the similar intent of the question. It is prefixed by certain types of intents, such as FAQ, followed by the question's subject areas. By default, all the intents do fall under a category Others, but you can also define your own category in NeuralSeek's configuration.
  • Intents also have a number of indicators that help users to understand the status of the intent. For example, it can show whether the intent has any new answers, whether the intent contains any PII (personally identifiable information), or whether the intent's underlying data has been outdated, etc.

Q&A:

  • Shows the number of questions (white dialog icon) and answers (blue dialog icon) that this particular intent contains.

Coverage %:

  • Indicates how much the KnowledgeBase has contributed to the answer's coverage. If NeuralSeek was able to find all the necessary information from the KnowledgeBase, this percentage is going to be very high.

Confidence %:

  • Indicates how much NeuralSeek's answer is most likely to satisfy the user. If this score is high, it means the answer has a high score of being legitimate and true to the facts.

Reading the trend

graph and color

Each of the graphs (coverage and confidence) has color codes that lets users visibly understand the state and trend. Coverage uses blue color with intensity that changes as its coverage is low or high. Confidence shows green to display high confidence to red meaning low confidence. You may also notice the slope has different heights, which gets smaller as there are more changes on its value.

Hovering over the graph would reveal the trend of changes:

changes

In this case, there were instances of when the confidence had dropped from 83% to 22%, over the period between 14:07:31 to 14:12:15 on July 20th.

Displaying Intents and Answers

If you click the Arrow next to the intent name, you will see the list of example questions and its generated answers:

Alt text

The example questions have either black color or gray color, depending on how they were created. The black colored examples are the ones that were actually submitted by the user's question. NeuralSeek automatically generates similar meaning questions per each question that it receives.

As necessary, you can also enter your own Example question in addition to the ones that NeuralSeek generates.

Alt text

It is also possible to add Notes that may save additional information regarding this particular intent.

Searching the intent

The size of intent can vary but could grow over multiple pages, so you may want to search for a particular intent from time to time. You could do that by using the search form at the top of the page. Enter the keyword and it will narrow down your search.

search

Filtering the intent

There is a more fine-grained way of filtering intents based on criteria such as whether they were edited, or a new answer was added, flagged, or out-of-date data was found. Click the filter button, set the criterias that you want, and the page will only show the ones that meet the filtering condition.

filter

Editing the Answer

On all the answers generated, a Subject Matter Expert can edit answers for both style and content. Edited answers automatically become training for the underlying LLM and will train the model on the style and content of the desired answer for that intent. Edited answers are also eligible for independant caching and can be directly served to the end user without going back to language genration.

Editing can be done by clicking the answer, modifying its content, and saving it.

editing

After saving, you will see that the answer that you edited will be marked as Edited.

Alt text

Deleting Questions and Answers

If you wish to delete either the question or answer under the intent, you can do so by clicking the circle with i icon and selecting Remove.

remove

⚠️ Once they are removed, there is no way to roll back the removal, so be careful.

Deleting all data

You can delete all data by selecting the gear icon at the top and selecting:

deletion

  • Delete all data
  • Delete all analytics
  • Delete all unEdited Answers

These are a useful feature if you wish to simply reset all of these data and start from the scratch.

Intent operations

When you select an intent, a popup will be displayed which shows you the operations that you can do with the selected intent.

operations

  • Edit category - will let you edit the current category
  • Download to CSV - will export this into a CSV file. It will have the following format: ID,question,score,kbCoverage,answer,category,intent,pii
  • Generate Conversation - This will convert the intent into conversation, instead of a simple question and answer. This will give a better context for the NeuralSeek to generate answers from.
  • Flag - Will flag the intent so that you can quickly find it later.
  • Rename - Will let you rename its name
  • Delete - Deletes the selected intent(s).
  • Backup - Backs up the intent for later recovery. Note that the backed up file is not a text file, but in binary format.
  • Merge - appears only when two or more intents are selected. It merges all of their questions and answers into a single intent.

Dynamic Personalization

What is it?

  • One way NeuralSeek quickly ties into the users business is by automatically personalizing results based on information from their Customer Relationship Management (CRM) system. By analyzing user data such as past interactions, preferences, purchase history, and demographic information, NeuralSeek can dynamically adjust its outputs to match the specific needs and preferences of each individual user.

Why is it important?

  • Personalized answers tend to engage users more, and can result in higher satisfaction and containment.

How does it work?

  • This can be previewed in the Seek tab of the NeuralSeek UI, and in production environments users will pass the personalization details via our API as the REST call to when /seek is made.

Entity Extraction

What is it?

  • NeuralSeek has a feature called Extract which is a service to let users extract entities within a given user text. Users can also define their custom entities and provide descriptions for NeuralSeek to detect and extract entities that are defined by users. The service is provided with a REST endpoint which can be used by external applications such as virtual agents or chat bots to invoke it within their conversational flow to enhance their capabilities to detect entities within it.

Why is it important?

  • Virtual Agents can define various entities, which may have values that need to be categorized into concepts or types that can play various roles during their request handling. For example, when a user types a question like:

“I would like to buy a movie ticket.”

The term “movie ticket” could be categorized as “product” that the virtual agent might need to understand so that the agent could start a dialog that would continue like:

“Sure, what kind of movie ticket do you want to purchase?”

Knowing that the user is interested in buying (intent) a movie ticket (product), the agent should perform an action of providing a list of the movies, as well as letting the user choose the date and time, and ultimately proceeding with billing and payment.

The inherent challenge in configuring virtual agents is to make sure these entities are accurately identified by providing various patterns, values, or an entity type, so that when those words appear in the conversation, such entities can be identified.

An example of that is how IBM Watson Assistant in dialog mode can define entity and its related values as such:

wa entities

In the above example, the entity ‘product’ would be identified in the dialog if the user mentioned these words such as ‘movie reservation,’ ‘movie ticket,’ or simply ‘ticket.’ Watson Assistant also provides fuzzy matching to match any incorrect spellings or slight deviation from these words to help it better cope with the request.

However, there are obviously clear limitations and caveats in doing this approach.

  • You have to provide every possible value necessary for the bot to understand it as a certain type of entity. Anything out of the given value might not be categorized at all, or even categorized incorrectly.
  • Maintaining a large set of entities and its subsequent values can be costly and time consuming.
  • If you have to support multiple languages, you may need to provide all the possible values as legal vocabularies which can then be a pretty challenging feat.

How does it work?

  • NeuralSeek’s Entity Extraction uses natural language processing to extract key entities that your virtual agent needs to understand, without requiring you to specify possible values or patterns and having the burden of constantly maintaining it.

Entity Extraction From Conversation

Let’s take a look at the above example of defining a movie ticket as a product. In the tab Extract, enter the same text of ‘I would like to buy a movie ticket’ and click the ‘Extract’ button.

buying a movie ticket

You will see NeuralSeek, without specifying anything, was able to identify the movie ticket as an entity of product and properly extracted it from the given string.

Moreover, you can ask the phrase in different languages, and NeuralSeek’s entity extraction will still work, without you doing anything!

buying a movie ticket in Korean

Custom Entities

In case there is a specific way that you need to categorize an entity, NeuralSeek provides a simpler and better way to define what your entity is, by using Custom Entity definition.

custom entities

Using this, Neural Seek can perform entity extraction in much more robust way:

custom entities result custom entities result custom entities result

And obviously, this single customer entity definition would work in other languages too!

custom entities result

Entity Extraction REST API

NeuralSeek’s entity extraction supports integration via REST API, so it makes calling the service easy with any external applications such as virtual agents or chatbots. It is easy to test its functionality by using API documentation located under the Integrate tab.

entity extraction in REST API

This will return the following JSON type response:

entity extraction in REST API


Ⓒ 2024 NeuralSeek, all rights reserved.