Meet the Global LINERS

Engineering

Junseok Lim / Machine Learning / LINE Plus

Junseok joined LINE in 2019 as a machine learning engineer. Before LINE, he had tried applying machine learning technologies where he was working, but found it difficult to get much internal support. At LINE, however, Junseok has been able to employ machine learning technologies to various LINE services, working closely with the departments in question. Let’s meet Junseok and find out more about his time at LINE!

A quick three-line summary

  • Junseok is a machine learning engineer at LINE.
  • The global scope keeps things interesting!
  • Junseok’s LINE STYLE is “Stay a step ahead!”

About work

Q Please give us a brief introduction to what a machine learning engineer does at LINE.

My team develops and applies machine learning models to a range of services, including the messenger feature on the LINE app. For example, the project we’ve been working on this year for the OpenChat service recommends chat rooms that might be of interest to users, while screening out those that might be problematic. We also worked on a project to develop a function to measure the level of friendship among messenger friends, which could then display closer friends at the top of someone’s friends list and could also use pattern learning to filter out abusers and spammers. When working on a project, we sometimes think of the content necessary for the target service and cooperate with the service development department, and in many cases, the department suggests ideas to us to increase the efficiency of machine learning. It’s rewarding to see the services grow faster after our assistance has been deployed. Some of the departments that particularly need machine learning technologies have a separate machine learning team. In addition to my team, machine learning engineers work all across the company, like in the department in charge of developing advertising logic – such as for advertising recommendations and price setting – as well as the department in charge of developing the logic for recommending content in the Timeline service.

Q Which part of your job do you find most rewarding?

It’s very rewarding to be able to see the fruits of my labor. Due to the nature of this job, I can actually see and check outcomes quantitatively. After applying a model, I track the values and there’s nothing more exciting than to see those values displaying drastic improvements over time. My first project at LINE was developing a personalized recommendation model and applying it to OpenChat. After the service was launched, I set the assessment indicators, set up a dashboard on my computer and kept refreshing the screen to check the values. I remember feeling very happy to see the values improving as logs began to be generated right after the service launch. After we monitor the values enough, I gradually become convinced our improvements are real and won’t just deteriorate. Then, I go to a bar and treat myself to a refreshing pint of beer :)

Q Is there anything different about working at a global service provider like LINE?

Yes, there are areas that I need to pay special attention to. Often user responses to any given model vary by country. So, for each project, we conduct a type of qualitative assessment like a pilot test before applying the developed model, targeting service operators in LINE’s overseas offices and even LINERs who are not related to the service. Feedback from the qualitative assessment is reflected in the model, which contributes to creating a model that is customized to each country. Also, as the response characteristics to the assessment indicators vary by country, we adjust the service model and apply slightly different models in different countries. This, I believe, is a process that cannot be experienced easily anywhere else in Korea.

Q How does collaborating with other teams affect your approach?

Machine learning is a relatively specialized field, so I put extra effort into persuading and explaining to my colleagues about the technical aspects of it. To successfully collaborate, the participants need to be in agreement. I have a duty to help the people I work with understand why a machine learning model should be applied and what effects it can bring. It is natural for people from other areas not to understand the nature of machine learning so well, so I try to explain it as easily as possible. Especially when it comes to the technical jargon of machine learning, which can seem endless, I make an effort to explain things in layman's terms. I also focus on sharing the progress on a project by posting information about it on the internal wiki page. It’s all about achieving the same goal, the success of services.

Q Which languages and tools do you mainly use?

What I use is similar to what most machine learning engineers use. Most of the repositories we use in our team are Python. We also use C++ or C when processing speed is important. For the big data processing engine, we mainly use Spark. To use efficiently Spark, we also incorporate the use of Scala. We also use Jupyter and Zeppelin notebook a lot for writing test codes and for ad hoc operations being executed temporarily. Zeppelin, in particular, directly supports Spark, so, compared to Jupyter, it enables more convenient configuration. I also think that it is more convenient to use because it supports a number of languages.

Challenges and failures

Q I suppose not all of your experiences have been great successes. Please tell us about a failure you experienced.

I once made a mistake in the maintenance of a model. To manage a released model, it is vitally important to execute refactoring (code efficiency improvement) when a problem occurs and improve performance – maybe more important than developing a new model. It was a Friday evening, after completing a refactoring, I ran a test, distributed it and left the office, thinking that everything would be okay. However, there was a seed of trouble. Development is usually divided into three parts: beta, staging and production. As characteristic of this job, it is, in many cases, meaningless to run a test without using actual data. So, we conduct tests using actual data during staging and distribute the model for production. In general, problems do not occur in production unless there were problems during staging. As usual, I distributed the model because there were no problems in the staging environment. However, a problem occurred in production and I found only out about it on Saturday. Luckily, I was able to respond to the issue right away. I hate to think what might have happened if I had not been able to respond right then and there, and the incorrect data remained in the service. I cannot prevent all problems from happening, but I should have stayed in the office after distribution and checked on it. I admit that I was a bit neglectful. Learning from this experience, I have never made the same mistake again.

What do you need for success?

Q What kinds of competencies do you believe you need to perform your work well?

Three come to mind: One, having the capability to practically apply the results of academic studies; two, having an attitude of solving problems at their root; and, three, having a mindset to always take a step forward and take up the challenge. First, as all machine learning engineers would know, there are an enormous amount of research papers and new technologies constantly being generated. I believe building one's capability to apply new technologies to actual services is as important as studying the technologies. Many of those studies are conducted on the basis of assumptions that cannot be applied to actual services. It is an important ability to clearly understand and use only the necessary parts of the studies. In other words, rather than just reading the papers, it is necessary to think about how to efficiently utilize only the key ideas from a paper. Also, it is necessary to have the developmental ability to directly implement what you have learned, so you can see what parts of the current model need improvement and increase your work speed by reducing the losses caused by waiting for others to develop a new model. Second, the need to have the attitude of solving problems at the root. When I encounter a problem that needs fixing, my experience tells me that the same problem will occur if I pass it on without solving it fundamentally. In a serious case, it can even lead to service failure. It is important to have the knowledge and perseverance to break this vicious circle. Last but not least, I would like to introduce my favorite LINE STYLE quote. “Stay a step ahead: A swift beta roll-out is better than a perfect one that comes too late.” When an issue occurs, we usually hold a meeting to reach an agreement on how to respond to the issue, designate a person to be in charge of the process and wait for that person to solve the issue. In my experience, the loss of time caused by this process is considerably reduced when a person steps up and attempts to solve the issue with a sense of responsibility. If the attempt produces a good result, it will be a plus for that person’s performance, and if the result turns out to be bad, the attempt made by this person can be eliminated in the decision-making process, which ensures greater efficiency in implementing projects. I think this is a mindset necessary for the swift completion of projects.

Special experiences at LINE

Q Please tell us about how LINE has contributed to your own growth.

Since I started working at LINE, the scope of my job and the decisions I can make by myself has considerably widened. It’s great having an environment where I can apply the models I develop directly to services. Currently, I am contributing to the entire communication process with service managers, from the stage of making counterproposals to solving issues. I’d call it “technical leading.” The process of completing a project that starts with defining a problem or deciding on a pre-processing method is long and difficult. But, when improvement is made to a level I was aiming for, I am over the moon and feel that I have also grown personally.

Q Was there anything you found difficult to adapt to at LINE?

LINE is a global company, which means that foreign languages are unavoidable. I become quite perplexed when I have to read or communicate in an unfamiliar language. I often have had experiences where the only thing I can understand is the images. It is particularly difficult to work on a project for NLP-related (natural language processing) development. I have adapted to this environment somehow and am using a translation tool or service for assistance. I cannot learn to understand all languages, but, I am trying to learn Japanese.

Q Is there anything unique about the culture of LINE that you’d like people to know?

First of all, I really enjoy the delicious fruit served for breakfast. I'm also a fan of the flexible work hours. As long as you fill the monthly work hour quota, you can choose to work or not to work depending on your condition and situation. It’s convenient for making visits to the banks and hospitals, too. I must say, the fruit and flexible work hours are really helpful in improving my work efficiency.

Wrap-up

Q Do you have any goals you truly want to achieve?

There are indeed a wide range of services available on LINE’s messaging platform. I would like to apply various machine learning products many of them. I would like to see LINE services advancing and acquiring greater efficiency through the application of machine learning technologies.

Q Do you have any last words for those who are interested in the position of machine learning engineer at LINE?

LINE offers a wide variety of experiences. These experiences include end-to-end experiences, which cover the entire process from defining problems to the final result, and novel experiences hardly found anywhere else in the world. This is an environment where you can actively contribute to growing services and organizations. I think all engineers would love an environment like this. Of course, I always try to study and make various attempts at using newer and better models. I believe identifying data and communicating with project members are as important as modeling. So, I always make the effort to not be neglectful about these areas, either. Also, I’m continually update my range of knowledge as necessary. I look forward to working together with people who want to pursue and enjoy personal development in this great environment.