DETERMINING ITEM RELEVANCY
Determining the relevancy of an item to a user on, for example, an e-commerce platform has various advantages. It is an objective to provide a computing apparatus for determining relevancy of items to a user. A computing apparatus is configured to calculate a user attribute profile vector based on a user action history of a user. The computing apparatus may then calculate a similarity score between the user attribute profile vector and an item attribute vector of an item. A client device, a computing apparatus, methods, and a computer program are described.
The disclosure relates to an electronic device and a computing apparatus, and more particularly to a client device and a computing apparatus for determining item relevancy to a user. Furthermore, the disclosure relates to corresponding methods and a computer program.
BACKGROUNDDetermining the relevancy of an item to a user on, for example, an e-commerce platform has various uses. E-commerce platforms may comprise thousands or even hundreds of thousands of items. Even a single item category may comprise thousands of items, which may make it difficult and time-consuming a user to find the correct item. Furthermore, regardless of the type of device a user accesses an e-commerce platform with, the display area of the device may be limited. This may limit the number of items that can be displayed to the user at a time. These factors may be especially significant with mobile devices. Additionally, the user interface for interacting with the e-commerce platform may be limited. If the e-commerce platform comprises a large number of items, the user may be required to browse through numerous irrelevant items while struggling with these limitations. If the relevancy of various items to the user can be determined, this information can be used, for example, to utilise the limited display area of the client device more efficiently.
Patent publication US 2013/0198022 A1 discloses a method and apparatus of determining a linked list of candidate items. The method computes similarity scores between values of a first item and a second item with respect to each non-nominal attribute and each nominal attribute. Based on the similarity scores, a linked list of candidate items that area similar to the first item can be created.
Patent publication GB 2548336 A discloses a method of identifying recommended media content. The method comprises: accessing media content item tokens for respective media content items available to the user; accessing a user preference token relating to the user; comparing the user preference token with the media content item tokens; and identifying the recommended media content items based on said comparison.
Patent publication US 2017/0337612 A1 discloses a system and method to evaluate the affinity of a collection of items to a user's interests.
SUMMARYThis summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify all key features or all essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
It is an objective to provide a computing apparatus for determining relevancy of items to a user. The object is achieved by the features of the independent claims. Further implementation forms are provided in the dependent claims, the description and the figures.
According to a first aspect, a computing apparatus is configured to: calculate a user attribute profile vector based on a user action history of a user, the user attribute profile vector comprising a first plurality of attribute values, the first plurality of attribute values describing properties of the user action history; obtain an item attribute vector of an item comprising a second plurality of attribute values and an indication of attributes that are applicable to the item, the second plurality of attribute values describing properties of the item; compare corresponding attribute values that are applicable to the item in the first plurality of attribute values and in the second plurality of attribute values; calculate a similarity score based on the comparison; and select a subset of items from a plurality of items using the similarity score of each item. With these configurations, the computing apparatus can, for example, determine how relevant a product is to a user. The computing apparatus or a client device may use this relevancy information to, for example, display relevant products to a user. The item attribute vector indicates properties of the item in a technical manner, such as what components the item comprises, and the user attribute profile vector can reflect which properties the user prefers based on the action history of the user. The processing of the data can be done using technical means producing technical data, such as the similarity score.
In an implementation form of the first aspect, the computing apparatus is further configured to transmit data indicating the selected subset of items to a client device.
In a further implementation form of the first aspect, the computing apparatus is further configured to: process an order for the selected subset of items using at least the similarity score of each item. With these configurations, the computing apparatus can, for example, enable the client device to display more relevant items to the user first.
In a further implementation form of the first aspect, the computing apparatus is further configured to transmit data indicating the processed order of the selected subset of items to the client device. With these configurations, the computing apparatus can, for example, enable the client device to display the plurality of items according to the order so that, for example, most relevant items are displayed to the user first. Thus, the possibly limited display area of the client device is utilised efficiently.
In a further implementation form of the first aspect, the computing apparatus is further configured to transmit each similarity score to the client device. With these configurations, the computing apparatus can, for example, provide additional information about the items to the client device. Thus, the client device can, for example, provide additional information about the items, such as the similarity scores, to the user.
In a further implementation form of the first aspect the item attribute vector comprises: a logical true value, indicating that a corresponding attribute is true for the item; and a logical false value, indicating that a corresponding attribute is false for the item. With these configurations, the attribute values can be stored to the computing apparatus using a small amount of data. For example, each attribute value may be indicated by a single bit.
In a further implementation form of the first aspect, each attribute value in the user attribute profile vector is in range of 0 to 1. With these configurations, the calculations of the similarity scores can be implemented in a simple manner on the computing apparatus, since the attribute value in the user attribute profile vector are represented on the same scale.
In a further implementation form of the first aspect, the computing apparatus is further configured to: calculate an ordering score for each item in the plurality of items based on a location of the item and locations of previously purchased items by the user in an item tree; and order the plurality of items using the ordering score of each item and the similarity score of each item. With these configurations, the computing apparatus can, for example, take into account the action history of the user in the ordering of the items in addition to the attributes of the items.
In a further implementation form of the first aspect, the computing apparatus is further configured to: store the user attribute profile vector in a user profile of the user. With these configurations, the computing apparatus does not need to recalculate the user attribute profile vector each time the user attribute profile vector is needed. This may, for example, save computational resources and lower energy consumption.
In a further implementation form of the first aspect, the computing apparatus is further configured to: store each similarity score in the user profile. With these configurations, the computing apparatus does not need to recalculate the similarity scores each time the similarity scores are needed. This may, for example, save computational resources and lower energy consumption.
According to a second aspect, a client device is configured to: receive data indicating a subset of items from a computing apparatus; display at least one item view to a user according to the data received from the computing apparatus, each item view in the at least one item view comprising a name of an item; the subset of items being selected from a plurality of items based on a calculated similarity score of each item in the plurality of items, the calculated similarity score being obtained by comparing corresponding attribute values that are applicable to an item in a first plurality of attribute values comprised in a user attribute profile vector and in a second plurality of attribute values comprised in an item attribute vector. With these configurations, the client device can, for example, efficiently utilise the possibly limited display area of the client device so that relevant products are displayed to the user first. Additionally, since the user may find relevant products more easily and more quickly, the power consumption and amount of data transferred to/from the client device may be reduced.
In an implementation form of the second aspect, the client device is further configured to, before the receiving the data, transmit a filtering condition to the computing apparatus, and wherein the subset of items is selected from the plurality of items based on the calculated similarity score and the filtering condition.
In a further implementation form of the second aspect, the client device is further configured to receive an order for the subset of items from the computing apparatus; and display the at least one item view according to the received order.
In a further implementation form of the second aspect, the client device is further configured to receive the calculated similarity score from the computing apparatus; and display a displayed similarity score in the at least one item view, wherein the displayed similarity score is associated with the calculated similarity score. With these configurations, the client device can, for example, provide additional information about the items to the user.
In a further implementation form of the second aspect, the client device is further configured to: display an attribute in the at least one item view, wherein the attribute is associated with the item attribute vector of an item displayed in the item view. With these configurations, the client device can, for example, provide additional information about the items to the user.
According to a third aspect, a method comprises: calculating, by a computing apparatus, a user attribute profile vector based on a user action history of a user, the user attribute profile vector comprising a first plurality of attribute values, the first plurality of attribute values describing properties of the user action history; obtaining, by a computing apparatus, an item attribute vector of an item comprising a second plurality of attribute values and an indication of attributes that are applicable to the item, the second plurality of attribute values describing properties of the item; comparing, by a computing apparatus, corresponding attribute values that are applicable to the item in the first plurality of attribute values and in the second plurality of attribute values; calculating, by a computing apparatus, a similarity score based on the comparison; and selecting, by a computing apparatus, a subset of items from a plurality of items using the similarity score of each item.
According to a fourth aspect, a method comprises: receiving, by a client device, data indicating a subset of items from a computing apparatus; displaying, by a client device, at least one item view to a user according to the data received from the computing apparatus, each item view in the at least one item view comprising a name of an item; the subset of items being selected from a plurality of items based on a calculated similarity score of each item in the plurality of items, the calculated similarity score being obtained by comparing corresponding attribute values that are applicable to an item in a first plurality of attribute values comprised in a user attribute profile vector and in a second plurality of attribute values comprised in an item attribute vector.
According to a fifth aspect, a computer program is provided, comprising program code configured to perform a method according to the third aspect or the fourth aspect when the computer program is executed on a computer.
Many of the attendant features will be more readily appreciated as they become better understood by reference to the following detailed description considered in connection with the accompanying drawings.
The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:
Like references are used to designate like parts in the accompanying drawings.
DETAILED DESCRIPTIONThe detailed description provided below in connection with the appended drawings is intended as a description of the embodiments and is not intended to represent the only forms in which the embodiment may be constructed or utilized. However, the same or equivalent functions and structures may be accomplished by different embodiments.
According to an embodiment, the computing apparatus 200 is configured to calculate a user attribute profile vector based on a user action history of a user, the user attribute profile vector comprising a first plurality of attribute values. The computing apparatus may be configured to obtain an item attribute vector of an item comprising a second plurality of attribute values and an indication of attributes that are applicable to the item, the second plurality of attribute values describing properties of the item. The computing apparatus 200 may be configured to compare corresponding attribute values that are applicable to the item in the first plurality of attribute values and in the second plurality of attribute values. The computing apparatus 200 may be configured to calculate a similarity score based on the comparison. The computing apparatus 200 may be configured to select a subset from a plurality of items using the similarity score of each item. The computing apparatus 200 may be configured to transmit data indicating the selected subset of items to a client device 100.
The subset of items may comprise the whole plurality of items or a smaller number of items than in the plurality of items.
Thus, the computing apparatus 200 may be configured to calculate a user attribute profile vector based on a user action history of a user and calculate a similarity score between the user attribute profile vector and a product attribute vector of a product, wherein only attributes that are applicable to the product are used for the calculation from the user attribute profile vector. The similarity score may reflect how similar an item is with the previous actions of the user. A low similarity score may indicate high similarity and vice versa. An item of high similarity may be referred to as a relevant item to the user.
According to an embodiment, the client device 100 is configured to receive data indicating a subset of items from a computing apparatus 200; and display at least one item view to a user according to the data received from the computing apparatus, each item view in the at least one item view comprising a name of an item; the subset of items being selected from a plurality of items based on a calculated similarity score of each item in the plurality of items, the calculated similarity score being obtained by comparing corresponding attribute values that are applicable to an item in a first plurality of attribute values comprised in a user attribute profile vector and in a second plurality of attribute values comprised in an item attribute vector.
The item attribute vector indicates properties of the item in a technical manner, such as what components the item comprises, and the user attribute profile vector can reflect which properties the user prefers based on the action history of the user. The processing of the data can be done using technical means producing technical data, such as the similarity score. Based on the technical data, relevant items to a user can be deduced.
The computing apparatus 200 may be further configured to process an order for the subset of items using at least the similarity score of each item. The computing apparatus can, for example, order/rank the items in a descending or ascending order according to the similarity scores. For example, most relevant items to the user may be first in the processed order.
The computing apparatus 200 may be configured to process a plurality of items using at least the similarity score of each item and to transmit data indicating the processed plurality of items to a client device 100.
The computing apparatus 200 may be further configured to transmit data indicating the processed order of the subset of items to a client device 100. The data may be, for example, list that indicates the order or the similarity scores. Alternatively or additionally, the computing apparatus 200 may omit transmitting an order of items to the client device 200. Instead, the computing apparatus may transmit, for example, data indicating a subset of items to the client device 100. The computing apparatus 200 may choose the subset based on the similarity scores of the items. For example, the computing apparatus 200 may indicate items that have a similarity score higher than a preconfigured threshold.
The client device 100 can display the plurality of items according to the order for example so that most relevant items are displayed to the user first. Thus, the possibly limited display area of the client device 100 can be utilised efficiently.
The client device 100 and the computing apparatus 200 may further comprise a processor, a transceiver, a memory, a display unit and/or other components that are not illustrated in
The client device 100 may be any of a wireless terminal, or mobile terminal which is enabled to communicate wirelessly in a wireless communication system, sometimes also referred to as a cellular radio system, or in a wired communication system using a wired connection. A wired connection may also comprise fixed connections, such as optical links. The client device 100 may further be referred to as a mobile telephone, a cellular telephone, a computer, a desktop computer, a computer tablet, or a laptop with wireless or wired capability.
A user may operate the client device 100 through a user interface, UI. Since the amount of display area on the client device 100 can be limited, for example in the case of a mobile phone or even for a desktop computer, the UI may also be limited. For example, on an e-commerce platform, only a limited number of items can be displayed to the user at a time. Therefore, the user experience may be improved, if the limited number of items that can be displayed to the user at once are relevant or pertinent to the user.
The computing apparatus 200 may be any device that can process information, for example, using a processor and may communicate with the client device 100 or a plurality of client devices 100 using, for example, the communication channel 103. The computing apparatus 200 may be also referred to as a server. The computing apparatus 200 may be implemented, for example, using a computer or a plurality of computers, such as a data centre. Alternatively, a computer or a plurality of computers may implement a plurality of computing apparatus 200 using, for example, virtualisation, wherein the computing apparatus 200 may be implemented in software.
An item may be, for example, any product that a user may, for example, purchase or view. The user may purchase and/or view the item, for example, on an e-commerce platform. Items may be divided into categories, and these categories may comprise, for example, food items, animal food items, hygiene items, cleaning items, consumer goods etc. These categories may be divided into further subcategories. For example, food items may be divided into vegetables, fruits, meats, dairy items, breads, drinks etc.
An attribute may describe any property or characteristics of an item, such as a food item or a consumer good. A plurality of attributes may be applicable to a single item. An attribute may be common for a plurality of items. An attribute and the value of the attribute can be predetermined. Some embodiments of attributes are described below.
Based on the user profile 210 and the item information database 220, the computing apparatus 200 can execute various computational procedures 230. The outputs of these computational procedures 230 may, for example, indicate how well an item in the item information database 220 fits the preferences of a user 101, how similar an item is with previous actions 102 of a user 101, and/or how relevant an item is to a user 101. The computational procedures 230 can be based on the user profile 210 of the user 101 and the item information database 220. Based on the computational procedures 230, the computing apparatus 200 can determine relevant items 240, and the relevant items 240 can be presented to the user 101 through the client device 100. For example, the client device 100 can present relevant items 240 to the user 101 using a user interface, UI. According to an embodiment, the computation procedures 230 may calculate a similarity score 232 for each item in the item information database 220, wherein the similarity score 232 can indicate how well the item fits to the user profile 210. Based on the similarity score 232, the computing apparatus 200 can determine relevant items for the user 101, for example by ranking/ordering the items in the item information database 220 according to their similarity scores 232.
According to an embodiment, the item information database 220 may comprise a plurality of item attribute vectors 223, wherein each item attribute vector 223 comprises the item attribute values of an item. The item attribute vectors 223 can be compared to the user attribute profile vector 212 by the comparisons operation 231. The comparison operation 231 may, for example, calculate a quantity that indicates how similar or dissimilar an item attribute vector 223 is with respect to the user attribute profile vector 212. This quantity may be referred to as a similarity score 232 or a calculated similarity score. The similarity score 232 may be calculated for each item in the item information database 220. Based on the values of this quantity for each item, relevant items to the user 101 can be determined.
According to another embodiment, the user attribute profile vector 212 does not need to be calculated. Instead, the comparison operation 231 may directly use the action history 211 of the user 101 and an attribute profile vector 212 to calculate a similarity score 232. The similarity score 232 of each item may be saved, for example, into the user profile 210. The similarity scores 232 may be updated, for example, each time the user 101 preforms an action 102, such as makes a purchase.
According to an embodiment, attributes that are applicable to an item can be indicated by the item attribute vector of the item.
According to an embodiment, the item attribute vector 223 comprises: a logical true value, indicating that a corresponding attribute is true for the item; and a logical false value, indicating that a corresponding attribute is false for the item.
In the case of the food item presented in
In some embodiments, the ID 226 does not need to be stored in the item attribute vector 223 either. Instead, only the attribute values 225 may be stored in the item attribute vector 223, and the ordering of the values can indicate the intended attribute. The attributes can be stored, for example, in a separate table, and this single table can be used for the item attribute vectors of all items or for some subset of all items. For example, the attribute vector presented in
It should also be appreciated that if the attribute values are binary, like is the case for the embodiment of
A hygiene item may also have common attributes with food item. Such attributes may be, as illustrated in
For example, if the item attribute vector 223 comprises only the applicable attributes, the food item of
As is described in the embodiments herein, the item attribute vector 223 may indicate the attributes applicable for the item in various ways. For example, the item attribute vector of an item may only comprise attribute values for attributes that are applicable to the item. An example of this may be the embodiment of
According to an embodiment, each attribute value in the user attribute profile vector 211 is in range of 0 to 1.
It should be appreciated that the conclusion presented above with respect to the embodiment of
According to an embodiment, the item attribute vector for an item with item ID i may be represented in the following fashion
Pi=[{0,1},{0,1}, . . . ,{0,1}],
where the elements in the vector Pi refer to the different attributes of the item i, where i may be an integer. Here, {0,1} indicates that each element of the vectors Pi may be either 0 or 1. For example, an item vector for some item may be Pi=[0, 0, 1,0], where each element of the vector Pi refers to the attribute of the corresponding index. The first element may refer, for example, to the item being organic, the second element may refer to the item being lactose free, the third element may refer to the item being low lactose, and the fourth element may refer to the item being vegan. Thus, in the example above, the item contains low amounts of lactose, but is not lactose free, organic, or vegan.
According to an embodiment, a user attribute profile vector 212 for a user with user ID k can be computed in the following way
Pi[j] refers to the jth element of the item attribute vector Pi. The sum over i|j|k represents summing over all items i that the user k has purchased and for which the attribute j is applicable, and nk|j is the total number of items the user k has purchased for which the attribute j is applicable. N is the length of the user attribute profile vector Uk. N may be, for example, the total number of attributes. Alternatively, each element corresponding to index j in the user attribute profile vector Uk can be represented as
In other embodiments, other actions 102 may be taken into account in a similar manner when calculating the user attribute profile vector 212. In such embodiments, different weighting factors may be used for different types of actions. For example, purchase of an item may be considered to be more significant than viewing an item, and therefore purchases may be weighted more than viewings.
According to an embodiment, the computing apparatus 200 is configured to calculate the similarity score 232 by comparing corresponding attribute values in the attribute profile vector 212 and in the item attribute vector 223. The comparison can be done, for example, by subtracting the corresponding attribute values and taking the absolute value: |Pi[j]−Uk[j]|.
According to an embodiment, a similarity score 232 Di,k between an item attribute vector Pi and a user attribute profile vector Uk can be calculated in the following way
where summation over j|i is a summation over all attributes j applicable to the item i, and nj|i is the total number of attributes applicable to the item i. ∥ is the absolute value, which may also be referred to as modulus. Thus, the similarity score 232 Di,k may quantify how similar the item i is to the previous actions 102 of the user k. If the equation above is used to calculate the similarity score 232 Di,k, the value of Di,k may be between 0 and 1, where a lower value indicates a higher similarity. For example, if the corresponding attribute values in the item attribute vector Pi and in the user attribute profile vector Uk are equal, all of the Pi[j]−Uk [j] terms in the equation above are zero. Therefore, in such a case, the value of Di,k is zero. In other embodiments, different procedures may be used to calculate the similarity between an item attribute vector 223 and a user attribute profile vector 212.
According to another embodiment, the value of an attribute can be non-binary. For example, the value of an attribute may reflect a property of an item on a continuous measurement scale. The value X of such attribute can be normalised to be between 0 and 1, for example, in the following fashion:
where Xn is a normalised value of the attribute value X. Here, min(X) refers to the minimum possible value of X, and max(X) refers to the maximum possible value of X. For example, if X refers to the amount of protein per 100 grams of an item, min(X)=0 g and max(X)=100 g. If an item then comprises 10 g of protein per 100 g, X=10, and X′=0.1. The limits min(X) and max(X) may also be chosen in other ways. For example, max(X) may be chosen to reflect a realistic maximum value. In the example presented above, max(X) may be lower than 100 g, since it may be difficult to find an item with such high protein content. The value of max(X) may be determined, for example, by considering all items and finding an item that has the highest value of X.
According to another embodiment, a non-binary attribute value may be a category value. Such attribute value may be decomposed into a set of m binary attribute values in the item attribute vector 223 and in the user attribute profile 212. For example, an item may belong to one of three different groups X1, X2, X3, and a non-binary attribute may indicate which group the item belongs to. This may be decomposed into three binary attributes, where each attribute may be of the form “part of group Xn”. For example, if an item belongs to group X2, values of the attributes “part of group X1” and “part of group X3” could be 0, while the value of the attribute “part of group X2” could be 1. Since a single non-binary category attribute may be decomposed into multiple binary attributes, the effect of this non-binary attribute may be over emphasised when calculating the similarity score Di,k. To mitigate this, the similarity score may be calculated in the following way so that the weight of a non-binary category attribute is, for example, equal to binary attributes:
In addition taking into account the similarity score Di,k between an item and a user 101, also the action history 211 of the user 101 may be taken into account in the assessment of which items may be relevant to a user 101. According to an embodiment, the computing apparatus 200 is further configured to calculate an ordering score for each item in the plurality of items based on a location of the item and locations of previously purchased items by the user in an item tree. The computing apparatus 200 may be further configured to order the plurality of items using the ordering score of each item and the similarity score 232 of each item.
Ordering score Mi,k between an item i and a user k may be calculated, for example, in the following way:
where Di,k can be the calculated similarity score 232 described above. w is a weight factor which can be configured to emphasise the similarity score Di,k or the following term. Ri,k=Ni/N, where N is the total number of purchases by the user k, and Ni is the number of purchases done by the user k in a node of an item tree that comprises the item i. In other embodiments, other action 102 may also be taken into account. max(Ri,k) is the maximum of this quantity for the user k, and
is the non-zero minimum of this quantity for the user k. Alternatively, Ni and N may refer to the value, volume, margin, or revenue of the aforementioned items. Furthermore, the calculations presented above may be performed for some time interval, so that only purchases during that time interval are taken into account.
For example, the similarity score 232 of the food item attribute vector 223 of
Di,k=(|1−0.1|+|0−0.01|+∥−0.12 6|+|0−0.148|+∥−0.42|+|0−0.31+|0−0.72|)/7≈0.505.
If the attribute corresponding to attribute ID 7 in
Based on the similarity score 232, the computing apparatus 200 may decide which items to display to the user 101 and, for example, in which order. According to an embodiment, the computing apparatus 200 may calculate a similarity score 232 for each item in a subset of all items and display the items with the highest similarity. Alternatively, the computing apparatus 200 may choose the displayed items randomly from the similarity score distribution using, for example, some preconfigured statistical distribution. According to another embodiment, the computing apparatus 200 may calculate a similarity score 232 for an item and display the item to the user 101, if the similarity score is within some preconfigured limits. This may be repeated, for example, until a preconfigured number of displayed items is chosen. According to another embodiment, the computing apparatus 200 may calculate a similarity score 232 for each item in a plurality of items and order the items in the plurality of items according to the similarity scores 232. This may be applied, for example, to search results.
According to an embodiment, the computing apparatus 200 is configured to store each similarity score 232 in the user profile 210. The similarity scores 232 between user profiles 210 and item attribute vectors 223 may be pre-calculated for all users 101 or for some subset of all users 101. If the similarity scores 232 are pre-calculated for a user 101, these similarity scores 232 may be updated, for example, each time the user 101 performs an action 102. The pre-calculated similarity scores 232 may be stored in the user profile 210 or, for example, in a separate database. Alternatively or in addition to this, the similarity scores 232 may be calculated on-demand. For example, each time the similarity scores 232 of a user 101 are needed, the similarity scores 232 can be calculated again. The similarity scores 232 may be pre-calculated for some users, while the similarity scores 232 may be calculated on-demand for other users.
According to an embodiment, “high similarity” may refer to cases where an item attribute vector 223 and a user attribute profile 212 are similar. “Low similarity” may refer to cases where an item attribute vector 223 and a user attribute profile 212 are not similar. This similarity may be based on the similarity score 232. However, these terms are used independent of the details how the similarity score is calculated are do not necessarily describe the value of the similarity score 232. For example, when the similarity score 232 is calculated using the equations presented above, a low similarity score 232, for example close to zero, may indicate a high similarity and vice versa. The exact limits for high and low similarity may vary.
The operations 1201-1205 can be performed partially by the client device 100 and partially by the computing apparatus 200. For example, the computing apparatus 200 may perform the steps 1201, 1202, and 1204. Operation 1203 may be performed partially by the client device 100 and partially by the computing apparatus 200. For example, the user 101 may use the client device 100 to interact with the computing apparatus 200, and the computing apparatus 200 can define the user attribute profile based on these actions, such as purchases, 102. Operation 1205 can be performed partially by the client device 100 and partially by the computing apparatus 200. The computing apparatus 200 can, for example, order/rank items based on similarity scores 232 computed in operation 1204, and the client device 100 can use these ordering/rankings to display items to the user 101. According to another embodiment, the computing apparatus 200 may perform all of the operations 1201-1205.
As can be seen from
Using the user attribute profile 212 and the item attribute vectors 223 of each item, the computing apparatus 200 may choose the way the items views 1301 are displayed in the item display interface 1300 in such a way that the displayed items may be relevant and/or interesting to the user 101. According to an embodiment, the computing apparatus 200 calculates a similarity score 232 for each item, and the item views 1301 are arranged in the item display interface 1300 according to the similarity scores 232 of the items. According to another embodiment, the computing apparatus 200 calculates an ordering score Mi,k for each item, and the item views 1301 are arranged in the item display interface 1300 according to the ordering scores Mi,k of the items. The computing apparatus 200 may, for example, generate an item ordering list which may comprise a plurality of items ordered according to the ordering score Mi,k of each item. The order may be, for example, ascending or descending.
According to embodiments, other criteria may also be applied to the ordering of the item views 1301. For example, top n most purchased items and/or item groups may not be ordered to the top of the item views 1301. n can be any number. According to a further embodiment, items that are part of the same item tree node as any of m previous items in the item ordering list. m can be any number. According to another embodiment, if a plurality of items and/or item groups have the same similarity score 232 and/or ordering score Mi,k, an item with a higher priority may be put first. Priority may be calculated based on various quantities, such as margin, sell volume etc.
According to an embodiment, the client device 100 is further configured to transmit a filtering condition to the computing apparatus 200. The subset of items may be selected from the plurality of items based on the calculated similarity score and the filtering condition. The filtering condition may indicate, for example, that only items in certain category should be displayed. The computing apparatus 200 may then display only items in that category and use the calculated similarity score to, for example, order those items.
The computing apparatus 200 may improve the user experience by improving the utilisation of the limited display space. Additionally, since the user 101 may find relevant items more easily and more quickly, the power consumption and amount of transferred data to/from the client device 100 may be reduced. For example, if relevant items are ordered to be within the first item views 1301 in the item display interface 1300, the item views 1301 of less relevant items may not need to be displayed or loaded by the client device 100. Thus, the amount of transferred data may be reduced, since data, such as pictures, about less relevant items does not need to be transferred to the client device 100. These advantages may apply to all embodiments illustrated herein.
For example, if the user 101 searches for bread, different bread items may be ordered in the search results according to how well the item attribute vectors 223 of these items fit the user attribute profile 212 of the user 101. For example, if the user 101 searches for bread and the user attribute profile 212 indicates that the user 101 may prefer organic food items, the computing apparatus 200 may order different organic breads to the top of the search results. The computing apparatus 200 may calculate a similarity score 232 and/or ordering score Mi,k for each bread item available based on the item attribute vector 223 of each bread item and the user attribute profile 212 of the user 101. If the user 101 prefers organic food items, the user attribute profile 212 should reflect this. In such a case, the similarity of organic breads may be higher with the user attribute profile 212 than that of other types of bread. The computing apparatus 200 and/or the client device 100 may then order the search results according to the similarity scores 232 and/or ordering scores of the items, and organic breads may be higher in the search results than other types of bread. It should be noted that this is only a simplified example, and other attributes may simultaneously affect the similarity scores and the ordering of the search results. Alternatively, this type of ordering may also be applied when the user 101 views an item category, such as “bread”, instead of searching for bread.
Although in the embodiment described above, elements of the item display interface 1300 are illustrated using certain geometrical shapes, the elements may be of any shape and size, and they may be positioned in any way in the item display interface 1300. The elements of the item display interface 1300 may represent, for example, items or item related information. For example, the item views 1301 may be displayed as a list, as an array, or in any other order.
Any range or device value given herein may be extended or altered without losing the effect sought. Also any embodiment may be combined with another embodiment unless explicitly disallowed.
Although the subject matter has been described in language specific to structural features and/or acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as embodiments of implementing the claims and other equivalent features and acts are intended to be within the scope of the claims.
The functionality described herein can be performed, at least in part, by one or more computer program item components such as software components. Alternatively, or in addition, the functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Application-specific Integrated Circuits (ASICs), Application-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), Graphics Processing Units (GPUs).
It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. The embodiments are not limited to those that solve any or all of the stated problems or those that have any or all of the stated benefits and advantages. It will further be understood that reference to ‘an’ item may refer to one or more of those items. The term ‘and/or’ may be used to indicate that one or more of the cases it connects may occur. Both, or more, connected cases may occur, or only either one of the connected cases may occur.
The operations of the methods described herein may be carried out in any suitable order, or simultaneously where appropriate. Additionally, individual blocks may be deleted from any of the methods without departing from the objective and scope of the subject matter described herein. Aspects of any of the embodiments described above may be combined with aspects of any of the other embodiments described to form further embodiments without losing the effect sought.
The term ‘comprising’ is used herein to mean including the method, blocks or elements identified, but that such blocks or elements do not comprise an exclusive list and a method or apparatus may contain additional blocks or elements.
It will be understood that the above description is given by way of example only and that various modifications may be made by those skilled in the art. The above specification, embodiments and data provide a complete description of the structure and use of exemplary embodiments. Although various embodiments have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this specification.
Claims
1. A computing apparatus configured to:
- calculate a user attribute profile vector based on a user action history of a user, the user attribute profile vector comprising a first plurality of attribute values, the first plurality of attribute values describing properties of the user action history;
- obtain an item attribute vector of an item comprising a second plurality of attribute values and an indication of attributes that are applicable to the item, the second plurality of attribute values describing properties of the item;
- compare corresponding attribute values that are applicable to the item in the first plurality of attribute values and in the second plurality of attribute values;
- calculate a similarity score based on the comparison;
- select a subset of items from a plurality of items using the similarity score of each item, wherein the selected subset of items comprises a smaller number of items than in the plurality of items; and
- transmit data indicating the selected subset of items to a client device.
2. The computing apparatus of claim 1, further configured to:
- process an order for the selected subset of items using at least the similarity score of each item.
3. The computing apparatus of claim 2, further configured to:
- transmit data indicating the processed order of the subset of items to the client device.
4. The computing apparatus of claim 1 further configured to:
- transmit each similarity score to the client device.
5. The computing apparatus of claim 1,
- wherein the item attribute vector comprises:
- a logical true value, indicating that a corresponding attribute is true for the item; and
- a logical false value, indicating that a corresponding attribute is false for the item.
6. The computing apparatus of claim 1, wherein each attribute value in the user attribute profile vector is in range of 0 to 1.
7. The computing apparatus of any preceding claim 1, further configured to:
- calculate an ordering score for each item in the plurality of items based on a location of the item and locations of previously purchased items by the user in an item tree; and
- order the plurality of items using the ordering score of each item and the similarity score of each item.
8. The computing apparatus of claim 1, further configured to:
- store the user attribute profile vector in a user profile (210) of the user.
9. The computing apparatus of claim 1, further configured to:
- store each similarity score in the user profile.
10. A client device, configured to:
- receive data indicating a subset of items from a computing apparatus;
- display at least one item view to a user according to the data received from the computing apparatus, each item view in the at least one item view comprising a name of an item;
- the subset of items being selected from a plurality of items based on a calculated similarity score of each item in the plurality of items, the calculated similarity score being obtained by comparing corresponding attribute values that are applicable to an item in a first plurality of attribute values comprised in a user attribute profile vector and in a second plurality of attribute values comprised in an item attribute vector, wherein the subset of items comprises a smaller number of items than in the plurality of items.
11. The client device of claim 10, further configured before the receiving the data, transmit a filtering condition to the computing apparatus (200), and wherein the subset of items is selected from the plurality of items based on the calculated similarity score and the filtering condition.
12. The client device of claim 10, further configured to:
- receive an order for the subset of items from the computing apparatus; and
- display the at least one item view according to the received order.
13. The client device of claim 10, further configured to:
- receive the calculated similarity score from the computing apparatus; and
- display a displayed similarity score in the at least one item view, wherein the displayed similarity score is associated with the calculated similarity score.
14. The client device of claim 10, further configured to:
- display an attribute in the at least one item view, wherein the attribute is associated with the item attribute vector of an item displayed in the item view.
15. A method, comprising:
- calculating, by a computing apparatus, a user attribute profile vector based on a user action history of a user, the user attribute profile vector comprising a first plurality of attribute values, the first plurality of attribute values describing properties of the user action history;
- obtaining, by a computing apparatus, an item attribute vector of an item comprising a second plurality of attribute values and an indication of attributes that are applicable to the item, the second plurality of attribute values describing properties of the item;
- comparing, by a computing apparatus, corresponding attribute values that are applicable to the item in the first plurality of attribute values and in the second plurality of attribute values;
- calculating, by a computing apparatus, a similarity score based on the comparison; and
- selecting, by a computing apparatus, a subset of items from a plurality of items using the similarity score of each item, wherein the selected subset of items comprises a smaller number of items than in the plurality of items;
- transmitting, by a computing apparatus, data indicating the subset of items to a client device.
16. A computer program product, comprising program code configured to perform the method according to claim 15 when the computer program product is executed on a computer.
17. A method, comprising:
- receiving, by a client device, data indicating subset of items from a computing apparatus;
- displaying, by a client device, at least one item view to a user according to the data received from the computing apparatus, each item view in the at least one item view comprising a name of an item;
- the subset of items being selected from a plurality of items based on a calculated similarity score of each item in the plurality of items, the calculated similarity score being obtained by comparing corresponding attribute values that are applicable to an item in a first plurality of attribute values comprised in a user attribute profile vector and in a second plurality of attribute values comprised in an item attribute vector, wherein the subset of items comprises a smaller number of items than in the plurality of items.
18. A computer program product, comprising program code configured to perform the method according to claim 17 when the computer program product is executed on a computer.
Type: Application
Filed: Jul 16, 2019
Publication Date: Sep 2, 2021
Inventors: Veijo Heinonen (Kellokoski), Mikko Saikko (Lappeenranta)
Application Number: 17/260,854