More information like this, you can visit HUAWEI Developer Forum
It's typical to feel a little easy about potential user feedback, when releasing an app version that incorporates a lot of new features. Most developers would prefer to release the new version to a small number of users and collect feedback in a controlled environment, so that they could determine whether further improvements are necessary, before making it accessible to the entire user base. HUAWEI Quick App's phased release allows developers to accomplish this with remarkable ease, addressing longstanding concerns related to app upgrade releases.
What Is Phased Release?
Phased release allows for new app versions to be released to a dedicated user group within a specified time period. During the phased release period, developers can collect user feedback on the new version, in order to evaluate it comprehensively, and make an informed decision about whether to release it to the entire user base.
Previous status quo: The new version is open to all users upon release. In the event that an issue occurs, all users are affected.
Current model: The new version is first released to a select number of users. If these users report any issues, the developer can opt to make further enhancements to the version before re-releasing it. If the feedback from the select user group meets expectations, the developer can gradually increase the accessibility of the app, until the version is available to all users.
How Do You Complete a Phased Release?
Applying for Phased Release
Only upgraded versions of previously released apps are eligible for phased release.
1. Sign in to AppGallery Connect and click My apps.
2. Click the link in the Status column of the app to be upgraded from the app list.
3. Click Upgrade in the upper right corner of the version information page.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
4. Update the app information and software package for the new version.
5. Set Release type to Phased release.
Effective: Period during which release by phase takes effect. The period cannot exceed 30 days. After the period ends, the version released by phase will be automatically released on the entire network. During suspension, the version released by phase will not be automatically released on the entire network.
Release percentage: Percentage of target users of release by phase.
Description: Remarks of the phased release, such as release features, with up to 500 characters. The description is not displayed to users. It is displayed only on the version information page for your reference.
6. Complete all information and click Submit.
l If your application is approved prior to the start of the effective period, you can opt to update or cancel the phased release.
l If the application is approved and the phased release takes effect, you can opt to suspend or cancel the function, update relevant information, or upgrade the version once again.
Suspending Phased Release
After the phased release takes effect, you can choose to suspend it. Suspending a phased release does not require passing a manual review. After the phased release version is successfully suspended, users will be unable to find it on AppGallery.
Restoring Phased Release
After a phased release is suspended, you can choose to restore it. Restoring phased release does not require passing a review. You can modify the end time, percentage (cannot be less than the current value), and description of the phased release. After a phased release version is successfully restored, users that fall within the scope of release, can find it on HUAWEI AppGallery.
Updating Phased Release
You can update phased release in either of the following scenarios:
Phased release has been approved, but has not taken effect.
Phased release has taken effect and is in Phased releasing state.
Updating phased release does not require passing a review. During the update, you can opt to modify the release type, end time, percentage (cannot be less than the current value), and description. After the update is successful, AppGallery will push the phased release version according to the updated configuration. New target users will be able to find the version on AppGallery.
Canceling Phased Release
After the phased release application is approved, you can choose to cancel it at any time. Canceling phased release does not require passing a review. After phased release version is canceled, users will not be able to find it on AppGallery.
Phased release allows you to control the scope of new version releases with incredible ease, allowing you to implement enhanced features in a thorough manner, and with minimal risk. For details, please refer to App Release by Phase.
Related
This article is originally from HUAWEI Developer Forum
Forum link: https://forums.developer.huawei.com/forumPortal/en/home
All About Maps
Let's talk about maps. I started an open source project called All About Maps (https://github.com/ulusoyca/AllAboutMaps). In this project I aim to demonstrate how we can implement the same map related use cases with different map providers in one codebase. We will use Mapbox Maps, Google Maps, and Huawei HMS Map Kit. This project uses following libraries and patterns:
MVVM pattern with Android Jetpack Libraries
Kotlin Coroutines for asynchronous operations
Dagger2 Dependency Injection
Android Clean Architecture
Note: The codebase changes by time. You can always find the latest code in develop branch. The code when this article is written can be seen by choosing the tag: episode_1-parse-gpx:
https://github.com/ulusoyca/AllAboutMaps/tree/episode_1-parse-gpx/
Motivation
Why do we need maps in our apps? What are the features a developer would expect from a map SDK? Let's try to list some:
Showing a coordinate on a map with camera options (zoom, tilt, latitude, longitude, bearing)
Adding symbols, photos, polylines, polygons to map
Handle user gestures (click, pinch, move events)
Showing maps with different map styles (Outdoor, Hybrid, Satallite, Winter, Dark etc.)
Data visualization (heatmaps, charts, clusters, time-lapse effect)
Offline map visualization (providing map tiles without network connectivity)
Generate snapshot image of a bounded region
We can probably add more items but I believe this is the list of features which all map provider companies would most likely provide. Knowing that we can achieve the same tasks with different map providers, we should not create huge dependencies to any specific provider in our codebase. When a product owner (PO) tells to developers to switch from Google Maps to Mapbox Maps, or Huawei Maps, developers should never see it as a big deal. It is software development. Business as usual.
One would probably think why a PO would want to switch from one map provider to another. In many cases, the reason is not the technical details. For example, Google Play Services may not be available in some devices or regions like China. Another case is when a company X which has a subscription to Mapbox, acquires company Y which uses Google Maps. In this case the transition to one provider is more efficient. Change in the terms of services, and pricing might be other motivations.
We need competition in the market! Let's switch easily when needed but how dependencies make things worse? Problematic dependencies in the codebase are usually created by developing software like there is no tomorrow. It is not always developers' fault. Tight schedules, anti-refactoring minded teams, unorganized plannings may cause careless coding and then eventually to technical depts. In this project, I aim to show how we can encapsulate the import lines below belonging to three different map providers to minimum number of classes with minimum lines:
Code:
import com.huawei.hms.maps.*
import com.google.android.gms.maps.*
import com.mapbox.mapboxsdk.maps.*
It should be noted that the way of achieving this in this post is just one proposal. There are always alternative and better ways of implementations. In the end, as software developers, we should deliver our tasks time-efficiently, without over-engineering.
About the project
In the home page of the project you will see the list of tutorials. Since this is the first blog post, there is only one item for now. To make our life easier with RecyclerViews, I use Epoxy library by Airbnb in the project. Once you click the buttons in the card, it will take to the detail page. Using bottom sheet we can switch between map providers. Note that Huawei Map Kit requires a Huawei mobile phone.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
In this first blog post, we will parse the GPX file of 120 km route of Cappadocia Ultra Trail race and show the route and check points (food stations) on map. I finished this race in 23 hours 45 mins and you can also read my experience here (https://link.medium.com/uWmrWLAzR6). GPX is an open standart which contains route points that constructs a polyline and waypoints which are the attraction location. In this case, the waypoints represents the food and aid stations in the race. We will show the route with a polyline and waypoints with markers on map.
Architecture
Architecture is definitely not an overrated concept. Since the early days of Android, we have been seeking for the best architectural patterns that suits with Android development. We have heard of MVC, MVP, MVVM, MVI and many other patterns will emerge. The change and adaptation to a new pattern is inevitable by time. We should keep in mind some basic and commonly accepted concepts like SOLID principles, seperation of concerns, maintainability, readibility, testablity etc. so that we can switch to between patterns easily when needed.
Nowadays, widely accepted architecture in Android community is modularization with Clean Architecture. If you have time to invest more, I would strongly suggest Joe Birch's clean architecture tutorials. As Joe suggests in his tutorials, we do not have to apply every rule line by line but instead we take whatever we feel like is needed. Here is my take and how I modularized the All About Maps app:
Note that dependency injection with Dagger2 is the core of this implementation. If you are not familiar with the concept, I strongly suggest you to read the best Dagger2 tutorial in the wild Dagger2 world by Nimrod Dayan.
Domain Module
Many of us are excited to start implementation with UI to see the results immediately but we should patiently build our blocks. We shall start with the domain module since we will put our business logic and define the entities and user interactions there.
This is not the end. For full content, you can visit https://forums.developer.huawei.com/forumPortal/en/topicview?tid=0201260729166420263&fid=0101187876626530001
Since it was released in April 2019, HUAWEI AppGallery Connect has provided 49 services to 1.8 million developers in over 170 countries and regions. In this post, we’re going to show you how you can use AppGallery Connect’s distribution services to reach your target users, optimize your app’s user experience, and gain greater exposure for your apps and games.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Releasing an App or Game in AppGallery Connect
Once you’ve created your app or game in AppGallery Connect. You can upload it in the form of an APK, App Bundle, RPK, or another type of app package. Once it has been approved, you can distribute it to Huawei devices worldwide, including mobile phones, tablets, Vision, watches, and head units.
Pre-orders: Attract Potential Players to Increase App Downloads
Before releasing a game, you can use Pre-orders in AppGallery Connect to accumulate prospective players. You can explain what your game’s about, describe its rules and features, and introduce activities, by using a wide range of visual assets. With AppGallery Connect’s Pre-orders service, you can promote your game across a wide range of channels before it goes live, and attract a broad user base. When a user pre-orders it, they’ll receive a notification from AppGallery when your game is available for early access or after it has been released, to remind them to download it, which means they’re more likely to convert. You can also make changes to your app details page or HTML5 pre-order page, and add relevant information for prospective users, which will encourage them to pre-order. By updating its game header image during the pre-order period, one game increased its daily pre-order conversion rate through the app details page by 5%, and daily pre-orders went up by more than five times.
Early Access: Obtain Early Access Data to Optimize Your Apps
A common concern among developers is that their games won’t be supported or won’t run smoothly on certain Huawei devices. That’s why AppGallery Connect gives you the option to submit an early access application, so you can check your app runs smoothly on Huawei devices, and make any optimizations you need to make based on data insights. After analyzing its early access data and optimizing its version, one game was able to increase its next-day retention rate by 5%. In addition, Early Access data serves as an important frame of reference for AppGallery Connect in rating games and allocating promotional resources upon initial release.
Open Testing: Get Valuable Feedback from Trusted Users
To make sure your app provides the best possible user experience, and to improve your user retention rate, we recommend inviting trusted users to install your app and test it before you take it live. When a test user agrees to participate in the open test, they can download the test version on HUAWEI AppGallery, and send feedback directly to you. This helps you find and fix any last bugs, so you can optimize the user experience, and improve app stability in time for the official release.
Phased Release: Reduce Risks of Version Updates
With Phased Release, you can limit the release of a new version to a certain proportion of users first, and then gradually increase the proportion, so you have more time to make improvements based on feedback before the full release. During this process, you can suspend, resume, update, and upgrade your app version release. Phased Release allows you to gradually roll out your new version to users, minimizing the risks of network-wide release and helping increase your app's quality.
App Bundle Distribution: Reduce Package Size & Increase App Downloads
Users are generally more willing to download smaller apps, so by reducing the size of your app package right down, you can achieve more downloads and installations. App Bundle does this for you, and is becoming the preferred service for an increasing number of developers. VivaCut, a video editor, was packaged using App Bundle. After the Dynamic Ability SDK had been integrated into the app, users only had to download the required functions. This meant that the size of the app package could be reduced by 25%, and the installation success rate increased by 4%.
Try out our value-added distribution services, including Pre-orders, Early Access, Open Testing, Phased Release, and App Bundle, and you’ll be able to efficiently detect problems with, optimize, and increase the success of your apps.
For more information about AppGallery Connect, take a look at our official website at https://developer.huawei.com/consumer/en/agconnect
With the launch of the music creation app’s 5th iteration on AppGallery, developers from Remixlive worked together with Huawei engineers to integrate HMS Core. The developers are committed to offering both amateurs and professionals the possibility to create their own jam and make more complex music.
If you are a DJ or an aspiring one, you may be familiar with the experience of working on a full on Digital Audio Workstation (DAW). How about something that is way simpler to operate and lets you work on-the-go? Introducing Remixlive 5.
A digital DJ mixing software developed by the French company Mixvibes, Remixlive 5 lets you edit music samples everywhere and anywhere. You can produce a complete track on your phone almost instantly with the in-app grid-based remix toolbox. There is also a new Step Sequencer that allows anyone to create their own rhythmic and melodic sequences, making more complex music. Released in April 2020, Remixlive 5 is now available on AppGallery for all Huawei and Honor smartphone users.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
“In 1999, we founded Mixvibes because of our passion for music. There was no DJ software at that time,” said Eric Guez, CEO, Mixvibes. Dedicated to developing the best tools for music producers, the company decided to create Remixlive, a unique and versatile music-making application, after working on their flagship software Cross DJ.
Remixlive is made for DJs who want to deep-dive into music creation without spending hours learning how to use DJ software. After interviewing 20 DJs, the developers at Mixvibes concluded that music production apps on the market were either too simple in terms of features and functions or too complex in terms of the user experience. Thus, they decided to design an app which lets users get started easily, yet at the same time is capable of advanced music-making functionalities. With that, Remixlive was born.
“You can be a guitarist and use Remixlive as a backing track. Or you can be an MPC lover and make music by using our drums,” said Guez. “With each iteration, we aim to bring Remixlive closer towards being a mobile workstation for any musician on the road.”
Nordhal Mabire, Developer Leader
Nordhal Mabire, the lead developer of Remixlive, realised the potential of Huawei HMS Core and started on HMS Core Kit integration to make the user experience better. So far, Remixlive has integrated with the Push Kit, IAP and Analytics Kit. Push Kit offers users the possibility to get notifications immediately when new sample packs are coming. Besides, thanks to the IAP payment method, Remixlive can get an audience who was not able to go further in music production.
Furthermore, the developers are very close to their users. This is a positive for Remixlive’s developers who can very quickly adapt to users’ changing and diverse needs. “With the help of App Services offered by HMS Core, we were able to integrate with the Analytics Kit, which allowed us to understand our users. With that, we could optimise the application for a better user experience,” Mabire said.
The Analytics Kit allows Remixlive to provide users with more personalised services. Remixlive’ s first version was only a simple app to create songs, but in the latest version, users can find a large variety of features, such as advanced sample editing, Step Sequencer, Instant FX pad, and so on. These features elevate Remixlive into a more professional-level app, and at the same time allows users to be more creative in music production.
“After the publication of the Remixlive application on AppGallery, we could better understand our Huawei users’ needs and meet their expectations and preferences.” Mabire added.
In fact, developing Remixlive for the AppGallery was not a bed of roses. Remixlive provides more than 150 sound packs to help music producers. Some of these packs were embedded in the app, and the developers used the android expansion file (OBB). With these files, users can choose if they’d like to download free content before scheduled app updates.
“The inconvenience here was the need for the users to go online when launching the Remixlive app, especially if the free content needed an update,” said Mabire. OBB integration was impossible when they first developed Remixlive for AppGallery. But they managed to configure the app build to get these packs directly from within the app. As a result, Remixlive Huawei smartphones users don’t have to go online when launching the app.
In April, Remixlive 5 was launched a few days before lockdowns around the world. During the time of the pandemic and lockdowns, people needed to think about positive things and music was the perfect subject. Users were happy with the updates brought by Remixlive 5, and its sales increased by 49% in recent months.
“Since integrating HMS Core for Remixlive was a great success, we want to extend kit integration of HMS Core to our other apps. We have already integrated HMS Core to Cross DJ Free, and Cross DJ Pro will be ready soon,” said Guez and Mabire. “We are also very interested in the new HMS Core 5.0. We believe it will help us to give a better and smoother user experience for music lovers.”
For details about Huawei developers and HMS, visit the website.
HUAWEI Developer Forum | HUAWEI Developer
forums.developer.huawei.com
What is the developer group? We may find some patterns in the 2020 Q3 and 19th Developer Community Status Report recently released by research firm Slashdata.
Developers have become a key group of vendors in recent years. So, what kind of group are developers? Perhaps a recent authoritative report could give us some inspiration. Recently, Slashdata, a well-known developer research organization in the industry, released the latest developer economic survey report 2020 Q3 and 19th Developer Community Status Report. HUAWEI CLOUD is also a partner of Slashdata, co-participated, and contributed to this industry report, which has a total of 17,000 questionnaires.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
So what does this report say about the key trends of developers after Q3 2020? The main scenarios are as follows:
1. Additional needs of developers during the new crown epidemic;
2. Update the status quo of different language communities.
3. Reasons why developers adopt or refuse to use cloud technologies;
4. Who is DevOps practice?
5. What are open source projects that developers attach most importance to?
6. Emerging technologies.
1. Additional needs of developers during the new crown epidemic
· 40% of developers report that they need more flexible work time and workload arrangements due to the impact of the COVID-19 epidemic.
· Collaboration tools and platforms are the most important technical requirements for developers.
· Self-employed developers and small business developers are less likely to have additional requirements due to the COVID-19 epidemic.
· The larger the size of the business they serve, the more developers need tools for self-management and collaboration and mental health support.
2. Update on the status of different language communities
· JavaScript is the most popular programming language and is widely used by 12.4 million developers worldwide.
· Currently, Python has 9 million users, and 2.2 million new developers were added last year alone, surpassing Java in early 2020.
· Kotlin is the fastest-growing language community and has doubled in size since the end of 2017;
3. Reasons for the developer to adopt or refuse to use cloud technologies;
· Price and support/documentation are key factors that dominate the developer's decision-making process when considering a cloud technology; When rejecting, price is the most important reason for rejecting;
· Vendors have many opportunities to differentiate and position their orchestration tools in the marketplace, and developers are less concerned about their price and more about the features that can help them develop.
· As long as the cloud solution meets the minimum requirements, developers no longer care about feature sets or performance issues.
· Developers will reject technologies that do not bring them a satisfying development experience, and it is important to have access to the community and to receive appropriate support.
4. Who are DevOps practitioners?
· The vast majority of professional developers (over 80%) are more or less involved in DevOps.
· Continuous integration and continuous deployment (CI/CD) are the two most common DevOps practices, but only 1/4 of developers automate their workflows in both aspects.
· Programmers are very willing to use CI/CD, but rarely use operation practices such as monitoring applications in production environments.
· Software departments with a large number of experienced professionals prefer to embrace the DevOps model, with few exceptions.
5. What are open source projects that developers attach most importance to?
· Developers appreciate cooperation and interaction with open source communities more than they contribute to open source projects.
· In almost all respects, developers in Western Europe attach more importance to open source than developers in other regions.
· South Asian developers attach great importance to their contributions to open source projects, making the region most likely to dominate the next wave of open source development.
As can be seen in the following figure, East Asian developers lag behind other regions in almost all respects; There is no emphasis on collaboration and communication with the community, nor on the provision of sustained technical support.
6. Emerging technologies
· Emerging technologies such as AR and VR do not fully embrace OSS principles.
· Little changes in participation and adoption, which means that DevOps has reached maturity.
· Fog/edge computing is becoming increasingly attractive among practitioners, but overall participation is still low.
· Machine vision is maturing and its adoption rate will increase as the number of developers learning this topic increases.
· Some advanced technologies have fatigue effects in participation, but their adoption rates have increased among developers who continue to invest;
For details about Huawei developers and HMS, visit the website.
HUAWEI Developer Forum | HUAWEI Developer
forums.developer.huawei.com
These are some of the key elements of this report.
This document is written by Xu Yi, a Huawei DevOps expert, and translated by Amber.
HUAWEI Prediction utilizes machine learning, based on user behavior and attributes reported by HUAWEI Analytics Kit, to predict target audiences with next-level precision. The service can help you with carrying out and optimizing operations. For example, it can work with A/B Testing to evaluate how effective your promotions have been and it can also join hands with Remote Configuration to configure dedicated plans for specific audiences through Remote Configuration. This is likely to result in dramatically improved user retention and conversion.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Integrating the Analytics SDK into your app enables the Prediction service to run preset tasks for predicting lost, paying, and returning users. On the details page of a specific prediction task, you'll find audiences with high, medium, and low probabilities of triggering a specific event, with meticulous profiling. For example, an audience with a high churn probability will include users who are very likely to quit using the app over the next 7 days. The characteristics of these users are displayed on cards, which makes it easy for you to pursue targeted operations.
The following figures give you a sense of how the prediction task list and details page look in practice.
* Data in these figures is for reference only.
Ø How we built these prediction models
First of all, we made it clear what our goal was to make predictions, so the type of data we collect reflects this. We then cleansed and sampled the collected data based on user characteristics to obtain a data set. This data set was divided into a 20% validation set and an 80% training set; multiple rounds of offline experiments were then conducted to determine the features and most suitable parameters for forming models. The generated models were later trained online to perform prediction tasks.
This process is outlined in detail below:
Ø Feature and model selection and optimization
Feature exploration
At the early stage of the project, we made sure to analyze user attributes, behavior, and requirements, in order to determine the business-relevant variables, such as user active days over the last 7 days and app use durations, through which we built a feature table.
After the features were identified, we chose a method that best suited our service and optimized parameters by performing multiple rounds of experiments. Common tree boosting methods that can be found across the industry include XGBoost, random forests, and Gradient Boost Decision Tree (GBDT). We trained our data set using these methods, and found that random forests perform best. Then the bagging method was adopted to improve models' fitting and generalization capabilities.
In addition to parameter optimization, the sampling ratio was also considered, especially for the payment prediction scenario, in which the proportion between positive samples and negative samples was large (about 1:100). For such cases, the accuracy and recall indicators should both be ensured. Then we adjusted the ratio of positive samples to negative samples to 1.5:1 during model training for payment prediction, in order to boost the recall of the model.
Hyperparameter and feature determination
Unnecessary features in a model can undermine the efficacy of predictions made by the model, or slow down model training. During experiments at this early stage, features were sorted by weight, and the top features were selected. In the model that would actually come to be, these features and relevant hyperparameters were configured.
Even after a model is applied for prediction, the data still needs to be observed and analyzed to supplement necessary features. In later iterations, we added a range of features, including the event and trend features, bringing the feature count over 400.
Automatic hyperparameter search
Model training involving full features can be quite time-consuming, and fail to produce the optimal output. In addition, the optimal hyperparameters and features may vary depending on the app. Therefore, the training should be performed by app.
To address this issue, we applied the automatic hyperparameter search function to search for optimal parameters in the configured parameter space. Matched parameters are stored in a Hive table.
The following figures show the modeling procedure and relevant external support.
Ø Research emphasis
We will continue optimizing our models, by researching the following:
l Neural network
As the number of features continues to grow (400+ currently), and user behaviors become too complex to mine common rules, our prediction models will need to be enhanced to ensure that predictions remain accurate. This will require that we introduce neural networks with strong expressive power, in addition to decision trees to train models based on behavioral features.
l Federated learning
Currently, data is isolated between apps and tenants. Horizontal federated learning can be used to train models across apps and tenants on a collaborative basis.
l Time series feature
A typical app user's device will report hundreds of events (among 1,000+ event types) and access nearly 100 pages within the app on a weekly basis. These times series can be used to build both short- and long-term user behavioral features, with the goal of improving prediction accuracy across a wide range of scenarios. Page access user behavioral data can be valuable for research, as such data bear characteristics of time series data.
l Feature mining and processing
The feature set is still being expanded. We will explore additional relevant features, such as the average app use interval, device attributes, download sources, and locations. In addition, we will also undertake such measures as discretization, normalization, square and square root operations, Cartesian product calculation, and Cartesian product calculation for multiple data sets, to build subsequent features that are based on existing features.
For more on HUAWEI Prediction, visit>>
For more details, you can go to:
l Our official website
l Our Development Documentation page, to find the documents you need
l Reddit to join our developer discussion
l GitHub to download demos and sample codes
l Stack Overflow to solve any integration problems