|
Sebastian Schelter
2011-03-17, 10:28
Ulises
2011-03-17, 10:42
Philippe Adjiman
2011-03-17, 11:08
Sebastian Schelter
2011-03-17, 11:38
Tamas Jambor
2011-03-17, 14:40
Mike Nute
2011-03-17, 15:35
Ted Dunning
2011-03-17, 17:09
Ted Dunning
2011-03-17, 17:10
Amel Fraisse
2011-03-18, 11:42
Sebastian Schelter
2011-03-20, 08:06
Mike Nute
2011-03-20, 16:24
Ted Dunning
2011-03-20, 16:38
Stéphane Cambon
2011-03-25, 12:34
|
-
Implicit feedback with varying significanceSebastian Schelter 2011-03-17, 10:28
Hi,
I have some questions about how to handle implicit feedback with varying significance in an e-commerce environment. Say I have an onlineshop and I track views and purchases of products. Tracked views are like a two-edged sword then, on the one hand they are very useful because you get a lot of them quickly and can use them to tackle the cold-start problem (you should already have enough data to find similar items from view data the day after the product was put online). On the other hand the most co-viewed stuff will be from the same category of things and will narrow the similar items to that category. This might become worse over time as recommenders tend to amplify themselves. After some time we should have purchase data for that new items, which is expected to have a higher significance because a higher engagement of the users is involved. I'd like to give these signals a much greater weight to broaden up the recommendations, especially to find interesting cross-category similarities. My worry is that these are currently "overruled" by the sheer amount of view data points and I found out that simple procedures like applying business specific rules to filter the similar items to only include cross-category pairs doesn't really help with that problem. Does somebody have an idea (or better something learned from experience) how to proceed to solve that problem? A simple approach I have in mind would be to separately handle similar items based on views and similar items based on purchases. --sebastian
-
Re: Implicit feedback with varying significanceUlises 2011-03-17, 10:42
> Does somebody have an idea (or better something learned from experience) how
> to proceed to solve that problem? Could you not have two separate recommenders, one based on views and one based on purchases and then combine their outputs using weights? U
-
Re: Implicit feedback with varying significancePhilippe Adjiman 2011-03-17, 11:08
Hi,
You might find that high quality paper interesting: http://research.yahoo.com/pub/2433 for the part of your problem about associating varying confidence levels to different implicit feedback signals. As far as I know, no algorithm in mahout is ready to use for the model exposed in that paper, yet. I plan to re-read that paper soon as i might need to solve similar problems in the near future, would be happy to discuss my experience with it when i'll get there. Best, -Philippe. -- Philippe Adjiman | twitter: padjiman | linkedin: il.linkedin.com/in/philippeadjiman | blog: http://philippeadjiman.com/blog On Thu, Mar 17, 2011 at 12:28 PM, Sebastian Schelter <[EMAIL PROTECTED]> wrote: > Hi, > > I have some questions about how to handle implicit feedback with varying > significance in an e-commerce environment. > > Say I have an onlineshop and I track views and purchases of products. > > Tracked views are like a two-edged sword then, on the one hand they are > very useful because you get a lot of them quickly and can use them to tackle > the cold-start problem (you should already have enough data to find similar > items from view data the day after the product was put online). On the other > hand the most co-viewed stuff will be from the same category of things and > will narrow the similar items to that category. This might become worse over > time as recommenders tend to amplify themselves. > > After some time we should have purchase data for that new items, which is > expected to have a higher significance because a higher engagement of the > users is involved. I'd like to give these signals a much greater weight to > broaden up the recommendations, especially to find interesting > cross-category similarities. My worry is that these are currently > "overruled" by the sheer amount of view data points and I found out that > simple procedures like applying business specific rules to filter the > similar items to only include cross-category pairs doesn't really help with > that problem. > > Does somebody have an idea (or better something learned from experience) > how to proceed to solve that problem? > > A simple approach I have in mind would be to separately handle similar > items based on views and similar items based on purchases. > > --sebastian > -- Philippe Adjiman | twitter: padjiman | linkedin: il.linkedin.com/in/philippeadjiman | blog: http://philippeadjiman.com/blog
-
Re: Implicit feedback with varying significanceSebastian Schelter 2011-03-17, 11:38
Hi Philippe,
That's really an interesting paper, I ran into it some weeks ago, unfortunately there's a long way to go until it's algorithm could be used in a real-world scenario. I think that once MAHOUT-542 is finished, which is designed to work with explicit data, it could maybe be modified/extended to implement that algorithm too. --sebastian On 17.03.2011 12:08, Philippe Adjiman wrote: > Hi, > > You might find that high quality paper interesting: > http://research.yahoo.com/pub/2433 for the part of your problem about > associating varying confidence levels to different implicit feedback > signals. > > As far as I know, no algorithm in mahout is ready to use for the model > exposed in that paper, yet. > > I plan to re-read that paper soon as i might need to solve similar > problems in the near future, would be happy to discuss my experience > with it when i'll get there. > > > Best, > -Philippe. > > -- > Philippe Adjiman | twitter: padjiman | linkedin: > il.linkedin.com/in/philippeadjiman > <http://il.linkedin.com/in/philippeadjiman> | blog: > http://philippeadjiman.com/blog > > > > On Thu, Mar 17, 2011 at 12:28 PM, Sebastian Schelter <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > Hi, > > I have some questions about how to handle implicit feedback with > varying significance in an e-commerce environment. > > Say I have an onlineshop and I track views and purchases of products. > > Tracked views are like a two-edged sword then, on the one hand > they are very useful because you get a lot of them quickly and can > use them to tackle the cold-start problem (you should already have > enough data to find similar items from view data the day after the > product was put online). On the other hand the most co-viewed > stuff will be from the same category of things and will narrow the > similar items to that category. This might become worse over time > as recommenders tend to amplify themselves. > > After some time we should have purchase data for that new items, > which is expected to have a higher significance because a higher > engagement of the users is involved. I'd like to give these > signals a much greater weight to broaden up the recommendations, > especially to find interesting cross-category similarities. My > worry is that these are currently "overruled" by the sheer amount > of view data points and I found out that simple procedures like > applying business specific rules to filter the similar items to > only include cross-category pairs doesn't really help with that > problem. > > Does somebody have an idea (or better something learned from > experience) how to proceed to solve that problem? > > A simple approach I have in mind would be to separately handle > similar items based on views and similar items based on purchases. > > --sebastian > > > > > -- > Philippe Adjiman | twitter: padjiman | linkedin: > il.linkedin.com/in/philippeadjiman > <http://il.linkedin.com/in/philippeadjiman> | blog: > http://philippeadjiman.com/blog >
-
Re: Implicit feedback with varying significanceTamas Jambor 2011-03-17, 14:40
Hi all,
I have implemented an algorithm based on the paper mentioned above. I was thinking committing it to mahout actually. I was working with a dataset where there were previews and purchases of video items and I calculated the conditional probably between purchase and preview, and used it as a weigh like in the paper. It worked pretty well. Tamas On Thu, Mar 17, 2011 at 11:38 AM, Sebastian Schelter <[EMAIL PROTECTED]> wrote: > Hi Philippe, > > That's really an interesting paper, I ran into it some weeks ago, > unfortunately there's a long way to go until it's algorithm could be used in > a real-world scenario. > > I think that once MAHOUT-542 is finished, which is designed to work with > explicit data, it could maybe be modified/extended to implement that > algorithm too. > > --sebastian > > On 17.03.2011 12:08, Philippe Adjiman wrote: >> >> Hi, >> >> You might find that high quality paper interesting: >> http://research.yahoo.com/pub/2433 for the part of your problem about >> associating varying confidence levels to different implicit feedback >> signals. >> >> As far as I know, no algorithm in mahout is ready to use for the model >> exposed in that paper, yet. >> >> I plan to re-read that paper soon as i might need to solve similar >> problems in the near future, would be happy to discuss my experience with it >> when i'll get there. >> >> >> Best, >> -Philippe. >> >> -- >> Philippe Adjiman | twitter: padjiman | linkedin: >> il.linkedin.com/in/philippeadjiman >> <http://il.linkedin.com/in/philippeadjiman> | blog: >> http://philippeadjiman.com/blog >> >> >> >> On Thu, Mar 17, 2011 at 12:28 PM, Sebastian Schelter <[EMAIL PROTECTED] >> <mailto:[EMAIL PROTECTED]>> wrote: >> >> Hi, >> >> I have some questions about how to handle implicit feedback with >> varying significance in an e-commerce environment. >> >> Say I have an onlineshop and I track views and purchases of products. >> >> Tracked views are like a two-edged sword then, on the one hand >> they are very useful because you get a lot of them quickly and can >> use them to tackle the cold-start problem (you should already have >> enough data to find similar items from view data the day after the >> product was put online). On the other hand the most co-viewed >> stuff will be from the same category of things and will narrow the >> similar items to that category. This might become worse over time >> as recommenders tend to amplify themselves. >> >> After some time we should have purchase data for that new items, >> which is expected to have a higher significance because a higher >> engagement of the users is involved. I'd like to give these >> signals a much greater weight to broaden up the recommendations, >> especially to find interesting cross-category similarities. My >> worry is that these are currently "overruled" by the sheer amount >> of view data points and I found out that simple procedures like >> applying business specific rules to filter the similar items to >> only include cross-category pairs doesn't really help with that >> problem. >> >> Does somebody have an idea (or better something learned from >> experience) how to proceed to solve that problem? >> >> A simple approach I have in mind would be to separately handle >> similar items based on views and similar items based on purchases. >> >> --sebastian >> >> >> >> >> -- >> Philippe Adjiman | twitter: padjiman | linkedin: >> il.linkedin.com/in/philippeadjiman >> <http://il.linkedin.com/in/philippeadjiman> | blog: >> http://philippeadjiman.com/blog >> > >
-
Re: Implicit feedback with varying significanceMike Nute 2011-03-17, 15:35
I could be missing some context here but can you calculate the recommendation based first on purchase feedback, then based on view feedback, then based on the grand mean? So in my world (insurance, for now), we refer to this as credibility, but its really just the linear approximation to the bayesian posterior. But you'd essentially figure out some Z in [0,1] related to number of purchase-related feedback items (typically this is n/(n+k) where n is the # of items and k is some constant), then use Z*(purely purchased based recommendation) + (1-Z)*(something else). In this case the something else could actually be a repeat of this where the next Z (call it Z') is calculated based on the # of viewing-based feedbacks, and the new something else could be e.g. the grand mean.
So you'd have: n/(n+k)=Z m/(m+j)=Z' Where n = # of purchases, m=# of views, k,j constants chosen in advance. And your recommender score for the next item becomes: Z*(purchase driven score)+(1-Z)*[Z'*(view driven score)+(1-Z')*(grand mean)] Does that make sense or help? There's more theory in there but that's the basics of how I'd approach it. Mike -----Original Message----- From: Sebastian Schelter <[EMAIL PROTECTED]> Date: Thu, 17 Mar 2011 11:28:54 To: <[EMAIL PROTECTED]> Reply-To: [EMAIL PROTECTED] Subject: Implicit feedback with varying significance Hi, I have some questions about how to handle implicit feedback with varying significance in an e-commerce environment. Say I have an onlineshop and I track views and purchases of products. Tracked views are like a two-edged sword then, on the one hand they are very useful because you get a lot of them quickly and can use them to tackle the cold-start problem (you should already have enough data to find similar items from view data the day after the product was put online). On the other hand the most co-viewed stuff will be from the same category of things and will narrow the similar items to that category. This might become worse over time as recommenders tend to amplify themselves. After some time we should have purchase data for that new items, which is expected to have a higher significance because a higher engagement of the users is involved. I'd like to give these signals a much greater weight to broaden up the recommendations, especially to find interesting cross-category similarities. My worry is that these are currently "overruled" by the sheer amount of view data points and I found out that simple procedures like applying business specific rules to filter the similar items to only include cross-category pairs doesn't really help with that problem. Does somebody have an idea (or better something learned from experience) how to proceed to solve that problem? A simple approach I have in mind would be to separately handle similar items based on views and similar items based on purchases. --sebastian
-
Re: Implicit feedback with varying significanceTed Dunning 2011-03-17, 17:09
On Thu, Mar 17, 2011 at 3:28 AM, Sebastian Schelter <[EMAIL PROTECTED]> wrote:
> Does somebody have an idea (or better something learned from experience) > how to proceed to solve that problem? > In the larger sense, this is exactly a fit for ordinal regression. That is similar to multinomial regression except that there is an ordering to the values of the output variables that can be used to constrain the model. It is common in cases that have pre-requisite behavior before the user does what you really want that the nested nature of (people doing the pre-requisite) and (people doing the pre-requisite and the desired goal) matches the ordinal formulation better. The real benefit of this is that you often can gather data on some gateway behavior much sooner than you can gather data on the behavior you really want to cause (which is just what you said, in different words). Ordinal logistic regression also has the nice feature that you don't have to define how much to weight the gateway behavior versus the final conversion. The best treatment of ordinal regression in the context of recommendations is the Menon and Elkan paper on latent factor log linear models. See http://arxiv.org/abs/1006.2156 That said, Mahout's classifiers don't much do this yet. I have a not-progressing-much-yet initial implementation of LLL models as part of my mahout-525 github branch, but it omits exactly the ordinal stuff that you would need. Another approach would be to take the value of conversion to be 1, the value of not as 0 and the value of the gateway behavior as some number 0 < x < 1. You could do several tests to see what global value of x gives you good performance at predicting your conversions. That might have several of the desirable properties of ordinal regression. Or it might not. I haven't tried it. > > A simple approach I have in mind would be to separately handle similar > items based on views and similar items based on purchases. > That is another option. It is possible to combine the outputs of multiple recommendations engine using a simple classifier as well. Such a meta-model can have many of the virtues of recommendation systems as well as some interesting additional behaviors. I haven't done this in the situation you describe, but I have used meta-models to advantage in other applications. This is essentially what Koren and company were doing when they built composite recommenders.
-
Re: Implicit feedback with varying significanceTed Dunning 2011-03-17, 17:10
That is exactly what Sebastian suggested in his last paragraph.
The answer is yes. You could do that. The problem is finding the weights. On Thu, Mar 17, 2011 at 3:42 AM, Ulises <[EMAIL PROTECTED]> wrote: > > Does somebody have an idea (or better something learned from experience) > how > > to proceed to solve that problem? > > Could you not have two separate recommenders, one based on views and > one based on purchases and then combine their outputs using weights? > > U >
-
Re: Implicit feedback with varying significanceAmel Fraisse 2011-03-18, 11:42
Hi,
There is any implementation of the algorithms described in this paper : http://research.yahoo.com/pub/2433 ? Thank you, Amel. 2011/3/17 Ted Dunning <[EMAIL PROTECTED]> > That is exactly what Sebastian suggested in his last paragraph. > > The answer is yes. You could do that. The problem is finding the weights. > > On Thu, Mar 17, 2011 at 3:42 AM, Ulises <[EMAIL PROTECTED]> wrote: > > > > Does somebody have an idea (or better something learned from > experience) > > how > > > to proceed to solve that problem? > > > > Could you not have two separate recommenders, one based on views and > > one based on purchases and then combine their outputs using weights? > > > > U > > >
-
Re: Implicit feedback with varying significanceSebastian Schelter 2011-03-20, 08:06
Thanks to everyone who answered my mail, very cool to get such valuable
feedback. It's great to see this mailinglist not only being used for technical advice but also for helping and educating each other! I don't have much time to experiment so I'd like to go with the easier looking proposed solution of combining two recommenders. I'm more interested in computing item-similarities than "real" recommendations, so I thought I'd maybe use a simple combination of the scores for that like this: k = weight to choose n = number of sales f = n / (n + k) (1 - f) * view_similarity + f * purchase_similarity Does this seem to fit and does anyone have an idea how to find the right k's here? @Ted Thank you for giving me the bigger picture here, you're absolutely right, the problem is actually about predicting the transition from viewing to viewing plus buying behavior. --sebastian On 17.03.2011 18:10, Ted Dunning wrote: > That is exactly what Sebastian suggested in his last paragraph. > > The answer is yes. You could do that. The problem is finding the weights. > > On Thu, Mar 17, 2011 at 3:42 AM, Ulises<[EMAIL PROTECTED]> wrote: > >>> Does somebody have an idea (or better something learned from experience) >> how >>> to proceed to solve that problem? >> >> Could you not have two separate recommenders, one based on views and >> one based on purchases and then combine their outputs using weights? >> >> U >> >
-
Re: Implicit feedback with varying significanceMike Nute 2011-03-20, 16:24
Technically k should be (expectation of the process variance)/(variance of hypothetical mean) but that tends to be a pretty involved. You could look up empirical bayes and get formulas that would work.
In practice tho the beauty of that formula is that the result often is not hugely sensitive to k, so you can treat it like a tuning parameter and try a few and see what gives you the best fit. Good luck, Mike -----Original Message----- From: Sebastian Schelter <[EMAIL PROTECTED]> Date: Sun, 20 Mar 2011 09:06:08 To: <[EMAIL PROTECTED]> Reply-To: [EMAIL PROTECTED] Subject: Re: Implicit feedback with varying significance Thanks to everyone who answered my mail, very cool to get such valuable feedback. It's great to see this mailinglist not only being used for technical advice but also for helping and educating each other! I don't have much time to experiment so I'd like to go with the easier looking proposed solution of combining two recommenders. I'm more interested in computing item-similarities than "real" recommendations, so I thought I'd maybe use a simple combination of the scores for that like this: k = weight to choose n = number of sales f = n / (n + k) (1 - f) * view_similarity + f * purchase_similarity Does this seem to fit and does anyone have an idea how to find the right k's here? @Ted Thank you for giving me the bigger picture here, you're absolutely right, the problem is actually about predicting the transition from viewing to viewing plus buying behavior. --sebastian On 17.03.2011 18:10, Ted Dunning wrote: > That is exactly what Sebastian suggested in his last paragraph. > > The answer is yes. You could do that. The problem is finding the weights. > > On Thu, Mar 17, 2011 at 3:42 AM, Ulises<[EMAIL PROTECTED]> wrote: > >>> Does somebody have an idea (or better something learned from experience) >> how >>> to proceed to solve that problem? >> >> Could you not have two separate recommenders, one based on views and >> one based on purchases and then combine their outputs using weights? >> >> U >> >
-
Re: Implicit feedback with varying significanceTed Dunning 2011-03-20, 16:38
This is actually somewhat similar to binomial estimation with a beta prior.
IF you want to estimate the frequency of an unfair die coming up as 1, and you feel that it is a reasonable prior estimation that the probability is p_1_pre = k_1 / n_1, then the posterior estimate of the probability is p_1_post = (k + k_1) / (n + n_1) where k and n are the observed successes and trials. You choose k_1 and n_1 to express how strong your prior estimate is and thus how much evidence is required to over-rule it. In your case you are doing something similar where the prior is the view_similarity and you transition to the purchase_similarity as you get data. If you were predicting click-through rate based on open probability, you would have to have a heuristic multiplier to downgrade open probability, but with similarity that isn't a big deal. I think that your basic approach is fine with the exception that I don't think that you accounting for the number of purchases of both items. My tendency would be to use the minimum of the two items, but other options may be better. On Sun, Mar 20, 2011 at 9:24 AM, Mike Nute <[EMAIL PROTECTED]> wrote: > Technically k should be (expectation of the process variance)/(variance of > hypothetical mean) but that tends to be a pretty involved. You could look up > empirical bayes and get formulas that would work. > > In practice tho the beauty of that formula is that the result often is not > hugely sensitive to k, so you can treat it like a tuning parameter and try a > few and see what gives you the best fit. > > Good luck, > Mike > -----Original Message----- > From: Sebastian Schelter <[EMAIL PROTECTED]> > Date: Sun, 20 Mar 2011 09:06:08 > To: <[EMAIL PROTECTED]> > Reply-To: [EMAIL PROTECTED] > Subject: Re: Implicit feedback with varying significance > > Thanks to everyone who answered my mail, very cool to get such valuable > feedback. It's great to see this mailinglist not only being used for > technical advice but also for helping and educating each other! > > I don't have much time to experiment so I'd like to go with the easier > looking proposed solution of combining two recommenders. I'm more > interested in computing item-similarities than "real" recommendations, > so I thought I'd maybe use a simple combination of the scores for that > like this: > > k = weight to choose > n = number of sales > f = n / (n + k) > > (1 - f) * view_similarity + f * purchase_similarity > > > Does this seem to fit and does anyone have an idea how to find the right > k's here? > > > @Ted Thank you for giving me the bigger picture here, you're absolutely > right, the problem is actually about predicting the transition from > viewing to viewing plus buying behavior. > > --sebastian > > On 17.03.2011 18:10, Ted Dunning wrote: > > That is exactly what Sebastian suggested in his last paragraph. > > > > The answer is yes. You could do that. The problem is finding the > weights. > > > > On Thu, Mar 17, 2011 at 3:42 AM, Ulises<[EMAIL PROTECTED]> > wrote: > > > >>> Does somebody have an idea (or better something learned from > experience) > >> how > >>> to proceed to solve that problem? > >> > >> Could you not have two separate recommenders, one based on views and > >> one based on purchases and then combine their outputs using weights? > >> > >> U > >> > > > >
-
Re: Implicit feedback with varying significanceStéphane Cambon 2011-03-25, 12:34
Hi all,
New in Mahout, I am really interested about the implementation of the paper mentioned. I can help to coding/reviewing it. How can I be involved ? I think also this algorithm may be interesting to be part of Mahout. -- Stéphane Le 17 mars 2011 à 15:40, Tamas Jambor a écrit : > Hi all, > > I have implemented an algorithm based on the paper mentioned above. I > was thinking committing it to mahout actually. > > I was working with a dataset where there were previews and purchases > of video items and I calculated the conditional probably between > purchase and preview, and used it as a weigh like in the paper. It > worked pretty well. > > Tamas > > On Thu, Mar 17, 2011 at 11:38 AM, Sebastian Schelter <[EMAIL PROTECTED]> wrote: >> Hi Philippe, >> >> That's really an interesting paper, I ran into it some weeks ago, >> unfortunately there's a long way to go until it's algorithm could be used in >> a real-world scenario. >> >> I think that once MAHOUT-542 is finished, which is designed to work with >> explicit data, it could maybe be modified/extended to implement that >> algorithm too. >> >> --sebastian >> >> On 17.03.2011 12:08, Philippe Adjiman wrote: >>> >>> Hi, >>> >>> You might find that high quality paper interesting: >>> http://research.yahoo.com/pub/2433 for the part of your problem about >>> associating varying confidence levels to different implicit feedback >>> signals. >>> >>> As far as I know, no algorithm in mahout is ready to use for the model >>> exposed in that paper, yet. >>> >>> I plan to re-read that paper soon as i might need to solve similar >>> problems in the near future, would be happy to discuss my experience with it >>> when i'll get there. >>> >>> >>> Best, >>> -Philippe. >>> >>> -- >>> Philippe Adjiman | twitter: padjiman | linkedin: >>> il.linkedin.com/in/philippeadjiman >>> <http://il.linkedin.com/in/philippeadjiman> | blog: >>> http://philippeadjiman.com/blog >>> >>> >>> >>> On Thu, Mar 17, 2011 at 12:28 PM, Sebastian Schelter <[EMAIL PROTECTED] >>> <mailto:[EMAIL PROTECTED]>> wrote: >>> >>> Hi, >>> >>> I have some questions about how to handle implicit feedback with >>> varying significance in an e-commerce environment. >>> >>> Say I have an onlineshop and I track views and purchases of products. >>> >>> Tracked views are like a two-edged sword then, on the one hand >>> they are very useful because you get a lot of them quickly and can >>> use them to tackle the cold-start problem (you should already have >>> enough data to find similar items from view data the day after the >>> product was put online). On the other hand the most co-viewed >>> stuff will be from the same category of things and will narrow the >>> similar items to that category. This might become worse over time >>> as recommenders tend to amplify themselves. >>> >>> After some time we should have purchase data for that new items, >>> which is expected to have a higher significance because a higher >>> engagement of the users is involved. I'd like to give these >>> signals a much greater weight to broaden up the recommendations, >>> especially to find interesting cross-category similarities. My >>> worry is that these are currently "overruled" by the sheer amount >>> of view data points and I found out that simple procedures like >>> applying business specific rules to filter the similar items to >>> only include cross-category pairs doesn't really help with that >>> problem. >>> >>> Does somebody have an idea (or better something learned from >>> experience) how to proceed to solve that problem? >>> >>> A simple approach I have in mind would be to separately handle >>> similar items based on views and similar items based on purchases. >>> >>> --sebastian >>> >>> >>> >>> >>> -- >>> Philippe Adjiman | twitter: padjiman | linkedin: >>> il.linkedin.com/in/philippeadjiman >>> <http://il.linkedin.com/in/philippeadjiman> | blog |