Chris Messina, inventor of the Hashtag, proclaimed that “2016 will be the year of conversational commerce”
. It’s now almost midway through 2017 and while we could debate whether conversational commerce has truly arrived, there is certainly no denying the meteoric rise of messaging services and conversational interfaces.
In order to build applications for conversational commerce, such as an intelligent personal assistant for a shopping portal, one needs technology that can understand and generate natural language.
Some aspects of Natural Language Understanding (NLU) and automated language production, applied in the context of online shopping, have been discussed in previous blog posts (Managing Product Feeds, Building a Conversational Agent). This post will focus on the automatic generation of texts describing products and how it can be utilised to generate utterances for conversational commerce applications. The examples used in this blog post are taken from a poof of concept (POC) system built for one of Visual Meta’s regular hackathons.
Natural Language Generation (NLG)
Put simply, NLG is the task of translating some non-linguistic input, such as a spreadsheet, into human readable output, such as a written weather forecast. NLG technology is becoming increasingly commonplace .
Figure 1. “Pipeline” NLG System Architecture 
A common architectural model for NLG systems is the pipeline architecture shown in Figure 1. The components of this model can be characterised as follows:
Raw data is mapped to messages by computing facts and abstractions from the data using data analysis techniques. Messages are sentence-sized chunks of semantic information that are communicated in the output text, such as a maximum daily temperature in a weather report or an increase of a stock price in a financial report.
Document structure and content is represented as a tree structure with messages as leaf nodes, with rhetorical structure represented by relations in non-terminal nodes.
Sentence level decisions such as word choice, reference, and message aggregation are made by mapping messages in the tree to abstract syntactic representations.
This component is concerned with the transformation of abstract representations into surface text. Key tasks here are word ordering, function word insertion, morphology and orthography. Approaches to realisation are often based on grammar formalisms for the target language, but can also be statistical, trained on large corpora and requiring no linguistic knowledge.
Using NLG for Product Feed Enhancement
One common application of NLG is to generate product descriptions. Figure 2 and Figure 3 show example product descriptions automatically generated from a product catalogue using SimpleNLG [4, 5], a Java-based open source library for realisation with support for some microplanning tasks, and an example of a product description for the corresponding product from a shop feed.
Figure 4 shows the composition of a generated product description as messages with the corresponding document tree.
Shop Feed Product Description
NLG Product Description
Samsung UE40H6400AK. Display diagonal: 101.6 cm (40″), HD type: Full HD, Display resolution: 1920 x 1080 pixels. Tuner type: Analog & Digital, Digital signal format system: DVB-C, DVB-T. RMS rated power: 20 W. Consumer Electronics Control (CEC): Anynet+. Picture processing technology: Samsung Wide Color Enhancer
The Samsung UE40H6400 has a 101.6cm screen size and a resolution of 1920 x 1080 pixels. It is a Full HD TV, has an Analog & Digital tuner and comes with Anynet+.
Figure 2. Generated TV Product Description
Shop Feed Product Description
NLG Product Description
Samsung SM-G920F, Galaxy. Display diagonal: 12.9 cm (5.1″), Display resolution: 2560 x 1440 pixels, Display type: SAMOLED. Processor frequency: 2.1 GHz, Coprocessor frequency: 1.5 GHz. Internal storage capacity: 32 GB, Internal RAM: 3072 MB. Main camera resolution (numeric): 16 MP, Video recording modes: 1080p, 2160p, Maximum frame rate: 30 fps. SIM card capability: Single SIM, SIM card type: NanoSIM, 2G standards: GSM
The Samsung GALAXY S6 has a 12.9′ display with 2560 x 1440 pixel resolution. It has a 2.1GHZ processor, a 16 megapixel camera and 3072MB of internal RAM with 32GB of internal storage capacity.
Figure 3. Generated Smartphone Product Description
Figure 4. Document Tree with Highlighted Messages for NLG Product Description in Figure 3
In addition to running as a batch system to generate complete product descriptions, the NLG system described previously can be used interactively to answer questions when combined with intent detection. Recognised intents can be mapped to messages to generate single utterances. Notice that the NLG system can also keep track of dialogue state to generate pronominal references as shown in Figure 5.
Figure 5. Using the Document Tree for Answering Questions about a Product
Conversational commerce needs interfaces that can interact with end users in natural language. This post has shown how NLG can be applied in this context using examples from a POC system that can generate descriptions of products in English. Perhaps the biggest challenge of scaling such a system is applying it to multiple languages. While the semantic representation is language independent, the realisation component is limited to languages supported by SimpleNLG.
- E Reiter (2007). An Architecture for Data-to-Text Systems. In Proceedings of ENLG-2007, pages 97-104.
- A Gatt and E Reiter (2009) SimpleNLG: A realisation engine for practical applications. Proceedings of ENLG-2009, pages 90-93.