
Image credit: Joshua Lim, Susi Susanti
At Tech in Asia, we value our readers. Beyond serving quality content, we’re always finding ways to improve your reading experience.
As we scale, we find that it’s getting harder to serve content tailored to each reader’s tastes. That led us to one question: How can we serve you content you didn’t even know you wanted?
AI has been the solution to many problems in recent times, and this was no exception. At its core, our content recommender leverages machine learning to serve articles that it predicts you will like based on your reading behavior.
Let’s use the analogy of a hypothetical fruit recommender to illustrate what sets Tech in Asia‘s content recommender apart from others.
Let’s say you are holding an orange. A fruit recommendation machine scans the fruit that you are holding, and determines its attributes: a fruit that is round in shape, orange in color, has a dimpled texture, weighs 140 g, and measures about 8 cm in diameter.

Image credit: Joshua Lim, Susi Susanti
Instead of making selections that have similar superficial attributes – which means that tangerines or mandarin oranges are likely to turn up – our machine recognizes the implicit relationships between fruits and then suggests citrus fruits such as pomelos and grapefruits.
Our method introduces an element of discovery, proposing fruits that are not too similar to help you avoid falling into an echo chamber, but also not too different so that recommended fruits remain pleasing to your taste buds. As an added bonus, fruits that are freshly plucked are favored much more than those that have been on the shelf for some time.
How we trained our model
We’re using a content-based recommendation approach, and at the core of it is our topic model.
A topic model contains definitions of a predefined number of topics. Each topic is a collection of relevance scores of the top 10,000 words in our dataset. So each topic will have a unique set of scores, depending on how relevant each word is to the topic. These words are usually ranked in descending order of relevance so they can be visualized and evaluated for quality.

Image credit: Joshua Lim
In the example above, we can see that the first topic emphasizes words that correspond to venture capital, and the third to mobility, and so on.
An instance of Latent Dirichlet Allocation (LDA) (Blei et al., 2003) with Expectation Maximization (Asuncion et al., 2009), our topic model has been tweaked specifically within the context of our entire article archive.
Training an LDA model is an example of Unsupervised Learning, where the machine infers abstract insights from the data without any human input. We can see the difference when we contrast it to typical machine learning methods, which require humans to explicitly tag the data before passing it through the model. In our case, a manual process would entail reading articles, arbitrarily determining the topic composition, saving them, and then repeating the process for every article we’ve ever published.
While LDA automates a lot of this process, it still requires hints from humans, as do most unsupervised learning models. There are three parameters that we fine-tune to arrive at the right model:
- 𝗸, the number of topics we expect the model to find
- 𝛂, how likely the document is to contain an even mixture of most topics
- 𝛃, how likely each topic is to contain an even mixture of most words
Each combination of 𝗸, 𝛂 and 𝛃 values produces a single model. In order to find the model that best fits our dataset, we perform what’s known as a Grid Search in which we enumerate all sane combinations of 𝗸, 𝛂 and 𝛃, train a model for each combination, evaluate the recommendations each generates, and pick the best model.

Image credit: Joshua Lim
How we generate recommendations
We first process the article that you’re currently reading into a machine-readable form known as the document vector. This vector contains the word counts of every useful word in the document.

Image credit: Joshua Lim
This document vector is then run through our fine-tuned topic model, which transforms them into topic vectors, representing the article’s topic composition. Let’s say we train a model of three topics. The topic vector above may represent 10 percent philosophy, 50 percent artificial intelligence, and 40 percent technology, depending on the words that the model deems as important in each topic.

Image credit: Joshua Lim
The topic vector for that article is then compared mathematically with that of every other article we’ve ever published using a similarity metric, and we programmatically pick the best matches based on the following criteria:
- Most relevant, in terms of having the same topic composition as the current article
- Freshest content, prioritizing recent articles as opposed to historical ones
How we measure content relevance
We define the relevance of two pieces of content to one another by the similarity of their topic composition, weighted by freshness.
Cosine Similarity was used as the similarity metric between topic vectors, as it is a tried-and-tested method of measuring similarity in the natural language processing space.

Image credit: Joshua Lim
Intuitively, the similarity between two vectors can be quantified by taking the cosine of the angle between them. For example, in identical (overlapping) vectors, the angle between them is 0° so the cosine value is one. Conversely, for vectors that are completely different, the angle between them is 90° so the cosine value is zero.

Image credit: Joshua Lim
The similarity score is then scaled by applying a time-decay factor, which gives priority to fresh articles and penalizes older articles non-linearly. That’s because we observed that articles become less relevant at an increasing rate as time passes.
The relevance score between two articles, therefore, is the product of their similarity scores and their respective time-decay factors.
What’s next?
More exciting improvements to the recommender are in the works even as you read this article. In the recommender’s next iteration, we intend to let others do the work for you.
What this means is that by looking at the behavior of readers with taste profiles resembling yours, we can use machine learning to predict and deliver content that we think you’ll like the most.
Going back to our fruit recommender analogy, the new machine will prioritize fruits that others with a similar purchase history have already picked. This means you’ll spend less time scrolling, and you’ll have more time and choices for reading.
We’re excited to roll this out so we can give you the best picks from Asia’s startup ecosystem. Keep your eyes peeled for our updates!
Stay updated on the go with our mobile app.
Get latest insights with smoother, more personalized experience through TIA mobile app.
Recommended reads
Indonesian AI startup goes global
Forrest Li on scaling Sea, building smarter bots, and founder grit
An AI assistant that joins sales calls and scores team skills
SGX’s CEO says it doesn’t need a unicorn to win
SMEs want AI too, but not the kind Big Tech is selling
Oatside’s alt-milk rise hits a profitable gear
Alibaba’s financial health in 12 charts
Asia’s telcos bundle AI into mobile plans. Will it pay off?
M-Daq chases bigger clients as revenue falls, losses grow
VC tracker: Accel raises US$3.5b, including US$550m for India
Editing by Terence Lee and Eileen C. Ang
(And yes, we’re serious about ethics and transparency. More information here.)


